Asterisk PJSIP с авторизацией по IP адресу

Пример настройки подключения Asterisk PJSIP к Zadarma с авторизацией по IP адресу.

Если сервер с Asterisk находится на "белом" IP адресе (Не за роутером, а например в дата-центре) исходящие звонки можно осуществлять без использования сип-логина и пароля, с авторизацией по IP адресу. Входящие звонки можно принимать без регистрации по схеме SIP URI.

Данные указанные в примере:

  • 15555555555 - Ваш виртуальный номер подключенный в Zadarma.
  • 2.20.190.41 - IP адрес Вашего сервера с Asterisk.
  • 101 - Внутренний номер Asterisk к которому подключается софтфон/ip-телефон для приема входящих и совершения исходящих звонков.
В личном кабинете, в разделе "Настройки/Виртуальный номер" направьте звонки с виртуального номера на внешний сервер (SIP URI) в формате 15555555555@2.20.190.41

Создание SIP-транка:

В личном кабинете, в разделе "Настройки - Сип настройки" внизу страницы нажмите "Добавить SIP-транк".

Укажите название для SIP-транка и выберите один из существующих сип-логинов, он будет идентификатором SIP-транка и станет недоступен для регистрации(приема входящих звонков).

Добавьте ваш статический IP адрес или несколько IP адресов (Например если к вашей АТС подведен основной интернет-канал и резервный).

Для подтверждения IP адреса необходимо направить звонок на сервер sip.zadarma.com на номер 8888

После подтверждения вашего IP адреса, вы можете совершать исходящие звонки отправляя нам INVITE с необходимым номером CallerID прямо в заголовке From: что значительно упрощает настройку при большом количестве номеров и облегчает понимание работы исходящей маршрутизации.

Редактирруем pjsip.conf

[udp-transport]
type=transport
protocol=udp
bind=0.0.0.0

[zadarma]
type=aor
contact=sip:15555555555@sip.zadarma.com:5060

[zadarma]
type=endpoint
transport=udp-transport
context=zadarma-in
disallow=all
allow=alaw
allow=ulaw
aors=zadarma
from_domain=sip.zadarma.com
direct_media=no

[zadarma]
type=identify
endpoint=zadarma
match=sip.zadarma.com

Внутренний номер 101 к которому будет подключаться софтфон/ip-телефон для приема входящих и совершения исходящих звонков.

[101]
type=endpoint
transport=udp-transport
context=zadarma-out
disallow=all
allow=alaw
allow=ulaw
auth=101
aors=101

[101]
type=auth
auth_type=userpass
password=101
username=101

[101]
type=aor
max_contacts=10
Маршрутизация звонков настраивается в файле extensions.conf

[zadarma-in]
;входящие звонки направляются на внутренний номер 101
exten => 15555555555,1, Dial(PJSIP/101)                 

[zadarma-out]

;звонки на трехзначные внутренние номера астериска
exten => _XXX,1,Dial(PJSIP/${EXTEN})                    

;подстановка CallerID 15555555555
exten => _XXX.,1,Set(CALLERID(num)=15555555555)         
same => n,Dial(PJSIP/${EXTEN}@zadarma)

Настройка завершена.