Описание параметров конфигурации PJSIP в Asterisk с примерами
В рамках данной статьи будет дано краткое описание стека PJSIP, а также пример настройки внутреннего номера Asterisk`а на данном драйвере канала. По своей сути PJSIP можно назвать не просто еще одной реализацией протокола SIP, а мультимедийной библиотекой, которая работает с набором протоколов, таких как: SIP, RTP, ICE, STUN, SDP, TURN. Также неоспоримым преимуществом данной реализацией стека протоколов является его кроссплатформенность.
Также отличительная особенность данного стека протоколов то что он имеет модульную структуру, таким образом это упрощает расширять функциональность и гибко управлять ею за счет загрузки только модулей с необходимым функционалом.
Также за счет того что в стеке PJSIP для Asterisk`а находятся модули, предоставляющие фреймворк, от которого другие модули могут получать необходимый функционал.
Настройки канала PJSIP в Asterisk производятся также как и основная масса настроек через специальный текстовый файл — pjsip.conf, также состоящий из секций. Общий вид секций стандартен для всех конфигурационных файлов Asterisk`а. Основное отличие в структуре конфигурационного файла от классического драйвера chan_sip, в том что в файле для pjsip — конфигурация устройств разбивается на логические разделы.
Конфигурация включает в себя следующие разделы:
— Endpoint — аналогично описанию пира в sip.conf, содержит основное описание параметров SIP и определяет связь с остальными модулями, такими как Transport, Auth и AOR.
Основное отличие от описания пира в sip.conf в том, что в pjsip ключевые параметры вынесены в отдельные разделы.
Также на основе раздела Endpoint можно сделать шаблон, для устройств.
Endpoint должен быть обязательно связан с не менее чем с одним разделом AOR.
Опции aors и type — обязательны для работы, остальные опции указываются по необходимости.
— Transport — данный раздел описывает тип транспортного протокола для подключаемых устройств. Можно указывать протоколы TCP, UDP, TLS, а также WebSocket. Использование раздела Transport вариативно — можно использовать один раздел для многих разделов Endpoint, но также можно и для каждого раздела Endpoint описать свой собственный раздел Transport.
В каждом разделе Transport необходимо указать уникальный порт.
— Auth — раздел в котором прописываются параметры аутентификации для исходящей или входящей регистрации, с данным разделом связаны разделы Endpoint и Registrations. Одна запись раздела Auth может использоваться несколькими разделами Endpoint и Registrations.
— Registration — раздел отвечающий за исходящую регистрацию, например, регистрация на сервере оператора связи. Для корректной работы данного раздела обязательно должны присутствовать две опции в которых указываются имена используемых разделов: раздел Transport (опция transport) и раздел Auth (опция outboiund_auth); также обязательна опция type.
— AOR (Address of Record) — данный раздел по сути своей является указателем для Asterisk`а каким образом связываться с подключаемой точкой (Endpoint). Без соответствующего AOR не будет возможности вызвать подключаемую точку (телефонный аппарат или транк оператора). Обязательно присутствие опции type — где указывается тип раздела.
В отличие от канального драйвера chan_sip драйвер PJSIP поддерживает множественные входящие регистрации на один и тот аккаунт. Регулируется это через опцию max_contact раздела AOR. просто необхордимо указать соотвесвтующее количество редполагаемых регистраций.Если же необходимо ограничить подключение одним адресом (не ожидать запрос на регистрацию), можно указать опцию contact — запись, которая должна соответствовать заголовку To, так как подобную запись будет искать Asterisk при получении запроса на регистрацию,
— Identify — в данном разделе указывается конкретный ip-адрес точки.
И необходимо указать подвязанную к нему точку (Endpoint)
Полный пример регистрации транка:
;—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 <раздел> <опция> — покажет все возможные параметры (значения) которые может принять опция.
На этом описание основных принципов настройки PJSIP в Asterisk завершено.
Остались вопросы?
Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.