Настройка SIP Trunk в Asterisk от Укртелеком

Приведу пример настройки SIP Trunk в Asterisk, то есть Asterisk будет в роли SIP клиента.
От провайдера Укртелеком получены данные: номер, пароль и адрес сервера телефонии (sip.ukrtel.net).
SIP номер брался чтобы сделать многоканальность не обычном городском номере, путем переадресации в случае занятости линии.
Настраивать буду на Linux сервере с реальным IP без использования NAT, а также на другом с NAT (во втором случае нужно nat=no изменить на nat=yes и закомментировать canreinvite).

Сначала пропишем в файле /etc/asterisk/sip.conf, в секции [general] строку регистрации SIP:

register => NUMBER:PASSWORD@sip.ukrtel.net
defaultexpiry=120
;registerexpired=3600
registertimeout=900
registerattempts=0
registerretry403=yes

Далее, пропишем контекст для SIP в sip.conf или users.conf, я предпочитаю прописывать транки в users.conf, в sip.conf пишу только свои SIP номера:

[ukrtelecom1]
secret=PASSWORD
remotesecret=PASSWORD
defaultuser=NUMBER
trunkname=ukrtelecom1
host=sip.ukrtel.net
context=from-ukrtelecom1
insecure=invite
fromuser=NUMBER
fromdomain=sip.ukrtel.net
type=peer
disallow=all
allow=alaw
allow=ulaw
allow=g729
allow=gsm
canreinvite=no
dtmfmode=rfc2833
nat=no
qualify=yes
qualifyfreq=30

В /etc/asterisk/extensions.conf пропишем контекст для входящих звонков:

[from-ukrtelecom1]
exten => s,1,DIAL(SIP/205,60)
exten => s,n,Hangup()

Приведу пример шаблона исходящих звонков:

exten => _380892XXXXXX,1,Dial(SIP/ukrtelecom1/${EXTEN},60)
exten => _097XXXXXXX,1,Dial(SIP/ukrtelecom1/${EXTEN},60)
exten => _095XXXXXXX,1,Dial(SIP/ukrtelecom1/${EXTEN},60)
и т.д.

Зарегистрировался ли SIP Укртелекома можно посмотреть в консоли Asterisk:

asterisk -rvv
sip show peers
sip show registry
quit

В случае проблем с соединением, можно указать IP адрес вместо домена sip.ukrtel.net.

Заметил что иногда отваливается соединение и при исходящих звонках отображается ошибка (входящие звонки при этом работают):

Received response: "Forbidden" from '<sip:38089XXXXXXX@sip.ukrtel.net>

Если выполнить «sip reload», то звонки вновь можно совершать.
По этому я указал в конфигурации IP-адрес вместо sip.ukrtel.net и добавил в cron ежечасно выполнять скрипт:

nano /etc/crontab
0 * * * * root /dir/sip_ukrtel_register.sh > /dev/null 2>&1

Содержимое скрипта (если статус не «Registered», то выполняется команда «sip reload»):

#!/bin/sh
asterisk -rx 'sip show registry' | grep ':5060' | awk '{print $5}' | grep -v 'Registered' && asterisk -rx 'sip reload'

Чтобы скрипт выполнялся возможно придется еще указать live_dangerously=yes в asterisk.conf.

Смотрите также мои статьи:
Настройка SIP Trunk в Asterisk от Киевстар
Другие мои статьи про Asterisk

Вливайтесь в общение

2 комментария

Добавить комментарий для alexsОтменить ответ

  1. это не транк регистрация 1 номера

  2. Добрый день. А не подскажите как настраивать без механизму регистрации. То есть идентификация звонков проходит по ip и номеру.

Больше на IT Blog

Оформите подписку, чтобы продолжить чтение и получить доступ к полному архиву.

Continue reading