Hi, Dragomir!

If you simply do fix_nated_register() on the REGISTER messages, all these will be sorted out. Moreover, it's actually not correct to change the contact of the user, because in the SIP message it might expect to have exactly what he sent. When using fix_nated_register(), there is another field (called Received) that stores the actual IP and port where the REGISTER came from, and when an invite comes in, it is automatically set by the lookup() function in the DST uri, without changing the contact (the contact may still be private).

So simply calling fix_nated_register() should fix this issue for all scenarios. I initially though that you were using the Contact from something else and you really need that value there.

Best regards,

Răzvan Crainea
OpenSIPS Developer
www.opensips-solutions.com

On 11/03/2017 09:36 PM, Dragomir Haralambiev wrote:
Hi,

Why I need the real IP and port in location table?

Now I make only outgoing call. Everything works fine on the following scenario.:
User -----> Opensips ------> ITSP

If I not have real IP in location table incoming calls not be implemented.
ITSP ----> Opensips ---->?

Opensips get IP from location table and try to send call. But in location table have not real IP.
I see how the Opensips try to send call to 192.168.2.34.

This is the main problem.

2017-11-03 11:45 GMT+02:00 Răzvan Crainea <[email protected] <mailto:[email protected]>>:

    Unfortunately I just realised that you cannot change the Contact
    header for this scenario.
    And to be honest I don't really understand why you are trying to
    change it - if you need the real IP and port, you can take them
    from the received field.

    Best regards,

    Răzvan Crainea
    OpenSIPS Developer
    www.opensips-solutions.com <http://www.opensips-solutions.com>

    On 11/02/2017 11:43 PM, Dragomir Haralambiev wrote:
    Hi,

    Here is part of my script:
    ....
    modparam("registrar", "mcontact_avp", "$avp(register)")
    .....

        if (t_check_status("2[0-9][0-9]"))  {
    $log_level = 5;
    script_trace( 1, "$rm from $si, ruri=$ru, ct=$ct.fields(uri)
    avp(register)=$avp(register)", "me");
    route(save_location);
                           .......
        }

    You can see log here:
    https://pastebin.com/WWQ9Mmh4

    Here is the replacement contact:

    DBG:registrar:build_contact: created Contact HF: Contact:
    <sip:[email protected]:5062
    <http://sip:[email protected]:5062>>;expires=360
    DBG:registrar:save: replacing contact uri
    [sip:[email protected]:1043
    <http://sip:[email protected]:1043>] with
    [sip:[email protected]:5062
    <http://sip:[email protected]:5062>]

    How to stop replacing contact from 188.23.232.10:1043
    <http://188.23.232.10:1043> to 192.168.22.138:5062
    <http://192.168.22.138:5062> ?

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




_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to