Можно ли изменить SIP-сообщение через прокси?

Я провел небольшое исследование по этому поводу и думаю, что это возможно, но просто хотел получить подтверждение от тех, кто в курсе :-)

Мое требование - изменить строку XML в теле сообщения SIP, которое поступает с сервера PBX (закрытый источник) и направляется на телефон определенного типа. Проблема в том, что телефону не нравится формат XML, поэтому мне нужно изменить его между АТС и телефоном.

Я начал искать изменения на сетевом уровне, но быстро пришел к выводу, что это будет чрезвычайно сложно (а мой C / C ++ не так актуален), поэтому я обратил свое внимание на прокси-серверы SIP, из которых есть несколько действительно хороших проектов с открытым исходным кодом.

Но прежде чем я перейду к этому пути, который может быть полезен другим, если возможно, я хотел спросить, возможен ли вообще этот тип манипуляции с телом сообщения SIP?

Заранее спасибо за любые ответы :-)


person Dominik    schedule 19.01.2011    source источник


Ответы (2)


С точки зрения стандартов, прокси-серверы могут изменять сообщения, которые они передают между пользовательскими агентами. Что вам нужно сделать дальше, так это найти тот, который является программируемым и позволяет вам изменять сообщения так, как вы сочтете нужным.

person Tsahi Levent-Levi    schedule 20.01.2011
comment
У вас есть ссылка на это утверждение? Я не вижу, как RFC 3261 позволяет прокси-серверам изменять тела сообщений. Однако B2BUA может делать все, что угодно. - person Frank Shearar; 20.01.2011
comment
Хороший момент: я проверил RFC и не думаю, что 3261 упоминает о разрешении изменять текст сообщения (область содержимого), однако я нашел это достаточно легко сделать. Спасибо за ответы, я с нуля написал прокси на C #, который действует в соответствии с RFC 3261 (без сохранения состояния) и вносит необходимые изменения. Как только я понял, что это можно сделать, я ушел! :-) - person Dominik; 27.01.2011

Один из вариантов - это двусторонний пользовательский агент или B2BUA. УАТС вызывает ваш B2BUA, который соответствующим образом изменяет тело сообщения, прежде чем позвонить на ваш телефон (и, конечно, в обратном направлении).

(Это может быть не так тривиально, если вы используете S / MIME для шифрования тела сообщений!)

person Frank Shearar    schedule 20.01.2011