Skip to content

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/

  1. 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
  2. Modify control tools local params vi /etc/kamailio/kamctlrc
  3. Start Kamailio service systemctl enable kamailio systemctl start kamailio.service

  4. Creating database kamailio, required tables and users kamdbctl create

Edit template configuration:

  1. Copy Kamailio configuration.
    OPTIONAL Backup default configuration or delete: cp /etc/kamailio/kamailio.cfg /etc/kamailio/kamailio.default.cfg Copy 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
  2. 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'
  1. (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

  2. 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

  1. Config Asterisk trunk to Kamailio.
    Add in your Asterisk conf vi /etc/asterisk/pjsip.conf set 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"
                ]
                },
            ...
},