Моя текущая установка - я использую кучу хард-телефонов sip в нескольких офисах. на всех устройствах настроены две учетные записи sip - одна на внутреннем sip-прокси [для звонков между филиалами], другая - у сторонних провайдеров VoIP [поскольку они находятся в разных странах - это разные провайдеры, но это не имеет значения].
я думал о завершении sip-вызовов на что-то вроде сервера asterisk / freeswitch и о том, чтобы все sip-устройства входили в систему только один раз на такой сервер [ы] - в основном для обеспечения таких вещей, как голосовая почта, групповые вызовы, перенаправления и т. д., это кажется вполне выполнимым, но есть одна проблема - не могу найти примеров как подготовиться к нац / без нац. для вызовов, направленных от / к стороннему оператору voip - мне понадобится обработка для nat / stun и т. д., но для обработки внутренних вызовов - я не хочу никакого nat, весь трафик должен идти через vpns в разные ветки.
не могли бы вы дать мне несколько советов, как его настроить? какие-нибудь учебники?
Спасибо!
Я считаю, что для FreeSWITCH эта функция может быть реализована с помощью внутренних / внешних профилей sip. Вы можете найти больше информации на wiki.freeswitch.org
Конфигурацию NAT для вашего внешнего провайдера (ов) VoIP можно настроить во внешнем профиле (например, /usr/local/freeswitch/conf/sip_profiles/external/voipprovider.xml). Вы можете установить эти два параметра в соответствии с вашим публичным IP-адресом:
<include>
<gateway name="voipprovider">
<param name="ext-rtp-ip" value="x.x.x.x"/>
<param name="ext-sip-ip" value="x.x.x.x"/>
<param name="username" value="user"/>
<param name="password" value="password"/>
<param name="realm" value="sip.voipprovider.com"/>
</gateway>
</include>
Чтобы использовать внешних провайдеров VoIP, вы должны настроить свой диалплан (/usr/local/freeswitch/conf/dialplan/default.xml) примерно так. Чтобы использовать разных провайдеров VoIP в зависимости от пункта назначения, вы можете настроить регулярное выражение:
<include>
<extension name="Dial Out VoIP Provider">
<condition field="destination_number" expression="^9(1\d{10})$">
<action application="bridge" data="sofia/gateway/voipprovider/$1"/>
</condition>
</extension>
</include>
Надеюсь, это поможет. У меня нет опыта работы с Asterisk, поэтому я не уверен, как бы вы настроили его с помощью этого переключателя.