...
Логика обработки сообщения 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:
| Блок кода | ||
|---|---|---|
| ||
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:
| Блок кода | ||
|---|---|---|
| ||
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 во все запросы и ответы:
| Блок кода | ||
|---|---|---|
| ||
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:
| Блок кода | ||
|---|---|---|
| ||
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 |
Поддерживаемые модификации
...

