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")) {
    ...
}

... а затем либо:

  1. сохранить Request-URI, но сделать маршрут сообщения в Plivo при выполнении t_relay():
$du = "sip:your_plivo_ip:5060"; # set a "destination URI"
  1. переписать Request-URI сообщения SIP, чтобы оно отправилось в Plivo после выполнения t_relay():
$ru = "sip:your_plivo_ip:5060"; # rewrite the "Request-URI"

Вот и все! Сценарий по умолчанию уже делает record_route()Обеспечение того, чтобы прокси оставался в пределах пути всех запросов на вызовы.

Другие вопросы по тегам