Hi Daniel,

Thanks for your response. But I don't want the IP in the received parameter of 
the incoming request. 
Instead, I want to read it (i.e. the public IP address of my own network where 
the local user and Kamailio are located) from the incoming response received 
from another proxy located outside the network. And I need that because 
Kamailio strips the top most via (where the received parameter is present ) in 
the incoming response before sending it back to the local user, which I guess 
is correct. But the user needs to know that IP address. So we are planning to 
send that IP address in a custom header in the response back to the user.

After going through some Kamailio documents I found that $sel(via.received) 
would return the IP address in top most via of a message. Can I store it in a 
variable inside onreply_route[MANAGE_REPLY] block and use that variable later 
in some appropriate route block to insert a new header in the response to the 
local user? 

Can I do something as given below to fetch and store the IP address from 
received parameter in the via header of incoming response

onreply_route[MANAGE_REPLY] {
...
if(search_hf("Via", "received", "f")) {
                xdbg("received param exists on top most via header \n");
                $var(public_ip) = $sel(via.received);
        }
...
}

and insert a new header as given below in an appropriate route block which is 
executed while sending response back?
append_hf("My-custom-hdr: $var(public_ip) \r\n");

I am not sure if this logic would work. Is the $var() variable retained through 
two different sip transactions? And which route block should be used to insert 
the header as mentioned above? Please help.

Thanks,
Ajay

Hello,

the received parameter is constructed from source IP of the incoming request. 
You get it via $si script variable.

Cheers,
Daniel

On 3/12/13 7:22 PM, Ajay Sabat wrote:
>
> Hi,
>
> I want to extract the IP address in the received parameter of the top 
> most via header of a response and use that in a custom header while 
> sending response back to the caller. Can somebody please tell how to 
> implement that in the Kamailio configuration file?
>
> I need to handle a NAT traversal scenario without enabling NAT in 
> Kamailio which is used as the proxy server. The caller which is in the 
> same network as Kamailio first sends a OPTIONS request to the callee 
> before sending the INVITE. It uses the public IP address returned in 
> the custom header of the OPTIONS response to build the contact header 
> and SDP of the INVITE request. In fact, it first looks for the IP 
> address in the received parameter of the via header to do that. But 
> Kamailio removes the top most via with received parameter and then 
> sends the OPTIONS response back to the caller. So we are using a 
> custom header for that purpose.
>
> I would appreciate other suggestions to achieve this in Kamailio, may 
> be by enabling NAT or some other alternative.
>
> Thanks,
>
> Ajay
>
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing 
> list sr-users@lists.sip-router.org 
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

--
Daniel-Constantin Mierla - http://www.asipto.com http://twitter.com/#!/miconda 
- http://www.linkedin.com/in/miconda
Kamailio World Conference, April 16-17, 2013, Berlin
  - http://conference.kamailio.com -



_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to