...
В результате если какой-либо заголовок был добавлен модификацией add, а затем этот же заголовок был указан в правиле no-transit, то в исходящем сообщении этот заголовок не будет передан. Scroll Pagebreak
Пример:
Таблица модификации SIP_MOD используется в качестве OUT:
...
Описание всех команд для настройки общих модификаторв модификаторов приведено в разделе разделе Настройки SIP модификаторов.
| Scroll Pagebreak |
|---|
...
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# configure vesbc(config)# esbc #Создание таблицы модификаторов MODTABLE_IN: vesbc(config-esbc)# mod-table sip MODTABLE_IN vesbc(esbc-mod-table)# #Добавление в таблицу модификаторов правила на добавление заголовка: vesbc(esbc-mod-table)# mod 0 add vesbc(esbc-mod-table-modification)# #Выбор запроса, в котором будет добавлен заголовок (в данном случае INVITE): vesbc(esbc-mod-table-modification)# sip method type Invite #Указать название заголовка, который необходимо вставить (в данном случае Test_header): vesbc(esbc-mod-table-modification)# header name Test_header #Указать содержимое заголовка, которое необходимо вставить (в данном случае example string): vesbc(esbc-mod-table-modification)# header value "example string" vesbc(esbc-mod-table-modification)# exit vesbc(esbc-mod-table)# exit #Привязать таблицу модификаторов к входящему транку TRUNK_IN: vesbc(config-esbc)# trunk sip TRUNK_IN vesbc(config-esbc-trunk-sip)# mod-table sip in MODTABLE_IN #Применить и подтвердить изменения: vesbc(config-esbc-trunk-sip)# do commit Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds. vesbc(config-esbc-trunk-sip)# do confirm Configuration has been confirmed. Commit timer canceled. |
| Scroll Pagebreak |
|---|
После внесения изменений в конфигурацию с TRUNK_IN приходит следующий INVIITE:
...
| Блок кода |
|---|
vesbc(config-esbc)# trunk sip TRUNK_IN vesbc(config-esbc-trunk-sip)# mod-table sip in MODTABLE_IN vesbc(config-esbc-trunk-sip)# do commit vesbc(config-esbc-trunk-sip)# do confirm |
| Scroll Pagebreak |
|---|
В результате, когда в транке TRUNK_IN будет получен INVITE, содержащий заголовок "User-Agent" со значением "TestUA", в исходящем INVITE также будет присутствовать этот заголовок:
...
| Блок кода |
|---|
INVITE sip:23002@192.168.80.26:5080 SIP/2.0 Via: SIP/2.0/UDP 192.168.80.129:5080;rport;branch=z9hG4bKPj11eb899a-a1c3-4659-b78d-4bba6bdc17ce Max-Forwards: 70 From: "sipp" <sip:24001@192.168.80.129>;tag=c090d50d-4b15-4db1-94ac-3ea77fe3dd7d To: "sut" <sip:23002@192.168.80.26> Contact: <sip:24001@192.168.80.129:5080;transport=udp> Call-ID: db38ba3ff093153f38b412372a1bed35 CSeq: 20022 INVITE Allow: INVITE, ACK, BYE, CANCEL, PRACK, REGISTER, INFO, REFER, NOTIFY, OPTIONS, SUBSCRIBE, MESSAGE, UPDATE Supported: 100rel, replaces, ice Content-Type: application/sdp Content-Length: 241 [SDP] |
| Scroll Pagebreak |
|---|
Настраиваем модификатор модификатор MOD_TABLE для замены IP-адресов на testdomain.loc:
...
Сообщение OPTIONS отправляется только в случае, когда в транке отсутствует активность SIP после окончания периода success-interval. Т. е. в случае , когда если через транк проходят вызовы с большей частотой, чем указано в настройке success-interval, то сообщения OPTIONS не будут отправляться на встречную сторону, т. к. очевидно, что направление доступно. Если после последнего отправленного или полученного сообщения SIP прошел период равный success-interval, то отправляется OPTIONS. При получении ответа на него (с любым статус-кодом) направление считается доступным. Сообщения OPTIONS будут отправляться с периодом success-interval до того момента, пока либо не появится активность SIP, либо не будут получены ответы на отправленные OPTIONS. Если не будет ответов на OPTIONS, транк считается недоступным, и сообщения OPTIONS будут отправляться с интервалом failed-interval до тех пор, пока транк снова не станет доступным. Scroll Pagebreak
Пример настройки:
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# configure vesbc(config)# esbc #Создать SIP-профиль NEW_SIP_PROFILE: vesbc(config-esbc)# sip profile NEW_SIP_PROFILE vesbc(config-esbc-sip-profile)# #Включить контроль доступности: vesbc(config-esbc-sip-profile)# keepalive enable vesbc(config-esbc-sip-profile)# #Настроить интервалы контроля: vesbc(config-esbc-sip-profile)# keepalive success-interval 120 vesbc(config-esbc-sip-profile)# keepalive failed-interval 30 vesbc(config-esbc-sip-profile)# vesbc(config-esbc-sip-profile)# exit vesbc(config-esbc)# #Привязать SIP-профиль к транку TRUNK_OUT: vesbc(config-esbc)# trunk sip NEW_TRUNK vesbc(config-esbc-trunk-sip)# sip profile NEW_SIP_PROFILE vesbc(config-esbc-trunk-sip)# #Применить и подтвердить изменения: vesbc(config-esbc-trunk-sip)# do commit Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds. vesbc(config-esbc-trunk-sip)# do confirm Configuration has been confirmed. Commit timer canceled. |
...
Входящий вызов начинает маршрутизироваться по таблице маршрутизации (ROUTE_TABLE). В результате вызов маршрутизируется по правилу RULE_1 на TRUNK_GROUP и оттуда в TRUNK_1. TRUNK_1 недоступен, вызов отбивается по истечению истечении Timer B, и происходит перемаршрутизация на TRUNK_2 (следующий транк в транковой группе). Из TRUNK_2 приходит ответ 404 Not Found, и т. к. код ответа совпадает с маской из списка, который используется в TRUNK-GROUP, то происходит маршрутизация на следующее направление. Поскольку в транковой группе больше нет транков, маршрутизация переходит к RULE_2, и вызов маршрутизируется в TRUNK_3.
| Предупреждение |
|---|
Без использования списка причин отбоя, перемаршрутизация происходит только по недоступности транка. |
| Предупреждение |
|---|
Для абонентских интерфейсов, использование списка причин отбоя не влияет на маршрутизацию. Перемаршрутизация осуществляться не будет. |
Перемаршрутизация абонентовабонентов
Вызов с зарегистрированного абонента будет направлен в тот транк, через который осуществлялась его регистрация. В случае неуспешного вызова, перемаршрутизация осуществляться не будет.
При вызове с незарегистрированного абонента сначала идёт проверка, разрешены ли с этого абонентского интерфейса вызовы без регистрации (allow_unreg_call), если проверка успешна, то вызов смаршрутизируется по привязанной таблице маршрутизации и в случае недоступности транка/совпадении ответа с маской из списка произойдёт маршрутизация на следующее направление.
Поведение при перенаправлении
| Якорь | ||||
|---|---|---|---|---|
|
Настройка поведения при перенапрвлении позволяет использовать разные режимы обработки сообщений 3XX.
...
Отправляем INVITE абоненту на тот транк, где он зарегистрирован и 181 в сторону A.
| Блок кода | ||
|---|---|---|
| ||
A(транк)---IP_a | IP_ESBC_1---ESBC---IP_ESBC_3 | IP_d---D(trunk)
| |
| INVITE number_с@IP_d---------|---------------------->
| From: number_a@IP_ESBC_3 |
| To: number_b@IP_b |
| Diversion: number_b@IP_ESBC_3|
| |
<--------------------|-----------181 Call is Being Forwarded | |
...
Отправляем INVITE на указанный адрес и 181 в сторону А.
| Блок кода | ||
|---|---|---|
| ||
A(транк)---IP_a | IP_ESBC_1---ESBC---IP_ESBC_2 | IP_с
| |
| INVITE number_с@IP_c |---------------------->
| From: number_a@IP_ESBC_2 |
| To: number_b@IP_b |
| Diversion: number_b@IP_ESBC_2|
| |
<--------------------|-----------181 Call is Being Forwarded | |
...
| Блок кода |
|---|
vesbc# configure vesbc(config)# esbc #Создать медиапрофиль для транка TRUNK_2: vesbc(config-esbc)# media profile FOR_TRUNK_2 #Запретить использование всех видеокодеков: vesbc(config-esbc-media-profile)# no codec allow H26 vesbc(config-esbc-media-profile)# no codec allow H261 vesbc(config-esbc-media-profile)# no codec allow H263 vesbc(config-esbc-media-profile)# no codec allow VP vesbc(config-esbc-media-profile)# exit #Привязать медиапрофиль к транку: vesbc(config-esbc)# trunk sip TRUNK_2 vesbc(config-esbc-trunk-sip)# media profile FOR_TRUNK_2 vesbc(config-esbc-trunk-sip)# do commit vesbc(config-esbc-trunk-sip)# do confirm |
...
В результате конфигурация медиапрофиля будет выглядеть следующим образом:
| Блок кода |
|---|
media profile FOR_TRUNK_2
codec allow AMR
codec allow CLEARMODE
codec allow CN
codec allow G72
codec allow G722/ 9
codec allow G728 15
codec allow G729/ 18
codec allow GSM 3
codec allow ILBC
codec allow L16/44100 11
codec allow L16/44100/2 10
codec allow OPUS
codec allow PCMA 8
codec allow PCMU 0
codec allow SPEEX
codec allow T38 t38
codec allow telephone-event
exit |
...
Для вызовов, поступающих в TRUNK_2, все видеокодеки из SDP будут удалены вне зависимости от направления маршрутизации.
| Scroll Pagebreak |
|---|
2. Запретить использование кодеков G729 и G726 для транка TRUNK_1.
...
Пример настройки Public IP для транка:
| Блок кода | ||
|---|---|---|
| ||
#Настройка SIP-транспорта для транка: vesbc# configure vesbc(config)# esbc vesbc(config-esbc)# sip transport TRUNK_TRANSPORT vesbc(config-esbc-sip-transport)# ip address 192.168.1.1 vesbc(config-esbc-sip-transport)# exit #Настройка медиаресурсов для транка: vesbc(config-esbc)# media resource TRUNK_MEDIA vesbc(config-esbc-media-resource)# ip address 192.168.1.1 vesbc(config-esbc-media-resource)# exit #Настройка параметров транка: vesbc(config-esbc)# trunk sip TRUNK_PUBLIC_IP vesbc(config-esbc-trunk-sip)# sip transport TRUNK_TRANSPORT vesbc(config-esbc-trunk-sip)# media resource 0 TRUNK_MEDIA vesbc(config-esbc-trunk-sip)# remote address 192.168.1.3 vesbc(config-esbc-trunk-sip)# remote port 5060 vesbc(config-esbc-trunk-sip)# public-ip 10.25.0.1 #Применение и подтверждение изменений: vesbc(config-esbc-trunk-sip)# do commit Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds. vesbc(config-esbc-trunk-sip)# do confirm Configuration has been confirmed. Commit timer canceled. |
| Scroll Pagebreak |
|---|
Пример использования Public IP
ESBC получает сообщение, которое должно быть смаршрутизировано в транк TRUNK_PUBLIC_IP:
| Блок кода | ||
|---|---|---|
| ||
INVITE sip:23002@192.168.1.1:5060 SIP/2.0 Via: SIP/2.0/UDP 192.168.1.4:5061;rport;branch=z9hG4bK-1914230-1-1 From: "24001" <sip:24001@192.168.1.4:5061>;tag=1 To: "23002" <sip:23002@192.168.1.1:5060> Call-ID: 1-1914230@192.168.1.4 Cseq: 1 INVITE Contact: <sip:24001@192.168.1.4:5061> Max-Forwards: 70 Allow: INVITE, ACK, BYE, CANCEL Content-Type: application/sdp Content-Length: 138 Session Description Protocol Version (v): 0 Owner/Creator, Session Id (o): user1 77755765 7773687637 IN IP4 192.168.1.4 Session Name (s): - Time Description, active time (t): 0 0 Connection Information (c): IN IP4 192.168.1.4 Media Description, name and address (m): audio 10000 RTP/AVP 8 Media Attribute (a): rtpmap:8 PCMA/8000 |
...
ESBC пересылает INVITE в транк TRUNK_PUBLIC_IP.
В SDP, Via и Contact вместо адреса привязанного SIP-транспорта (192.168.1.1) используется Public IP транка (10.25.0.1):
...
