21.04.2021

Kamailio and Opensips

This is the list of completed solutions based on Kamailio\opensips.

KAMAILIO:

WEBRTC2SIP server – using kamailio + rtpengine, makes possible to use webphone based on webrtc to using common SIP servers

  • transfer between SIP and WEBRTC protocols and vice versa.
  • transconding g729 to g711

LoadBalancer – using only kamailio without DBs, makes loadbalancing between asterisks servers.

SBC – using kamailio and sql DBs for manage incoming traffic to asterisk, placed before asterisk on same PC.

  • insert custom headers
  • block hackers traffic
  • manage CPS and monitoring tools
  • control PDD of calls

OPENSIPS:

Redirect server – working with billing software JERA. Makes simultaneously outbound calls based on redirect messages from billing.

  • control CPS for customers
  • block unwanted traffic
  • monitoring online calls with custom dashboard
  • make CDRs for insert into billing

Failover server – makes possible to switch between 2 opensips servers without loosing online calls.

22.12.2020

opensips as SBC

Example of opensips SBC with 2 interfaces with full RTP proxy and g729 transcoding.

Software: opensips 3.1, rtpengine, bcg729.

example settings for rtpengine:

OPTIONS="-i external/172.18.254.50!EXTERNAL_IP -i internal/172.25.150.242 -n 127.0.0.1:2223 -m 35000 -M 65000 -L 4 --log-facility=local1 --table=0 --delete-delay=0 --timeout=60 --silent-timeout=600 --final-timeout=7200 –offer-timeout=60 --num-threads=4 --tos=184 –no-fallback"

example opensips config: git clone https://bitbucket.org/yooxy/opensips-sbc-local-external-transcode.git

13.03.2019

connecting TATA sip trunk

TATA выдает подключает sip-trunkи через локальные сети, т.е. например они дают подсеть 10.0.8.6/32 со шлюзом 10.0.8.5 и только назначив первый ip адрес вы сможете подключиться к их voip сети.

Сразу укажу статью оригинал, которая помогла понять смысл подключения.

В качестве IP SBC\PBX тоже используются локальный адрес, например это может быть 10.0.74.11.

Едем дальше, чтобы получать входящие звонки нужно:

  • добавить интерфейс к centos ip address add 10.0.86.6/30 dev eth0:0
  • создать статический маршрут route add 10.0.74.11 gateway 10.0.8.5
  • регистрироваться на их SBC (пароль по-умолчанию 1234)
    register => 66810000:1234:66810000@10.0.74.11/66810000

для совершения исходящих:

  • нужно звонить по определенным правилам набора, например для индии это набор номера 10 знаков без 5.
  • нужно использовать в поле FROM правильный номер,
  • А также необходимо удостовериться что поле contact соответствует 10.0.8.6 (если такое сделать не получится, то у меня звонки проходили и без этого пункта ),
  • Обязательно добавьте SIP заголовок к исходящим
    P-Preferred-Identity: <sip:66810000@SBC_IP> ,

для FREEPBX добавить sip заголовок к исходящему звонку просто:

  • добавить в файл extensions_custom.conf нужный контекст, например такой:
[add-tata1-header] 
exten => s,1,SipAddHeader(P-Preferred-Identity: ${ARG1})
exten => s,n,Return
  • в настройках транка переопределить DIAL опции на:
B(add-tata1-header^s^1(66810000@10.0.76.11))

Вот так сумбурно, но в целом это все требования.

PS: чтобы freepbx подставлял в поле contact нужные данные, необходимо чтобы был маршрут до SBC. route add sbc_ip gateway gateway_IP. А также сети должны быть прописаны в конфигах Asterisk как localnet