Kristian Kielhofner Chad Phillips

Slides:



Advertisements
Similar presentations
Facts about Welcome to this video from Ozeki. In this video I will present what makes Ozeki Phone System XE the Worlds best on-site software PBX for Windows.
Advertisements

DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
Apache Struts Technology
Overview of DVX 9000.
Who am I? ● Catalin Comanici ● QA for 10 years, doing test automation for about 6 years ● fun guy and rock star wannabe.
Welcome to Drupal Crash course - Gartheeban Ganeshapillai.
Title slide to be used at the start of a module. Developing Mobile Apps Roland Guijt
Christopher Jeffers August 2012
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
Internationalization and the Java Stack Matt Wheeler.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Framework Universal & Infinite Software Solution.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
ITCS 6010 SALT. Speech Application Language Tags (SALT) Speech interface markup language Extension of HTML and other markup languages Adds speech and.
Presenting Statistical Data Using XML Office for National Statistics, United Kingdom Rob Hawkins, Application Development.
DAT602 Database Application Development Lecture 12 C/S Model Database Application.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Architecture Support for OS CSCI 444/544 Operating Systems Fall 2008.
Integrating VoiceXML with SIP services
University of North Texas Libraries Building Search Systems for Digital Library Collections Mark E. Phillips Texas Conference on Digital Libraries May.
Drupal Commerce Better than Uber Andrew Root: druroot.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
Real-time multimedia and communication in packet networks Asterisk AGI and Manager Interface.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Copyright © 2012 UNICOM Systems, Inc. Confidential Information z/Ware Product Overview illustro Systems International A Division of UNICOM Global.
Model View Controller MVC Web Software Architecture.
SKYPIAX, how to add Skype capabilities to FreeSWITCH (and Asterisk) CHICAGO, USA, September 2009.
Phone Mashups Integrating Telephony & the Web Irv Shapiro CEO, Ifbyphone, Inc.
Basics of JDBC Session 14.
: Information Retrieval อาจารย์ ธีภากรณ์ นฤมาณนลิณี
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Getting Started Telligent or SharePoint (or Hybrid)?
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
Introduction The concept of a web framework originates from the basic idea that every web application obtains its foundations from a similar set of guidelines.
The Holmes Platform and Applications
Overview of E-Learning Authoring Software
Instant mobile communities
Project Management: Messages
Improving searches through community clustering of information
Asterisk PBX with trixbox: for use in Small and Medium Businesses
Digium | Switchvox Product Announcement
Self Healing and Dynamic Construction Framework:
Data Virtualization Community Edition
ASTERISK “Open Source Communications Platform”
Chris Menegay Sr. Consultant TECHSYS Business Solutions
Overall Architecture and Component Model
Dynamic SQL: Writing Efficient Queries on the Fly
TE004 Smart Change Management with Sage CRM Component Manager
The Client/Server Database Environment
Building Search Systems for Digital Library Collections
APIs (and their Relatives) Can Expand and Unify Library Services
Datamining : Refers to extracting or mining knowledge from large amounts of data Applications : Market Analysis Fraud Detection Customer Retention Production.
The Power Of Generic Infrastructure
FEATURE OF THE (EVERY OTHER) DAY
Introduction to Ms-Access Submitted By- Navjot Kaur Mahi
Design and Maintenance of Web Applications in J2EE
Northbound API Dan Shmidt | January 2017
SDMX Reference Infrastructure Introduction
Lecture 1: Multi-tier Architecture Overview
Dynamic SQL: Writing Efficient Queries on the Fly
LonMaker® Turbo Editions New Features
Smart Integration Express
Smart Personal Console (SPC)
Web Manager Features Diagram
Android Platform, Android App Basic Components
ASP.NET MVC Imran Rashid CTO at ManiWeber Technologies.
Lecture 34: Testing II April 24, 2017 Selenium testing script 7/7/2019
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
Web Application Development Using PHP
Presentation transcript:

Kristian Kielhofner Chad Phillips Jester Asterisk voicemail and so much more Kristian Kielhofner Chad Phillips

About me (Star2Star) CTO, Star2Star Communications Creator of AstLinux (former life) Creator of proprietary, end to end architecture 100,000 endpoints (phones) online 9,000 Dollar General stores Hundreds of Taco Bell, KFC, many other retail

Problems... Scaling "Comedian Mail" (Asterisk mod_voicemail) - multiple random crashes per day ODBC/DB storage problems Customizing voicemail interfaces  Transitioning from Asterisk to FreeSWITCH (no training)

FreeSWITCH + LUA = Our Perfect VM FreeSWITCH + LUA + Jester scales better than native Asterisk mod_voicemail in C (wow) LUA very logical, easy to manipulate, no reload/recompile Completely customizable

Our Transition Multiple Asterisk voicemail servers Asterisk ODBC backend (messages + metadata = yuck) 40,000 voicemail boxes 300,000 messages 9,000,000 seconds/2500 hours/>104 days of messages

Results One bug 0.8% of calls affected Users calling in from PSTN to access mailbox Level(3) sent INSANELY long RFC2833 DTMF tones Messed up timeouts...

Chad Phillips

About me Chad Phillips, aka 'hunmonk' CTO of Apartment Lines Nationwide 24-hour answering service specializing in apartment complexes Experience with advanced scripting voice workflows for both Asterisk and FreeSWITCH

Plan of attack What is Jester? Features Why? Example code Questions?

What is Jester? Scripting toolkit for FreeSWITCH. Written entirely in Lua. Blends features of the XML dialplan, IVR menus, and scripting interfaces. Provides a simple, unified framework to execute complex workflows that usually involve custom scripting.

Jester features Small core. End users (those building voice workflows) only need minimal Lua knowledge. New features easily developed into pluggable modules with intermediate Lua programming skill. Extensive built in user help system. Includes a complete Comedian Mail replica.

Why? What does this extra layer of abstraction in front of straight Lua scripting buy us? It adds overhead. It's something new to learn.    Because... It's easy to learn and follow. It handles A LOT of complexity for you, without removing the flexibility of straight scripting if you want it. Speeds development of voice workflows. Allows blending of IVR and custom scripting that otherwise can get messy in a hurry.

A testament to code reuse 14 modules that expose... ...44 actions result in... ...a complete replica of Asterisk's Comedian Mail system. AND... New modules aren't that hard to add Actions in the existing modules are highly configurable SO...   The groundwork has been laid for others to click together advanced voice/scripting workflows in minutes!

Example #1 Play a series of prompts and collect a key press. Use key press to pull information from a database. Write returned data to the FreeSWITCH console.

Example #2 Google's speech to text can be queried via a REST call :) Converted this functionality to a Jester module, and exposed a 'speech_to_text_from_file' action. New service module exposes an 'http_request' action. For fun, record a message by phone, and have the translated text appear on a web page.

Jester resources http://wiki.freeswitch.org/wiki/Jester Simple summary Location of the code Links to README and INSTALL files   jhelp (built in help), available from: Shell FreeSWITCH console IRC #freeswitch on irc.freenode.net User 'hunmonk'

Questions?

Architectural overview Core: Jester's "operating system" -- handles bootstrapping, internal variable storage, call flow. Modules: Plug into core, expose user functionality. Actions: Specific, configurable, user-facing functionality exposed by modules (eg., record to a file, playback a file, etc.). Sequences: User-defined workflows of one or more actions. Profiles: High-level user configuration, eg. loading specific modules and setting variables.

Main components

General workflow