Hello,
here is my network architecture :
user (private IP ) ------- NAT(user) -------
(INTERNET) ------- SIPserver
|
|
NAT(OpenSER)
|
|
OpenSER
transparent proxy
or in a few words :
- user is behind a NAT
- OpenSER proxy is behind another NAT (public IP of the NAT : 82.x.x.x
, private IP of the OpenSER proxy : 192.168.y.y)
- the SIP server has a public IP address (51.z.z.z)
The user NAT redirects traffic destinated to SIPserver (protocol UDP,
port 5060) to the public IP of the OpenSER NAT, which of course
redirects it to the private OpenSER proxy address
I'd like to configure OpenSER as a transparent proxy server, just adding
a field in the header of register messages during the forward to the
SIPserver :
so here are the important parts of the openser.cfg :
****************************************
listen=192.168.y.y:5060
route {
...
if (method=="REGISTER") {
append_hf("Field : value");
route(2)
return;
}
...
}
route[2] {
# -----------------------------------------------------------------
# REGISTER Message Handler
if(!t_relay("udp:51.z.z.z:5060")) {
sl_reply_error();
};
exit;
}
***************************************
unfortunatly, the "Via" field added by OpenSER contains its private
address : i'd like OpenSER to use the IP address of its NAT instead :
Via: SIP/2.0/UDP 192.168.y.y;.... ---> Via: SIP/2.0/UDP
82.x.x.x:5060;.....
so that the SIPserver will respond through my OpenSER proxy to the user
is there any way to do this ?
it that can help, i'm running openser 1.2.0 from debian packages
available from
openser.org
in the case openSER cannot do this, do you know any other software i
don't know which could do the same things ?
Regards,
Jérôme