OPTIONAL feature
Installation
Dependencies: - RTPEngine (RTP/media Proxy) - PostgreSQL
RTPEngine (RTP/media Proxy)
RTPEngine Installation / Debian 11
apt-get install -y debhelper default-libmysqlclient-dev gperf libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libbencode-perl libcrypt-openssl-rsa-perl libcrypt-rijndael-perl libhiredis-dev libio-multiplex-perl libio-socket-inet6-perl libjson-glib-dev libdigest-crc-perl libdigest-hmac-perl libnet-interface-perl libnet-interface-perl libssl-dev libsystemd-dev libxmlrpc-core-c3-dev libcurl4-openssl-dev libevent-dev libpcap0.8-dev markdown unzip nfs-common dkms libspandsp-dev libiptc-dev libmosquitto-dev python3-websockets git libjson-perl libopus-dev libwebsockets-dev libxtables-dev libbcg729-dev
cd /usr/local/src/
git clone https://github.com/sipwise/rtpengine.git
cd rtpengine
use bellow command to check if all dependencies are installed
dpkg-checkbuilddeps
dpkg-buildpackage --no-sign
cd ../
dpkg -i ngcp-rtpengine-daemon_*.deb ngcp-rtpengine-iptables_*.deb ngcp-rtpengine-kernel-dkms_*.deb
RTPEngine Installation / Ubuntu 22.04 jammy
- add repo:
echo "deb http://kamailio.sipwise.com/debian/rtpengine-mr11.5 jammy main" > /etc/apt/sources.list.d/rtpengine.list wget -O- http://kamailio.sipwise.com/debian/kamailiodebkey.gpg | sudo apt-key add - - install: ``` sudo apt update sudo apt-get install ngcp-rtpengine
Configure RTPEngine
cp /etc/rtpengine/rtpengine.conf /etc/rtpengine/rtpengine.default.conf
cp /opt/rbt/install/kamailio/rtpengine.sample.conf /etc/rtpengine/rtpengine.conf
Enable and start RTPEngine service
systemctl enable ngcp-rtpengine-daemon
systemctl start ngcp-rtpengine-daemon.service
Kamailio
Kamailio v5.6 installation / Debian 11
Install from deb or sources from GIT
-
Add repository: http://deb.kamailio.org/ ``` wget -O- https://deb.kamailio.org/kamailiodebkey.gpg | sudo apt-key add -
nano /etc/apt/sources.list deb http://deb.kamailio.org/kamailio56 bullseye main deb-src http://deb.kamailio.org/kamailio56 bullseye main ```
-
Install Kamailio and modules
apt update apt -y install kamailio kamailio-postgres-modules kamailio-tls-modules
Kamailio v5.7 installation / Ubuntu 22.04 jammy
- add repo:
echo "deb http://deb.kamailio.org/kamailio57 jammy main" > /etc/apt/sources.list.d/kamailio.list wget -O- http://deb.kamailio.org/kamailiodebkey.gpg | apt-key add - - Install Kamailio and modules
apt update apt -y install kamailio kamailio-postgres-modules kamailio-tls-modules
Configure Kamailio.
Initial config:
Edit config. Configuration files are located in folder: /etc/kamailio/
- Copy Kamailio configuration file for the control tools
cp /etc/kamailio/kamctlrc /etc/kamailio/kamctlrc.defaul cp /opt/rbt/install/kamailio/kamctlrc.example /etc/kamailio/kamctlrc - Modify control tools local params
vi /etc/kamailio/kamctlrc -
Start Kamailio service
systemctl enable kamailio systemctl start kamailio.service -
Creating database kamailio, required tables and users
kamdbctl create
Edit template configuration:
- Copy Kamailio configuration.
OPTIONAL Backup default configuration or delete:cp /etc/kamailio/kamailio.cfg /etc/kamailio/kamailio.default.cfgCopy sample configuration:cp /opt/rbt/install/kamailio/kamailio-local.cfg.example /etc/kamailio/kamailio-local.cfg cp /opt/rbt/install/kamailio/kamailio.example.cfg /etc/kamailio/kamailio.cfg cp /opt/rbt/install/kamailio/kamailio-routing.example.cfg /etc/kamailio/kamailio-routing.cfg cp /opt/rbt/install/kamailio/xhttp.example.conf /etc/kamailio/xhttp.conf - Modify Kamailio local variables
vi /etc/kamailio/kamailio-local.cfg
Edit local params:
| Param mane | Optional | Description |
|---|---|---|
| WITH_TLS | * | uncommenting this flag if you use TLS |
| KAMAILIO_TLS_PORT | * | public listen TLS port for client connections, use default from example |
| KAMAILIO_DOMAIN | * | use only for TLS Kamailio domain |
| KAMAILIO_IP_ADDR_PUBLIC | Kamailio external ip address | |
| KAMAILIO_UDP_PORT | public listen UDP port for client connections, use default from example | |
| KAMAILIO_TCP_PORT | public listen TCP port for client connections, use default from example | |
| RTPENGINE_IP_PORT_SUB | RTPEngine interface, use default from example | |
| DBURL_REP | Postgres db uri | |
| SMARTYARD_SERVER_ADDRESS | Smart-Yard-server IP address listen Kamailio AUTH API | |
| SMARTYARD_SERVER_API_CALL_ADDRESS | Smart-Yard-server IP address initial call to Kamailio RPC, use default value | |
| KAMAILIO_AUTH_API_TOKEN | Kamailio API token. Section 'sip' in Smart-Yard-Server config 'server/config/config.json' |
-
(OPTIONAL). Configure TLS if used. Copy example tls configuration, set certificate and private_key file path:
cp /opt/rbt/install/kamailio/tls.cfg /etc/kamailio/tls.cfg vi /etc/kamailio/tls.cfg -
Restart Kamailio service
systemctl restart kamailio.service
Set media server allowed IP address
- add media server ip address (Asterisk) for incoming calls for ip auth
kamctl address add 200 <ipaddr> <mask>example:kamctl address add 200 127.0.0.1 32 - reload db table into cache
kamctl address reload
Configure Asterisk
-
Config Asterisk trunk to Kamailio.
Add in your Asterisk confvi /etc/asterisk/pjsip.confset your asterisk here 'contact=sip:rbt_asterisk_ipaddress:rbt_asterisk_port':``` [kamailio] type=aor contact=sip:127.0.0.1:50602
[kamailio]
type=endpoint
transport=transport-tcp
context=default
disallow=all
allow=alaw,ulaw,h264,h265
aors=kamailio
2. Reload Asterisk.
systemctl restart asterisk.service
```
Configure SmartYard-Server
edit server config
/opt/rbt/server/config/config.json
...
"api": {
"frontend": "https://smart-yard-demo.server/frontend",
"mobile": "https://smart-yard-demo.server/mobile",
"asterisk": "http://127.0.0.1/asterisk",
"internal": "http://127.0.0.1/internal",
"kamailio": "http://127.0.0.1/kamailio"
},
...
"backends": {
...
"sip": {
"backend": "internal",
"servers": [
{
"title": "Media SIP server,
"type": "asterisk",
"trunk": "first",
"ip": "smart-yard-demo.server",
"sip_tcp_port": 50601,
"sip_udp_port": 50601
},
{
"title": "Kamailio",
"type": "kamailio",
"domain": "smart-yard-demo.server",
"rpc_interface": "127.0.0.1",
"rpc_path": "RPC",
"rpc_port": 50604,
"sip_tcp_port": 50602,
"sip_udp_port": 50602,
"sip_tls_port": 50602,
"auth_token": "KAMAILIO_AUTH_API_TOKEN"
}
],
"stuns": [
"stun:stun.l.google.com:19302"
]
},
...
},