Pjsip. Базовая настройка. Идеология настройки.
Введение. Итак, что же такое PjSIP? Это, по сути своей не протокол, как многие считают, а библиотека для работы со стеком протоколов, таких как непосредственно SIP, RTP, SDP, STUN и его модификаций TURN и ICE. В данной статье мы коснемся идеологии настройки PjSIP и проведем базовую конфигурацию. Идеология В идеологию библиотеки заложена модульность. Разберем, что […]
Введение.
Итак, что же такое PjSIP? Это, по сути своей не протокол, как многие считают, а библиотека для работы со стеком протоколов, таких как непосредственно SIP, RTP, SDP, STUN и его модификаций TURN и ICE. В данной статье мы коснемся идеологии настройки PjSIP и проведем базовую конфигурацию.
Идеология
В идеологию библиотеки заложена модульность. Разберем, что это означает. Конфигурационный файл библиотеки (pjsip.conf) разделен на секции, каждая секция определяет конфигурацию для объекта конфигурации res_pjsip. В большинстве своем имена секций, которые задаются в квадратных скобках могут быть произвольными, но есть исключение: имена типов ENDPOINT и AOR должны быть идентичны с заголовком SIP URI. Для каждой секции обязательна опция «type =», потому что в ней определяется назначение секции в конфигурации. Стоит перечислить возможные типы:
- ENDPOINT
- AOR
- TRANSPORT
- AUTH
- REGISTRATION
- DOMAIN_ALIAS
- ACL
- IDENTIFY
- CONTACT
- System
- Global
А теперь пройдемся по каждому типу. Начнем с ENDPOINT – этом модуль, в котором описываются опции протокола SIP и взаимодействие с модулями AOR, AUTH и TRANSPORT. Можно сказать, что ENDPOINT это аналог пира в sip.conf. Количество опций для этой секции весьма обширно, впрочем, как и для остальных.
Следующей секцией мы рассмотрим TRANSPORT. В ней описывается использование протоколов транспортного уровня, веб-сокеты и методы шифрования. Можно использовать как одну секцию для множества эндпоинтов, так и сконфигурить уникальную секцию для одной конкретной конечной точки (ENDPOINT). Что-то вроде аналога раздела general в sip.conf.
Далее упомянем AOR, эта секция указывает астеру как связаться с эндпоинтом. Другими словами, если для конечной точки не будет определена секция AOR, то и связаться с ней не получится.
REGISTRATION – ну тут все итак понятно, в этой секции прописываются опции отвечающие за исходящие регистрации, например транк от провайдера. А вот в модуле AUTH ассоциируются между собой эндпоинты и регистрации.
В DOMAIN_ALIAS прописываются псевдонимы домена. IDENTIFY – секция в которой задается определенный ip-адрес эндпоинту, если это необходимо. CONTACT используется для того, чтобы не приходилось явно указывать SIP URI в диалплане.
Секция ACL используется res_pjsip для контроля всех входящих соединений SIP (аналог permit/deny в sip.conf).
Отдельно нужно выделть секции System и Global в которых определяются глобальные опции, такие как, например, включение/выключение дебага, использование коротких SIP заголовков и многие другие.
PjSIP Configuration Wizard
PJSIP Configuration Wizard – это фича Астериска (начиная с версии 13.2.0) разработанная для упрощения настройки стандартных сценариев (например настройка транка), использующих базовые объекты chan_pjsip, предоставляя единственный объект «wizard».
В качестве примера рассмотрим itcp-сценарий:
А вот тоже самое, но уже с использованием Configuration Wizard’a:
В обоих случаях получаем одинаковый результат. Фактически, wizard создает «за кадром» стандартные объекты chan_pjsip:
- Конечная точка и aor создаются с тем же именем, что и визард
- К ним добавляются параметры endpoint/context и aor/qualify_fequency
- Контакт для aor создается для каждого удаленного хоста
- send_auth = yes вызывает создание объекта аутентификации
- outbound_auth/username и outbound_auth/password добавляются к нему
- Строка outbound_auth добавляется в endpoint
- send_registrations = yes вызывает создание объекта регистрации
- Строка outbound_auth добавляется к регистрации
- Server_uri и client_uri создаются с использованием удаленного хоста и имени пользователя
- Идентификационный объект создается, и для каждого удаленного хоста добавляется соответствие
Так же можно в качестве примера рассмотреть создание транка без регистрации с помощью визарда:
Стоит отметить, что в данном случае все параметры «sends_» и «accepts_» будут иметь значения по умолчанию «no», поэтому их даже не нужно указывать, если только мы не планируем в шаблоне указать их как «yes».
Базовая конфигурация на примере транка с регистрацией и эндпоинта
Итак, самое время перейти к небольшой практической задаче, а точнее к двум:
Первая — настроить SIP-транк с исходящей регистрацией. Делается это следующим образом:
Далее переходим ко второй задаче – создаем два эндпоинта с номерами 101 и 102 и готовим их к работе. Идентефикация у них происходит по юзернэйму/паролю, 101й регистрируется с динамического ip-адреса, а для 102го мы задали статический 192.168.32.109
Остались вопросы?
Я - Кондрашин Игорь, менеджер компании 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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.