All:
Please bear with me... I'm having a hard time formulating this quesiton.
Basics:
ser-0.8.12 from src
rtpproxy = $Id: main.c,v 1.19.2.10 2003/10/18 20:14:22 sobomax Exp
RH 7.3 updated to: [root@sip2 rtpproxy]# uname -a
Linux
sip2.claritycolorado.com 2.4.20-20.7 #1 Mon Aug 18 14:56:30 EDT
2003 i686
unknown
The problem seems to be that I cannot "always" forward calls to a given
destination if I have executed the force_rtp_proxy.
Typically I'm using a UA like a Cisco ATA, PureData, or softphone behind
a firewall. They in-turn register to SER/rtpproxy at a legal IP
address; most calls are then forwarded to a Vega gateway that resides on
the same network as SER/rtpproxy (in Denver). In this instance all is
well. However, when I try to alt route calls to an "off-network" source
(Cisco in LA and Sonus in Houston) I get two different and disturbing
results:
1. Cisco will not respond to SER: Cisco simply indicates in its own
logs that the INVITE is invalid and thus "trashed" the message
2. Sonus will respond with a "Bad Request"
Below are some snippets:
Prior to calling the route I have already I identified whether or not my
UA is behind a firewall and have fix_nated_contact(), force_rport(),
setflag(1)
SER/rtpproxy is running at 64.47.72.12
# Clarity Vega Evergreen CO -- this one works
route[1]
{
if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)"
&&
!search("^Route:") ) {
sl_send_reply("479",
"We don't forward to private IP addresses");
break;
};
record_route();
if (isflagset(1)) {
fix_nated_sdp("1");
force_rtp_proxy();
t_on_reply("2");
}
rewritehostport("64.47.72.10:5060");
t_relay();
}
# Clarity Cisco AS5300 LA -- this one does not
route[2]
{
if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)"
&&
!search("^Route:") ) {
sl_send_reply("479",
"We don't forward to private IP addresses");
break;
};
record_route();
if (isflagset(1)) {
fix_nated_sdp("1");
force_rtp_proxy();
t_on_reply("2");
}
rewritehostport("198.77.133.30:5060");
t_relay();
}
# Clarity Sonus Houston -- this one does not
route[3]
{
if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)"
&&
!search("^Route:") ) {
sl_send_reply("479",
"We don't forward to private IP addresses");
break;
};
record_route();
if (isflagset(1)) {
fix_nated_sdp("1");
force_rtp_proxy();
t_on_reply("2");
}
rewritehostport("64.47.6.6:5060");
t_relay();
}
/* inbound */
onreply_route[2] {
fix_nated_contact();
fix_nated_sdp("1");
force_rtp_proxy();
}
Please... If you have any ideas... I'm really stuck.
Jac Barben