Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

В результате модификации mod 5 cgpn, выполнена модификация CgPN 24001 на 84001, в результате mod 10 cdpn - модификация CdPN 23002 на 22222.

Примечание

При использовании модификатора CgPN помимо заголовка From изменяется user part SIP URI заголовка Contact. При использовании модификатора CdPN помимо заголовка To  изменяется user part SIP в Request-URI


Примечание

Модификаторы common настроенные в качестве IN могут влиять на результат маршрутизации, при использовании в route-table условий (condition), т.к. правила  route-table обрабатываются после применения модификации. Модификаторы настроенные в качестве OUT не влияют на результат маршрутизации.

...

Предупреждение

Для сообщений REGISTER common модификаторы не применяются.

Таблица модификаций содержит список модификаций, которые применяются к входящим или исходящим SIP-сообщениям. Таблицы модификаций используются в транках и транк-группах. Их можно подключить, как out — тогда правила будут применяться при отправке сообщения. Или, как in — тогда правила применяются при получении сообщения.
Таблица из транк-групп применяется только в том случае, если в транке нет своей таблицы. В модификациях можно использовать регулярные выражения PCRE

При сравнении имён заголовков требуется точное совпадение строк, в то время как при поиске в теле заголовка — достаточно совпадения подстроки. По умолчанию из входящего сообщения
вырезаются все заголовки. Модификации не применяются к тем сообщениям, которые создаются самим SBC (100 trying, ack в ответ на 200 OK, 200 OK в ответ на BYE).

Неподдерживаемые заголовки

Нельзя модифицировать следующие заголовки:

  • Call-ID

  • Contact

  • Content-Length

  • Content-Type

  • Cseq

  • From

  • To

  • Via

  • Accept

  • Allow

  • Expires

  • Min-Expires

  • Proxy-Authenticate

  • Proxy-Authorization

  • Require

  • Supported

  • WWW-Authenticate

  • Max-forwards

  • Min-SE

  • Session-Expires

Поддерживаемые модификации

В текущей версии поддерживаются следующие модификации:


mod-table sip

Данный тип модификации позволяет изменять любые заголовки сообщений SIP. Процесс модификации заголовков отличается в зависимости от режима использования модификатора IN или OUT.

Существуют ограничения на модификацию основных заголовков sip к которым относятся: Call-ID, From, To, Via, CSeq, Contact, Max-Forwards, Route, Record-Route, Content-Type, Content-Lenght, Require, Supported.

Предупреждение

Применение модификаторов к основным заголовкам SIP может привести к нарушению обработки сообщений. Не рекомендуется модифицировать основные заголовки.

Логика обработки сообщения SIP при использовании IN модификации.


Image Added

Логика обработки сообщения SIP при использовании OUT модификации.

Image Added


Поддерживаемые модификации

Поддерживаются следующие типы модификации:

  • add — добавление заголовка.
  • no-
  • add — добавление заголовка.
  • no-transit — удаление заголовка. Данная команда используется только в out заголовках (таблицы in всегда вырезают все заголовки, полученные в сообщении из сети).
  • replace — замена заголовка.

    Предупреждение
  • Данное правило не подразумевает передачу заголовка — если правило используется в in таблице, необходимо добавить передачу соответствующего заголовка с помощью правила

    transit

    transit — передача заголовка. Данная команда используется только в in таблицах (таблицы out всегда передают все заголовки, полученные с другого плеча).

  • copy - позволяет скопировать значение или часть значения заголовка в переменную для использования этого значения в модификаторах add или transit в рамках одной таблицы модификаций (на одном плече вызова).

Порядок применения модификаций в таблице

Модификации в рамках одной таблицы применяются последовательно ко всем заголовкам в порядке добавленном в конфигурации. В результате если какой-либо заголовок был добавлен модификацией add а затем этот же заголовок был указан в правиле no-transit, то в исходящем сообщении этот заголовок не будет передан.

Пример:

Блок кода
languagec#
mod-table sip SIP_MOD
  mod 1 add
    sip method pattern '.+'
    sip response-pattern '.+'
    header name Test_header
    header value Test_value
  exit
  mod 2 no-transit
    sip header-pattern 'Test_header'
    sip method pattern '.+'
    sip response-pattern '.+'
    value-pattern 'Test_value'
  exit

Заголовок Test_header не будет переданВ первую очередь применяются модификации транзита — incoming и outcoming. Затем применяются модификации замены в том порядке, в котором они заданы в таблице. В конце добавляются новые заголовки.

Пример использования модификатора добавления заголовка (add)

...