PSTN для OpenSIPS к следующему пункту назначения SIP
Я работал с Asterisk в течение многих лет, но я очень плохо знаком с OpenSIPS. Мне нужно, чтобы звонки приходили от нашего провайдера DID на сервер OpenSIPS, а затем перенаправляли их на другой SIP URI.
Что-то вроде этого:
DID Origination Provider -> OpenSIPS -> следующий SIP-сервер
По сути, мне нужен сервер OpenSIPS, чтобы сидеть между моим провайдером DID и Plivo, который в основном является сервисом типа Twilio.
Я установил OpenSIPS и графический интерфейс панели управления. С помощью графического интерфейса я успешно настроил вызовы для перехода от провайдера DID к любому из SIP-телефонов, которые я зарегистрировал в OpenSIPS, вызовы работают нормально.
Мне нужно потратить много времени на изучение логики маршрутизации и тому подобного для OpenSIPS, что я готов сделать, но в данный момент я пытаюсь решить проблему и надеюсь, что есть решение с использованием OpenSIPS CP. Если нет, я надеюсь на пример о том, как настроить это в файлах конфигурации.
Любая помощь приветствуется, я занимался этим несколько дней и искал в Google и Youtube, просматривал учебные пособия, просматривал видео, проводил время за чтением книги и т. Д. Так что не из-за отсутствия усилий. Это, очевидно, будет довольно сложным этапом обучения, но я надеюсь на небольшую помощь, чтобы выполнить эту конкретную задачу раньше, чем позже.
Еще раз спасибо заранее за любую помощь. Использование последней версии OpenSIPS 2.4 в Debian 8, если это имеет значение.
1 ответ
Прежде всего: нет способа сделать это через CP. OpenSIPS CP предназначен для работы на более низком уровне, помогая вам управлять вашими данными (пользователи, правила маршрутизации, назначения маршрутизации, правила набора номеров, сертификаты TLS и т. Д.). Любая пользовательская логика более высокого уровня, связывающая эти фрагменты данных, должна быть написана в opensips.cfg
,
К счастью, по умолчанию opensips.cfg
уже покрывает 90% того, что нам нужно здесь. Таким образом, вместо того, чтобы направлять звонки пользователям и переходить прямо к Plivo, вы должны удалить эту часть:
# do lookup with method filtering
if (!lookup("location","m")) {
...
}
... а затем либо:
- сохранить Request-URI, но сделать маршрут сообщения в Plivo при выполнении
t_relay()
:
$du = "sip:your_plivo_ip:5060"; # set a "destination URI"
- переписать Request-URI сообщения SIP, чтобы оно отправилось в Plivo после выполнения
t_relay()
:
$ru = "sip:your_plivo_ip:5060"; # rewrite the "Request-URI"
Вот и все! Сценарий по умолчанию уже делает record_route()
Обеспечение того, чтобы прокси оставался в пределах пути всех запросов на вызовы.