artem
26.11.2018
35576

Описание параметров конфигурации PJSIP в Asterisk с примерами

В рамках данной статьи будет дано краткое описание стека PJSIP, а также пример настройки внутреннего номера Asterisk`а на данном драйвере канала. По своей сути PJSIP можно назвать не просто еще одной реализацией протокола SIP, а мультимедийной библиотекой, которая работает с набором протоколов, таких как: SIP, RTP, ICE, STUN, SDP, TURN. Также неоспоримым преимуществом данной реализацией стека протоколов является его кроссплатформенность.

Параметры PJSIP в Asterisk

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

Также за счет того что в стеке PJSIP для Asterisk`а находятся модули, предоставляющие фреймворк, от которого другие модули могут получать необходимый функционал.

Настройки канала PJSIP в Asterisk производятся также как и основная масса настроек через специальный текстовый файл — pjsip.conf, также состоящий из секций. Общий вид секций стандартен для всех конфигурационных файлов Asterisk`а. Основное отличие в структуре конфигурационного файла от классического драйвера chan_sip, в том что в файле для pjsip — конфигурация устройств разбивается на логические разделы.

Конфигурация включает в себя следующие разделы:
— Endpoint — аналогично описанию пира в sip.conf, содержит основное описание параметров SIP и определяет связь с остальными модулями, такими как Transport, Auth и AOR.

Основное отличие от описания пира в sip.conf в том, что в pjsip ключевые параметры вынесены в отдельные разделы.

Также на основе раздела Endpoint можно сделать шаблон, для устройств.

Endpoint должен быть обязательно связан с не менее чем с одним разделом AOR.

Пример параметров раздела Endpoint для подключения транка к оператору связи

Опции aors и type — обязательны для работы, остальные опции указываются по необходимости.

— Transport — данный раздел описывает тип транспортного протокола для подключаемых устройств. Можно указывать протоколы TCP, UDP, TLS, а также WebSocket. Использование раздела Transport вариативно — можно использовать один раздел для многих разделов Endpoint, но также можно и для каждого раздела Endpoint описать свой собственный раздел Transport.

В каждом разделе Transport необходимо указать уникальный порт.

Раздел Transport

— Auth — раздел в котором прописываются параметры аутентификации для исходящей или входящей регистрации, с данным разделом связаны разделы Endpoint и Registrations. Одна запись раздела Auth может использоваться несколькими разделами Endpoint и Registrations.

Описание раздела Auth

— Registration — раздел отвечающий за исходящую регистрацию, например, регистрация на сервере оператора связи. Для корректной работы данного раздела обязательно должны присутствовать две опции в которых указываются имена используемых разделов: раздел Transport (опция transport) и раздел Auth (опция outboiund_auth); также обязательна опция type.

Пример раздела Registration

— AOR (Address of Record) — данный раздел по сути своей является указателем для Asterisk`а каким образом связываться с подключаемой точкой (Endpoint). Без соответствующего AOR не будет возможности вызвать подключаемую точку (телефонный аппарат или транк оператора). Обязательно присутствие опции type — где указывается тип раздела.

В отличие от канального драйвера chan_sip драйвер PJSIP поддерживает множественные входящие регистрации на один и тот аккаунт. Регулируется это через опцию max_contact раздела AOR. просто необхордимо указать соотвесвтующее количество редполагаемых регистраций.Если же необходимо ограничить подключение одним адресом (не ожидать запрос на регистрацию), можно указать опцию contact — запись, которая должна соответствовать заголовку To, так как подобную запись  будет искать Asterisk при получении запроса на регистрацию,

 

Пример записи AOR

— Identify — в данном разделе указывается конкретный ip-адрес точки.

И необходимо указать подвязанную к нему точку (Endpoint)

Пример Identify для настройки транка к оператору

Полный пример регистрации транка:

;—TRANSPORTS—;
[transport-udp]
type = transport
protocol = udp
bind = 0.0.0.0

;—TRUNK DESCRIPTION—;

[operator-endpoint]
type=endpoint
context = from-trunk
allow = !all,g722,ulaw
outbound_auth = operator-auth
aors = operator-aor
direct_media = no
from_domain = sip.operator.ru

[operator-aor]
type = aor
contact = sip:sip.operator.ru

[operator-trunk-auth]
type = auth
auth_type = userpass
username = myaccountID
password = ASTRONGPASSWORD
[operator-registration]
type=registration
transport=transport-udp
outbound_auth=operator-trunk-auth
server_uri=sip:sip.operator.ru
client_uri=sip:[email protected]
retry_interval=60
expiration=120

contact_user=99999
[operator-identify]
type=identify
endpoint = operator-endpoint
match = 1.1.1.1

В описании разделов для PJSIP можно использовать шаблоны аналогично sip.conf

Пример регистрации внутреннего номера с использованием шаблонов:

[endpoint-internal](!)
type = endpoint
context = from-internal
allow = !all,g722,ulaw
direct_media = no
trust_id_outbound = yes
device_state_busy_at = 1
dtmf_mode = rfc4733

[auth-userpass](!)
type = auth
auth_type = userpass

[aor-reg](!)
type = aor
max_contacts = 1

[999](endpoint-internal)
auth = 999
aors = 999
callerid = Test <999>

[999](auth-userpass)
password = Qwerty123
username = 999

[999](aor-reg)
mailboxes = 999@example

Просмотреть справку по всем возможным опциям разделов и их значениям можно через встроенную справку Asterisk. С помощью команд:
config show help res_pjsip <раздел> — покажет все возможные опции указанного раздела
config show help res_pjsip <раздел> <опция> — покажет все возможные параметры (значения) которые может принять опция.

Пример вывода опций раздела aor

На этом описание основных принципов настройки PJSIP  в Asterisk завершено.

Кейсы внедрения
Asterisk от VoxLink
Узнайте, какие крупные компании уже используют Asterisk в работе.
Скачать
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Остались вопросы?

Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование


ближайшие курсы

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.