Actually we’re using this part for incoming calls, hope it would shed some 
light on what we’re trying to do :


################################################################################
route[incoming_call] {
    # Save the call direction in case we have to handle changes on sdp offer 
(for RTP Engine only). The AVP var will persist over the SIP transaction
    $avp(call_direction) = "incoming";

    # Create dialog and update profile with callee
    #route(create_diag_update_profile, $rU);

    if ($(var(attrs){s.len}) >0) {
        # We retrieve the group with the attributes orf the dialplan rule
        $avp(group) = $(var(attrs){s.int});
    }
    else {
        # No group defined in the diaplan rule so we use usr_preferences
        avp_db_load("$rU","$avp(group)");
    }
        if (ds_select_domain($avp(group),4)){
            route(logger, "L_INFO", "Call from GATEWAY routed to OMS with 
TGRP");
           $var(result) = 1;

        }

      if ($var(result) > 0) {
        # Activate topology hiding if enabled
     #   route(activate_topology_hiding);
        $var(rtpengine_flags) = "RTP/AVP replace-session-connection 
replace-origin in-iface=external out-iface=internal ICE=remove";
        if (rtpengine_manage("$var(rtpengine_flags)"))
           t_on_reply("reply_early_offer");
      #  route(set_on_branch_route);
         route(branch_route_rtp_proxy);

        # Arm the branch callback to 'branch_route_rtp_proxy' if we have an RTP 
engine
       # route(set_on_branch_route);

      #  route(safe_relay_and_exit);
        b2b_init_request("top hiding");
      exit;
    }
}

route[branch_route_rtp_proxy] {

     if (has_body("application/sdp") && is_method("INVITE")) {
        # Early offer cases
        $var(cline) = $(rb{sdp.line,c});
        $var(sline) = $(rb{sdp.line,s});
        $var(log_msg) = "SDP content: o=" + $(rb{sdp.line,o}) + ", s=" + 
$var(sline) + " c=" + $var(cline) + ", m=" + $(rb{sdp.line,m});
        route(logger, "L_INFO", $var(log_msg));

        # Check the call direction
        if ($avp(call_direction) == "incoming")
        {
            $var(rtpengine_flags) = "RTP/AVP replace-session-connection 
replace-origin in-iface=external out-iface=internal ICE=remove";
            if (rtpengine_manage("$var(rtpengine_flags)"))
                t_on_reply("reply_early_offer");
        }
        else if ($avp(call_direction) == "outgoing") {
            if ($var(sline) == "s=oms" || $var(sline) == "s=acd") {
                $var(rtpengine_flags) = "RTP/AVP replace-session-connection 
replace-origin in-iface=internal out-iface=external ICE=remove";
                route(logger, "L_INFO", "BRANCH ROUTE OUTGOING");
                if (rtpengine_manage("$var(rtpengine_flags)"))
                    t_on_reply("reply_early_offer");

            }
            else {
                route(logger, "L_INFO", "No transformation needed on RTP, 
INVITE containing BToI (case where 2 UACs are linked");
            }
        }
    }
    else if (is_method("INVITE") && $avp(call_direction) == "incoming") {
        # We are in case of late offer we expect the SDP offer later
        t_on_reply("reply_late_offer");
    }
}

onreply_route[reply_early_offer] {
    if (has_body("application/sdp") ) {
        route(logger, "L_INFO", "SDP reply from GATEWAY to OMS for early 
offer");
        rtpengine_manage();
    }
}

onreply_route[reply_late_offer] {
    if (t_check_status("200") && has_body("application/sdp")){
       # We just received a response containing a late offer. We need to do 
some modification in the offer for the proxy. Only available for incoming calls.
       $var(rtpengine_flags) = "RTP/AVP replace-session-connection 
replace-origin in-iface=internal out-iface=external ICE=remove";
       rtpengine_manage("$var(rtpengine_flags)");

   } else if (has_body("application/sdp") ){
        route(logger, "L_INFO", "SDP reply from GATEWAY to OMS for late offer");
        rtpengine_manage();
   }
}
########################################################################

Bien Cordialement,
[cid:image001.png@01D99940.00DF6F60]    [cid:image002.jpg@01D99940.00DF6F60] 
<http://www.orange.com/>
Kharroubi Mohamed
Senior DevOps/System Engineer
Orange/ IMT/ OLPS/ OPS/ International Centers/ Tunisia

mohamed.kharro...@sofrecom.com<mailto:mohamed.kharro...@sofrecom.com>
www.sofrecom.com<http://www.sofrecom.com/>

Part of the Orange group

De : Users <users-boun...@lists.opensips.org> De la part de Brett Nemeroff
Envoyé : mercredi 7 juin 2023 12:43
À : OpenSIPS users mailling list <users@lists.opensips.org>
Cc : BARKAOUI Chaker SOFRECOM <chaker.barka...@sofrecom.com>; DESGEORGE 
Guillaume INNOV/IT-S <guillaume.desgeo...@orange.com>; GUESMI Amel SOFRECOM 
<amel.gue...@orange.com>
Objet : Re: [OpenSIPS-Users] B2B Opensips + RTPEngine

We are going to need to see a little more of where this is called. It’s worth 
mentioning that it has to be called at the right time. Simply firing  this off 
doesn’t automatically manage the session.

Thanks,
Brett

On Wed, Jun 7, 2023 at 6:19 AM 
<mohamed.kharro...@sofrecom.com<mailto:mohamed.kharro...@sofrecom.com>> wrote:
Hello,

So we don’t use that function regarding RTPEngine, but we use the 
rtpengine_manage() instead.

Here is an example of how we use it inside the routing logic :

####################################################################################
$var(rtpengine_flags) = "replace-session-connection replace-origin 
in-iface=internal out-iface=external";
        rtpengine_manage("$var(rtpengine_flags)");
####################################################################################

Bien Cordialement,
[cid:image001.png@01D99940.00DF6F60]    [cid:image002.jpg@01D99940.00DF6F60] 
<http://www.orange.com/>
Kharroubi Mohamed
Senior DevOps/System Engineer
Orange/ IMT/ OLPS/ OPS/ International Centers/ Tunisia

mohamed.kharro...@sofrecom.com<mailto:mohamed.kharro...@sofrecom.com>
www.sofrecom.com<http://www.sofrecom.com/>

Part of the Orange group

De : Users 
<users-boun...@lists.opensips.org<mailto:users-boun...@lists.opensips.org>> De 
la part de Jehanzaib Younis
Envoyé : mercredi 7 juin 2023 00:29
À : OpenSIPS users mailling list 
<users@lists.opensips.org<mailto:users@lists.opensips.org>>
Objet : Re: [OpenSIPS-Users] B2B Opensips + RTPEngine

Hi there,

Can you write an example of how you used rtpengine_offer() ?


Regards,
Jehanzaib


On Wed, Jun 7, 2023 at 3:07 AM 
<mohamed.kharro...@sofrecom.com<mailto:mohamed.kharro...@sofrecom.com>> wrote:
Hello Community,

We are trying to set up an Opensips with RTPEngine in a B2B configuration to 
handle media processing. There is no scenario for the B2B we’re trying to 
implement, we’re just using the topology « «top hiding » !

However, regardless of our configuration, the SDP of the INVITE and 200 OK 
packets is not modified to include the RTPEngine IP address and port

How should the RTPEngine be configured in the Opensips.cfg or which function(s) 
should be called to achieve this?
Bien Cordialement,
[cid:image001.png@01D99940.00DF6F60]    [cid:image002.jpg@01D99940.00DF6F60] 
<http://www.orange.com/>
Kharroubi Mohamed
Senior DevOps/System Engineer
Orange/ IMT/ OLPS/ OPS/ International Centers/ Tunisia

mohamed.kharro...@sofrecom.com<mailto:mohamed.kharro...@sofrecom.com>
www.sofrecom.com<http://www.sofrecom.com/>

Part of the Orange group

_______________________________________________
Users mailing list
Users@lists.opensips.org<mailto:Users@lists.opensips.org>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Users@lists.opensips.org<mailto:Users@lists.opensips.org>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to