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

Ключ

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

...

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

Модификаторы SIP позволяют гибко осуществалять выбор требуемого метода (Request) или ответного сообщения (Response) по конкретному коду. Для этого используются команды:

  • sip method pattern <PATTERN> - необходимый метод или несколько методов задается при помощи регулярного выражения PCRE.
  • sip method type <TYPE> - необходимый метод выбирается из списка шести базовых методов стандарта RFC3261 (REGISTER, INVITE, ACK, CANCEL, BYE и OPTIONS). 
  • sip response-pattern <PATTERN> - необходимый код ответного сообщения задается при помощи регулярного выражения PCRE.

Команда sip method type аналогичнакоманде sip method pattern и может использоваться в случае когда модификацию требуется осуществлять только в одном и шести вышеуказанных методов. При ипользовании этой команды нет необходимости использовать pattern для написания регулярного выражения, достаточно выбрать метод из списка.  Команды sip method type и sip method pattern являются взаимоисключающими.

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

При использовании pattern, по-умолчанию, синтаксис PCRE является регистрозависимым, поэтому, например, паттерн "sip method pattern INVITE" не эквивалентен паттерну "sip method pattern invite" и отбор метода INVITE не будет осуществляться при использовании выражения "sip method pattern invite".


Примечание

При настройке модификатора обязательно следует указывать командами выше, для каких методов и кодов ответа он будет применяться. Иначе модификация не будет применена ни к одному сообщению.

Примеры отбора сообщений SIP для модификации:

Требуется применять модификатор, который добавляет заголовок Test_header cо значением - test_value только в сообщение INVITE:

Блок кода
languagec#
mod-table sip SIP_MOD
  mod 1 add
# Т.к. по условию требуется добавлять заголовок только в сообщения INVITE, можно воспользоваться командой "sip method type"
    sip method type Invite
    header name Test_header
    header value test_value
  exit

Требуется применять модификатор, который добавляет заголовок Test_header cо значением - test_value только в сообщения INVITE, BYE и в ответы 200 OK:

Блок кода
languagec#
mod-table sip SIP_MOD
  mod 1 add
# Т.к. по условию требуется добавлять заголовок в INVITE и BYE, надо воспользоваться командой "sip method pattern"
    sip method pattern INVITE|BYE
# Для добавления заголовка в ответы 200 OK следует добавить команду "sip response-pattern"
    sip response-pattern 200
    header name Test_header
    header value test_value
  exit

Требуется применять модификатор, который добавляет заголовок Test_header cо значением - test_value во все запросы и ответы:

Блок кода
languagec#
mod-table sip SIP_MOD
  mod 1 add
# Т.к. по условию требуется добавлять заголовок во все методы, используется отбор любых значений
    sip method pattern .+
# Т.к. по условию требуется добавлять заголовок во все ответы, используется отбор любых значений
    sip response-pattern .+
    header name Test_header
    header value test_value
  exit

Требуется применять модификатор, который добавляет заголовок Test_header cо значением - test_value только в предварительные ответы 100-199:

Блок кода
languagec#
mod-table sip SIP_MOD
  mod 1 add
# Т.к. по условию требуется добавлять заголовок во все ответы от 100 до 199, используется, например, следующее регулярное выражение
    sip response-pattern 1\\d{2}
    header name Test_header
    header value test_value
  exit

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

...