Asterisk PJSIP: настройка подключения

Важно: Если вы новый пользователь и используете усовершенствованный интерфейс Novofon 2.0 (у вас в левом меню есть раздел «Пользователи АТС»), для входа в программу вам нужно использовать данные из этой инструкции.

Стандартная настройка

Для настройки подключения вам понадобятся данные из личного кабинета:


Я пользуюсь АТСЯ пользуюсь АТС
АТС не используетсяАТС не используется

Идентификационное имя: берем внутренний номер АТС из личного кабинета (раздел “Моя АТС”, страница “Внутренние номера). Для примера в инструкции используем 1234-100.

Имя пользователя: тот же самый номер.

Пароль: Пароль, который находится на той же странице, что и внутренний номер АТС.

SIP-сервер: pbx.novofon.com

Механизм работы заключается в следующем: исходящие звонки с номера 101 направляются в транк 1234-100. Входящие же звонки принимаются по регистрации и направляются на внутренний номер 101.

Соответствующим образом отредактируем pjsip.conf

pjsip.conf

[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.novofon.com

client_uri=sip:1234-100@pbx.novofon.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.novofon.com

[1234-100]

type=endpoint

transport=udp-transport

context=novofon-in

disallow=all

allow=alaw

allow=ulaw

outbound_auth=1234-100_auth

aors=1234-100

from_user=1234-100

from_domain=pbx.novofon.com

direct_media=no

[1234-100]

type=identify

endpoint=1234-100

match=pbx.novofon.com

Теперь необходимо настроить внутренний номер 101, к которому будет подключаться софтфон (или ip-телефон):

pjsip.conf

[101]

type=endpoint

transport=udp-transport

context=novofon-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

extensions.conf

[novofon-in]

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

[novofon-out]

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

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

На этом стандартная настройка завершена. Но при необходимости вы можете включить шифрование.

Пример настройки по схеме SIP-URI.

Этот метод настройки подходит в случае, при котором ваш сервер с Asterisk имеет “белый” IP-адрес.

В качестве примера ниже:

  • 711111111111 – ваш виртуальный номер в сервисе Novofon;
  • 1.11.111.11 – IP-адрес вашего сервера с Asterisk.

Для начала необходимо направить все звонки с виртуального номера на внешний сервер. Данные необходимо указать в формате 711111111111@1.11.111.11. Сделать это можно в личном кабинете, в разделе “Настройки”, страница “Виртуальный номер”.

Теперь необходимо отредактировать файл pjsip.conf

pjsip.conf

[711111111111]

type=aor

contact=sip:sip.novofon.com

[711111111111]

type=endpoint

transport=udp-transport

context=novofon-in

disallow=all

allow=alaw

allow=ulaw

aors=711111111111

direct_media=no

[711111111111]

type=identify

endpoint=711111111111

match=sipurims.novofon.com

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

extensions.conf

[novofon-in]

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

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

Назначение имени номеру.

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

Эта информация передается в параметре CALLERID(name). Предположим, что у вас два номера и вы дали им имена “moscow” и “saintpetersburg”. И в первом случае вы хотите направлять все вызовы на внутренний номер 101, а во втором на 102. Другие звонки нужно отклонять сигналом “занято”. В таком случае в файле extensions.conf пишем:

extensions.conf

[novofon-in]

exten => _X.,1,GotoIf($["${CALLERID(name)}" = "moscow"]?2:3)

exten => _X.,2,Dial(PJSIP/101)

exten => _X.,3,GotoIf($["${CALLERID(name)}" = "saintpetersburg"]?4:5)

exten => _X.,4,Dial(PJSIP/102)

exten => _X.,5,Busy

Управление маршрутизацией по номеру.

Если вам необходимо звонки с номера направлять на определенный внутренний номер, то вы можете задать его в хедере CALLED_DID. Например, звонки с номера 74951111111 вы хотите принимать на 101, а 78121111111 на 102 (а все прочие отклонять с сигналом “занято”), то вам необходимо указать следующую информацию в файле extensions.conf

extensions.conf

[novofon-in]

exten => _X.,1,GotoIf($["${PJSIP_HEADER(read,CALLED_DID)}" = "74951111111"]?2:3)

exten => _X.,2,Dial(PJSIP/101)

exten => _X.,3,GotoIf($["${PJSIP_HEADER(read,CALLED_DID)}" = "78121111111"]?4:5)

exten => _X.,4,Dial(PJSIP/102)

exten => _X.,5,Busy

Включение шифрования.

При необходимости вы можете включить шифрование голосового потока. Для этого в файл pjsip.conf необходимо дописать:

pjsip.conf

[transport-z]

type=transport

protocol=tls

verify_server=no

bind=0.0.0.0:7065

method=tlsv1_2

В server_uri после адреса необходимо добавить порт :5061