Hi Jeff,

Well, according to RFC3261, a Contact hdr must carry a valid SIP URI - now, in dip lookups, the answer is added as params to the SIP URI or to the CT SIP hdr...depending...

If you uac_redirect does not server your purpose (like answer in in CT hdr params), you can access the hdr directly like getting params : $(<reply>ct.fields(params))

Regards,
Bogdan

On 11/23/2011 03:25 PM, Jeff Pyle wrote:
Bogdan,

I don't think the uac_redirect module in this case is helpful. The Contact data that comes back from an LRN DIP's 302 isn't a real SIP URI, but rather just some routing data that happens to be using a 302's Contact field as a transport mechanism.


Kent,

Sorry for the late reply... I do not. I use string transformations to yank out the portions I need. Something like this in the onreply_route from a 302 dip:

$var(lrnct) = $ct;
if !($(var(lrnct){param.value,rn}) == '') {
    $var(call_lrn1) = $(var(lrnct){param.value,rn});
    #....  more processing to clean up any leading 1's or +1s
}

I do not use the drouting module because my config is too old. I use a combination of the lcr module to load gateways for a particular carrier, or if a carrier has only one IP/hostname, I pull it directly from a DB into an AVP and route to it.

I take the LRN data from the DIP along with some other items (jurisdiction/ani/etc) and feel it to a Perl script to do the actual LCR carrier selection. I keep all my carriers' rates in separate DB tables and use mysql stored functions to normalize the rate lookup into a standard format used by a while loop in the Perl script. The rate function name that gets called is another usr_preference per carrier.

I certainly don't pretend this is the most efficient way, but it does all our needs better than anything else I have been able to come up with.


- Jeff



On Tue, Nov 22, 2011 at 9:27 AM, Bogdan-Andrei Iancu <bog...@opensips.org <mailto:bog...@opensips.org>> wrote:

    Hi Kpirlo,

    When sending the call to the dip provider, use a failure route in
    order to catch the 3xx reply you get back. In the failure route,
    use the uac_redirect module with the get_redirects() function
    (http://www.opensips.org/html/docs/modules/1.7.x/uac_redirect.html#id250367)
    in order to extract the redirect contacts from the reply and push
    them as new destinations.

    Regards,
    Bogdan


    On 11/20/2011 08:04 PM, Kpirlo wrote:
    We are currently using the Dynamic routing module for our least
    cost routing.

    Now we are looking at implementing an LRN dipping service, where
    we will send the call to a dip provider first and receive a 302
    redirect back which will have the LRN returned in the contact
    header as "rn=" if the number has been ported or will include
    ";npdi"  in the contact header if it has not been ported.

    Im asking for any advice anyone has on how to implement this and
    how it could work with dymanic routing to choose the route based
    on rn if available, but actually send the call using the original
    "to" number.

    Thank you in advance for any help.

    Kent

--
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
OpenSIPS solutions and "know-how"

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to