27
Daniel-Constantin Mierla Co-Founder Kamailio Project @miconda VUC588 - April 8, 2016 project updates

Kamailio Updates - VUC 588

Embed Size (px)

Citation preview

Page 1: Kamailio Updates - VUC 588

Daniel-Constantin MierlaCo-Founder Kamailio Project

@miconda

VUC588 - April 8, 2016

project updates

Page 2: Kamailio Updates - VUC 588

(c) asipto.com 2

History

2002 Jun 2005 Jul 2008 Aug 2008 Nov 2008

SIP Express Router (SER)

OpenSER Kamailio

Other Forks...

Same application: Kamailio - SER

Oct 2009 Jan 2010

v3.0.0

Integration Completed

v1.5.0

Sep 2011

Sep 2001

First Line Of

Code

Open Source

GPL

FhG Fokus

Institute

Berlin

rename

Awarded Best Open

Source Networking

Software 2009

By InfoWorld

10 Years

Jun 2012

v3.3.0

ITSPA UK

Award

Mar 2013

v4.0.0

Kamailio

v4.1.0

Dec 2013

………. v4.2.0

Oct 2014

Jun 2015

v4.3.0

Mar 2016

v4.4.0

Page 3: Kamailio Updates - VUC 588

Kamailio overview

Page 4: Kamailio Updates - VUC 588

4

SIPSIP

multimedia

Page 5: Kamailio Updates - VUC 588

5

inbound proxy

outbound proxy

accounting proxy

Page 6: Kamailio Updates - VUC 588

! SIP Signaling Server " SIP registrar

" handle registrations from devices " SIP location server

" locate targets - lcr, load balancer, user location service " SIP proxy server (router)

" routing and re-routing huge volume of SIP traffic " SIP application server

" rich telephony services " instant messaging and presence " integration with third party applications " integration with web 2.0 and social networking

6

Page 7: Kamailio Updates - VUC 588

! It is not " SIP phone " SIP media server " SIP back-to-back user agent

! It handles only signaling

X

7

Page 8: Kamailio Updates - VUC 588

Kamailio typical use cases

Page 9: Kamailio Updates - VUC 588

TWO BASIC ARCHITECTURES

9

main signalling server edge signalling server

Page 10: Kamailio Updates - VUC 588

dispatcher module• list of balancing nodes from file or database• monitoring of nodes (activate/inactivate

automatically)• re-route in case of failure• various algorithms: hashing, weight distribution, round

robin, call load distribution, priority routing• reload list of nodes without restart

10

LOAD BALANCER

# Dispatch requestsroute[DISPATCH] {

# round robin dispatching on gateways group '1'if(!ds_select_dst("1", “4")) {

send_reply("404", "No destination");exit;

}xdbg("--- SCRIPT: going to <$ru> via <$du>\n");t_on_failure("RTF_DISPATCH");route(RELAY);exit;

} # Re-route in case of failurefailure_route[RTF_DISPATCH] {

if (t_is_canceled()) {exit;

}# next node - only for 500 or local timeoutif (t_check_status(“500") || (t_branch_timeout() && !t_branch_replied())) {

if(ds_next_dst()) {t_on_failure("RTF_DISPATCH");route(RELAY);exit;

}}

}

media servers - gateways - pbxes

Page 11: Kamailio Updates - VUC 588

plenty of options• lcr module• carrierroute module• prefix_route module• drouting module• combinations: mtree + dispatcher

LEAST COST OR DID ROUTING

11

route[LCR] { if (!load_gws("1")) {

send_reply("503", "Error loading gateways");exit;

} if (!next_gw()) { send_reply("503", "No available gateways"); exit; }

t_on_failure(“RTF_LCR");route(RELAY);exit;

} # Re-route in case of failurefailure_route[RTF_LCR] {

if (t_is_canceled()) {exit;

}# next node - only for 500 or local timeoutif (t_check_status(“500") || (t_branch_timeout() && !t_branch_replied())) {

if(next_gw()) {t_on_failure("RTF_LCR");route(RELAY);exit;

}}

}

pstnprovider

pstnprovider

pstnprovider

lcr DID routing

Page 12: Kamailio Updates - VUC 588

block DOS or dictionary attackspart of default kamailio.cfg• htable module• pike module• detect high volume of traffic from same source and

block it for a specific interval of itme

12

SIP FIREWALL

# ip ban htable with autoexpire after 5 minutes modparam("htable", "htable", “ipban=>size=8;autoexpire=300;") … route[SAFEGUARD] {

# flood detection from same IP and traffic ban for a specific interval# be sure you exclude checking trusted peers, such as pstn gateways# - local host excluded (e.g., loop to self)if(src_ip!=myself) {

if($sht(ipban=>$si)!=$null) {# ip is already blockedxdbg("request from blocked IP - $rm from $fu (IP:$si:$sp)\n");exit;

}if (!pike_check_req()) {

xlog("ALERT: pike blocking $rm from $fu (IP:$si:$sp)\n");$sht(ipban=>$si) = 1;exit;

}}if($ua =~ "friendly-scanner") {

sl_send_reply("200", "OK");exit;

}}

Page 13: Kamailio Updates - VUC 588

core and tm module• set transport in R-URI or outbound proxy address• force transport via dedicated function

13

TRANSPORT LAYER GATEWAY

# Force UDProute[TOUDP] {

# round robin dispatching on gateways group '1'record_route();$du = “sip:nexthop.com:5060;transport=udp”;force_send_socket(“udp:10.1.1.10:5080”);route(RELAY);exit;

}

tls

web socket

udp

udp udp

IPv6

bridging networks• public to private networks and back• IPv4 to IPv6 and back• any transport layer to another one and back

Page 14: Kamailio Updates - VUC 588

edge proxy• authentication• nat traversal• parallel forking• serial forking• call forwarding• call blocking• white/black listing• DNS handling

14

OFFLOAD SIGNALLING PROCESSING

Page 15: Kamailio Updates - VUC 588

15

DESIGNED FOR SCALABILITY

forking

replication

Page 16: Kamailio Updates - VUC 588

plenty at signalling layer• instant messaging• presence• gaming• notifications

16

EXTRA FEATURES

extensibility• define your new request types• flexibility in handling unknown requests, headers, etc.

additional functions• embedded XCAP server• embedded MSRP relay• IMS

INVITE

NOTIFY

MESSAGE

TICTACTOE

PUBLISHTURNRIGHT

Page 17: Kamailio Updates - VUC 588

News Recent Years

Page 18: Kamailio Updates - VUC 588

18

Page 19: Kamailio Updates - VUC 588

19

! security " strong encryption algorithms for tls " flexibility to work with many certificates at the same time " dnssec, config file crypto tools

! performance, scalability and redundancy " full asynchronous processing layer " event driven api interface (json) " nosql: redis, memcached, mongodb, cassandra " distributed message queue between kamailio nodes " new memory managers

! flexibility " embedded http client for API interaction " dynamic memory manager selection " update of routing parameters without restart " more event routes " json sip routing format

Page 20: Kamailio Updates - VUC 588

20

! enhancements for typical use cases " webrtc - secure websockets with support for fragmentation " classic sip to webrtc gateway, including RTP to SRTP " volte - ims: dozens of extensions " sms routing handling " more load balancing algorithms

! call load distribution, relative weight, … " topology hiding and topology stripping " user location partitioning and replication " generic caching replication " prepaid and call stateful control " call rating limits " detecting attacks and blocking them " IPv6 cleanup

Page 21: Kamailio Updates - VUC 588

The Future

Kamailio 5.0

Page 22: Kamailio Updates - VUC 588

22

! native configuration with embedded interpreters " lua, perl, python, .net, … " ability to reload routing logic " highly optimized alternative of config with our own routing language

! continuous integration " unit tests " automatic builds " source code restructuring " review options for a new build system

! api driven processing " integration with external systems " keep kamailio as bare sip layer router

! your suggestions are welcome " …

Page 23: Kamailio Updates - VUC 588

The 4th Kamailio World Conference May 18-20, 2016 Berlin, Germany

celebrating 15 years of Kamailio development

Page 24: Kamailio Updates - VUC 588

(c) asipto.com 24

www.kamailioworld.comMay 18-20, 2016 - in Berlin, Germany

Page 25: Kamailio Updates - VUC 588

25

highlights! Berlin, same nice location in the city center

" half day technical workshops " two days of conference

! workshops " IMS tutorial " continuous integration " troubleshooting " alternative: visit to Fraunhofer FOKUS testbeds (to be confirmed very soon)

! conference " SIP from classic telephony to webrtc and volte " Kamailio and other open source projects well represented

! Asterisk, FreeSwitch, Sems " security and scalability " typical use cases " experiences from operating large telephony platforms

Page 26: Kamailio Updates - VUC 588

(c) asipto.com 26

www.kamailioworld.comMay 18-20, 2016 - in Berlin, Germany

Page 27: Kamailio Updates - VUC 588

27

Questions?

Daniel-Constantin MierlaCo-Founder Kamailio Project

@miconda