Продолжаем говорить про модули FreePBX. Сегодня спешим рассказать про очень важный модуль — Asterisk Sip Settings. Корректная настройка этого модуля имеет сильно влияет на параметры прохождения голосового трафика и проблем односторонней слышимости. От слов к делу.


Вкладка General SIP Settings

Перейдем к настройке. Для этого, открываем SettingsAsterisk Sip Settings. Пробежимся по опциям, которые доступны для настройки:

Вкладка General SIP Settings модуля Asterisk Sip Settings в FreePBX

  • Allow Anonymous inbound SIP Calls — если данная опция переключена в позицию Yes, ваша IP – АТС Asterisk будет обрабатывать звонки, поступающие с неизвестных IP –адресов в контексте from – pstn. Обычно, выбор данной опции в положение Yes связан с включением набора по SIP URI. Учтите, что включенная опция значительно увеличивает риски связанные с безопасностью системы;
  • External Address — в данном поле необходимо указать ваш внешний IP – адрес. Помимо прочего, нажав на Detect Network Settings АТС автоматически определит параметры внешнего IP – адреса и внутренних локальных подсетей;
  • Local Networks — локальные подсети, из которых будут подключаться ваши SIP – устройства. Синтаксис прост: сетевой IP – адрес/маска. Например, 192.168.1.0/255.255.255.0. Есть возможность добавить несколько подсетей нажав на кнопку Add Local Network;
  • RTP Settings
    • RTP Ranges -начальный и конечный UDP порты для RTP трафика. В целом, данный диапазон можно посчитать. Знайте, что для каждого звонка нужно иметь по крайне мере 4 порта;
    • RTP Checksums — подсчитывать ли контрольную сумму для UDP, который переносит RTP трафик (голос);
    • Strict RTP — данная опция будет отбрасывать RTP пакеты, который приходят не от источника RTP – потока в рамках сессии;
  • Codecs — выберите нужные кодеки. Важно учесть порядок кодеков – он влияет на приоритет установления кодека в рамках SDP сообщений;
  • STUN Servers — указать IP – адрес STUN сервера. Если кратко, STUN помогает преодолеть проблемы с NAT – он помогает SIP – клиентам внутри локальной сети определять свой публичный адрес;

Вкладка Chan SIP Settings

Переходим к настройке chan_sip.

Вкладка Chan SIP Settings модуля Asterisk Sip Settings в FreePBX

    • NAT Settings
      • NAT — настройка NAT (Network Address Translation) для Asterisk.
        • yes — использовать NAT;
        • no — использовать трансляцию согласно RFC3581. Если кратко, то данный RFC позволяет отправлять ответа на порт, с которого запрос был получен, вместо порта, взятого из заголовка Via в SIP пакете;
        • never — не использовать NAT согласно RFC3581;
        • route — данная опция подойдет для клиентов, которые не отрабатывают поле rport в заголовках SIP сообщений (согласно RFC3581 );
      • IP Configuration — в данном поле вы можете указать параметры внешнего IP. Вы можете указать вручную ваш внешний IP – адрес, а также использовать DDNS (Dynamic DNS);
    • Audio Codecs
      • Non-Standard g726 — порой пир устанавливает порядок инициации параметров аудио потока (характерно для некоторых моделей Sipura и Grandstream) для кодека G726 с полосой пропускания 6, 24, 32, и 40 килобит/сек. Если требуется, установите эту опцию в положение Yes;
      • T38 Pass-Through — позволяет сквозное пропускание факсов через Asterisk без дополнительной обработки и внесения изменений по протоколу T38;
        • No — выключить сквозной режим;
        • Yes — включает T38 в режиме коррекции ошибок FEC (Forward Error Correction), а так же переписывает значение, предоставленное оконечным устройством, согласно которому мы можем отправить факс – пакеты размером 400 байт по протоколу T38;
        • Yes with FEC — включает T38 в режиме коррекции ошибок FEC;
        • Yes with Redundancy — включает T38 в режиме отказоустойчивой коррекции ошибок FEC;
        • Yes with no error correction — включает T38 без коррекции ошибок;
    • Video Codecs
      • Video Support — включив эту опцию в переключатель Enabled, вам будет предложено настроить кодеки для видео – звонков.;
      • TLS/SSL/SRTP Settings
        • Enable TLS -включить поддержку защищенных подключений по TLS;
        • Certificate Manager — включить сертификат для поддержки TLS. Его можно легко настроить в модуле Certificate Manager;
        • SSL Method — метод передачи SSL транспорта (только для TLS). По умолчанию используется sslv2;
        • Don’t Verify Server — не запрашивать проверку сертификата сервере (настройка влияет только на TLS).;
      • MEDIA & RTP Settings
        • Reinvite Behavior — опция, которая позволяет перенаправить поток данных RTP в случае, если пир находится не за NAT (средствами RTP это можно детектировать по IP – адресам);
        • RTP Timeout — сброс канала, на котором отсутствует голосовые потоки (пакеты) RTP/RTCP в течение указанного времени. Важно отметить, что постановка вызова на hold не является триггером для данного поля настройки.;
        • RTP Hold Timeout -сбросить звонок, поставленный на удержание после истечения таймера (в секундах) этого поля;
        • RTP Keep Alive — отправлять Keep Alive сообщения (проверки жизнеспособности сервиса) для поддержки NAT – сессии (в случае постановки вызова на удержание особенно актуально);
      • Notification & MWI
        • MWI Polling Freq — частота в секундах, в рамках которой будет производиться проверка смены статуса MWI (световая индикация, Message Waiting Indication) и отправка статуса пирам;
        • Notify Ringing — опция позволяет контролировать состояние абонента, понимая, что его телефон используется (INUSE) получением пакета SIP 180 RINGING. Удобно при использовании BLF функционала;
        • Notify Hold — контроль абонента и перевод в состояние INUSE, если звонок поставлен на удержание (событие ONHOLD).;
      • Registration Settings
        • Registration Timeout — таймаут регистрации. По умолчанию, равен 20 секунд. Иными словами, каждые 20 секунд будет отправляться запрос на регистрацию, пока не будет превышено максимальное количество попыток;
        • Registration Attempts — количество попыток регистрации, после которого сервер примет решение перестать отправлять запросы. Если выставлено как 0, то количество запросов ограничено не будет. В нормальной ситуации, значение 0 является вполне рабочим – Asterisk будет продолжать посылать запросы на регистрацию до тех пор, пока очередная попытка не увенчается успехом;
        • Registration Minimum Expiry — минимальное время, в течение которого сессия регистрации будет считаться просроченной;
        • Registration Maximum Expiry — максимальное время, в течение которого сессия регистрации будет считаться просроченной (для входящих регистраций);
        • Registration Default Expiry — длительность входящих и исходящих регистраций по умолчанию;
      • Jitter Buffer Settings
        • Enable Jitter Buffer — данная опция активирует использование джиттер буффера на принимающей стороне в рамках одного SIP – канала;
      • Advanced General Settings
        • Default Context — контекст обработки вызова по умолчанию, если не указан иной контекст. Сам по себе FreePBX назначает данную опцию как from-sip-external. Вносите изменения только в том случае, если полностью понимаете, что делаете;
        • Bind Address — в данном поле указывается IP – адрес, на котором Asterisk будет ожидать запросы на телефонный процессинг, на порту, указанном в опции Bind Port. Если указано как 0.0.0.0, Asterisk будет принимать запросы на всех адресах, указанных в настройках ОС. Рекомендуем оставить эту опцию без изменений. Кстати, chan_sip не поддерживает IPv6 для транспорта UDP. Если укажите [::], Asterisk будет слушать все IPv4 и все IPv6 адреса. Если вы настолько круты, что используйте PJSip, то смело используйте IPv6 :)
        • Bind Port — локальный UDP (и TCP, если включено в опции Enable TCP) порт, на котором Asterisk слушает обращения к chan_SIP. Если оставить поле пустым, то по умолчанию будет использован порт 5060 (5160);

В более старых версиях FreePBX, использовался порт 5060 (когда только 1 SIP драйвер был в наличии). В более новых, используется 5160);

        • TLS Bind Address — TCP порт на котором Asterisk слушает TLS (защищенные) обращения. Конфигурация вида[::], слушает IPv4 и IPv6 на всех интерфейсах;

Важно: мы рекомендуем использовать PJSip для всех коммункаци на базе протокола IPv6;

      • TLS Bind Port — локальной порт для входящих TCP обращений в рамках TLS SIP пакетов;
      • Allow SIP Guests — если установлено в положение Yes, то Asterisk разрешит гостевые SIP звонки и обработает их в контексте from-sip-exernal (или значение дефолтного контекста, если меняли). Переключение в положение No позволит запретить так же и анонимные звонки;
      • Enable SRV Lookup — данная опция сильно зависит от используемой версии Asterisk. В корреляции с версией, SRV функционал имеет свои ограничения;
      • Enable TCP — включить TCP;
      • Call Events — важная опция если вы работаете с AMI (Asterisk Manager Interface). При включенной опции, вы сможете мониторить различных события в AMI, которые генерирует SIP UA (user agent). Данный функционал полезен при разработке собственных приложений. ;
      • Other SIP Settings — прочие SIP – настройки, которые вы можете указать вручную (добавить соответствующее поле и его значение);