Asterisk PJSIP

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

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

  • 111111 Ваш sip-номер из личного кабинета.
  • Password Ваш пароль от sip-номера, из раздела "SIP-настройки" личного кабинета.
  • 101 Внутренний номер Asterisk к которому подключается софтфон/ip-телефон для приема входящих и совершения исходящих звонков.

Стандартный пример настройки

Исходящие звонки с внутреннего номера 101 направляются в транк 111111 Входящие звонки принимаются по регистрации и направляются на внутренний номер 101

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

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

[111111]
type=registration
transport=udp-transport
outbound_auth=111111_auth
server_uri=sip:sip.zadarma.com
client_uri=sip:111111@sip.zadarma.com
retry_interval=60
expiration=120
contact_user=111111

[111111_auth]
type=auth
auth_type=userpass
password=Password
username=111111

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

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

[111111]
type=identify
endpoint=111111
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]

exten => 111111,1, Dial(PJSIP/101)                     ; все входящие звонки с транка 111111
                                                       ; направлены на внутренний номер 101

[zadarma-out]

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

exten => _XXX.,1,Dial(PJSIP/${EXTEN}@111111)           ; звонки на номера в которых четрые
                                                       ; и более цифр через транк 111111

Стандартная настройка завершена.

Если у Вас подключено несколько прямых номеров, для удобства каждому номеру можно назначить "имя" например moscow и london и настроить входящую маршрутизацию основанную на этом параметре. "Имя" виртуального номера передается в параметре CALLERID(name).

В следующем примере, звонки с номера moscow направлены на внутренний номер 101, звонки с номера london направлены на внутренний номер 102, а все другие звонки asterisk будет отклонять сигналом "Занято"


[zadarma-in]

exten => _X.,1,GotoIf($["${CALLERID(name)}" = "moscow"]?2:3)
exten => _X.,2,Dial(PJSIP/101)
exten => _X.,3,GotoIf($["${CALLERID(name)}" = "london"]?4:5)
exten => _X.,4,Dial(PJSIP/102)
exten => _X.,5,Busy

Ваш виртуальный номер, на который поступил звонок, передаётся в хедере CALLED_DID Вы можете настроить входящую маршрутизацию основанную на этом параметре.

В следующем примере, звонки с номера 74957776675 направлены на внутренний номер 101, звонки с номера 442037691880 направлены на внутренний номер 102, а все другие звонки asterisk будет отклонять сигналом "Занято"


[zadarma-in]

exten => _X.,1,GotoIf($["${PJSIP_HEADER(read,CALLED_DID)}" = "74957776675"]?2:3)
exten => _X.,2,Dial(PJSIP/101)
exten => _X.,3,GotoIf($["${PJSIP_HEADER(read,CALLED_DID)}" = "442037691880"]?4:5)
exten => _X.,4,Dial(PJSIP/102)
exten => _X.,5,Busy


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

Пример настройки №2 (SIP URI)

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

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

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

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

[15555555555]
type=endpoint
transport=udp-transport
context=zadarma-in
disallow=all
allow=alaw
allow=ulaw
aors=15555555555
direct_media=no

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

Входящий маршрут в файле extensions.conf

[zadarma-in]

exten => 15555555555,1, Dial(PJSIP/101)

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

Пример настройки при использовании авторизации по IP адресу.