Для входящих вызовов задать UUID сессии, идентичный CallID этого вызова.
<param name="inbound-use-callid-as-uuid" value="true"/>
Для исходящих вызовов установить CallID, соответствующий UUID сессии.
<param name="outbound-use-uuid-as-callid" value="true"/>
Это можно сделать в файле "..sip_profiles/external.xml".
Обязательно прочтите http://wiki.freeswitch.org/wiki/SIP_TLS#Limitations_of_the_Freeswitch_TLS.2FSSLv23_Implementation, прежде чем активировать некоторые перечисленные ниже функции, так как они могут повести себя не так, как вы ожидаете.
TLS по умолчанию отключен, для активации установите значение true.
<param name="tls" value="$${internal_ssl_enable}"/>
Выключено по умолчанию, после активации запрещает прослушивание на незашифрованном порту для этого соединения. Это может остановить действие множества вредоносных скриптов и, если все ваши клиенты подключаются посредством TLS, помогает сделать ваш сервер FreeSWITCH менее уязвимым для внешних воздействий.
<param name="tls-only" value="false"/>
Дополнительный параметр привязки для TLS.
<param name="tls-bind-params" value="transport=tls"/>
Порт, прослушиваемый на предмет TLS запросов (используется порт 5061, если не задано другое значение).
<param name="tls-sip-port" value="$${internal_tls_port}"/>
Расположение SSL-сертификатов agent.pem и cafile.pem (требуется для TLS-сервера).
<param name="tls-cert-dir" value="$${internal_ssl_dir}"/>
Версия TLS ("sslv2", "sslv3", "sslv23", "tlsv1", "tlsv1.1", "tlsv1.2"). Примечание: Телефоны могут не работать с протоколом TLSv1.
<param name="tls-version" value="$${sip_tls_version}"/>
Если не задано другое, то по умолчанию: "tlsv1,tlsv1.1,tlsv1.2".
Если ваш agent.pem защищен кодовой фразой, впишите её сюда, чтобы FreeSWITCH cмог расшифровать ключ.
<param name="tls-passphrase" value=""/>
Должен ли у сертификата клиента/сервера быть указан срок действия, проверенный на предмет актуальности и активности.
<param name="tls-verify-date" value="true"/>
Этот параметр определяет, производится ли какая-либо проверка безопасности сертификатов клиента/сервера. Как правило, проверяется, являются ли сертификаты действительными по cafile.pem. Установите значение 'in', чтобы проверять только входящие соединения, 'out', чтобы проверять только исходящие соединения, 'all' для проверки всех соединений, а также 'in_subjects', 'out_subjects' и 'all_subjects' для субъектной проверки (субъектная проверка исходящих соединений проводится по отношению к hostname/ip удалённой стороны). Можно выставить несколько значений, разделив их вертикальной чертой '|', например, 'in_subjects|out'. Значение по умолчанию — none.
<param name="tls-verify-policy" value="none"/>
Глубина проверки сертификата посредством файла cafile.pem, если эта проверка включена (tls-verify-policy). По умолчанию установлено значение глубины 2.
<param name="tls-verify-depth" value="2"/>
Если активирована проверка для входящих подключений (для tls-verify-policy установлено 'in_subjects' или 'all_subjects') задается список разрешенных субъектов, разделённых вертикальной чертой '|'. Обратите внимание, что это работает только для входящих соединений, в то время как исходящие всегда проверяются по hostname/ip.
<param name="tls-verify-in-subjects" value=""/>
<param name="rfc2833-pt" value="101"/>
<param name="dtmf-duration" value="100"/>
Установите этот параметр в профиль SIP:
<param name="dtmf-type" value="info"/>
или
<param name="dtmf-type" value="rfc2833"/>
или
<param name="dtmf-type" value="none"/>
или задайте переменную в SIP-шлюзе или профиле пользователя (не в канале, так как она должна быть расположена перед CS_INIT):
<variables>
<variable direction="inbound|outbound|both" name="dtmf_type" value="info">
</variables>
Обратите внимание, что здесь используется "_" вместо "-" (это переменная, установленная в диалплане). (24.10.2010: при тестировании оказалось, что "both" не работает, тогда как "outbound" функционирует нормально)
Примечание: для входящих вызовов используется DTMF, Misc. Dialplan Tools start_dtmf. Чтобы изменить маршрутизацию для исходящих соединений с info или rfc2833 на исходящую используйте Misc._Dialplan_Tools_start_dtmf_generate
По умолчанию: false
Если поставить значение true, DTMF будет проходить с одного конца соединения до другого, оставаясь нетронутым RFC 2833. В противном случае сигнал подвергается декодированию и перекодированию, прежде чем дойдёт до назначения.
<param name="pass-rfc2833" value="true"/>
По умолчанию: false Используйте этот параметр чтобы при работе с DTMF всегда предлагался 2833, но принимался как 2833, так и INFO. Не рекомендуется использовать этот параметр, так как он разрабатывался в качестве попытки справиться с ошибками в реализации SIP.
<param name="liberal-dtmf" value="true"/>
Включение и отключение таймеров сеансов SIP RFC 4028.
<param name="enable-timer" value="false"/>
Таймеры сеансов для всех вызовов истекают после указанного промежутка времени, после чего отправляется повторное приглашение (re-invite). Если не указано другое время, по умолчанию — 30 минут. Некоторые шлюзы отклоняют приглашения, приходящие чаще, чем через 30 минут. Это значение имеет отношение к Session-Expires в RFC 4028. (Время, когда элемент закрывает сессию по таймауту, если до этого она не будет успешно обновлена).
<param name="session-timeout" value="1800"/>
Примечание: Если вашему коммутатору требуется таймер (например, Huawei SoftX3000 нуждается в этой функции, иначе звонки сбрасываются с "ошибкой таймера сессии") то вы можете отказаться от обновления, убирающего опцию Require: timer с помощью следующих строк:
git log -1 -p 58c3c3a049991fedd39f62008f8eb8fca047e7c5 libs/sofia-sip/libsofia-sip-ua | patch -p1 -R
touch libs/sofia-sip/.update
make mod_sofia-clean
make mod_sofia-install
Активирует поддержку для 100rel (PRACK-сообщение о стопроцентной надежности, назначенное в RFC3262). Это исправляет проблему SIP, когда на предварительное сообщение, такое как "180 Ringing", вызываемая сторона не отправляет ACK, поэтому происходит обрыв соединения из-за якобы низкой надёжности линии. *2009-07-08:* Включение этой функции может привести к падению FreeSWITCH, смотрите FSCORE-392.
<param name="enable-100rel" value="true"/>
Устанавливает значение "Min-SE" (в секундах) из RFC 4028. Это значение не должно быть менее 90 секунд.
<param name="minimum-session-expires" value="120"/>
Если для этого параметра установлено значение true, то если FreeSWITCH стоит на паузе или превышено максимальное количество сеансов, в ответ на входящие SIP OPTIONS будет приходить сообщение 503 "Maximum Calls In Progress".
Если установлено 'false' или пустое значение (по умолчанию), ответом на SIP OPTIONS всегда будет 200 "OK".
<param name="sip-options-respond-503-on-busy" value="false"/>
Установка для этого параметра значения 'true' может пригодиться, если вы используете прокси, такие как OpenSIPS или Kamailio, с модулем диспетчера для зондирования сервера FreeSWITCH с помощью пакетов SIP OPTIONS.
Установка этого параметра переопределяет значение expires для ответа 200 "OK" на все пакеты SIP REGISTER, приходящие на этот sip_profile.
Этот параметр можно определить для каждого отдельного пользователя, если установить переменную sip-force-expires в пользовательском каталоге.
Установка этого параметра добавляет случайную погрешность в значение expires для ответа 200 "OK" на все пакеты SIP REGISTER, приходящие на этот sip_profile.
В результате клиенты не смогут перерегистрироваться в том же интервале времени, за счёт чего будет распределена нагрузка на систему.
Например, если задать:
<param name="sip-force-expires" value="1800"/>
<param name="sip-expires-max-deviation" value="600"/>
то интервал истечения будет между 1800-600=1200 и 1800+600=2400 секунд.
Этот параметр можно определить для каждого отдельного пользователя, если установить переменную sip-expires-max-deviation в пользовательском каталоге.
Если установить этот параметр, все исходящие транзакции будут направляться на заданный прокси-сервер.
<param name="outbound-proxy" value="127.0.0.1"/>
Запрещает FreeSWITCH обновлять дисплей во время вызова.
<param name="send-display-update" value="false"/>
Здесь устанавливается произвольный размер джиттер-буфера для всех вызовов, проходящих через этот профиль.
<param name="auto-jitterbuffer-msec" value="120"/>
<param name="rtp-timer-name" value="soft"/>
Если вы не хотите, чтобы временные метки переходили из одного RTP потока к другому, включите в SIP-профиль параметр rtp-rewrite-timestamps. (или для каждого вызова с помощью канальной переменной rtp_rewrite_timestamps в диалплане).
В результате FreeSWITCH будет восстанавливать и перезаписывать временные метки во всех RTP-потоках, направленных к конечным точкам, использующим этот SIP-профиль.
Это может понадобиться для исправления проблем с аудио при отправлении вызова на некоторые проблемные шлюзы, несовместимые со спецификациями RFC. (Cirpack является одним из примеров).
<param name="rtp-rewrite-timestamps" value="true"/>
Время отсутствия активности в RTP-потоке (тишины), до того, как FreeSWITCH сочтёт вызов разъединённым и отключится. Рекомендуется вместо этой функции использовать таймеры сеанса. Если эта настройка пропущена, значение по умолчанию равняется "0", то есть таймаут отключен.
<param name="rtp-timeout-sec" value="300"/>
Время отсутствия активности в RTP-потоке (тишины) для вызова, поставленного на удержание конечной точкой, прежде чем FreeSWITCH сочтёт его разъединённым и отключится. Рекомендуется вместо этой функции использовать таймеры сеанса. Если эта настройка пропущена, значение по умолчанию равняется "0", то есть таймаут отключен.
<param name="rtp-hold-timeout-sec" value="1800"/>
Контролирует, что происходит при обнаружении FreeSWITCH задержки в аудиопотоке RTP в установленном соединении. (Это может случиться, если на сервере FreeSWITCH недостаточно доступного процессорного времени).
Если установлено "true" (по умолчанию), FreeSWITCH будет отмечать, когда в очереди входящих ожидает прочтения больше одного пакета RTP. Если это состояние сохраняется в течение более пяти секунд, RTP-пакеты сбрасываются, чтобы "догнать" аудиопоток. Например, если в очереди всегда находится пять дополнительных пакетов по 20 мс, то их отбрасывание поможет устранить задержку звука в 100 мс. Это приведет к провалу в аудио потоке, так как некоторая его часть отбрасывается, но позволит на 100 мс уменьшить задержку для оставшейся части вызова.
Если для rtp-autoflush-during-bridge установлено значение false, FreeSWITCH будет сохранять все RTP-пакеты вызовов, несмотря на увеличивающуюся задержку звука.
<param name="rtp-autoflush-during-bridge" value="true"/>
Действует аналогично "rtp-autoflush-during-bridge", но для некоммутируемых вызовов (таких как факс, IVR и эхо-тест).
В отличие от "rtp-autoflush-during-bridge", здесь по умолчанию стоит false, то есть для некоммутируемых вызовов пакеты, вызывающие большую задержку не будут отброшены. Благодаря этому обеспечивается более плавный звук, возможно за счёт увеличения задержек (или "лагов").
Установка для "rtp-autoflush" значения true позволяет отбрасывать пакеты, чтобы уменьшить задержку, когда это возможно. Однако это может привести к ошибкам в распознавании DTMF, а также в факсах и других процессах, зависящих от всех принимаемых пакетов.
<param name="rtp-autoflush" value="true"/>
Эти параметры связаны с аутентификацией и представляют собой требования для идентификации конечных точек SIP во FreeSWITCH.
Выбрать ключ вызова realm. По умолчанию auto_to, если не установлено другое значение.
auto_from - использует поле from в качестве значения для SIP realm. auto_to - использует поле to в качестве значения для SIP realm. <anyvalue>
- можно ввести любое значение SIP realm.
Если вы хотите, чтобы работал набор через URL-адрес, используйте auto_from.
Используя любое значение, кроме auto_to или auto_from, вы теряете возможность зарегистрировать несколько доменов.
Примечание: закомментируйте для восстановления поведения системы, характерного для периода до 29.09.2008.
<param name="challenge-realm" value="auto_from"/>
Принимать аутентификационные данные практически без проверки (для большинства людей не очень полезная функция).
<param name="accept-blind-auth" value="true"/>
© Внимание! Все права на перевод принадлежат фирме Гарантум. При ссылке или цитировании данной информации обязательно вставляйте ссылку