...
| Примечание |
|---|
Данный модификатор сработает только в случае, когда значение заголовка User-Agent будет "TestUA". Если значение отличается, то заголовок User-Agent не будет передаваться на второе плечо. Для передачи заголовка с любым значением не следует использовать команду value-pattern в модификаторе, требуется указать в ней все возможные варианты, например, value-pattern .* |
Scroll Pagebreak
Модификатор удаления заголовка (no-transit)
Схема:
В конфигурации есть два транка, настроена маршрутизация. Вызов, который приходит из TRUNK_IN, уходит в TRUNK_OUT. В TRUNK_OUT отправляется запрос INVITE, в теле которого есть заголовок Test_header. Требуется, чтобы в запросе INVITE, который отправляется в TRUNK_OUT, вырезался заголовок Test_header, если в его содержимом есть "example string".
...
| Блок кода |
|---|
INVITE sip:24000@192.168.114.129:5460 SIP/2.0 Via: SIP/2.0/UDP 192.168.114.130:5460;rport;branch=z9hG4bKPj8e1WEAvAy16Bk8Vrj-VZiFK-bNOjnjY9 Max-Forwards: 70 From: "Simple UAC send bye" <sip:24001@192.168.114.130>;tag=R83mrTm4KQsFL1Bk87hTOB8e182yCSJ. To: "24000" <sip:24000@192.168.114.129> Contact: <sip:24001@192.168.114.130:5460;transport=udp> Call-ID: eQueXFpyDZESB.hXK.uCGn7XL7TBUdmQ CSeq: 8831 INVITE Allow: PRACK, SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE Supported: timer, 100rel, replaces Session-Expires: 1800 Min-SE: 90 #Заголовок Test_header с содержимым, отличным от "example string", не удаляется: Test_header: new string Content-Type: application/sdp Content-Length: 157 v=0 o=tester 3927597832 3927597832 IN IP4 192.168.114.130 s=A conversation c=IN IP4 192.168.114.130 t=0 0 m=audio 8074 RTP/AVP 8 a=rtpmap:8 PCMA/8000 |
| Scroll Pagebreak |
|---|
Модификатор транзита и замены заголовка (replace)
...
Требуется при отправке INVITE заменять эти адреса на testdomain.loc.
| Scroll Pagebreak |
|---|
Решение:
Конфигурация ESBC до использования модификаторов:
...
Для вызовов, поступающих в TRUNK_2, все видеокодеки из SDP будут удалены вне зависимости от направления маршрутизации.
| Scroll Pagebreak |
|---|
2. Запретить использование кодеков G729 и G726 для транка TRUNK_1.
...
| Блок кода |
|---|
vesbc# configure vesbc(config)# esbc #Создать медиапрофиль для использования в обоих транках: vesbc(config-esbc)# media profile FOR_TRUNKS #Добавить паттерн для кодека QCELP: vesbc(config-esbc-media-profile)#codec allow QCELP vesbc(config-esbc-media-profile)# exit #Привязать медиапрофиль к обоим транкам: vesbc(config-esbc)# trunk sip TRUNK_1 vesbc(config-esbc-trunk-sip)# media profile FOR_TRUNKS vesbc(config-esbc-trunk-sip)# exit vesbc(config-esbc)# trunk sip TRUNK_2 vesbc(config-esbc-trunk-sip)# media profile FOR_TRUNKS vesbc(config-esbc-trunk-sip)# exit vesbc(config-esbc)# do commit vesbc(config-esbc)# do confirm |
| Scroll Pagebreak |
|---|
В результате конфигурация медиапрофиля будет выглядеть следующим образом:
| Блок кода |
|---|
media profile FOR_TRUNKS 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 H26 codec allow H261 31 codec allow H263 34 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 QCELP codec allow SPEEX codec allow T38 t38 codec allow VP codec allow telephone-event exit |
...
В данном примере в транк TRUNK_1 приходит INVITE c SDP Offer1, в котором содержится кодек QCELP, и т. к. настройками медиапрофиля FOR_TRUNKS этот кодек разрешен, то он будет передаваться SDP Offer2, отправляемый в транк TRUNK_2. UA TRUNK_2 выбирает кодек QCELP, и в результате он будет согласован в SDP Answer1.
...
| Блок кода |
|---|
vesbc# configure vesbc(config)# esbc #Создать медиапрофиль для транка TRUNK_1: vesbc(config-esbc)# media profile FOR_TRUNK_1 #Удалить все паттерны: vesbc(config-esbc-media-profile)# no codec allow all #Добавить паттерн только для кодека PCMA: vesbc(config-esbc-media-profile)# codec allow PCMA 8 vesbc(config-esbc-media-profile)# exit #Привязать медиапрофиль к транку: vesbc(config-esbc)# trunk sip TRUNK_1 vesbc(config-esbc-trunk-sip)# media profile FOR_TRUNK_1 vesbc(config-esbc-trunk-sip)# do commit vesbc(config-esbc-trunk-sip)# do confirm |
...
В результате конфигурация медиапрофиля будет выглядеть следующим образом:
...


