|
Тема |
Re: SIP клиенти [re: DrFrancky] |
|
Автор | Ц++ (Нерегистриран) | |
Публикувано | 22.06.06 19:46 |
|
|
именно и RTP прокси имам и под SIPproxy. проксиране както на сигнализацията, така и на RTP. но щом се почна да ми се предлага commercial решение, явно вече желанието за коментари по темата е никакво.
ще се поборя както се вижда сам още малко. до момента мога да опиша кво става (да примем че клиент А набира клиент Б, като клиент Б не е терминатор или wholesaler), най-общо:
клиент А: INVITE към SIP прокси
SIP прокси: отговаря 100 Trying
SIP прокси: пренаписва контролната информация в INVITE, така че все едно той го праща и праща пакета към Б
клиент Б: я, някой си от (адрес на SIP прокси) ми звънка
клиент Б: 100 Trying и 180 Ringing към набиращия (т.е. SIP proxy)
SIP прокси: хваща пакетите подменя пак котролната информяция все едно той отговаря и ги засилва към А
.. и т.н. и т.н. с всичките пакети. реално клиент А мисли че говори с клиент Б, но реално говори със SIPproxy по сигнализацията. същото и за клиент Б. дотук не виждам проблем с добавянето на NAT-нат IP адрес в IP пакета, тъй като SIPproxy-то е с реален IP адрес и си комуникира с два клиента, които няма проблем да са зад NAT.
това работи идеално с реални IP адреси. сега парсвам SDP-то и малко трябва да го поразуча (всъщност освен application/sdp има и някви други, ама доколкото разбирам щом се говори за SDP ще се почне от него).
т.е. сигнализацията се проксира идеално. RTP пакетите хвърчат peer-to-peer до момента.
същата е схемата на подмяна пренаписване на контролната информация в SDP. SIPproxy отваря 2 локални порта и пренаписва IP:port в SDP, при което кара клиент А да праща на порт 1, клиент Б на порт 2, а той ги препраща.
дотук като хоби се стига лесно (е, аз работя в този отрасъл но с H323 и малко по-различни неща). може би в SDP-то ще трябва да подълбая повечко и модела да не е същия, но в момента се стартира RTP thread за всеки разговор и е готово пакет forwarding-а (ако е само 1 порт за RTP, ако са повече - ще listen-ваме на повече и ще емулираме конкретната схема).
ако настъпи timeout на разговора SIPproxy-то минава в режим дроп - и праща по един BYE и на двете страни, така че да прекрати safely разговора.
явно, че стигне ли се до помощ ... само на приказки българина го бива.
а колкото до комерсиалното прокси - не, мерси. ако за теб SIP стек е хвалба, за мен е забавление. виж ако си направил H323 стек можеше да се похвалиш ...
ясно ... пак опряхме до дисплеите и циферблатите и санчо, ама сиренето е с пари
|
| |
|
|
|