[SR-Users] Redirect Server Including Path/Recieved Information

Asgaroth 00asgaroth00 at gmail.com
Fri Jan 9 14:41:32 CET 2015


Hi,

I am hoping to have the redirect server not be in the signalling path, 
so when a media server asterisk/freeswitch sends an invite over to the 
redirect server, I need to respond with the 302 and include the contact 
information, outbound path (via proxy loadbalancer) and the recieved 
information to let the proxy/loadbalancer know where to forward to.

So when a client registers it comes in like this:

UAC --> Firewall --> Proxy --> Registrar

At this point the registrar stores the recieved host:port of firewall, 
and path via the proxy.

When I send a redirect, I want the media server to travers the path via 
the route the uac registered with:

uas invite --> redirect server
uas            <-- 302
uas invite --> proxy (path) --> firewall (recieved) --> uac

I am not sure how to provide the path information in the 302 response. I 
tried to add it as a madd parameter in the contact header but it then 
uses the port defined in the host part of the uri as the proxy port. I 
cant seem to find a reference as to how to do this.

for example, uac is registered with following info (info manipulated to 
protect the poor :) ) and pulled from location table:

Contact: 
sip:username at 192.168.1.150:55023;rinstance=9dc7a3f0e662b2cd;transport=UDP
Recieved: sip:213.146.165.189:20185
Path: <sip:77.87.89.91;lr;received="sip:213.146.165.189:20185">

I tried to perform a redirect with the following information in the contact

Contact: 
<sip:username at 192.168.1.150:55023;rinstance=9dc7a3f0e662b2cd;transport=UDP;received=sip:213.146.165.189:20185,maddr=77.87.89.91>

The problem here is that the media server attempts to send the new 
invite to port 55023 at the host specified by the maddr (77.87.89.91) 
parameter.

I did some more reading this morning and I can see that the rfc says 
that the new invite should be relayed in this manner.

How would I specify the equivilent of $du in a 302 response message?

I hope that explains it a little better.

Thanks


On 09/01/2015 13:14, Daniel-Constantin Mierla wrote:
> Hello,
>
> I am not sure if path and received from location will be of any
> information for the redirect. At least received is the proto, source and
> port of incoming REGISTER. Then, the Path is to be used by location
> server when forwarding requests.
>
> Can you give more details of how path and received from location should
> be used by the one receiving the 30x redirect?
>
> Cheers,
> Daniel
>
> On 08/01/15 22:09, Asgaroth wrote:
>> Hi All,
>>
>> I am attempting to setup a standalone redirect server which will
>> lookup contact info and redirect to appropriate outbound proxy.
>>
>> The problem I am having is that the registrar is storing the path and
>> recieved information, however, when I perform a lookup and reply with
>> 302, the recieved and path information is not included.
>>
>> Are there module parameters in the registrar module that will include
>> these contact parameters (recieved) or create the appropriate headers
>> (path/route) in the 302 response, or, is this something I need to do
>> manually.
>>
>> Currently I have the following lookup code:
>>
>> route {
>>
>>    t_check_trans();
>>
>>    if ( method == "INVITE" ) {
>>      xlog("route[MAIN] : $rm : ruri=$ru");
>>      xlog("route[MAIN] : $rm : lookup=sip:$rU at registered.domain");
>>      if ( lookup("location", "sip:$rU at registered.domain") ) {
>>        send_reply("302", "Moved Temporarily");
>>        exit;
>>      }
>>    }
>> }
>>
>> I had a look at the path_mode parameter but this looks like it only
>> takes affect for REGISTER methods.
>>
>> The INVITE that comes in supports the PATH header but I dont see this
>> being passed back. In fact, I'm not entirely sure if the path header
>> is a supported header in the 302 response message. I had a quick
>> google and I cant seem to easily find what headers are suported in the
>> 302 message, and where I need to put the path/recieved information. I
>> presume I can add the recieved info as a parameter to the contact
>> header, but how would i specify the outbound proxy to use, would that
>> be in a route or a path header in the 302 response?
>>
>> I can see that the $du pseudo variable is set with the appropriate
>> outbound path and received information, now I just need to include
>> this information in the 302 response.
>>
>> Any suggestions/comments to assist in how I get this info into the 302
>> message would be greatly appreciated.
>>
>> Thanks in advance.
>>
>>
>> _______________________________________________
>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>> sr-users at lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users




More information about the sr-users mailing list