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