[SR-Users] How to retrieve local socket that will be used to send a message from the branch route

David Villasmil david.villasmil.work at gmail.com
Thu Nov 21 09:37:52 CET 2019


Hello,

I'm not sure this is the best or even the right way, but i do that by
figuring out where the call is coming from.
In my case, an INVITE from an RFC1918 IP address will always be internal to
external and vice versa.
 i.e.:

    # If the Source IP is an RFC1918 address, it's coming from an internal
endpoint, so the call is going out
    if (is_ip_rfc1918("$si")) {
        $dlg_var(rtp_direction) = "direction=internal direction=external";
    } else {
        $dlg_var(rtp_direction) = "direction=external direction=internal";
    }

You may even check both origin and destination domain ($du) and configure
rtpengine accordingly.

onsend_route {
    xlog("L_ERR", "[onsend_route] Packet going to $du\n" );
    if (is_ip_rfc1918("$si") && is_ip_rfc1918("$du") ) {
        # call is internal to internal

    } else if (is_ip_rfc1918("$si") && !is_ip_rfc1918("$du")) {
        # call is internal to external

    } else if (!is_ip_rfc1918("$si") && !is_ip_rfc1918("$du")) {
        # call is external to external

    } else if (!is_ip_rfc1918("$si") && is_ip_rfc1918("$du")) {
        # call is external to internal
    }
}

Hope that makes sense and help you a little.
Regards,

David Villasmil
email: david.villasmil.work at gmail.com
phone: +34669448337


On Thu, Nov 21, 2019 at 6:11 AM Patrick Wakano <pwakano at gmail.com> wrote:

> Hello list,
> Hope you are all doing well!
>
> I am trying to figure out a way to retrieve the local socket the t_relay()
> has decided to use in a mhomed=1 env. Is there a way to do that? I couldn't
> find any variable other than the $snd ones that maybe have this info, but I
> am not using onsend_route anyway.....
> I am after this value because this is what I can use to figure out if I
> need to engage RTPEngine with parameters "external, internal", "external,
> external", "internal, external" or "internal, internal". In my case, my
> server is in between two networks, and calls can traverse or can be routed
> back to the same interface depending on what was decide by the LCR module.
> Signalling is fine, but engaging the RTPEngine must be done with the
> correct parameters to get the correct IPs in the SDP, other else I get one
> way audio in the call.....
>
> Any help is much appreciated!
> Thank you!
> Kind regards,
> Patrick Wakano
>
>
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users at lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20191121/80b35e32/attachment.html>


More information about the sr-users mailing list