Приклад налаштування підключення Asterisk PJSIP до Zadarma.
Дані зазначені в прикладі:
- 111111 Ваш sip-номер з особистого кабінету.
- Password пароль Вашого sip-номера з розділу "Підключення за SIP" особистого кабінету.
- 1234-100 — Ваш внутрішній номер АТС (Наприклад 1234-100) з особистого кабінету
- Password — Ваш пароль внутрішнього номера АТС особистого кабінету
- 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 [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
[udp-transport] type=transport protocol=udp bind=0.0.0.0 [1234-100] type=registration transport=udp-transport outbound_auth=1234-100_auth server_uri=sip:pbx.zadarma.com client_uri=sip:1234-100@pbx.zadarma.com retry_interval=60 expiration=120 contact_user=1234-100 [1234-100_auth] type=auth auth_type=userpass password=Password username=1234-100 [1234-100] type=aor contact=sip:pbx.zadarma.com [1234-100] type=endpoint transport=udp-transport context=zadarma-in disallow=all allow=alaw allow=ulaw outbound_auth=1234-100_auth aors=1234-100 from_user=1234-100 direct_media=no [1234-100] type=identify endpoint=1234-100 match=pbx.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
[zadarma-in] exten => 1234-100,1, Dial(PJSIP/101) ; всі вхідні дзвінки з транка 1234-100 спрямовані на внутрішній номер 101 [zadarma-out] exten => _XXX,1,Dial(PJSIP/${EXTEN}) ; дзвінки на тризначні внутрішні номери астеріска exten => _XXX.,1,Dial(PJSIP/${EXTEN}@1234-100) ; дзвінки на номери в яких чотири і більше цифр через транк 1234-100
Стандартне налаштування завершено.
P-Asserted-Identity (для досвідчених користувачів).
При вихідних дзвінках ви можете використовувати SIP заголовок P-Asserted-Identity для вибору Callerid зі списку підключених у сервісі номерів..
Номер з заголовку P-Asserted-Identity буде використовуватись у пріорітеті. Якщо заголовок не переданий або встановлений не вірний/не підключений номер, буде використано заданий номер за замовчуванням.
[zadarma-out]
exten => _XXX.,1,Set(_SET_PAI=)
exten => _XXX.,n,Dial(PJSIP/${EXTEN}@111111,,b(add_header_pai^add^1))
[add_header_pai]
exten => add,1,Set(PJSIP_HEADER(add,P-Asserted-Identity)=${SET_PAI})
exten => add,n,Return()
Якщо у Вас підключено кілька прямих номерів, для зручності кожного номеру можна призначити "ім'я" наприклад 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 Ви можете налаштувати вхідну маршрутизацію засновану на цьому параметрі.
У наступному прикладі, дзвінки з номера 380441234567 спрямовані на внутрішній номер 101, дзвінки з номера 442037691880 спрямовані на внутрішній номер 102, а всі інші дзвінки asterisk буде відхиляти сигналом "Зайнято" .
[zadarma-in]
exten => _X.,1,GotoIf($["${PJSIP_HEADER(read,CALLED_DID)}" = "380441234567"]?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
[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=sipurifr.zadarma.com
match=sipde.zadarma.com
match=sipuriny.zadarma.com
Вхідний маршрут у файлі extensions.conf
[zadarma-in]
exten => 15555555555,1, Dial(PJSIP/101)
Налаштування завершено.
Увімкнення шифрування
1.У файлі pjsip.conf додаємо наступне
[transport-z]
type=transport
protocol=tls
verify_server=no
bind=0.0.0.0:7065
method=tlsv1_2
2.В server_uri після адреси сервера потрібно додати :5061
Приклад налаштування при використанні авторизації за IP адресою.