[OpenSIPS-Users] OpenSips as an inbound loadbalancer and outbound proxy - issue with routing BYES

Matt Stockton mstockton at harqen.com
Mon Nov 14 15:38:19 CET 2011


Hi,

This is occurring for outbound invites from my Freeswitch (I have FS ->
OpenSips -> Provider).  FS sends the invite through OpenSips. The only 200
OK I see in the entire SIP trace on the OpenSips box with a Contact header
contains the contact of the number I am trying to call from FS. The issue
happens when the BYE is trying to be routed back to the FS from the
Provider --- so I think, If I'm reading correctly, fix_route_dialog() will
not work for what I'm trying to do?

Thanks, your help is appreciated.

On Mon, Nov 14, 2011 at 3:10 AM, Vlad Paiu <vladpaiu at opensips.org> wrote:

> **
> Hello,
>
> fix_route_dialog() uses the information from the Contact of the 200 OK. So
> if that is ok, you can use fix_route_dialog() to fix the bogus BYE messages.
>
> Regards,
>
> Vlad Paiu
> OpenSIPS Developer
>
>
> On 11/12/2011 06:22 PM, Matt Stockton wrote:
>
> After doing some reading, thinking that I may be able to solve my problem
> using the dialog module and fix_route_dialog(). Since the Contact Header is
> being re-written by the Provider, will fix_route_dialog() change it on the
> way in to the appropriate value in the dialog, causing the message to be
> forwarded correctly? The code for what I'm thinking is below.
> Unfortunately, the issue is so intermittent that I have not been able to
> re-produce the case of the Provider re-writing the Contact Header since I
> started trying this modification. Does anyone know if this strategy will
> work?
>
>         if (!has_totag()) {
>                 create_dialog();
>                 # initial request
>                 record_route();
>         }
>         else {
>                 # sequential request - obey the indicated route
>                 loose_route();
>
>                  if ($DLG_status!=NULL) {
>                    if (!validate_dialog()) {
>                       fix_route_dialog();
>                    }
>                 }
>
>                  t_relay();
>                 exit;
>         }
>
>
> On Fri, Nov 11, 2011 at 9:23 AM, Matt Stockton <mstockton at harqen.com>wrote:
>
>> I added the following to my config:
>>
>>  onreply_route[pstn_outgoing] {
>>     setflag(1);
>>    if(t_check_status("200")) {
>>      if(search("Content-type: application/sdp")) {
>>         fix_nated_sdp("8", "x.x.x.x");
>>      }
>>    }
>> }
>>
>>  And the only thing that seemed to have changed in the SIP signalling
>> is, when my provider sends SIP 200 OK to OpenSips, OpenSips is just
>> re-writing the OK Content before sending onto Freeswitch. It doesn't look
>> like any messages have changed that are going from OpenSips to the
>> provider, and the provider is still sending the BYE message with the
>> Contact Header intermittently to the different IPs as I described. Any more
>> thoughts on this?
>>
>>  My end goal is to simply have the same OpenSips act as both an inbound
>> proxy and outbound proxy, with no registration requirements. If there is an
>> easier way to do this with OpenSips, please let me know. I've looked around
>> and checked out all the referenced tutorials on the site w/r/t load
>> balancing and routing
>>
>>   v=0
>>  o=Sonus_UAC 14270 3732 IN IP4 x.x.x.x
>>  s=SIP Media Capabilities
>>  c=IN IP4 67.231.0.110
>>  t=0 0
>>  m=audio 25620 RTP/AVP 0 101
>>  a=rtpmap:0 PCMU/8000
>>  a=rtpmap:101 telephone-event/8000
>>  a=fmtp:101 0-15
>>  a=sendrecv
>>  a=maxptime:20
>>  a=oldmediaip:ACTUAL_IP
>>
>>
>>
>> On Thu, Nov 10, 2011 at 7:17 PM, ddgiants <ddgiants at gmail.com> wrote:
>>
>>> Matt,
>>> Sounds like you may not be topology hiding the 200OKs. Some/most SIP
>>> devices/SBC's etc will send a BYE to the ip address in the o(owner) line
>>> of
>>> the SDP of the 200OK. Some devices do not and send BYE to the
>>> initator/proxy
>>> they are configured for. The 200OK will have o and c. O is the owner,
>>> meaning signaling owner and C is the connection IP as in where to send
>>> the
>>> actual RTP. I use the below to change the o portion of the SDP in 200 OKs
>>> and works for me. Give it a try and let me know.
>>>
>>> onreply_route[1] {
>>>  setflag(1);
>>>  if(t_check_status("200")) {
>>>    if(search("Content-type: application/sdp")) {
>>>      fix_nated_sdp("8", "x.x.x.x");
>>>    }
>>>  }
>>> }
>>>
>>> DD
>>>
>>> --
>>> View this message in context:
>>> http://opensips-open-sip-server.1449251.n2.nabble.com/OpenSips-as-an-inbound-loadbalancer-and-outbound-proxy-issue-with-routing-BYES-tp6984017p6984067.html
>>> Sent from the OpenSIPS - Users mailing list archive at Nabble.com.
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>
>>
>
> _______________________________________________
> 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/20111114/1d9e921f/attachment.htm>


More information about the Users mailing list