Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#661 Ack Loop with topology_hiding()

1.9.x
closed-fixed
None
5
2013-07-11
2013-05-23
jrudolph
No

I am using an OpenSIPS 1.9 (current git) instance with 2 IP addresses (public and private) and mhomed=1

It seems Ack is not detected as part of dialog with match_dialog()

OpenSIPS repeatedly loops the ack to its own IP address

Discussion

  • jrudolph
    jrudolph
    2013-05-23

    A bit more information on this:

    I have 2 servers (located in different parts of the country) both running OpenSIPS using Dispatcher to loadbalance Freeswitch (FreeSwitch as the B2BUA)

    Callflow (per server):

    OUTSIDE <-> OpenSIPS <-> FS_External_UA <-> FS_Internal_UA <-> OpenSIPS <-> INSIDE

    Using the topology_hiding function within the dialog module is necessary for me because I have a softswitch internally that absolutely will not accept an invite with more than one Via header.

    Both servers have the exact same configuration (different IP addresses)

    If I hairpin a call:

    INSIDE <-> OpenSIPS <-> FS_INTERNAL_UA <-> OpenSIPS <-> INSIDE

    I do not have the problem

    If I place a call from Inside of one server out to the outside of the other server

    INSIDE <-> (SERVER1) <---> OUTSIDE <-> (SERVER2) <-> INSIDE

    The Ack messages loop when arriving as Server2 Outside

    My first guess at the cause of the problem was that both servers are using "did" as the parameter to store dialog ID.

    I have tried change this with

    modparam("dialog", "rr_param", "vdi") (on server1)
    and
    modparam("dialog", "rr_param", "gdi") (on server2)

    However, this doesn't seem to be working as both are still using "did=" in Contact header.

     
    • status: open --> open-accepted
    • assigned_to: Vladut-Stefan Paiu
     
  • Hello,

    I have just pushed to 1.8, 1.9 and trunk a fix for this.
    The topo hiding in dialog was not properly using the rr_param cookie ( it had "did" hardcoded ).

    Please re-test now.

    Best Regards,
    Vlad

     
  • jrudolph
    jrudolph
    2013-05-24

    After git pull / make all install

    opensips: ERROR:core:sr_load_module: could not open module </usr>: /usr/local/lib64/opensips/modules/dialog.so: undefined symbol: rr_param

     
  • It should be fixed now, please update from GIT / SVN

     
    • status: open-accepted --> open-fixed
     
    • status: open-fixed --> closed-fixed