Приведу пример настройки 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
это не транк регистрация 1 номера
Добрый день. А не подскажите как настраивать без механизму регистрации. То есть идентификация звонков проходит по ip и номеру.