Описание

SIP-адаптер системы ECSS-10 относится к типу B2BUA. В таком случае вызов, установленный через ECSS-10, разбивается на два плеча: входящее для вызова и исходящее. Получается два участка обработки сигнализации, на каждом из которых SIP-адаптер ECSS-10 работает как независимый агент. Функции, описанные в данном разделе, позволяют определить специфичные заголовки SIP-сообщений, которые необходимо протранслировать в исходящее плечо. Трансляция заголовков может осуществляться без изменений либо с модификацией.

В системе реализовано:

  • транзит всего RURI, транзит только хост части RURI, транзит заголовков;
  • исключение или модификация принятых заголовков.

Транзитные функции

Настройка выполняется для интерфейса входящего плеча, который принимает SIP-запрос или SIP-ответ, таким образом, транзит настраивается только для входящих SIP-сообщений.

Транзит параметров для SIP-транков настраивается командой:

domain/<DOMAIN>/trunk/sip/set <GROUP_NAME> <IFACE_NAME> sip-transit set <PARAMETERS>

Транзит параметров для SIP-абонентов настраивается командой:

domain/<DOMAIN>/sip/user/set *|<GROUP_NAME> [*|<IFACE_NAME>] sip-transit set <PARAMETERS>

где

<GROUP_NAME> - имя группы транков;
<DOMAIN> - имя домена;
<IFACE_NAME> - имя интерфейса транка или абонента;
<PARAMETERS> - настраиваемый параметр для транзита SIP-абонентов.

  • headers = [<HEADER1>, <HEADER2>, ...],
    • <HEADER> - имя SIP-заголовка.

Транзит заголовков

Для входящих сообщений можно определить список заголовков, которые будут переданы в исходящее плечо.
Например, можно протранслировать через систему заголовки "Via", "User-Agent", позволяющие получить вызываемой стороне дополнительную информацию о терминале вызывающего абонента.

Из списка будут исключены "Call-ID", "To", "From", "CSeq", которые не могут быть протранслированы, поскольку не должны дублироваться.
Для удаления правил транзита заголовков в команде вводится пустой список.

Примеры:

/domain/test.domain/trunk/sip/set sip.test SEA.A sip-transit set headers=[User-Agent, Subject]
/domain/test.domain/sip/user/set export 410@192.168.23.166 sip-transit set request_line = domain_name, headers = [User-Agent, Subject]
/domain/test.domain/sip/user/set export 410@192.168.23.166 sip-transit set headers = []

Удаление всех правил

Удаление всех правил транзита выполняется командой:

  • для SIP-транков:

/domain/<DOMAIN>/trunk/sip/set <GROUP_NAME> <IFACE_NAME> sip-transit clean

  • для SIP-абонентов:

/domain/<DOMAIN>/sip/user/set *|<GROUP_NAME> [*|<IFACE_NAME>] sip-transit clean

где

<GROUP_NAME> - имя группы транков;
<IFACE_NAME> - имя интерфейса транка или пользователя.

Команда удаляет все правила для режимов и транзита заголовков. Предусмотрено предупреждение с возможностью прервать выполнение команды.

Пример:

/domain/test.domain/trunk/sip/set tmip TMIP.Public sip-transit clean
[set] This command clears of all transit rules. Undo will be impossible.
Continue: yes/no ?> yes
Executed on the pa_sip@alex
complete

Модификации

Настройка выполняется для интерфейса исходящего плеча, который отправляет SIP-запрос или SIP-ответ, таким образом, модификации настраиваются только для исходящих SIP-сообщений.

Модификации могут быть настроены для SIP-транков и SIP-абонентов.

Модификации для SIP-транков настраиваются командой:

/domain/<DOMAIN>/trunk/sip/set <GROUP_NAME> <IFACE_NAME> sip-modifications <COMMAND>

Модификации для SIP-абонентов настраиваются командой:

/domain/<DOMAIN>/sip/user/set *|<GROUP_NAME> [*|<IFACE_NAME>] sip-modifications <COMMAND>

где

<GROUP_NAME> - имя группы транков;<IFACE_NAME> - имя интерфейса транка или абонента;
<COMMAND> - команда модификации:

  • clean <HEADER> - очистка правила модификации;
  • ignore headers = [<HEADER1>, <HEADER2, ...] - список заголовков, которые должны быть исключены;
  • set <PARAMETERS> - формирование правила модификации.

Исключение заголовков

Для исходящего интерфейса задается список заголовков SIP-сообщений, которые не должны отправляться.
Для удаления правила исключения заголовков вводится пустой список.

sip-modifications ignore headers = [<HEADER1>, <HEADER2, ...]

где

<HEADERn> - имя заголовка, который не должен быть отправлен в исходящем сообщении.

Пример:

/domain/test.domain/trunk/sip/set tmip TMIP.Public sip-modifications ignore headers = [Accept, Category]
/domain/test.domain/sip/user/set export 410@192.168.23.166 sip-modifications ignore headers = [Accept, Category]
/domain/test.domain/sip/user/set export 410@192.168.23.166 sip-modifications ignore headers = []

Коррекция заголовков

Модификация передаваемых заголовков выполняется строго по заданному шаблону. В текущей версии ПО поддерживается включение/исключение/замена текста в заголовках. Возможны одновременная вставка текста в начало и конец, удаление или замена фрагмента.

sip-modifications set <PARAMETERS>

где

<PARAMETERS> - правила модификации:

  • header - имя заголовка, к которому будет применено правило, опциональный параметр;
  • add_start - текст, который будет добавлен в начале заголовка;
  • add_end - текст, который будет добавлен в конец заголовка;
  • add_new - текст, который будет добавлен в новый заголовок;
  • delete - текст, который должен быть удален, если имеются повторения указанного текста, то будет удалено только первое его упоминание;
  • insert - текст, вставляемый на место удаляемого, без параметра "delete" не используется.

Имя заголовка является обязательным условием. В правиле должен быть как минимум один параметр модификации. Разные правила модификации можно использовать одновременно.

Если вначале или конце вставляемого/удаляемого текста есть значащие пробелы или двойные кавычки, то такой текст должен быть взят в двойные кавычки.

Примеры:

в начале заголовка Contact будет добавлено имя "TEST CONTACT" с пробелом после кавычки:
/domain/test.domain/trunk/sip/set tmip TMIP.Public sip-modifications set header = contact, add_start = "TEST CONTACT " 

в конце заголовка Contact будет добавлен параметр "; test":
/domain/test.domain/trunk/sip/set tmip TMIP.Public sip-modifications set header = contact, add_end = ; test

будет создан новый заголовок Test-Header и в него будет добавлен параметр "text"
/domain/test.domain/trunk/sip/set tmip TMIP.Public sip-modifications set header = test-header, add_new = text

в заголовке Supported "replaces" будет заменено на "test":
/domain/test.domain/trunk/sip/set tmip TMIP.Public sip-modifications set header = supported, delete = replaces, insert = test

модификация удаляется, заголовок Supported будет передаваться без изменений:
/domain/test.domain/trunk/sip/set tmip TMIP.Public sip-modifications clean supported

Очистка всех правил

Удаление всех правил модификации выполняется командой:

sip-modifications clean <HEADER>

где

<HEADER> - имя заголовка, для которого нужно отменить модификации. При указании символа "*" будет выполнена очистка правил модификации для всех заголовков.

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

Пример:

/domain/test.domain/trunk/sip/set tmip TMIP.Public sip-modifications clean *
[set] This command clears of modification. Undo will be impossible.
Continue: yes/no ?> yes
Executed on the pa_sip@alex
complete