Вы здесь

Asterisk 06 Outside Connectivity

Все подключения наружу и внутрь Asterisk осуществляет используя разные channel types. При этом для Asterisk все они равны, всё зависит лишь от настроек диалплана.

Trunking

Trunk - это есть shared connection between two entities, который используется для подключения двух систем.

Для Asterisk можно сказать что trunk это collection of circuits которые обслуживают маршрут. Мы можем создать отдельные транки для подключения к VoIP provider, к внутренним офисам.

Пример диалплана для выхода наружу

[globals] oleg=SIP/64A769FE76F8 maria=SIP/6C626D04E1EB TOLL=SIP/YourVoipCarrier ; as defined in sip.conf ; [external] exten => _98XXXXXXXXXX,1,Dial(${TOLL}/${EXTEN:1}) ; National calls exten => _9810!,1,Dial(${TOLL}/${EXTEN:1}) ; International calls ; [LocalSets] exten => 101,1,Dial(${oleg}) exten => 102,1,Dial(${maria}) include => external

Критически важно не включать шаблоны доступа наружу в какой-либо Context, который обрабатывает входящие звонки.

SIP и NAT

VoIP call состоит из двух частей:
- Signaling messages которые несут служебную информацию.
- RTP Streams - собственно само Audio.

Использование отдельных протоколов и являются причиной основных проблем, особенно это качается случаев, когда телефоны находятся за одним НАТ-ом, а PBX находится за другим.
Например часто случается следующее:
Сигнализация обычно разрешается на прохождение через Firewall на обоих концах, а вот RTP Stream может не восприниматься как часть одной и той же SIP Session и может быть блокирована. Как следствие абоненты будут жаловаться, что один другого не слышит.

Devices behind NAT

Когда телефон инициирует SIP Session, он высылает Signaling messages на адрес Asterisk.
Поскольку телефон находится за NAT (т.е. с серым адресом), у SIP message будет reply address также серый адрес.
Тем не менее мы можем настроить Asterisk игнорировать этот адрес, и вместо него использовать тот что в IP пакете.
Такую настройку мы можем делать в sip.conf, nat option.

http://ciscomaster.ru/sites/all/modules/bueditor-7.x-1.4/bueditor/icons/...

Argument Description
no Perform no special NAT handling other than what is specified in RFC 3581
auto_force_rport If Asterisk can determine that the device is behind NAT, set the force_rport option.
This is the default.
force_rport Even if no rport parameter was specified, act as if there had been.

Существует RFC3581, которая позволяет телефону использовать параметр rport, который сигнализирует другой стороне, что нужно отвечать на source IP and port, вместо того чтобы использовать адрес прописанный в SIP header.
Asterisk всегда будет реагировать на наличие параметра rport, но мы можем также сделать force_rport.

Если задать nat=no Asterisk will default to auto_force_rport as the nat parameter setting.

SIP trunks между двумя Asterisk

Данная конфигурация позволит соединить два сервера Asterisk, позволяя абонентам каждого из них звонить друг другу.

Server A

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Target Image