SEMS, the SIP Express Media Server, is the media and application server counterpart to SIP Express Router aka Kamailio/OpenSER, the leading open source SIP Signalling server from iptel.org. Since 2004 SEMS has been used to implement classical value added services in VoIP networks like announcements, conferencing, voicemail and RBT, and converged services as web conferencing and voice message broadcasting.
More recently, its integrated Back-to-Back User Agent has been extended and improved for flexibility and high performance, making it one of the few open source solutions for high volume session border control. But there's more to it: Thanks to its flexibility, it can also be used as core call routing element, and be a useful tool in various situations for the VoIP platform engineer.
The talk will present the SEMS SBC functionality and typical performance numbers, and then show how developers can use the internal call control API to create custom call routing in the SBC with two examples: Using a RESTful interface, a web app server implemented with the Play! framework is used for user controlled call routing, and by accessing a blacklist database in REDIS, SEMS' SBC can be used to block SPIT.
2. Contents
●
SEMS project
●
The flexible, open SBC
●
SBC programmability
2
3. The SIP Express Media Server
●
Media, application server from iptel.org
●
Only 1 year younger than SER (*2002)
●
Widely used by carriers, ITSPs, OEMs,
Universities, hobbyists
3
5. SEMS: The VAS platform
●
C++, Python APIs
●
DSM: State charts scripting engine
5
6. SBCs – what?
“SBCs are SIP
application
servers with
focus on
security and
isolation”
6
7. SBCs – the need
●
Security requirements are rising
→ Policy enforcement and control at UNI/NNI
●
Topology hiding is necessary
→ NAT and security
●
Core call controls become big and slow
→ Routing and service management at NNI
●
SIP implementations are buggy
→ “SIP normalization”, translation
7
8. SBCs – the special case
●
On signaling and media plane
●
Call stateful – high requirements for
availability and scalability
●
Interworking with all “SIP dialects”
8
9. The SEMS SBC
●
Widely deployed SIP technology
●
Broad range of media capabilities
●
Configurable transparency
●
Policy programmability – “SBC platform”
9
17. Manage SBC
●
sems-sbc-* tools
●
get and set active profile
●
load and reload profiles
●
load and reload mappings
●
Track profile versions with MD5 hash
●
Get statistics from monitoring
17
18. Processing model
UDP
other
receiver/msg parser event sources
threads
Session Container RTP processing
session pool
event
queues
event processing
●
Signaling: Async, one thread per call or
thread pool
●
Media: Sync, Thread pool
18
19. SEMS B2BUA architecture
DIALOG DIALOG
SIP message event SIP message
●
Two complete, separate instances of
dialog handling: Locally SIP correct
19
20. E.g.: Session Timers
SST: refresh!
Re-INVITE
SDP changed?
200
Re-INVITE
event:
session
changed
200
●
Use UPDATE or re-INVITE for refresh
●
SST and timer values per leg
●
Try to have e2e refresh
20
21. SBC programmability
●
Pluggable Call Control modules for
custom SBC application scenario
●
e.g. policing with external data source
Call control Call control Call control
SBC
SEMS core
21
22. Call control SBC-API
●
V1: connect(...), start(...), end(...)
●
Control SBC through call profile object
●
Pattern replacements (provisioning) in both
input and output
●
Modules: CDR generation, call timer, prepaid,
parallel calls limit, REST/http, REDIS blacklist
22