Kamailio: Difference between revisions
mNo edit summary |
(replace /etc/init.d with rc-service) |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
Kamailio (former OpenSER) is an Open Source SIP Server released under GPL, able to handle thousands of call setups per second. Among features: asynchronous TCP, UDP and SCTP, secure communication via TLS for VoIP (voice, video), SIMPLE instant messaging and presence, ENUM, least cost routing, load balancing, routing fail-over, accounting, authentication and authorization against MySQL, Postgres, Oracle, Radius, LDAP, XMLRPC control interface, SNMP monitoring. It can be used to build large VoIP servicing platforms or to scale up SIP-to-PSTN gateways, PBX systems or media servers like Asterisk, FreeSWITCH or SEMS. | Kamailio (former OpenSER) is an Open Source SIP Server released under GPL, able to handle thousands of call setups per second. Among features: asynchronous TCP, UDP and SCTP, secure communication via TLS for VoIP (voice, video), SIMPLE instant messaging and presence, ENUM, least cost routing, load balancing, routing fail-over, accounting, authentication and authorization against MySQL, Postgres, Oracle, Radius, LDAP, XMLRPC control interface, SNMP monitoring. It can be used to build large VoIP servicing platforms or to scale up SIP-to-PSTN gateways, PBX systems or media servers like Asterisk, FreeSWITCH or SEMS. | ||
This document will be a quick c/p guide to setup Kamailio 3. | This document will be a quick c/p guide to setup Kamailio 4.3.4 on Alpinelinux 3.3, and assume that you have already installed the alpinelinux base system. | ||
= Upgrade Installation = | = Upgrade Installation = | ||
{{Cmd| | {{Cmd|apk upgrade -U}} | ||
apk upgrade -U}} | |||
= Install Postgresql = | = Install Postgresql = | ||
Line 14: | Line 13: | ||
* Setup postgresql | * Setup postgresql | ||
{{Cmd| | {{Cmd|rc-service postgresql setup}} | ||
== Direct logging information to syslog == | == Direct logging information to syslog == | ||
Line 25: | Line 24: | ||
== Start postgresql and enable auto start == | == Start postgresql and enable auto start == | ||
{{Cmd| | {{Cmd|rc-service postgresql start | ||
rc-update add postgresql}} | rc-update add postgresql}} | ||
Line 36: | Line 35: | ||
==Install Kamailio == | ==Install Kamailio == | ||
{{Cmd|apk add kamailio kamailio-presence kamailio- | {{Cmd|apk add kamailio kamailio-presence kamailio-postgres kamailio-json}} | ||
== Configuration of Kamailio == | == Configuration of Kamailio == | ||
Line 60: | Line 59: | ||
== Start Kamailio and setup for auto start on reboot == | == Start Kamailio and setup for auto start on reboot == | ||
{{Cmd|<nowiki> | {{Cmd|<nowiki>rc-service kamailio start | ||
rc-update add kamailio | rc-update add kamailio | ||
echo 'rc_after=postgresql' >> /etc/conf.d/kamailio</nowiki>}} | echo 'rc_after=postgresql' >> /etc/conf.d/kamailio</nowiki>}} |
Latest revision as of 09:49, 17 November 2023
Kamailio (former OpenSER) is an Open Source SIP Server released under GPL, able to handle thousands of call setups per second. Among features: asynchronous TCP, UDP and SCTP, secure communication via TLS for VoIP (voice, video), SIMPLE instant messaging and presence, ENUM, least cost routing, load balancing, routing fail-over, accounting, authentication and authorization against MySQL, Postgres, Oracle, Radius, LDAP, XMLRPC control interface, SNMP monitoring. It can be used to build large VoIP servicing platforms or to scale up SIP-to-PSTN gateways, PBX systems or media servers like Asterisk, FreeSWITCH or SEMS.
This document will be a quick c/p guide to setup Kamailio 4.3.4 on Alpinelinux 3.3, and assume that you have already installed the alpinelinux base system.
Upgrade Installation
apk upgrade -U
Install Postgresql
apk add postgresql postgresql-client
- Setup postgresql
rc-service postgresql setup
Direct logging information to syslog
The default behavior is to log activity to postmaster.log without rotation. This can result in large log files filling the ramdisk. Edit the postgresql.conf file to enable logging information to be sent to syslog (logs will appear in /var/log/messages which is rotated and older logs are automatically deleted).
The following command will update the file correctly.
sed "/^[# ]*log_destination/clog_destination = 'syslog'" -i /var/lib/postgresql/9.0/data/postgresql.conf
Start postgresql and enable auto start
rc-service postgresql start rc-update add postgresql
Create file for Kamailio to start after pg-restore when booting:
echo 'rc_after=pg-restore' > /etc/conf.d/kamailio
Install SIP Router (Kamailio)
Install Kamailio
apk add kamailio kamailio-presence kamailio-postgres kamailio-json
Configuration of Kamailio
Edit the kamctlrc file - uncomment and/or change the following variables. Please note that in your production environment it is recommended that usernames and passwords be customized (defaults as used below should be avoided if at all possible) for added security.
sed "/^[# ]*SIP_DOMAIN/cSIP_DOMAIN=sip.<DOMAIN>.net" -i /etc/kamailio/kamctlrc sed '/^[# ]*DBENGINE/cDBENGINE=PGSQL' -i /etc/kamailio/kamctlrc sed '/^[# ]*DBHOST/cDBHOST=localhost' -i /etc/kamailio/kamctlrc sed '/^[# ]*DBNAME/cDBNAME=openser' -i /etc/kamailio/kamctlrc sed '/^[# ]*DBRWUSER/cDBRWUSER=openser' -i /etc/kamailio/kamctlrc sed '/^[# ]*DBRWPW/cDBRWPW="openser"' -i /etc/kamailio/kamctlrc sed '/^[# ]*DBROUSER/cDBROUSER=openserro' -i /etc/kamailio/kamctlrc sed '/^[# ]*DBROPW/cDBROPW=openserro' -i /etc/kamailio/kamctlrc sed '/^[# ]*DBROOTUSER/cDBROOTUSER="postgres" ' -i /etc/kamailio/kamctlrc
Create the Kamailio database
echo postgres > /root/.pgpass chmod 600 /root/.pgpass kamdbctl create openser
Start Kamailio and setup for auto start on reboot
rc-service kamailio start rc-update add kamailio echo 'rc_after=postgresql' >> /etc/conf.d/kamailio
Create a few SIP ROUTER users (extensions)
Example:
kamctl add 5000 5000 kamctl add 5001 5001
Xlite (or other Software-based IP Phone) can be used for this preliminary test. You can register a soft-phone or sip-phone with the account "5000" and password "5000", using the SIP-Router aip as "domain" and other one with 5001 and call each other.