Hello all. I use rtpengine and rtpproxy-ng module at kamailio for proxying RTP and modifying SDP between endpoints. I use two types of clients - such as WSS based and UDP based clients.
I have a trouble with append_branch and rtpengine handling for this packets. I try to implement this logic of my script Logic of my script: --checking location table for rows with needed account --get info from contact at loop for every step --check technology (sip or ws) --append_branch with existing destination for this account --rewrite packet with rtpengine to needed technology after loop forward packets via t_relay At listing bellow rtpproxy_manage have no flag "b" that implement needed functionality. It not included at the script because I tried include it but rtpengine says that ca nnot handle this request. As i understand this flag worked with rtpproxy and rtpproxy-ng apps only. Not with rtpengine. At my test I have 2 endpoints with WS and UDP phones (at fist step ir WS and 2 step it UDP). All calls going form asterisk via UDP. When I do these steps (at my script) I see packet at TCP dump and saw that sended only one packet to UDP but body of packet is WS. Then I saw log of kamailio. I see that at second step packet changed body to WS body (so strange because other steps before and after goes for UDP (as at logic of script)) If I set "b" flag I can call only UDP endpoint, but at log I see as I say that rtpengine can not do thomething with SIP packets and send with t_relay uncghanged UDP packet only. sql_query("ca", "select contact from location where username='$tU'", "ra"); xlog("rows: $dbr(ra=>rows) cols: $dbr(ra=>cols)\n"); if($dbr(ra=>rows)>0){ $var(i)=0; while($var(i)<$dbr(ra=>rows)){ xlog("L_INFO","SQL query return contact {$dbr(ra=>[$var(i),0])} for {$tU} at step {$var(i)}\n"); if ($dbr(ra=>[$var(i),0])=~"transport=ws"){ xlog("L_INFO", "This is a Websocket call to endpoint"); sql_pvquery("ca", "select received from location where contact='$dbr(ra=>[$var(i),0])'","$var(recieved)"); xlog("L_INFO","SQL query return recieved {$var(recieved)} for {$tU}\n"); $du=$var(recieved); xlog("L_INFO", "Request going FROM ASTERISK to WS. Destination is {$du}\n"); xlog("L_INFO","Websocket Destination URI is {$var(recieved)} for {$tU}\n"); rtpproxy_manage("froc+SP"); t_on_reply("REPLY_FROM_WS"); append_branch("sip:$tU@$du"); $var(i) = $var(i) + 1; } else { xlog("L_INFO", "This is a classic UDP call to endpoint"); $du="sip:"+$(dbr(ra=>[$var(i),0]){s.select,1,@}); xlog("L_INFO","Classic Destination URI is {$dbr(ra=>[$var(i),0])} for {$tU}\n"); rtpproxy_manage("co"); t_on_reply("MANAGE_CLASSIC_REPLY"); append_branch("sip:$tU@$du"); $var(i) = $var(i) + 1; } #append_branch("sip:$tU@$du"); } } return 1; So it customised schema of standart example seturi("sip:a...@example.com <https://e.mail.ru/compose/?mailto=mailto%3asip%25...@example.com>"); append_branch("sip:b...@example.com <https://e.mail.ru/compose/?mailto=mailto%3asip%25...@example.com>"); append_branch("sip:c...@example.com <https://e.mail.ru/compose/?mailto=mailto%3asip%25...@example.com>"); append_branch("sip:d...@example.com <https://e.mail.ru/compose/?mailto=mailto%3asip%25...@example.com>"); t_relay(); I need fro advice how to fix this may be with another applications or with another steps. Thanks.
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users