El Lunes, 4 de Mayo de 2009, Dubravko Caric escribió:
There is a really easy way to detect if a router is performing SIP ALG:
- Configure you UA in the LAN with *no* STUN/ICE, just private IP.
- Capture a INVITE/REGISTER from that UA in the proxy (in the public
network). - Check if "Via" and/or "Contact" headers contain the router public IP instead of the UA private IP.
- If so, you are behind a *fucking* router with SIP ALG enabled.
I did everything as you described and I can confirm that this router has SIP ALG enabled.
Bad luck then... :( SIP ALG is the worst enemy for SIP.
If you can dissable it (by web, telnet...) please add that information to the wiki page: http://www.voip-info.org/wiki/view/Routers+SIP+ALG (or sent it to me directly and I'll add it).
there is no way to change this (turn ON/OFF) because there is no such option in the web interface of the router.
Have you tryed via telnet? Most of the commercial routers don't show the SIP ALG option in the web interface, but via telnet.
what i will try to do (over this weekend) is to load DD-WRT firmware (which isn't Linksys firmware) and if this goes well I'll put this solution on wiki.
I checked this closely once more and I was wrong (I had too much traces open) :( what really happens is that UAC sends "OK" with right port in Contact header towards the router but the router is the one that changes this port to "0" and sends this malformed message to the proxy.
Yes, setting a "cool" port (as 0) is a common "feature" in SIP ALG enabled routers. It's also very common to see ports like 12333453 (yes, greater than 2^16).
Thanks once more
Please, add any information you get to dissable SIP ALG in this router to the Wiki I suggested. Also, you can add information about the issues you had due to this SIP ALG router. Really thanks for it. :)