====== Kamailio SIP Server ====== [[http://www.kamailio.org/|Kamailio]] (former OpenSER) is an Open Source SIP Server. "To know Kamailio is to know SIP." -- Fred Posner [[http://www.slideshare.net/oej/kamailio-a-quick-introduction|A Quick Introduction to Kamailio]], by Olle E Johansson !!Note: AstLinux 1.2.0 or later is required, with custom build!! ==== Initial Configuration ==== The CLI (Command Line Interface) must be used to enable, and disable kamailio. Kamailio will be enabled if the ''/mnt/kd/kamailio/kamailio.cfg'' file exists. On first install, issue the command... cp -a /stat/etc/kamailio /mnt/kd/ The ''/mnt/kd/kamailio/'' directory now exists, populated with a default configuration, including ''kamailio.cfg'' . Start kamailio with the following command, this will also create a symlink from ''/etc/kamailio/'' -> ''/mnt/kd/kamailio/'' ... service kamailio init You should see output similar to: Starting kamailio... loading modules under /usr/lib/kamailio/modules/ Listening on udp: 127.0.0.1:5065 Aliases: udp: localhost:5065 Not all configurations will require a database, though at this point you can create a SQLite database with the standard schema. Issue the command... kamdbctl create You should see output similar to: INFO: creating database /mnt/kd/kamailio/data/kamailio.sqlite3 ... INFO: Core Kamailio tables succesfully created. Install presence related tables? (y/n): y INFO: creating presence tables into /mnt/kd/kamailio/data/kamailio.sqlite3 ... INFO: Presence tables succesfully created. Install tables for imc cpl siptrace domainpolicy carrierroute userblacklist htable purple uac pipelimit mtree sca mohqueue rtpproxy? (y/n): y INFO: creating extra tables into /mnt/kd/kamailio/data/kamailio.sqlite3 ... INFO: Extra tables succesfully created. At this point you can customize your kamailio configuration. Edit the /etc/kamailio/kamailio-local.cfg file to add switches such as "''#!define WITH_ASTERISK''" and interfaces/ip's to listen on. More detailed examples are described below. Apply any edits to the files in ''/etc/kamailio/'' with the command... service kamailio restart !!Tip ->!! The web interface may be used to Edit the configuration and Restart Kamailio. While the default configuration files in the ''/stat/etc/kamailio/'' directory are typically only used one time for initial configuration, the files are a good reference using "''diff -u''" with your custom configuration. !!Note ->!! On devices with slower storage (like Soekris net5501 and Alix 2D13) you might experience database locking issues, when using the SQlite database in some use cases. ==== Configuration Examples ==== \\ **Kamailio proxy's SIP but Asterisk does the RTP directly:** Example: EXTIP 10.10.50.65 - DNS 'pbx4', INTIP 192.168.110.1/24 network /etc/kamailio/kamailio-local.cfg: ####### Include Local Config ######### #!define WITH_ASTERISK auto_aliases=no alias="pbx4" listen=udp:127.0.0.1:5060 listen=udp:10.10.50.65:5060 listen=udp:192.168.110.1:5060 /etc/asterisk/sip.conf snippet: udpbindaddr=0.0.0.0:5080 !!Note ->!! Requires firewall Pass EXT->Local UDP 10000-20000 (default asterisk rtp.conf range) \\ **Kamailio proxy's SIP and RTP using rtpproxy:** Example: EXTIP 10.10.50.65 - DNS 'pbx4', INTIP 192.168.110.1/24 network /etc/kamailio/kamailio-local.cfg: ####### Include Local Config ######### #!define WITH_NAT #!define WITH_ASTERISK auto_aliases=no alias="pbx4" listen=udp:127.0.0.1:5060 listen=udp:10.10.50.65:5060 listen=udp:192.168.110.1:5060 /etc/asterisk/sip.conf snippet: udpbindaddr=127.0.0.1:5080 !!Tip ->!! The 'rtpproxy' daemon is automatically started when ''WITH_NAT'' is defined. !!Note ->!! Requires firewall Pass EXT->Local UDP 16384-16639 (default rtpproxy range)