Hi Kevin,

I'm not sure about the logic of your query, but you can replicate that scripting (in perl) into the OpenSIPS script - see the avpops module for the raw DB lookups.

Regards,
Bogdan

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com

On 28.03.2014 10:56, Kevin Mathy wrote:
Hi Bogdan,

Thanks for those informations, but I already know them :-)
I've attached my script to this mail, so you can take a look at what I've done.

Also, here is the part of the code calling the script :


    route[enum] {
        t_on_reply("reply");
        if (enum_query("asbc2.e164.local."))
        {
            xlog("L_INFO","$ci Sending INVITE to customer / ENUM\n");
            if(!serialize_branches(1))
            {
                xlog("L_ERR", "$ci SERIALIZE_BRANCHES Failed\n");
            }
            next_branches();
            t_on_failure("failenum");
            xlog("L_INFO", "$ci ENUM lookup returned <$ru>\n");
            xlog("L_INFO", "$ci ENUM lookup returned rd : <$rd>\n");

    *        $avp(ruriDomain)=$rd;
            perl_exec("locationRuriUpdate");
            if(is_avp_set("$avp(newRuriDomain)"))
            {
                #xlog("L_INFO","$ci New RURI Domain =
    $avp(newRuriDomain)\n");
                #xlog("L_INFO","$ci New RURI Port = $avp(newRuriPort)\n");
                $rd = $avp(newRuriDomain) + ":" + $avp(newRuriPort);
                xlog("L_INFO", "$ci We modified rd : <$rd>\n");
            }
    *
            uac_replace_from("sip:$fU@*XX.XX.XX.XX*");
            uac_replace_to("$ru");
            if (t_relay())
            {
                xlog("L_INFO", "$ci t_relay done <$ru>\n");
            }
            else
            {
                xlog("L_INFO", "$ci t_relay problem \n");
            }
            exit;
        }
        xlog("L_INFO","$ci ENUM not found\n");
        sl_send_reply("404", "Not Found");
    }


Please note : I've intentionally hidden the IP's in both scripts. And the script may not be perfect, as it's only there to show you what I'd like to do :-)


So, this configuration is working well, but is there a way to not use the "perl method" and simply use some methods of the registrar module, or any other ?

If you need further informations to understand what I want to do, feel free to ask me ;-)

Thanks a lot,


*
Bien cordialement,
Best Regards,

**Kevin MATHY* |**Ingénieur VoIP
*
*


2014-03-28 9:37 GMT+01:00 Bogdan-Andrei Iancu <[email protected] <mailto:[email protected]>>:

    Hello Kevin,

    Simply do in your script (after the ENUM lookup):

    $rd = "foo.com <http://foo.com>"; # see
    http://www.opensips.org/Documentation/Script-CoreVar-1-10#toc65
    $rp = 1234;  # see
    http://www.opensips.org/Documentation/Script-CoreVar-1-10#toc70

    Regards,

    Bogdan-Andrei Iancu
    OpenSIPS Founder and Developer
    http://www.opensips-solutions.com

    On 28.03.2014 00:28, Kevin Mathy wrote:
    Hi Bogdan,

    I'd like to modify only the hostname (and port) part of the RURI,
    to put inside informations taken from the location table.

    I've made it this afternoon, using a homemade perl script (which
    I'll be able to share tomorrow if needed), and it works well, but
    for the process to be perfect, I prefer if I can avoid the perl
    method, and only use Opensips's integrated methods ;-)

    Thanks,

    Best regards,

    Kevin


    Le jeudi 27 mars 2014, Bogdan-Andrei Iancu <[email protected]
    <mailto:[email protected]>> a écrit :

        Hi Kevin,

        Nothing is normal here, everything is strange, so..... :)

        You can modify any parts of the RURI, no problem - what
        exactly part of it you want to change ?

        Regards,

        Bogdan-Andrei Iancu
        OpenSIPS Founder and Developer
        http://www.opensips-solutions.com

        On 27.03.2014 12 <tel:27.03.2014%2012>:31, Kevin Mathy wrote:
        Hi List,

        What I'm trying to do may be "strange" for some people, but
        here is the situation :
        I've got an OpenSIPS server, which do some ENUM requests to
        route Incoming calls (from me, the provider, to the customers).
        It works well when my customer's endpoints are configured
        with a public IP, without any NAT.

        But, when those endpoints connect to my server through a NAT
        router, I face a problem for incoming calls, as the port
        used by endpoint isn't the same as the classical 5060.

        So, my question is : is there a way to simply modify the
        Request-URI obtained after an ENUM query, with the
        informations inserted in the location table ?

        I've got an idea on how to make it with a perl script, but I
        prefer to not use this method, and to use only existant
        modules of methods.

        Thanks for your ideas

        Kevin


        *
        Bien cordialement,
        Best Regards,

        **Kevin MATHY* |**Ingénieur VoIP
        *
        *



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



-- *
    Bien cordialement,
    Best Regards,

    **Kevin MATHY* |**Ingénieur VoIP
    *
    *






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

Reply via email to