190 likes | 404 Views
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. Design Fundamentals. Build a stable core.
E N D
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.
Design Fundamentals • Build a stable core. • Build up complexity in layers. • Leverage existing open source software. • Use of modular architecture to increase flexibility.
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.
Event Sysyem • Philosophy • Core Events • Custom Events • Event Handlers
Logger System • Concept • Logger Interface
XML • Reasoning • freeswitch.xml meta-document • XML hook interface
Loadable Module Interface • Overview • Endpoints • Codecs • Dialplans • Timers • Applications • API Interface • File Formats • Speech Interface • Directory Interface
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
Crash Protection • ./configure –enable-crash-protection • Explanation • Differences on various OS
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)
Dialplan Modules • mod_dialplan_xml (XML) • mod_dialplan_directory (LDAP)
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)
Language Modules • mod_spidermonkey (javascript) • mod_perl (perl) • mod_mono *** (.NET C#)
Codec Modules • mod_g711 (G711 ulaw/alaw) • mod_ilbc (iLBC) • mod_gsm (GSM) • mod_l16 (Signed Linear) • mod_speex (Speex)
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)
Logger Modules • mod_syslog (UNIX Syslog) • mod_console (Console Logger)
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)