У меня есть две УАТС на основе звездочки, каждая из которых находится в другой локальной сети, обе локальные сети подключены к маршрутизатору.
Первая АТС - 10.0.0.1/24, вторая - 10.0.2.1/24. У обеих АТС есть собственные внутренние номера, и звонки между ними работают отлично.
У PBX1 есть магистраль SIP с поставщиком VoIP в другом сетевом интерфейсе в другой сети. У АТС 2 нет транкового модуля от того, который подключает его к АТС 1.
Проблема, с которой я столкнулся, заключается в том, что, когда пользователь из УАТС 2 набирает внешний номер телефона, в соответствии с правилами набора, вызов направляется по магистрали на УАТС 1, которая, в свою очередь, направляет вызов поставщику VoIP, другой конец которого находится на PSTN берет трубку и ... ничего не слышно.
Я отладил проблему и обнаружил, что происходит то, что провайдер VoIP отправляет RTP-трафик (пакеты udp на tcpdump) непосредственно на устройство на PBX2. Поскольку между сетью VoIP и PBX2 нет маршрутизации, этот трафик является большим.
Мой вопрос: это предполагаемый способ работы? Должен ли я обеспечить возможность маршрутизации с обоих концов?
Существует ли способ заставить PBX1 работать как прокси, чтобы ТОЛЬКО PBX1 имела доступ к провайдеру VoIP?
Я использую звездочку 1.4.
Спасибо за вашу помощь.
При использовании SIP сигнализация осуществляется через SIP, а оцифрованный звук передается по другому протоколу, RTP. SIP и RTP часто отправляются на разные IP-адреса. Обычно это не проблема, если все IP-адреса доступны.
Что происходит в вашей ситуации, примерно так:
PBX2 отправляет SIP INVITE на PBX1. В это ПРИГЛАШЕНИЕ содержится информация о том, куда отправлять звук. PBX2 указывает собственный IP-адрес. Поскольку его IP-адрес доступен с PBX1, звонки между ними работают.
Теперь, когда вызываемый абонент является внешней линией, PBX1 отправляет собственное INVITE вашему провайдеру и передает в этом INVITE информацию о том, куда отправлять звук (т. Е. IP-адрес PBX2). Если обе УАТС были на общедоступных IP-адресах, это было бы хорошо. Поскольку они оба недоступны извне, вам необходимо изменить поведение PBX1.
На АТС1 в вашем sip.conf
файл, должна быть одноранговая конфигурация для PBX2. В этой конфигурации однорангового узла вам необходимо добавить следующую строку:
canreinvite=no
(В более поздних версиях звездочки вы должны использовать directmedia=no
вместо.)
Это заставит УАТС1 оставаться на пути передачи мультимедиа всякий раз, когда она участвует в вызове с УАТС2. Другими словами, когда вы звоните во внешний мир, PBX1 предоставит вашему провайдеру собственный IP-адрес для отправки звука, затем он проксирует этот звук и отправит его на PBX2.
Надеюсь это поможет!
То, что вы описываете, вполне возможно. В конце концов, именно так работают многие провайдеры VoIP: один из моих провайдеров VoIP запускает свои серверные системы на Asterisk. И они могут направлять мне звонки по магистрали, которую я настроил для своей учетной записи в их системе.
Для настройки между Asterisk, вероятно, будет проще использовать транки IAX2. Им потребуется только один порт, который будет открыт между двумя сетями.
Доступно несколько руководств, которые точно описывают ваш сценарий.
Это похоже на то, что доктор прописал: http://www.minded.ca/default/2010-03-05/multi-server-asterisk-network-with-sip-trunks/
На данный момент у меня нет двух * систем, на которых можно было бы попробовать ... но это похоже на полное руководство по установке.