...
В результате модификации 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 модификации.
Логика обработки сообщения SIP при использовании OUT модификации.
Поддерживаемые модификации
Поддерживаются следующие типы модификации:
- add — добавление заголовка.
- no-
- add — добавление заголовка.
- no-transit — удаление заголовка. Данная команда используется только в out заголовках (таблицы in всегда вырезают все заголовки, полученные в сообщении из сети).
replace — замена заголовка.
Предупреждение - Данное правило не подразумевает передачу заголовка — если правило используется в in таблице, необходимо добавить передачу соответствующего заголовка с помощью правила
transit
.transit — передача заголовка. Данная команда используется только в in таблицах (таблицы out всегда передают все заголовки, полученные с другого плеча).
- copy - позволяет скопировать значение или часть значения заголовка в переменную для использования этого значения в модификаторах add или transit в рамках одной таблицы модификаций (на одном плече вызова).
Порядок применения модификаций в таблице
Модификации в рамках одной таблицы применяются последовательно ко всем заголовкам в порядке добавленном в конфигурации. В результате если какой-либо заголовок был добавлен модификацией add а затем этот же заголовок был указан в правиле no-transit, то в исходящем сообщении этот заголовок не будет передан.
Пример:
| Блок кода | ||
|---|---|---|
| ||
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)
...

