19
Origin of FreeSWITCH • Asterisk Developer Meeting (March, 2005) • 5 days of coding (initial design of the core) • 7 months of discussion. • 3 months prep work in private. • Open to the public January 1st 2006. • 7 months of coding in the public eye.

Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Embed Size (px)

Citation preview

Page 1: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Origin of FreeSWITCH

• Asterisk Developer Meeting (March, 2005)

• 5 days of coding (initial design of the core)

• 7 months of discussion.

• 3 months prep work in private.

• Open to the public January 1st 2006.

• 7 months of coding in the public eye.

Page 2: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Design Fundamentals

• Build a stable core.

• Build up complexity in layers.

• Leverage existing open source software.

• Use of modular architecture to increase flexibility.

Page 3: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Standard Features

• APR: Memory Pools, Thread safe Queues, Hash Tables and Overall Abstraction.

• SQLite: built-in SQL database.

• TeleTone: Tone generation and detction.

• Libresample: live audio resampling.

• SRTP: Secure RTP.

Page 4: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Event Sysyem

• Philosophy

• Core Events

• Custom Events

• Event Handlers

Page 5: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Logger System

• Concept

• Logger Interface

Page 6: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

XML

• Reasoning

• freeswitch.xml meta-document

• XML hook interface

Page 7: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Loadable Module Interface

• Overview• Endpoints• Codecs• Dialplans• Timers• Applications• API Interface• File Formats• Speech Interface• Directory Interface

Page 8: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

State Machine

• Overview

• Session Thread and Conditional Mutex

• State Hooks

• Read/Write Locks

• States: CS_NEW | CS_INIT | CS_RING | CS_TRANSMIT | CS_EXECUTE | CS_LOOPBACK | CS_HOLD | CS_HANGUP | CS_DONE

Page 9: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Crash Protection

• ./configure –enable-crash-protection

• Explanation

• Differences on various OS

Page 10: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Modules

Page 11: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Enpoint Modules

• mod_woomera (Woomera)

• mod_wanpipe (Sangoma Cards)

• mod_dingaling (Jingle/GoogleTalk)

• mod_portaudio(Sound Card)

• mod_exosip, mod_sipX mod_pjsip (SIP)

• mod_iax (IAX2)

Page 12: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Dialplan Modules

• mod_dialplan_xml (XML)

• mod_dialplan_directory (LDAP)

Page 13: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Application Modules

• mod_dptools (misc applications)• mod_commands (remote commands)• mod_conference (conference bridge)• mod_bridgecall (bridge)• mod_echo (loopback test)• mod_playback (stream audio)• mod_rss (RSS news reader)• mod_skel (reference)

Page 14: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Language Modules

• mod_spidermonkey (javascript)

• mod_perl (perl)

• mod_mono *** (.NET C#)

Page 15: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Codec Modules

• mod_g711 (G711 ulaw/alaw)

• mod_ilbc (iLBC)

• mod_gsm (GSM)

• mod_l16 (Signed Linear)

• mod_speex (Speex)

Page 16: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Event Handler Modules

• mod_cdr (Call Detail Log)

• mod_event_multicast (Multicast UDP)

• mod_xmpp_event (XMPP)

• mod_zeroconf (Zeroconf)

• mod_event_socket (Remote Client)

Page 17: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Logger Modules

• mod_syslog (UNIX Syslog)

• mod_console (Console Logger)

Page 18: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

File Formats / Timers / XML / ASR TTS

• mod_sndfile (Audio file formats)

• mod_softtimer (Software Timer)

• mod_xmlrpc (XML-RPC interface)

• mod_cepstral (Text-To-Speech)

Page 19: Origin of FreeSWITCH Asterisk Developer Meeting (March, 2005) 5 days of coding (initial design of the core) 7 months of discussion. 3 months prep work

Questions