[OpenSIPS-Users] OpenSIPS 2.4 mhomed + rtpengine + re-invite = issue

Mickael Hubert mickael at winlux.fr
Wed Apr 24 06:08:06 EDT 2019


Hi All,
I have an issue when reinvite sdp is processed by opensips, it don't change
IP in c header in 200ok SDP.
But it works well for the first INVITE.

Ex:
SIP
- IPBX (172.31.10.241) <--> (172.17.50.153) Opensips (10.1.15.153) <-->
(10.1.15.152) Asterisk server

RTP
- IPBX (172.31.10.241) <--> (172.17.50.144) RTPengine (10.1.15.144) <-->
(10.1.15.152) Asterisk

*Initial INVITE sdp + 200OK sdp are changed well*
INVITE:
c=IN IP4 172.31.10.241 (IPBX) --> c=IN IP4 10.1.15.144 (RTPEngine)

200OK:
c=IN IP4 172.17.50.144 (RTPEngine) <-- c=IN IP4 10.1.15.44 (Asterisk)

But when IPBX send reinvite (with the same codec) INVITE is rewrited well,
but not 200OK


*Re-INVITE sdp + 200OK sdp:*
INVITE:
c=IN IP4 172.31.10.241 (IPBX) - Opensips -> c=IN IP4 10.1.15.144 (RTPEngine)

200OK:
c=IN IP4 *10.1.15.44* (asterisk) <- Opensips - c=IN IP4 10.1.15.44
(Asterisk)

You can see a part of my opensips code:
if (has_totag())
{
  xlog("L_INFO","$avp(startlog) In HAS_TOTAG - fu : $fu , ru : $ru , si :
$si");

  if (loose_route())
  {
   xlog("L_INFO","$avp(startlog) LOOSE_ROUTING - fu : $fu , ru : $ru , si :
$si , method : $rm \n");

   $avp(setid) = $(dlg_val(setid){s.int});
   $avp(iniface) = $dlg_val(iniface);
   $avp(outiface) = $dlg_val(outiface);

   if (is_method("INVITE"))
   {

    xlog("L_INFO","$avp(startlog) Method RE-INVITE\n");
    record_route();
    if(rtpengine_manage("$avp(iniface) $avp(outiface) ICE=remove
replace-origin")) #it's exacly the same command for initial INVITE with
same avp
    {
     xlog("L_INFO","$avp(startlog) SDP Offer: $ci to RE-INVITE
$avp(iniface) $avp(outiface)\n");
    }
   }
....

Do you have an idea please ?

thanks in advance
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20190424/825fadba/attachment.html>


More information about the Users mailing list