Перевод настроек файла sofia.conf.xml (Часть четвертая)
Call ID
inbound-use-callid-as-uuid
Для входящих вызовов задать UUID сессии, идентичный CallID этого вызова.
<param name="inbound-use-callid-as-uuid" value="true"/>
outbound-use-uuid-as-callid
Для исходящих вызовов установить CallID, соответствующий UUID сессии.
<param name="outbound-use-uuid-as-callid" value="true"/>
Это можно сделать в файле "..sip_profiles/external.xml".
TLS
Обязательно прочтите http://wiki.freeswitch.org/wiki/SIP_TLS#Limitations_of_the_Freeswitch_TLS.2FSSLv23_Implementation, прежде чем активировать некоторые перечисленные ниже функции, так как они могут повести себя не так, как вы ожидаете.
tls
TLS по умолчанию отключен, для активации установите значение true.
<param name="tls" value="$${internal_ssl_enable}"/>
tls-only
Выключено по умолчанию, после активации запрещает прослушивание на незашифрованном порту для этого соединения. Это может остановить действие множества вредоносных скриптов и, если все ваши клиенты подключаются посредством TLS, помогает сделать ваш сервер FreeSWITCH менее уязвимым для внешних воздействий.
<param name="tls-only" value="false"/>
tls-bind-params
Дополнительный параметр привязки для TLS.
<param name="tls-bind-params" value="transport=tls"/>
tls-sip-port
Порт, прослушиваемый на предмет TLS запросов (используется порт 5061, если не задано другое значение).
<param name="tls-sip-port" value="$${internal_tls_port}"/>
tls-cert-dir
Расположение SSL-сертификатов agent.pem и cafile.pem (требуется для TLS-сервера).
<param name="tls-cert-dir" value="$${internal_ssl_dir}"/>
tls-version
Версия TLS ("sslv2", "sslv3", "sslv23", "tlsv1", "tlsv1.1", "tlsv1.2"). Примечание: Телефоны могут не работать с протоколом TLSv1.
<param name="tls-version" value="$${sip_tls_version}"/>
Если не задано другое, то по умолчанию: "tlsv1,tlsv1.1,tlsv1.2".
tls-passphrase
Если ваш agent.pem защищен кодовой фразой, впишите её сюда, чтобы FreeSWITCH cмог расшифровать ключ.
<param name="tls-passphrase" value=""/>
tls-verify-date
Должен ли у сертификата клиента/сервера быть указан срок действия, проверенный на предмет актуальности и активности.
<param name="tls-verify-date" value="true"/>
tls-verify-policy
Этот параметр определяет, производится ли какая-либо проверка безопасности сертификатов клиента/сервера. Как правило, проверяется, являются ли сертификаты действительными по cafile.pem. Установите значение 'in', чтобы проверять только входящие соединения, 'out', чтобы проверять только исходящие соединения, 'all' для проверки всех соединений, а также 'in_subjects', 'out_subjects' и 'all_subjects' для субъектной проверки (субъектная проверка исходящих соединений проводится по отношению к hostname/ip удалённой стороны). Можно выставить несколько значений, разделив их вертикальной чертой '|', например, 'in_subjects|out'. Значение по умолчанию — none.
<param name="tls-verify-policy" value="none"/>
tls-verify-depth
Глубина проверки сертификата посредством файла cafile.pem, если эта проверка включена (tls-verify-policy). По умолчанию установлено значение глубины 2.
<param name="tls-verify-depth" value="2"/>
tls-verify-in-subjects
Если активирована проверка для входящих подключений (для tls-verify-policy установлено 'in_subjects' или 'all_subjects') задается список разрешенных субъектов, разделённых вертикальной чертой '|'. Обратите внимание, что это работает только для входящих соединений, в то время как исходящие всегда проверяются по hostname/ip.
<param name="tls-verify-in-subjects" value=""/>
DTMF
rfc2833-pt
<param name="rfc2833-pt" value="101"/>
dtmf-duration
<param name="dtmf-duration" value="100"/>
dtmf-type
Установите этот параметр в профиль 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
pass-rfc2833
По умолчанию: false
Если поставить значение true, DTMF будет проходить с одного конца соединения до другого, оставаясь нетронутым RFC 2833. В противном случае сигнал подвергается декодированию и перекодированию, прежде чем дойдёт до назначения.
<param name="pass-rfc2833" value="true"/>
liberal-dtmf
По умолчанию: false Используйте этот параметр чтобы при работе с DTMF всегда предлагался 2833, но принимался как 2833, так и INFO. Не рекомендуется использовать этот параметр, так как он разрабатывался в качестве попытки справиться с ошибками в реализации SIP.
<param name="liberal-dtmf" value="true"/>
Опции, связанные с SIP
enable-timer
Включение и отключение таймеров сеансов SIP RFC 4028.
<param name="enable-timer" value="false"/>
session-timeout
Таймеры сеансов для всех вызовов истекают после указанного промежутка времени, после чего отправляется повторное приглашение (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
enable-100rel
Активирует поддержку для 100rel (PRACK-сообщение о стопроцентной надежности, назначенное в RFC3262). Это исправляет проблему SIP, когда на предварительное сообщение, такое как "180 Ringing", вызываемая сторона не отправляет ACK, поэтому происходит обрыв соединения из-за якобы низкой надёжности линии. *2009-07-08:* Включение этой функции может привести к падению FreeSWITCH, смотрите FSCORE-392.
<param name="enable-100rel" value="true"/>
minimum-session-expires
Устанавливает значение "Min-SE" (в секундах) из RFC 4028. Это значение не должно быть менее 90 секунд.
<param name="minimum-session-expires" value="120"/>
sip-options-respond-503-on-busy
Если для этого параметра установлено значение 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.
sip-force-expires
Установка этого параметра переопределяет значение expires для ответа 200 "OK" на все пакеты SIP REGISTER, приходящие на этот sip_profile.
Этот параметр можно определить для каждого отдельного пользователя, если установить переменную sip-force-expires в пользовательском каталоге.
sip-expires-max-deviation
Установка этого параметра добавляет случайную погрешность в значение 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 в пользовательском каталоге.
outbound-proxy
Если установить этот параметр, все исходящие транзакции будут направляться на заданный прокси-сервер.
<param name="outbound-proxy" value="127.0.0.1"/>
send-display-update
Запрещает FreeSWITCH обновлять дисплей во время вызова.
<param name="send-display-update" value="false"/>
Опции, связанные с RTP
auto-jitterbuffer-msec
Здесь устанавливается произвольный размер джиттер-буфера для всех вызовов, проходящих через этот профиль.
<param name="auto-jitterbuffer-msec" value="120"/>
rtp-timer-name
<param name="rtp-timer-name" value="soft"/>
rtp-rewrite-timestamps
Если вы не хотите, чтобы временные метки переходили из одного RTP потока к другому, включите в SIP-профиль параметр rtp-rewrite-timestamps. (или для каждого вызова с помощью канальной переменной rtp_rewrite_timestamps в диалплане).
В результате FreeSWITCH будет восстанавливать и перезаписывать временные метки во всех RTP-потоках, направленных к конечным точкам, использующим этот SIP-профиль.
Это может понадобиться для исправления проблем с аудио при отправлении вызова на некоторые проблемные шлюзы, несовместимые со спецификациями RFC. (Cirpack является одним из примеров).
<param name="rtp-rewrite-timestamps" value="true"/>
rtp-timeout-sec
Время отсутствия активности в RTP-потоке (тишины), до того, как FreeSWITCH сочтёт вызов разъединённым и отключится. Рекомендуется вместо этой функции использовать таймеры сеанса. Если эта настройка пропущена, значение по умолчанию равняется "0", то есть таймаут отключен.
<param name="rtp-timeout-sec" value="300"/>
rtp-hold-timeout-sec
Время отсутствия активности в RTP-потоке (тишины) для вызова, поставленного на удержание конечной точкой, прежде чем FreeSWITCH сочтёт его разъединённым и отключится. Рекомендуется вместо этой функции использовать таймеры сеанса. Если эта настройка пропущена, значение по умолчанию равняется "0", то есть таймаут отключен.
<param name="rtp-hold-timeout-sec" value="1800"/>
rtp-autoflush-during-bridge
Контролирует, что происходит при обнаружении 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
Действует аналогично "rtp-autoflush-during-bridge", но для некоммутируемых вызовов (таких как факс, IVR и эхо-тест).
В отличие от "rtp-autoflush-during-bridge", здесь по умолчанию стоит false, то есть для некоммутируемых вызовов пакеты, вызывающие большую задержку не будут отброшены. Благодаря этому обеспечивается более плавный звук, возможно за счёт увеличения задержек (или "лагов").
Установка для "rtp-autoflush" значения true позволяет отбрасывать пакеты, чтобы уменьшить задержку, когда это возможно. Однако это может привести к ошибкам в распознавании DTMF, а также в факсах и других процессах, зависящих от всех принимаемых пакетов.
<param name="rtp-autoflush" value="true"/>
Auth
Эти параметры связаны с аутентификацией и представляют собой требования для идентификации конечных точек SIP во FreeSWITCH.
challenge-realm
Выбрать ключ вызова 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"/>
accept-blind-auth
Принимать аутентификационные данные практически без проверки (для большинства людей не очень полезная функция).
<param name="accept-blind-auth" value="true"/>