[OpenSIPS-Users] RTP Proxy module.

Sebastian Sastre sebastian at brainiacideas.com
Thu Jul 26 17:14:55 CEST 2012


Hi again,

i found a solution for this using avp on the reply route. I activated
modparam("tm", "onreply_avp_mode", 1)"

I added the avp to the main route.

$avp(proxy_set) = "3";
set_rtp_proxy_set("$avp(proxy_set)");
engage_rtp_proxy("rcie");

And then, i added it to the reply route again so that the set is rewritten

onreply_route[1]{
xlog("-> Reply from $si, setting rtpset again to $avp(proxy_set)");
 set_rtp_proxy_set("$avp(proxy_set)");

}

Now the problem is in the bye msg. When the call hangs up and rtpproxy
tries to set unforce_rtp_proxy_f it fails.
The call still goes thru and hangs up fine, but the stream is held by
RTPproxy until the timeout expires and then it closes de dialog.

Since the bye is not the same transaction, the AVP is empty.

How can i catch that bye and reassign the same avp to it without having to
store the value on db and read it?


thanks



On Thu, Jul 26, 2012 at 9:39 AM, Sebastian Sastre <
sebastian at brainiacideas.com> wrote:

> Razvan,
>
> thanks, i was actually able to make it work, it was all a matter of
> putting the right flags on the engage_rtp_proxy, since the ftp proxy
> command was fine.
>
> engage_rtp_proxy("rcie");
>
> Now i have a different problem. Iooking around i came across a long email
> exchange you had with someone else regarding the set_rtp_proxy_set()
> function.
> For some reason its able to create on side of the socket, but when
> creating the other side to bridge it too, it comes back saying that a set
> could not be found.
>
> This is the config for those sets.
> modparam("rtpproxy", "rtpproxy_sock", "1==udp:localhost:7001")
> modparam("rtpproxy", "rtpproxy_sock", "2==udp:localhost:7002")
> modparam("rtpproxy", "rtpproxy_sock", "3==udp:localhost:7003")
> modparam("rtpproxy", "rtpproxy_sock", "4==udp:localhost:7004")
>
> Whats interesting is that on load opensips complaints that
> /sbin/opensips[28262]: ERROR:rtpproxy:select_rtpp_set:  script
> error-invalid id_set to be selected
>
> However it does connect to each socket and enables it.
> INFO:rtpproxy:rtpp_test: rtp proxy <udp:localhost:7001> found, support for
> it enabled
> INFO:rtpproxy:rtpp_test: rtp proxy <udp:localhost:7002> found, support for
> it enabled
> INFO:rtpproxy:rtpp_test: rtp proxy <udp:localhost:7003> found, support for
> it enabled
> INFO:rtpproxy:rtpp_test: rtp proxy <udp:localhost:7004> found, support for
> it enabled
>
> The open sips script is a simple .
> set_rtp_proxy_set("1");
> engage_rtp_proxy("rcie");
>
> But when placing a call i get
> Jul 26 08:32:49 gw1 /sbin/opensips[28287]: -> Route(0) - New Incomming
> Invite request  to [sip:xxxxx at PUBLICIP]
> Jul 26 08:32:49 gw1 /sbin/opensips[28287]: -> Route(0) - Group selected 1
> Jul 26 08:32:49 gw1 /sbin/opensips[28287]: -> Route(0) - xxxxx going to
> call to sip:192.168.3.8:5060
> Jul 26 08:32:49 gw1 /sbin/opensips[28287]: -> Route(0) - RT Proxy Set 1
> Jul 26 08:32:49 gw1 rtpproxy[26135]: INFO:handle_command: new session
> xxxxx at domain.ip-com.com, tag xxxxx;1 requested, type strong
> Jul 26 08:32:49 gw1 rtpproxy[26135]: INFO:handle_command: new session on a
> port 14690 created, tag 3552298369-227332;1
> Jul 26 08:32:49 gw1 rtpproxy[26135]: INFO:handle_command: pre-filling
> caller's address with xxxxx:52810
> Jul 26 08:32:49 gw1 /sbin/opensips[28287]: -> Route(1) - Forwarding Call
> to [sip:xxxxxxx at 192.168.3.8:5060]
> *Jul 26 08:32:56 gw1 /sbin/opensips[28338]:
> ERROR:rtpproxy:select_rtpp_node: script error -no valid set selected *
> *Jul 26 08:32:56 gw1 /sbin/opensips[28338]:
> ERROR:rtpproxy:force_rtp_proxy: no available proxies *
> Jul 26 08:32:59 gw1 /sbin/opensips[28336]:
> ERROR:rtpproxy:select_rtpp_node: script error -no valid set selected
> Jul 26 08:32:59 gw1 /sbin/opensips[28336]: ERROR:rtpproxy:force_rtp_proxy:
> no available proxies
> Jul 26 08:33:08 gw1 /sbin/opensips[28287]:
> ERROR:rtpproxy:select_rtpp_node: script error -no valid set selected
> Jul 26 08:33:08 gw1 /sbin/opensips[28287]:
> ERROR:rtpproxy:unforce_rtp_proxy_f: no available proxies
> Jul 26 08:33:08 gw1 /sbin/opensips[28287]:
> ERROR:rtpproxy:engage_close_callback: cannot unforce rtp proxy
>
>
> Has anyone found a solution to this?  (same thing happens with using
> rtpproxy_offer)
>
> Thanks
>
>
> On Thu, Jul 26, 2012 at 3:42 AM, Răzvan Crainea <razvan at opensips.org>wrote:
>
>>  Hi, Sebastian!
>>
>> The problem is that engage_rtp_proxy function does not support media
>> bridging functionality. In order to implement the scenario described
>> successfully, you will have to configure rtpproxy manually, using
>> rtpproxy_offer/rtpproxy_answer.
>>
>> Best regards,
>>
>> Razvan Crainea
>> OpenSIPS Core Developerhttp://www.opensips-solutions.com
>>
>> On 07/25/2012 08:26 PM, Sebastian Sastre wrote:
>>
>> Hello,
>>
>>>
>>>  Im trying to configure RTP proxy for the following scenario.
>>>
>>>  I have opensips in the border server between my public ipaddress and
>>> my internal. So that ETH0 has public IP and eth1 has private.
>>>
>>>  I set mhomed=1 so that packets are forwarded correctly and the call
>>> does connect.
>>>
>>>  First of all, is this possible with rtpproxy and opensips? I know
>>> Mediaproxy is not able to bind like that.
>>>
>>>  The RTP proxy command I'm using is
>>>
>>>  rtpproxy -f -l PUBLIC-IP/192.168.3.18 -s udp:127.0.0.1:12221 -F
>>>
>>>  Opensips Config looks like this.
>>>
>>>                   if (is_method("INVITE")){
>>>                         ##xlog("-> Route(0) - New Incomming Invite
>>> request  to [$ru]\n");
>>>                         if (check_source_address("1")) {
>>>                                 record_route();
>>>                                 create_dialog();
>>>
>>>                                  if (load_balance("1","channels")){
>>>
>>>                                          # dst URI points to the new
>>> destination
>>>                                         #ahora le sacamos el prefijo
>>>
>>> dp_translate("1","$ruri.user/$ruri.user");
>>>
>>>                                          #xlog("-> Route(0) -
>>> $ruri.user going to call to $du\n");
>>>                                         $ru = "sip:" + $rU + "@" + $dd +
>>> ":" + $dp;
>>>                                         $avp(dst) = $dd;
>>>
>>>                                          engage_rtp_proxy("ie");
>>>                                         route(1);
>>>                                 }
>>>                                 else{
>>>                                       xlog("-> Route(0) - Did not find
>>> available GWs\n");
>>>                                         sl_send_reply("500", "All is
>>> full");
>>>                                 }
>>>                         }
>>>                         else{
>>>                               xlog("-> IP not in address table \n");
>>>                                 sl_send_reply("503","IP not in address
>>> table");
>>>                         }
>>>                 }
>>>
>>>  When is tart open sips, it connects to RTP Proxy with no problems.
>>>
>>>  When the invite is sent out to the internal ip it correctly sets c= on
>>> the body but i don't see rtpproxy doing anything nor i get audio in any
>>> direction.
>>>
>>>  rtpproxy leaves no logs, or errors or anything.
>>>
>>>  am i doing something wrong here?
>>>
>>>  thanks
>>>
>>>
>>>
>>>
>>
>>
>> _______________________________________________
>> Users mailing listUsers at lists.opensips.orghttp://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20120726/c75ac3f6/attachment.htm>


More information about the Users mailing list