SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
Large 
Unified Communication Platforms 
ClueCon 2010, Chicago 
Daniel-Constantin Mierla 
Co-Founder Kamailio 
http://www.asipto.com
www.kamailio.org 
© 2010 asipto.com
A bit of history 
2002 Jun 2005 Jul 2008 Aug 2008 Nov 2008 
SIP Express Router (SER) 
OpenSER Kamailio 
Other Forks... 
Oct 2009 Jan 2010 
SIP Router Project 
v3.0.0 
Integration 
Completed 
v1.5.0 
Autumn 2010 
v3.1.0 
© 2010 asipto.com
Development portals 
 SourceForge Project: http://sourceforge.net/projects/openser/ 
 SIP Router Project: http://sip-router.org 
4 
© 2010 asipto.com
Awarded 
Best Open Source 
Networking Software 
2009 
By InfoWorld
Sample deployments 
 Some of biggest VoIP deployments world wide 
− 1&1 (members of the management board) 
 Over 4 millions subscribers 
 Over 1.5 billion minutes per month 
− Sipgate 
− Freenet 
 0.8 million subscribers 
 Hundreds of millions of minutes per month 
http://www.kamailio.org/w/references/ 
© 2010 asipto.com
Features 
SIP proxy, redirect 
and registrar server 
user registration 
with 
digest authorization 
Customizable routing 
policy 
User location service 
IPv4-IPv6 
UDP/TCP/TLS/SCTP 
SIP translator 
Instant Messaging 
Offline message 
service 
Presence server 
ENUM lookup support 
Advanced routing 
(dispatching and LCR) 
Dialing support 
aliases and speeddial 
Multi-domain support 
LDAP/H.350 support 
Plug in module 
interface 
Perl programming 
interface 
© 2010 asipto.com
Features 
NAT traversal 
Security 
permissions 
anti-DOS attacks 
User call preferences 
Call Processing 
Language 
OSP support for peering 
Java SIP Servlet 
programming interface 
Database API 
MySQL 
PostgreSQL 
UNIXODBC 
BERKELEYDB 
ORACLE 
Text files 
RADIUS 
Gateway 
SMS 
XMPP 
Accounting through log file, 
database or Radius/DIAMETER 
servers 
Link any application to Kamailio using 
FIFO/UNIXSOCK/DATAGRAM/XMLRPC interfaces 
© 2010 asipto.com
Features (1.5.x) 
© 2010 asipto.com 
 DialogInfo Presence support 
 Configuration file shared cache system 
 Fast SQL operations 
 XMPP/MSN/... interconnection via PURPLE library 
 HTTP query 
 Timer-based route execution 
 Perl-like regular expression support 
 Least cost routing re-shaping 
 Fine control and access of request/reply during transaction processing 
 Initiate SIP requests from config file 
 Fine access to user location records 
 Priority based load balancing destinations 
 Option to store and manage only one location record per subscriber 
 Message body handling dedicated functions
3.0.0 Releases 
© 2010 asipto.com
Improved architecture 
[ DB API ] [ MI ] … LIBRARIES ... [ P / XCAP ] [ RPC ] 
© 2010 asipto.com
New in 3.0.0 
Number Portability 
customizable policies 
caching system 
Asynchronous TCP 
several ten thousands 
of TCP connections 
SCTP 
multi-homing 
multi-streaming 
statistics 
Topology hiding 
fast and secure 
no session dependency 
Web & CLI Tools 
SIREMIS 
SERCMD 
© 2010 asipto.com
New in 3.0.0 
CFG Reload Framework 
update global parameters 
at runtime 
DNS Caching System 
fast failover 
blacklisting 
avoid blocking 
load balancing 
XMLRPC 
scalable control 
interface 
secure 
Memcached connector 
data distribution across 
many instances 
CFG Optimizations 
operations - operators 
switch - break - while 
© 2010 asipto.com
New in 3.0.0 
Transport layer 
UDP MTU fallback 
scalable TLS 
CFG Directives 
include 
define 
Auth 
Identity 
RFC4474 
New routing blocks 
onsend route 
event route 
Async SIP Message 
Processing 
suspend - process - resume 
© 2010 asipto.com
Siremis 
© 2010 asipto.com
Siremis 
© 2010 asipto.com
Sercmd 
© 2010 asipto.com
Sercmd 
© 2010 asipto.com
New in 3.0.0 
http://www.kamailio.org/dokuwiki/doku.php/features:new-in-3.0.x 
http://www.kamailio.org/w/kamailio-openser-v3.0.0-release-notes/ 
http://by-miconda.blogspot.com/2010/01/best-of-new-in-kamailio-300-toc.html 
More 
http://www.kamailio.org/w/features/ 
http://www.kamailio.org/dokuwiki/doku.php/features:new-in-1.5.x 
© 2010 asipto.com
Upcoming 3.1.0 
Flexibility Maintenance Performance Features 
• Embedded Lua 
• Embedded 
Python 
• Extended 
preprocessor 
directive 
• #!define 
• #!subst 
• New variables 
• Interactive config 
debugger 
• step-by-step 
execution 
• execution 
trace 
• xlog enhan’s 
• print cfg line 
• k&s modules 
integration 
• Asynchronous 
TLS 
• UDP raw sockets 
• Multi-homed 
improvements 
• Load balancing 
• weight 
• call load 
• Traffic shaping 
• GeoIP API 
• Registration to 
remote servers 
• Reason header 
for Cancel 
• Embedded HTTP 
& XCAP servers 
• Cfg tree cashing 
& message 
queue systems 
• XML ops 
http://sip-router.org/wiki/features/new-in-devel 
© 2010 asipto.com
Load balancing 
LLooaadd B Baalalanncceerr 
- load balancing 
- traffic dispatching 
- high availability 
- security 
- as simple as possible 
© 2010 asipto.com
Load balancing 
LLooaadd B Baalalanncceerr 
CaRlla Rtionugt iEnngg Einnegine 
- main service 
- very reliable 
- easy to scale 
- >99.9% availability 
© 2010 asipto.com
Load balancing 
LLooaadd B Baalalanncceerr 
SIRP aRtionugt iEnngg Einnegine 
Application Srv 
Application Srv 
Application Srv 
- plus-value to servicing 
- controlled via routing engine 
- service partitioning 
- add as you needed 
© 2010 asipto.com
Using dispatcher module 
• dedicated load balancing module - dispatcher - developed since 2004 
• can load destination set from flat file or database 
• flexibility to define address of targets 
• many dispatching algorithms: hashing, priority, round robin, random, weight, 
call load (upcoming 3.1) 
• detection for unavailable targets and ability to mark them inactive 
• periodically ping (SIP OPTIONS) to inactive targets and can automatically 
mark them active 
© 2010 asipto.com
Using dispatcher module 
• load the module 
• set path to file or URL to database for loading destination sets 
• adapt parameter values as you need 
• documentation - in source tree at modules_k/dispatcher/README or 
online at http://www.kamailio.org 
© 2010 asipto.com
Using dispatcher module 
• when you have done with initial processing (sanity checks, authentication, 
authorization, routing of within-dialog SIP request, a.s.o.) use in your config 
ds_select_dst(setid, algorithm) 
• arm a failure route to re-route to next available target 
• relay SIP request 
© 2010 asipto.com
Using dispatcher module 
• in case of failure, re-route only for 500 reply from downstream and local 
timeout 
• use ds_next_dst() to select next available target 
• re-arm the failure route 
• create the branch and relay again 
© 2010 asipto.com
FreeSWITCH as media server 
Adding 
• voicemail 
• announcements 
• conferencing 
• troubleshooting audio and video 
• gateway to other protocols 
Proxy 
Registrar 
Media 
Server 
Other 
Protocols 
SIP routing logic 
• Kamailio: do initial sanity checks and caller-related 
processing (e.g., authentication) 
• Kamailio: if for a special service or other 
protocol then relay to FS (can be via load 
balancing) 
• Freeswitch: answer the call with appropriate 
application or gateway to other protocols 
• Kamailio: if not for a specials service or other 
protocon then do callee-related processing 
(e.g., user location, least cost routing, load 
balancing) 
http://kb.asipto.com 
© 2010 asipto.com
FreeSWITCH as back-to-back user agent 
Adding 
• session control (e.g., rtp timeout) 
• topology hiding 
• one-to-one SIP hop 
• prepaid billing 
• calling cards, call queues 
• call recording 
PSTN 
Gateways 
Proxy 
Registrar 
B2BUA 
Other 
Networks 
SIP routing logic 
• Kamailio: do initial sanity checks 
• Kamailio: if not coming from FS do caller-related 
processing (e.g., authentication) and 
then relay to FS (can be via load balancing) 
• Freeswitch: do the call processing and relay 
back to Kamailio or to other destination 
• Kamailio: if coming from FS do callee-related 
processing (e.g., user location, least cost 
routing, load balancing) 
© 2010 asipto.com
Extensibility: accounting server 
ACC 
© 2010 asipto.com 
Proxy Proxy 
Proxy
Extensibility: accounting server 
onreply_route[OK] { 
if(status!="200") 
return; 
$uac_req(method)="ACCOUNTING"; 
$uac_req(ruri)="sip:store@accounting.kamailio.org;transport=sctp"; 
$uac_req(furi)="sip:server@server1.kamailio.org"; 
$uac_req(hdrs)="Content-Type: text/accounting-csvrn"; 
pv_printf($uac_req(body), "$TS,$ci,$ft,$tt,$T_req($fu),$T_req($ru)"); 
uac_send_req(); 
} 
© 2010 asipto.com 
route { 
if(method=="ACCOUNTING" && $rU="store") 
{ 
sql_query("ca", 
"insert into accounting 
(timeval,callid,ftag,ttag,src,dst) 
values ('$(rb{s.select,0,,})', 
'$(rb{s.select,1,,})', '$(rb{s.select,2,,})', 
'$(rb{s.select,3,,})', '$(rb{s.select,4,,})', 
'$(rb{s.select,5,,})' )", 
"ra"); 
send_reply("200", "Stored"); 
} 
ACC Server Config 
SIP Proxy Config
Extensibility: within-group dialing 
 Centrex like feature 
 Users grouped by affiliation, friendship a.s.o. 
 Inside the group each member has a short extension 
assigned 
 What it takes 
 For many: new module and big waves 
 For the rest: 
 One table definition plus one more attribute per user 
 5 lines of configuration 
© 2010 asipto.com
Extensibility: within-group dialing 
Ext: 99123456 
EGrp: 1000 
Ext: 99123487 
EGrp: 1001 
Ext: 99123432 
EGrp: 1002 
Ext: 77129483 
EGrp: 1001 
Ext: 77549483 
EGrp: 1006 
Ext: 77339483 
EGrp: 1002 
SIP Router 
© 2010 asipto.com
Extensibility: within-group dialing 
ALTER TABLE subscriber ADD COLUMN pbxgroupid INT NOT NULL DEFAULT 0; 
CREATE TABLE pbxgroups ( 
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, 
pbxgroupid INT DEFAULT 0 NOT NULL, 
shortdial VARCHAR(16) DEFAULT '' NOT NULL, 
extension VARCHAR(64) DEFAULT '' NOT NULL, 
CONSTRAINT pg_u UNIQUE (groupid, shortdial) 
) ENGINE=MyISAM; 
 modparam("auth_db", "load_credentials", "$avp(s:pbxgroupid)=pbxgroupid") 
.... 
 sql_query("ca" 
"select extension from pbxgroups where pbxgroupid=$avp(s:pbxgroupid) 
and shortdial='$(rU{s.escape.common})'", 
"ra"); 
 if($dbr(ra=>rows)>0) $rU = $dbr(ra=>[0,0]); 
... 
© 2010 asipto.com
Daniel-Constantin Mierla 
OpenIMSCore 
Co-Founder Kamailio 
http://www.asipto.com 
Thank you! 
Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

session initiation protocol - SIP
session initiation protocol - SIPsession initiation protocol - SIP
session initiation protocol - SIP
Mahmoud Abudaqa
 
The Art of VoIP Hacking - Defcon 23 Workshop
The Art of VoIP Hacking - Defcon 23 WorkshopThe Art of VoIP Hacking - Defcon 23 Workshop
The Art of VoIP Hacking - Defcon 23 Workshop
Fatih Ozavci
 

Was ist angesagt? (20)

Kamailio - API Based SIP Routing
Kamailio - API Based SIP RoutingKamailio - API Based SIP Routing
Kamailio - API Based SIP Routing
 
SIP and DNS - federation, failover, load balancing and more
SIP and DNS - federation, failover, load balancing and moreSIP and DNS - federation, failover, load balancing and more
SIP and DNS - federation, failover, load balancing and more
 
rtpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scalertpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scale
 
Expanding Asterisk with Kamailio
Expanding Asterisk with KamailioExpanding Asterisk with Kamailio
Expanding Asterisk with Kamailio
 
Aboutsip - intro to transactions and dialogs
Aboutsip - intro to transactions and dialogsAboutsip - intro to transactions and dialogs
Aboutsip - intro to transactions and dialogs
 
Kamailio, FreeSWITCH, and the Half-Blood Prince
Kamailio, FreeSWITCH, and the Half-Blood PrinceKamailio, FreeSWITCH, and the Half-Blood Prince
Kamailio, FreeSWITCH, and the Half-Blood Prince
 
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...
 
Three Ways Kamailio Can Help Your FreeSWITCH Deployment
Three Ways Kamailio Can Help Your FreeSWITCH DeploymentThree Ways Kamailio Can Help Your FreeSWITCH Deployment
Three Ways Kamailio Can Help Your FreeSWITCH Deployment
 
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
 
FreeSWITCH on Docker
FreeSWITCH on DockerFreeSWITCH on Docker
FreeSWITCH on Docker
 
VXLAN and FRRouting
VXLAN and FRRoutingVXLAN and FRRouting
VXLAN and FRRouting
 
Kamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesKamailio with Docker and Kubernetes
Kamailio with Docker and Kubernetes
 
Sipwise rtpengine
Sipwise rtpengineSipwise rtpengine
Sipwise rtpengine
 
Cisco Live Milan 2015 - BGP advance
Cisco Live Milan 2015 - BGP advanceCisco Live Milan 2015 - BGP advance
Cisco Live Milan 2015 - BGP advance
 
SIP Trunking overview
SIP Trunking overviewSIP Trunking overview
SIP Trunking overview
 
Using Kamailio for Scalability and Security
Using Kamailio for Scalability and SecurityUsing Kamailio for Scalability and Security
Using Kamailio for Scalability and Security
 
SIP: Call Id, Cseq, Via-branch, From & To-tag role play
SIP: Call Id, Cseq, Via-branch, From & To-tag role playSIP: Call Id, Cseq, Via-branch, From & To-tag role play
SIP: Call Id, Cseq, Via-branch, From & To-tag role play
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
 
session initiation protocol - SIP
session initiation protocol - SIPsession initiation protocol - SIP
session initiation protocol - SIP
 
The Art of VoIP Hacking - Defcon 23 Workshop
The Art of VoIP Hacking - Defcon 23 WorkshopThe Art of VoIP Hacking - Defcon 23 Workshop
The Art of VoIP Hacking - Defcon 23 Workshop
 

Andere mochten auch

Andere mochten auch (11)

Kamailio - Load Balancing Load Balancers
Kamailio - Load Balancing Load BalancersKamailio - Load Balancing Load Balancers
Kamailio - Load Balancing Load Balancers
 
Why is Kamailio so different? An introduction.
Why is Kamailio so different? An introduction.Why is Kamailio so different? An introduction.
Why is Kamailio so different? An introduction.
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MT
 
Kamailio - The Story for Asterisk
Kamailio - The Story for AsteriskKamailio - The Story for Asterisk
Kamailio - The Story for Asterisk
 
FOSDEM 2017 - RTC Services With Lua and Kamailio
FOSDEM 2017 - RTC Services With Lua and KamailioFOSDEM 2017 - RTC Services With Lua and Kamailio
FOSDEM 2017 - RTC Services With Lua and Kamailio
 
Snappy Kamailio
Snappy KamailioSnappy Kamailio
Snappy Kamailio
 
Kamailio Updates - VUC 588
Kamailio Updates - VUC 588Kamailio Updates - VUC 588
Kamailio Updates - VUC 588
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
 
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 2015
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 20152600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 2015
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 2015
 
Participate in SIPit
Participate in SIPitParticipate in SIPit
Participate in SIPit
 

Ähnlich wie Kamailio - Large Unified Communication Platforms

From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011
telestax
 

Ähnlich wie Kamailio - Large Unified Communication Platforms (20)

SIP Router Project
SIP Router ProjectSIP Router Project
SIP Router Project
 
Using Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your ServicesUsing Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your Services
 
Attacking SAP Mobile
Attacking SAP MobileAttacking SAP Mobile
Attacking SAP Mobile
 
From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011
 
Kamailio - Unifying SIP and Web Worlds with Lua
Kamailio - Unifying SIP and Web Worlds with LuaKamailio - Unifying SIP and Web Worlds with Lua
Kamailio - Unifying SIP and Web Worlds with Lua
 
Hpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago admHpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago adm
 
Designing High Performance RTC Signaling Servers
Designing High Performance RTC Signaling ServersDesigning High Performance RTC Signaling Servers
Designing High Performance RTC Signaling Servers
 
A10 Itil Oasys Webex 090309
A10 Itil Oasys  Webex 090309A10 Itil Oasys  Webex 090309
A10 Itil Oasys Webex 090309
 
Cwin16 tls-a micro-service deployment - v1.0
Cwin16 tls-a micro-service deployment - v1.0Cwin16 tls-a micro-service deployment - v1.0
Cwin16 tls-a micro-service deployment - v1.0
 
HelixCloud Webinar
HelixCloud WebinarHelixCloud Webinar
HelixCloud Webinar
 
IMS Signaling (Rev. 3)
IMS Signaling (Rev. 3)IMS Signaling (Rev. 3)
IMS Signaling (Rev. 3)
 
Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019
 
Going FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixGoing FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at Netflix
 
CrossFIX and CrossFAST 1.2
CrossFIX and CrossFAST 1.2CrossFIX and CrossFAST 1.2
CrossFIX and CrossFAST 1.2
 
Kubernetes Istio Miami meetup
Kubernetes Istio Miami meetupKubernetes Istio Miami meetup
Kubernetes Istio Miami meetup
 
Ibm session tac 2104 - ctg presentation for impact 2013 final
Ibm session tac 2104 - ctg presentation for impact 2013 finalIbm session tac 2104 - ctg presentation for impact 2013 final
Ibm session tac 2104 - ctg presentation for impact 2013 final
 
Ibm session tac 2104 - ctg presentation for impact 2013 final
Ibm session tac 2104 - ctg presentation for impact 2013 finalIbm session tac 2104 - ctg presentation for impact 2013 final
Ibm session tac 2104 - ctg presentation for impact 2013 final
 
Interoperability rules for an European API ecosystem: do we still need SOAP?
Interoperability rules for an European API ecosystem: do we still need SOAP?Interoperability rules for an European API ecosystem: do we still need SOAP?
Interoperability rules for an European API ecosystem: do we still need SOAP?
 
Interoperability rules for an European API ecosystem: do we still need SOAP?
Interoperability rules for an European API ecosystem: do we still need SOAP?Interoperability rules for an European API ecosystem: do we still need SOAP?
Interoperability rules for an European API ecosystem: do we still need SOAP?
 
Introduction to istio
Introduction to istioIntroduction to istio
Introduction to istio
 

Mehr von Daniel-Constantin Mierla

Mehr von Daniel-Constantin Mierla (10)

TAD Summit 2016 - The Mobile World Up Side Down
TAD Summit 2016 - The Mobile World Up Side DownTAD Summit 2016 - The Mobile World Up Side Down
TAD Summit 2016 - The Mobile World Up Side Down
 
Kamailio - Surfing Big Waves Of SIP With Style
Kamailio - Surfing Big Waves Of SIP With StyleKamailio - Surfing Big Waves Of SIP With Style
Kamailio - Surfing Big Waves Of SIP With Style
 
SIP Server Optimizations for Mobile Networks
SIP Server Optimizations for Mobile NetworksSIP Server Optimizations for Mobile Networks
SIP Server Optimizations for Mobile Networks
 
Kamailio and VoIP Wild World
Kamailio and VoIP Wild WorldKamailio and VoIP Wild World
Kamailio and VoIP Wild World
 
10 Years SER - Awards
10 Years SER - Awards10 Years SER - Awards
10 Years SER - Awards
 
Sculpturing SIP World
Sculpturing SIP WorldSculpturing SIP World
Sculpturing SIP World
 
CPDL - Charging Plan Definition Language
CPDL - Charging Plan Definition LanguageCPDL - Charging Plan Definition Language
CPDL - Charging Plan Definition Language
 
SER - SIP Express Router
SER - SIP Express RouterSER - SIP Express Router
SER - SIP Express Router
 
Kamailio - SIP Servers Everywhere
Kamailio - SIP Servers EverywhereKamailio - SIP Servers Everywhere
Kamailio - SIP Servers Everywhere
 
Aynchronous Processing in Kamailio Configuration File
Aynchronous Processing in Kamailio Configuration FileAynchronous Processing in Kamailio Configuration File
Aynchronous Processing in Kamailio Configuration File
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

Kamailio - Large Unified Communication Platforms

  • 1. Large Unified Communication Platforms ClueCon 2010, Chicago Daniel-Constantin Mierla Co-Founder Kamailio http://www.asipto.com
  • 3. A bit of history 2002 Jun 2005 Jul 2008 Aug 2008 Nov 2008 SIP Express Router (SER) OpenSER Kamailio Other Forks... Oct 2009 Jan 2010 SIP Router Project v3.0.0 Integration Completed v1.5.0 Autumn 2010 v3.1.0 © 2010 asipto.com
  • 4. Development portals  SourceForge Project: http://sourceforge.net/projects/openser/  SIP Router Project: http://sip-router.org 4 © 2010 asipto.com
  • 5. Awarded Best Open Source Networking Software 2009 By InfoWorld
  • 6. Sample deployments  Some of biggest VoIP deployments world wide − 1&1 (members of the management board)  Over 4 millions subscribers  Over 1.5 billion minutes per month − Sipgate − Freenet  0.8 million subscribers  Hundreds of millions of minutes per month http://www.kamailio.org/w/references/ © 2010 asipto.com
  • 7. Features SIP proxy, redirect and registrar server user registration with digest authorization Customizable routing policy User location service IPv4-IPv6 UDP/TCP/TLS/SCTP SIP translator Instant Messaging Offline message service Presence server ENUM lookup support Advanced routing (dispatching and LCR) Dialing support aliases and speeddial Multi-domain support LDAP/H.350 support Plug in module interface Perl programming interface © 2010 asipto.com
  • 8. Features NAT traversal Security permissions anti-DOS attacks User call preferences Call Processing Language OSP support for peering Java SIP Servlet programming interface Database API MySQL PostgreSQL UNIXODBC BERKELEYDB ORACLE Text files RADIUS Gateway SMS XMPP Accounting through log file, database or Radius/DIAMETER servers Link any application to Kamailio using FIFO/UNIXSOCK/DATAGRAM/XMLRPC interfaces © 2010 asipto.com
  • 9. Features (1.5.x) © 2010 asipto.com  DialogInfo Presence support  Configuration file shared cache system  Fast SQL operations  XMPP/MSN/... interconnection via PURPLE library  HTTP query  Timer-based route execution  Perl-like regular expression support  Least cost routing re-shaping  Fine control and access of request/reply during transaction processing  Initiate SIP requests from config file  Fine access to user location records  Priority based load balancing destinations  Option to store and manage only one location record per subscriber  Message body handling dedicated functions
  • 10. 3.0.0 Releases © 2010 asipto.com
  • 11. Improved architecture [ DB API ] [ MI ] … LIBRARIES ... [ P / XCAP ] [ RPC ] © 2010 asipto.com
  • 12. New in 3.0.0 Number Portability customizable policies caching system Asynchronous TCP several ten thousands of TCP connections SCTP multi-homing multi-streaming statistics Topology hiding fast and secure no session dependency Web & CLI Tools SIREMIS SERCMD © 2010 asipto.com
  • 13. New in 3.0.0 CFG Reload Framework update global parameters at runtime DNS Caching System fast failover blacklisting avoid blocking load balancing XMLRPC scalable control interface secure Memcached connector data distribution across many instances CFG Optimizations operations - operators switch - break - while © 2010 asipto.com
  • 14. New in 3.0.0 Transport layer UDP MTU fallback scalable TLS CFG Directives include define Auth Identity RFC4474 New routing blocks onsend route event route Async SIP Message Processing suspend - process - resume © 2010 asipto.com
  • 15. Siremis © 2010 asipto.com
  • 16. Siremis © 2010 asipto.com
  • 17. Sercmd © 2010 asipto.com
  • 18. Sercmd © 2010 asipto.com
  • 19. New in 3.0.0 http://www.kamailio.org/dokuwiki/doku.php/features:new-in-3.0.x http://www.kamailio.org/w/kamailio-openser-v3.0.0-release-notes/ http://by-miconda.blogspot.com/2010/01/best-of-new-in-kamailio-300-toc.html More http://www.kamailio.org/w/features/ http://www.kamailio.org/dokuwiki/doku.php/features:new-in-1.5.x © 2010 asipto.com
  • 20. Upcoming 3.1.0 Flexibility Maintenance Performance Features • Embedded Lua • Embedded Python • Extended preprocessor directive • #!define • #!subst • New variables • Interactive config debugger • step-by-step execution • execution trace • xlog enhan’s • print cfg line • k&s modules integration • Asynchronous TLS • UDP raw sockets • Multi-homed improvements • Load balancing • weight • call load • Traffic shaping • GeoIP API • Registration to remote servers • Reason header for Cancel • Embedded HTTP & XCAP servers • Cfg tree cashing & message queue systems • XML ops http://sip-router.org/wiki/features/new-in-devel © 2010 asipto.com
  • 21. Load balancing LLooaadd B Baalalanncceerr - load balancing - traffic dispatching - high availability - security - as simple as possible © 2010 asipto.com
  • 22. Load balancing LLooaadd B Baalalanncceerr CaRlla Rtionugt iEnngg Einnegine - main service - very reliable - easy to scale - >99.9% availability © 2010 asipto.com
  • 23. Load balancing LLooaadd B Baalalanncceerr SIRP aRtionugt iEnngg Einnegine Application Srv Application Srv Application Srv - plus-value to servicing - controlled via routing engine - service partitioning - add as you needed © 2010 asipto.com
  • 24. Using dispatcher module • dedicated load balancing module - dispatcher - developed since 2004 • can load destination set from flat file or database • flexibility to define address of targets • many dispatching algorithms: hashing, priority, round robin, random, weight, call load (upcoming 3.1) • detection for unavailable targets and ability to mark them inactive • periodically ping (SIP OPTIONS) to inactive targets and can automatically mark them active © 2010 asipto.com
  • 25. Using dispatcher module • load the module • set path to file or URL to database for loading destination sets • adapt parameter values as you need • documentation - in source tree at modules_k/dispatcher/README or online at http://www.kamailio.org © 2010 asipto.com
  • 26. Using dispatcher module • when you have done with initial processing (sanity checks, authentication, authorization, routing of within-dialog SIP request, a.s.o.) use in your config ds_select_dst(setid, algorithm) • arm a failure route to re-route to next available target • relay SIP request © 2010 asipto.com
  • 27. Using dispatcher module • in case of failure, re-route only for 500 reply from downstream and local timeout • use ds_next_dst() to select next available target • re-arm the failure route • create the branch and relay again © 2010 asipto.com
  • 28. FreeSWITCH as media server Adding • voicemail • announcements • conferencing • troubleshooting audio and video • gateway to other protocols Proxy Registrar Media Server Other Protocols SIP routing logic • Kamailio: do initial sanity checks and caller-related processing (e.g., authentication) • Kamailio: if for a special service or other protocol then relay to FS (can be via load balancing) • Freeswitch: answer the call with appropriate application or gateway to other protocols • Kamailio: if not for a specials service or other protocon then do callee-related processing (e.g., user location, least cost routing, load balancing) http://kb.asipto.com © 2010 asipto.com
  • 29. FreeSWITCH as back-to-back user agent Adding • session control (e.g., rtp timeout) • topology hiding • one-to-one SIP hop • prepaid billing • calling cards, call queues • call recording PSTN Gateways Proxy Registrar B2BUA Other Networks SIP routing logic • Kamailio: do initial sanity checks • Kamailio: if not coming from FS do caller-related processing (e.g., authentication) and then relay to FS (can be via load balancing) • Freeswitch: do the call processing and relay back to Kamailio or to other destination • Kamailio: if coming from FS do callee-related processing (e.g., user location, least cost routing, load balancing) © 2010 asipto.com
  • 30. Extensibility: accounting server ACC © 2010 asipto.com Proxy Proxy Proxy
  • 31. Extensibility: accounting server onreply_route[OK] { if(status!="200") return; $uac_req(method)="ACCOUNTING"; $uac_req(ruri)="sip:store@accounting.kamailio.org;transport=sctp"; $uac_req(furi)="sip:server@server1.kamailio.org"; $uac_req(hdrs)="Content-Type: text/accounting-csvrn"; pv_printf($uac_req(body), "$TS,$ci,$ft,$tt,$T_req($fu),$T_req($ru)"); uac_send_req(); } © 2010 asipto.com route { if(method=="ACCOUNTING" && $rU="store") { sql_query("ca", "insert into accounting (timeval,callid,ftag,ttag,src,dst) values ('$(rb{s.select,0,,})', '$(rb{s.select,1,,})', '$(rb{s.select,2,,})', '$(rb{s.select,3,,})', '$(rb{s.select,4,,})', '$(rb{s.select,5,,})' )", "ra"); send_reply("200", "Stored"); } ACC Server Config SIP Proxy Config
  • 32. Extensibility: within-group dialing  Centrex like feature  Users grouped by affiliation, friendship a.s.o.  Inside the group each member has a short extension assigned  What it takes  For many: new module and big waves  For the rest:  One table definition plus one more attribute per user  5 lines of configuration © 2010 asipto.com
  • 33. Extensibility: within-group dialing Ext: 99123456 EGrp: 1000 Ext: 99123487 EGrp: 1001 Ext: 99123432 EGrp: 1002 Ext: 77129483 EGrp: 1001 Ext: 77549483 EGrp: 1006 Ext: 77339483 EGrp: 1002 SIP Router © 2010 asipto.com
  • 34. Extensibility: within-group dialing ALTER TABLE subscriber ADD COLUMN pbxgroupid INT NOT NULL DEFAULT 0; CREATE TABLE pbxgroups ( id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, pbxgroupid INT DEFAULT 0 NOT NULL, shortdial VARCHAR(16) DEFAULT '' NOT NULL, extension VARCHAR(64) DEFAULT '' NOT NULL, CONSTRAINT pg_u UNIQUE (groupid, shortdial) ) ENGINE=MyISAM;  modparam("auth_db", "load_credentials", "$avp(s:pbxgroupid)=pbxgroupid") ....  sql_query("ca" "select extension from pbxgroups where pbxgroupid=$avp(s:pbxgroupid) and shortdial='$(rU{s.escape.common})'", "ra");  if($dbr(ra=>rows)>0) $rU = $dbr(ra=>[0,0]); ... © 2010 asipto.com
  • 35. Daniel-Constantin Mierla OpenIMSCore Co-Founder Kamailio http://www.asipto.com Thank you! Questions?