WebRTC THE NEW KID ON THE BLOCK• Cooperation between the W3C and IETF• Bidirectional media between browsers• Audio, video, text• The platform for new services• SIP in the browser
WebRTC THE VISION• An open service where we can communicate freely with each other from any device and any network• First wave probably just between users of the same web service• Many of us wants open federation - it requires a shared address space and protocol
WebRTC NEW APPLICATIONS• WebRTC is so much more than personal communication• Games, video manipulation, virtual reality...• First wave: • Skype replacements • Video conferences
WebRTC DEPENDENCIES• The architecture is still discussed• Depends on ICE for NAT traversal, which means dependencies on TURN/STUN as well• SDP or not SDP, that’s the question?• Opus and G711 for audio• VP8 or H.264 for video *** WARS ***
WebRTC WEBRTC• Platform for new cool • We’ll still have NAT applications and ﬁrewall issues• Built into the web • Will it be standardized browser enough• Security-enabled from • Will we need SBCs to start handle the connections?+ -
A SIP PBX PBXYou Me Everyone talks with the PBX!
A SIP PROXY We ﬁnd each other with the proxy. SIPYou Me Communication is peer2peer
FINDING YOU DNS SIPYou Me Communication is peer2peer sip:firstname.lastname@example.org
THE PROXYSIP SIP SIP SIP SIP SIP Proxy Outbound proxy Location server/registrar Presence server Call routing (LCR) Application server
KAMAILIO Open Source SIP Proxy SIP Server Application serverPresence server A lot of activity!
THE KAMAILIO PROJECT• Project leader: Daniel Constatin Mierla (Asipto)• Management board with community members• Many developers, active community• Renamed to Kamailio in 2008• Merged with the original Sip Express Router for version 3 in 2008
KAMAILIO TECHNOLOGY• Written in ANSI C and optimized for speed• Modular design• Flexible conﬁguration and routing language• Supports MySQL, PostgreSQL, LDAP, RADIUS, Sqlite , radius, UnixODBC• Standard (RFC3261) compliant• Web based administration interface: SIREMIS• Management port (TCP, UDP, XML)• Embedded HTTP server for Xcap (Presence)• Python, Perl, LUA development interfaces• NAT traversal capable• Portable, runs on POSIX compliant systems
KAMAILIO PHILOSOPHY• Over 100 modules - build anything!• Many modules overlap • Especially in carrier-business-related stuff, like least cost routing• As long as we have maintainers, we’re ﬁne with that.
KAMAILIO EVOLUTION From http://sip-router.org/wiki/history/ser-9-years
KAMAILIO DEVELOPMENT MODEL• Development base code is named ”SIP-router”• Licensed under GPL. Contributions may be under BSD.• Currently about 20 developers• Anyone can freely contribute extensions and modules• Changes to existing modules are subject to approval Kamailo releases SER releases Tekelec products SIP-router.org
OVERVIEW OF KAMAILIOSER and OpenSER and Kamailio and... What’s in a name? KAMAILIO THE OPENSER SIP SERVER & THE SIP ROUTER PROJECT
REMEMBER• A SIP proxy is not a PBX• Anything you learned from Asterisk or similar PBXs does not apply• The SIP Proxy does not bother with CALLS, it bothers with SIP requests and replies - transactions• You need to understand SIP to conﬁgure Kamailio The PBX is an Old telco architecture
KAMAILIO FUNCTIONALITY SIP proxy • It is a SIP server originally designed as a SIP proxy Presence server • Can be conﬁgured as an • SIP Outbound Proxy SIP load • Location server/registrarSIP application and Presence server • server • Development API for SIP servlets and UserAgent functionality • LUA interface for advanced functionalitySIP Session Border Controller • Runs on many operating systems
ADDITIONAL FEATURES • IPv4-IPv6 gateway IPv4/IPv6 • UDP/TCP/SCTP translator UDP/TCP/SCTP • NAT traversal support TLS NAT • anti-DOS functions (pike, blacklists) Languages: • Gateway to SMS, XMPP (Jabber)Java, Python, Lua, Perl Databases: • Accounting Mysql PostgreSQL • Java SIP servlet programming interface UnixODBC • Interface to LUA and Perl (3.1) Berkeley DB Oracle • Database support MySQL, PostgreSQL, UnixODBC, Berkeley DB and Oracle • ...much more
A MODULAR ARCHITECTURE Core provides Transport managements Memory management SIP Server core Module interface Shared memory Locking ConﬁgurationModules Modules Modules Modules Modules provide Script functions Module parameters Special variables NATMySQL Radius TM Management functions Support
ADDITIONAL HELPERS Management interface (MI) functions Start/stopKAMCTL Shared variables Statistics Database installation helperKAMDBCTL RPC Interface and MI functions Statistics SERCMD Select/Conﬁg variables (Arrived from SER) Web application Statistics SIREMIS Database management Separate project
ARCHITECTURE Modules Module interface Proxy CoreTransport interfaceOperating system
KAMAILIO IS THE HEART OF YOUR SIP NETWORKAdmin PSTN RTP Feature 3rd IM/SMS(WEB) DB gw gw relay server party Internal network Kamailio Public network Users
MULTIPROCESS, NOT THREADS Other worker UDP listen processes TCP listen STCP listen TCP/TLS listen
MANAGEMENT MI RPC interface (deprecated)XMLrpc Json Pipe SERCMD KAMCTL
MEMORY HANDLING Unix memoryPKG - Kamailio memory manager manager Allocated at start.Shared memory Per process memory (core) 32 MB per Kamailio 4 MB per processTransactions SIP messageShared variables Script variables
ABOUT KEEPING STATE: Stateless forwarding • Kamailio keeps transaction, and responses user and location data in shared memory (RAM) at Transaction states runtime • Some of this can be cached toDialog - ”call” - states database, but in-memory is the default • This statelessness delivers scalability and resilience in the network
GENERAL ADVICE:• Try to keep proxy processing as simple as possible• Be very careful on where you add states• In larger networks, separate • Ingress/Egress proxys (Session Border Controllers) • Registrar/location server • Core proxy Compare with Feature proxy • IP routers!