Developing a NAT traversal solution, using resiprocate, it works fine, but often SIP INVITE get's failed particularly on cisco routers
1. SIP REGISTER is sent out by port 1024
Source: 107.108.188.26
Destination:107.108.188.52
User Datagram Protocol, Src Port: 1024 (1024), Dst Port: sip (5060)
2. SIP status 200 OK
Source: 107.108.188.52
Destination:107.108.188.26
User Datagram Protocol, Src Port: sip (5060), Dst Port: 1024 (1024)
3. SIP/SDP INVITE
Source: 107.108.188.52 Destination:107.108.188.26 User Datagram Protocol, Src Port: sip (5060), Dst Port: sip (5060)
Ideally, the sent-by port should be 1024 in step 1 and step 3. Please point me to for any possible reason behind the same
Discussed the same and got following conclusion
If RFC5626 (Outbound) is not used on the client side, then resip will route INVITEs to the user based on the information in their Path or Contact headers of the registration request. You want to try out a repro setting that forces RFC5626 behaviour in the proxy even if the clients to no support it:
# Enable use of flow-tokens in non-outbound cases
# WARNING: Before enabling this, ensure you have a RecordRouteUri setup, or are using
# the alternate transport specification mechanism and defining a RecordRouteUri per
# transport: TransportXRecordRouteUri
EnableFlowTokens = true