2

resiprocateを使用して NAT トラバーサル ソリューションを開発すると、正常に動作しますが、特に cisco ルーターで SIP INVITE get が失敗することがよくあります。

1. SIP REGISTER はポート 1024 から送信されます

ソース: 107.108.188.26

宛先:107.108.188.52

ユーザー データグラム プロトコル、送信元ポート: 1024 (1024)、送信先ポート: sip (5060)

ここに画像の説明を入力

2. SIP ステータス 200 OK

ソース: 107.108.188.52

宛先:107.108.188.26

ユーザー データグラム プロトコル、送信元ポート: sip (5060)、送信先ポート: 1024 (1024)

3. SIP/SDP 招待

送信元: 107.108.188.52 送信先: 107.108.188.26 ユーザー データグラム プロトコル、送信元ポート: sip (5060)、送信先ポート: sip (5060)

ここに画像の説明を入力

理想的には、ステップ 1 とステップ 3 の送信元ポートは 1024 である必要があります。同じ理由があれば教えてください。

4

2 に答える 2

0

REGISTER リクエストのToフィールドとContactフィールドはどちらもポート 5060 を指定しています: sip:192.168.5.2@107.108.188.26:5060

これは、このポートでコール (つまり INVITE) を受信することを表します。 RFC を参照してください

ポート 1024 で INVITE を受信したい場合は、URI のホスト部分を107.108.188.26:1024に変更します。

于 2013-04-01T21:38:19.367 に答える
0

同じことを議論し、次の結論を得ました

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
于 2013-04-02T03:57:45.637 に答える