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@PriceVideo.com 361-572-3810 800-733-3810 Fax: 361-572-3894 www.PriceVideo.com