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
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})                   ; дзвінки на тризначні внутрішні
                                                       ; номери астеріска

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

Стандартне налаштування завершено.

Якщо у Вас підключено кілька прямих номерів, для зручності кожного номеру можна призначити "ім'я" наприклад moscow та london і налаштувати вхідну маршрутизацію засновану на цьому параметрі. "Ім'я" вiртуального номера передається в параметрі 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.
В особистому кабінеті, в розділі "Налаштування - прямий номер" направте дзвінки з вiртуального номера на зовнішній сервер (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 адресою.