Question

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)

enter image description here

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)

enter image description here

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

Was it helpful?

Solution 2

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

OTHER TIPS

The To and Contact fields in your REGISTER request both specify port 5060: sip:192.168.5.2@107.108.188.26:5060.

This expresses that you want to receive calls (i.e. INVITEs) on this port. See the rfc.

Change the host part of the uri to 107.108.188.26:1024 instead if you wish to receive the INVITEs on port 1024.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top