Hey Guys,
I did a bit more poking at the problem. It seems almost like the call
process just breaks down in the signaling. All the packets seem to get
to their destination up to the last ACK packet before the two clients
start broadcasting their audio and video to one another. All other SIP
packets after that seem to also wind up with the private IPs put on
them.
I put together the following scripting to be put down in the route
section:
#This conditional is to try and redeem ACKs that some how managed to get
a private address attached to them.
#This is basically a hack to try and "normalize" the packets coming
through and pray they work.
if(method=="ACK" || method=="BYE" || method=="INFO"){
if(uri=~"^sip:192\.168\.[0-9]+\.[0-9]+[:]*[0-9]*" ||
uri=~"^sip:10\.[0-9]+\.[0-9]+\.[0-9]+[:]*[0-9]*" ||
uri=~"^sip:172\.(16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)\.[0-9]
+\.[0-9]+[:]*[0-9]*")
{
#Rewrite the R-URI of the packet to the To-URI in the To header.
subst_uri('/^sip:[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+[:]*[0-9]*$/$tu/ig');
#Force the server to perform a lookup on the new URI and try and route
it properly.
lookup("location");
#Strip out the Record-Route
remove_hf("Record-Route");
#There may be more magic needing to be inserted here for additional
mangling of the packet.
#<insert cuisinart here>
};
};
This, while not pretty, at least routes the packets, but the clients are
being picky about the things.
Client A and Client B register to the server
Client A calls Client B...Call Fails
Client B calls Client A after the previous call...Call Connects
All other calls back and forth are fine until the clients unregister.
Could there be something I'm missing? I dunno if I hit on a bug or
something, but it seems rather odd that everything up to that one point
is fine.
Thanks,
Justin Pearce
Information Technology/Programming
Price Video Productions
JustinP(a)PriceVideo.com
361-572-3810
800-733-3810
Fax: 361-572-3894
www.PriceVideo.com