Presentation is loading. Please wait.

Presentation is loading. Please wait.

Kristian Kielhofner Chad Phillips

Similar presentations


Presentation on theme: "Kristian Kielhofner Chad Phillips"— Presentation transcript:

1 Kristian Kielhofner Chad Phillips
Jester Asterisk voic and so much more Kristian Kielhofner Chad Phillips

2 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

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

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

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

6 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...

7 Chad Phillips

8 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

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

10 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.

11 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.

12 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.

13 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!

14 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.

15 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.

16 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'

17 Questions?

18 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.

19 Main components

20 General workflow


Download ppt "Kristian Kielhofner Chad Phillips"

Similar presentations


Ads by Google