Соединение серверов Asterisk по PJSIP
Рассмотри подключение двух серверов с Asterisk по PJSIP Задача соединить два сервера с Asterisk по PJSIP с регистрацией без регистрации. У нас есть два сервера один с Asterisk 16, второй с Asterisk 13 расположены в одной локальной сети. Больше о PJSIP можно узнать из наших статей: Установка Asterisk 16 на centos 8 TLS SRTP для […]
Рассмотри подключение двух серверов с Asterisk по PJSIP
Задача соединить два сервера с Asterisk по PJSIP с регистрацией без регистрации.
У нас есть два сервера один с Asterisk 16, второй с Asterisk 13 расположены в одной локальной сети.
Больше о PJSIP можно узнать из наших статей:
Установка Asterisk 16 на centos 8
TLS SRTP для драйвера PJSIP в Asterisk 15
Pjsip. Базовая настройка. Идеология настройки
Описание параметров конфигурации PJSIP в Asterisk с примерами
PJSIP: Подключение абонентов. Идеология конфига — Asterisk IP-телефония
Подключение к провайдеру с регистрацией и без по PJSIP — Asterisk IP-телефония
Вопросы безопасности канала PJSIP в Asterisk
ZRTP по PJSIP для Asterisk? — Asterisk IP-телефонияНастройка realtime для PJSIP на Centos 7
Начнем с соединения серверов без регистрации.
Создаем на обоих серверах транк. Так как для такого подключения нам нет необходимости использовать логин и пароль настройки транков идентичны.
Итак, в веб-интерфейсе FreePBX создаём транк, даём ему имя допустим server_1
открываем вкладку pjsip Settings — General
задаём опции Authentication и Registration как None
- Authentication – тип аутентификации если «None», все вызовы с или на указанный SIP-сервер не проходят аутентификации.
- Registration – как регистрируемся на сервере оператора и нужно ли его регистрировать. Если «None» то обычно подразумевается, что оба сервера имеют фиксированный ip-адрес и не требуется авторизация.
- SIP Server указываем адрес сервера Asterisk к которому будем подключаться
- SIP Server Port – SIP порт сервера (можно не указывать, он будет использовать порт что установлен в transport)
Теперь, открываем Advanced прописываем ip-адрес второго Asterisk в опции From Domain.
From Domain – имя домена, используемое в заголовке поля From в запросах к этому транку. Можно попробовать и без него жить, так как это поле меняет только заголовок в поле From, тут уже необходимо смотреть по ситуации.
Сохраняем настройки транка и открываем Settings — Asterisk SIP Settings — General SIP Settings
Проверяем добавлена ли наша сетка в Local Networks, если у вас VPN-туннель его тоже нужно добавлять сюда.
Конфигурационные файлы на обоих серверах будут для такой регистрации одинаковы, за исключением конечно названий транка и ip-адреса. Для asterisk без FreePBX можно все эти файлы запихнуть в один pjsip.conf.
pjsip.transports.conf
[0.0.0.0-udp]
type=transport
protocol=udp
bind=0.0.0.0:5060
external_media_address=84.42.42.184
external_signaling_address=84.42.42.184
allow_reload=no
tos=cs3
cos=3
local_net=192.168.32.0/24
pjsip.aor.conf
[server_2]
type=aor
qualify_frequency=60
contact=sip:192.168.32.74
pjsip.auth.conf
[server_2]
type=auth
auth_type=userpass
password=
username=server_2
pjsip.identify.conf
[server_2]
type=identify
endpoint=server_2
match=192.168.32.74
pjsip.endpoint.conf
[server_2]
type=endpoint
transport=0.0.0.0-udp
context=from-pstn
disallow=all
allow=ulaw,alaw,gsm,g726,g722
aors=server_2
from_domain=192.168.32.74
direct_media=no
rtp_symmetric=yes
dtmf_mode=auto
Совершим тестовый звонок между станциями для абонентов [email protected] и [email protected]
Такое подключение довольно простое, если сервера в одной локальной сети или соединены VPN-туннелем.
Соединение сервера Asterisk с использованием регистрации
Основная задача сделать так чтобы один сервер отправлял запрос на регистрацию, а другой её принимал.
Регистрирующим будет тот что живёт по ip 192.168.32.88 настроем его.
Создаём новый транк даём ему имя “priem” в настройках pjsip Settings — General делаем следующие манипуляции:
- Secret: password123 — задаём пароль для транка лучше использовать символов на 16 с разным регистром и символами.
- Authentication: Both — выбираем Both так как нам нужно и принимать, и отвечать, стоит заметить, что и с Inbound получилось поднять транк.
- Registration: Receive — если нужна регистрация выбираем Receive дословно переводится как “принимать”, что и соответствует его функции регистрировать другой сервер.
- Context: from-pstn — выбираем в какой контекст будут отправлять ваши звонки с этого транка я оставил по умолчанию, так как мне нет необходимости делать другие маршруты, вы же смотрите по своим
- Transport: 0.0.0.0-udp — так как у меня сервера в одной локальной сети, то вполне устроит протокол udp с портом 5060
Переходим теперь в настройках pjsip Settings — Advanced тут можно оставить всё как есть и будет работать, но мы добавим в поле From Domain и AOR Contact ip-адрес регистрируемого сервера.
From Domain: 192.168.32.74
AOR Contact: sip:192.168.32.74 — Постоянный контакт AoR для регистрации endpoint. Он конечно может и автоматически задаваться FreePBX если оставить поле пустым, но пропишем его в явном виде.
На этом сервере с настройками всё, сохраняем применяем.
Конфигурационные файлы этого транка:
pjsip.aor.conf
[priem]
type=aor
qualify_frequency=60
max_contacts=1
pjsip.auth.conf
[priem]
type=auth
auth_type=userpass
password=password123
username=priem
pjsip.endpoint.conf
[priem]
type=endpoint
transport=0.0.0.0-udp
context=from-pstn
disallow=all
allow=ulaw,alaw,gsm,g726,g722
aors=priem
language=ru
outbound_auth=priem
auth=priem
from_domain=192.168.32.74
rtp_symmetric=yes
dtmf_mode=auto
Пришло время настроить второй сервер живёт он по ip-адресу 192.168.32.74.
Создаём транк обзываем его допустим “dacha”, потому что хочется на дачу к шашлычку.
В настройках транка pjsip Setting — General заполняем:
- Username: priem — сюда вписываем имя, транка на втором сервере
- Secret: password123 — пароль что задали на том сервере
- Authentication: Outbound — выбираем “исходящую” аутентификацию, как и при создании обычного транка.
- Registration: Send — “отправлять” регистрацию
- SIP Server: 192.168.32.88 — адресс нашего регистрирующего сервера
- SIP Server Port: — указываем если порт отличен от 5060
- Context: from-pstn
- Transport: 0.0.0.0-udp
Далее для работы транка необходимо заполнить опции в pjsip Setting — Advanced:
- Contact User: priem– сюда указываем имя того пользователя к которому обращаемся в моём случае это priem
- From Domain: 192.168.32.88– имя домена, используемое в заголовке поля From в запросах к этому транку,
- From User: priem – имя пользователя для использования в заголовке From для запросов к этому транку
- Client URI: sip:[email protected] – URI SIP-клиента, используемый при попытке исходящей регистрации. Этот параметр автоматически генерируется УАТС, если оставить его пустым. Формат: sip:[username]@[ip]:[port].
- Server URI: sip:192.168.32.88 – URI SIP-сервера регистрации. Этот параметр генерируется автоматически, если оставить его пустым. Формат: sip:[username]@[ip]:[port].
- AOR Contact: sip:192.168.32.88 – Постоянный контакт AoR для регистрации endpoint.
Сохраняем применяем, смотрим регистрацию транка. В CLI интерфейсе
freepbx*CLI> pjsip show registrations
Файлы конфигурации, которые использует этот транк:
pjsip.aor.conf
[dacha]
type=aor
qualify_frequency=3600
contact=sip:192.168.32.88
pjsip.auth.conf
[dacha]
type=auth
auth_type=userpass
password=password123
username=priem
pjsip.endpoint.con
[dacha]
type=endpoint
transport=0.0.0.0-udp
context=from-pstn
disallow=all
allow=ulaw,alaw
aors=dacha
send_connected_line=false
language=ru
outbound_auth=dacha
from_domain=192.168.32.88
from_user=priem
contact_user=priem
user_eq_phone=no
rtp_symmetric=yes
dtmf_mode=auto
pjsip.identify.conf
[dacha]
type=identify
endpoint=dacha
match=192.168.32.88
pjsip.registration.conf
[dacha]
type=registration
transport=0.0.0.0-udp
outbound_auth=dacha
retry_interval=60
fatal_retry_interval=30
forbidden_retry_interval=30
max_retries=10000
expiration=60
line=yes
endpoint=dacha
auth_rejection_permanent=no
contact_user=priem
server_uri=sip:192.168.32.88
client_uri=sip:[email protected]
Если посмотреть дамп пакеты вначале отбиваются, но при повторном запросе регистрация проходит.
Звонки, впрочем, чувствуют себя комфортно.
Остались вопросы?
Я - Компаниец Никита, менеджер компании 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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.