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 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
Modules
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)
Questions