Inhaltsverzeichnis

Kamailio SIP Server

Installation mit MariaDB-Datenbank

apt-get install kamailio kamailio-tls-modules kamailio-mysql-modules kamailio-presence-modules
kamailio.cfg
#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_TLS
#!define WITH_PRESENCE
#!define WITH_USRLOCDB
 
alias="sip.mydomain.com"
listen=udp:192.168.0.2:5060
listen=tcp:192.168.0.2:5061
/etc/kamailio/kamctlrc
SIP_DOMAIN=mydomain.com
DBENGINE=MYSQL
DBHOST=localhost
DBNAME=kamailio
DBRWUSER="kamailio"
DBRWPW="********"
DBROUSER="kamailioro"
DBROPW="******"

Für den Fall daß der RPTProxy verwendet werden soll, noch folgendes ergänzen:

#!define WITH_NAT

Datenbank erstellen mit

kamdbctl create

Logging

Ergänzung in rsyslog.conf

# Kamailio
local0.*		-/var/log/kamailio.log
/etc/logrotate.d/kamailio
/var/log/kamailio*.log {
  daily
  missingok
  rotate 14
  compress
  delaycompress
  create 0644 root adm
  postrotate
    /usr/lib/rsyslog/rsyslog-rotate
  endscript
}

TLS

Zertifikat normal mit Let's Encrypt anlegen. Anschließend in die Konfiguration eintragen:

tls.cfg
method = TLSv1.2+
verify_certificate = yes
require_certificate = yes
private_key = /etc/ssl/private/sip.key
certificate = /etc/ssl/certs/sip.crt

Datenbank

Zugangsdaten in kamctlrc eintragen.

RTP-Proxy

Es existiert kein Debian-Paket mehr. Erstellen aus den Quellen:

apt-get install libssl-dev libsrtp2-dev
cd /usr/local/src
git clone -b master https://github.com/sippy/rtpproxy.git
git -C rtpproxy submodule update --init --recursive
cd rtpproxy
git checkout v3.0.1
./configure
make clean all
make install

Init-Script

Einstellungen für das Init-Skript

/etc/default/rtpproxy
USER=kamailio
GROUP=kamailio
CONTROL_SOCK="unix:/var/run/rtpproxy/rtpproxy.sock"
EXTRA_OPTS="-l <external ip address> -d INFO"

Die Kommunikation lassen wir über einen Unix-Socket stattfinden und nicht wie im Standard über UDP. Dafür ist noch eine Anpassung in Kamailio erforderlich:

/etc/kamailio/kamailio.cfg
#!define WITH_NAT
 
[...]
modparam("rtpproxy", "rtpproxy_sock", "unix:/var/run/rtpproxy/rtpproxy.sock")

Befehle

Anzeige der angelegten Geräte

kamctl db show subscriber

Anzeige der angemeldeten Geräte (kamailio muß laufen)

kamctl ul show
kamctl online

Nummern (Subscriber) anlegen

kamctl add <nummer> <kennwort>

Nummer wieder entfernen

kamctl  rm <nummer>

VoIP-Clients

Selbstverständliche kann jedes IP-Telefon verwendet werden. Hersteller sind z.B. Grandstream und Snom.

Softphones auf dem PC:

Apps auf dem Smartphone: