At 11:29 AM 1/2/2004, Thilo Salmon wrote:
Happy near year everybody,
this year started with a surprise: UACs I had behind a NAT would not take calls. Further research revealed, that my INVITE messages would be to large to fit my MTU of 1500 of traversing three proxies. Unfortunately, the fragmented UDP packets would NAT traverse my NATs.
Now, looking at the INVITE messages, my first idea was to strip some header fields which are not strictly required to set up a call at the last proxy - such as 'User-Agent'. Would that be a way to go?
There is a function called remove_hf or so in textops module. Also, you can consume credentials which you no longer need after authentication suceeded. (there is a function for it in auth module)
If so, is there a way of doing this with ser? Or would I need tunnel those messages through a B2BUA (if so, which one would you use)?
Neither stripping header fields nor B2BUA are a systematic help. Someday, body will be large (just think of all the IM bloat), or you will need some large header fields. That's the major reason why SIP implementations are supposed to support TCP now. Unfortunately, TCP does not do any better over NATs. For example, TCP Connections would have to be persistent which will exhaust server's port numbers sooner or later. So it seems to me that you will have to live with hacks for a while.
-jiri