I found INFO about "b" flag for rtpproxy-ng module. It may solve my porblem, but as I understand, rtpengine not support this flag. I thought about adiing rtpproxy handling after append_branch (something like branch_route) but con not find any info how to use it after branching... Does anybody help me to solve this issue, or give me an advice about this issue? Thks
2014-10-17 20:41 GMT+04:00 Yuriy Gorlichenko <ovoshl...@gmail.com>: > Forget some things: > All calls going form asterisk viaUDP. > t_relay calling out of loop. At the end. > > When t_relay at loop first packet goes great but INVITE to second > destinationd not going and ended with ERROR "can't generate 200 reply when > a final 200 was sent out" > > 2014-10-17 20:33 GMT+04:00 Yuriy Gorlichenko <ovoshl...@gmail.com>: > >> Hello. I try to do parallel fork calls to endpoints that have same >> username and different destination URI. 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 >> >> >> forward packets via t_relay >> >> >> >> 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"); >> append_branch("sip:b...@example.com"); >> append_branch("sip:c...@example.com"); >> append_branch("sip:d...@example.com"); >> >> t_relay(); >> >> At my test I have 2 endpoints with WS and UDP phones (at fist step ir WS >> and 2 step it 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)) >> >> What I need to do for send parallel INVITES to multiple endpoints >> correctly? 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