cloudwebrtc / go-sip-ua

Go SIP UA library for client/b2bua
Apache License 2.0
215 stars 84 forks source link

Add "rport" in via to support NAT. #98

Closed finntenzor closed 4 months ago

finntenzor commented 1 year ago

In current version of code, the "Via" in register request looks like: Via: SIP/2.0/UDP 192.168.1.100:50001;branch=z9hG4bK.iJM9FQ5m5ZRW0ZJZTAvNGlTyN9JPA6Nl In a common VoIP software, the "Via" in register request looks like: Via: SIP/2.0/UDP 192.168.1.100:50001;rport;branch=z9hG4bK.iJM9FQ5m5ZRW0ZJZTAvNGlTyN9JPA6Nl

The difference is that an extra "rport" is added. (See RFC3581)

This allows the client to be in the NAT without causing message loss. This version of code works fine on my FreeSwitch server.

However, the code does not carefully tune the writing style and configuration features, perhaps adding additional configurable items would be better.