[OpenSIPS-Users] Fwd: Opensips B2B + RTP proxy in bridged mode

NagyBeci becinagy at gmail.com
Thu Dec 16 16:32:29 CET 2010


Hi,
anyway, i have problems with b2b module in combination with multihomed
host... My goal is to route the SIP signalling received at interface1/IP1 to
the target UA that is connected to iterface2/IP2 and vice versa, i.e:

       INVITE (dst.IP = IP1)
INVITE (src.IP=IP2)
UA ---------------------------------->OpenSipsIP1-OpenSipsIP2
-------------------------------->UA (signalling)
                                              multihomed host

That is working fine without b2b module. If i put the b2b between these
legs, the 2nd INVITE is generated with src.IP=IP1. I was not able to tell
the b2b to initiate the comunication from IP2. My OpenSIPS box should act
like an SBC - it should hide the topology for both parties.
Thanks for any support!
Regards,
Bela



---------- Forwarded message ----------
From: NagyBeci <becinagy at gmail.com>
Date: Mon, Dec 13, 2010 at 2:47 PM
Subject: Re: [OpenSIPS-Users] Opensips B2B + RTP proxy in bridged mode
To: OpenSIPS users mailling list <users at lists.opensips.org>


Hello Anca, Stefano,
thanks for reply, i've already tried to loop the signalling through
localhost, i'm still debugging it though. However, in my opinion, it's not
the ideal solution... It would be nice if there could be a possibility to
manipulate with message parameters generated by b2bua module.
For illustration, this is the exctract from cfg (without loop to localhost):

# ----- tm  params -----
# due to B2BUA
modparam("tm", "pass_provisional_replies", 1)

# ----- b2b modules params -----
modparam("b2b_entities", "server_address", "sip:abc at OpenSIPS_IP2")

##### Calls to domains served by other proxy
## multi-domain support is used
if (!is_uri_host_local())
{
     if(is_from_local() && uri=~"^sip:790@*") {
           if ($Ri=="OpenSIPS_IP1") {
                     setflag(5);  #Use RTP poxy
        }

       route(1);

       } else {
        sl_send_reply("403", "Not here");
       }
}


route[1] {

        # Use RTPproxy?
        if (isflagset(5)) {

            route(6); #Call from UA to exch.
            $du="IP/domain of destination UA";
            b2b_init_request("top hiding");
            exit;
    }

    # for INVITEs enable some additional helper routes
    if (is_method("INVITE")) {
                if (isflagset(5)){
            t_on_branch("2");
            t_on_reply("3");
                  }

                else {
            engage_media_proxy(); ### use mediaproxy for intradomain calls
            t_on_branch("2");
                 t_on_reply("2");
                }
        t_on_failure("1");
    }

    if (!t_relay()) {
        sl_reply_error();
    };
    exit;
}

route[6] {
    #---- RTP Proxy handling ---#
    if (is_method("BYE|CANCEL")) {
        unforce_rtp_proxy();
    }
    else if (is_method("INVITE")){
        #---- Activates the RTP Proxy for the CALLEE ---#
        force_rtp_proxy("ei");
    t_on_failure("1");
        };
    }


branch_route[2] {
    xlog("new branch at $ru\n");
}


onreply_route[2] {
    xlog("incoming reply\n");
}

onreply_route[3] {
        force_rtp_proxy("ie","OpenSIPS_IP1");
}

Bela


On Mon, Dec 13, 2010 at 2:25 PM, Anca Vamanu <anca at opensips.org> wrote:

> Hi Bela,
>
>
> On 12/13/2010 12:48 PM, beci345 wrote:
>
>> However, i have problem if i would like to extend the configuration with
>> topology hiding functionality - byusing the B2B modules.
>> By calling the scenario with b2b_init_request("top hiding"), Opensips
>> fires
>> out the INVITE with wrong SDP Connection information (IP of calling UA)
>> towards the called party.
>>
> Yes, indeed the B2BUA generates a new request and the changes made on the
> old request are not visible in the new one. You could change that request in
> local_route before being fired on the network, but then you have problems
> with the generated replies.. there is no way to catch those before being
> sent out.
> So the only solution is to introduce another hop before sending the request
> out - you could either loop the generated request or run b2bua in another
> instance of opensips. In both cases the b2bua should be the first to do the
> processing and the on the other hop do the specific changes on the message.
>
> Regards,
>
> --
> Anca Vamanu
> www.voice-system.ro
>
>
>
>
> _______________________________________________
> 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/20101216/13385b95/attachment.htm>


More information about the Users mailing list