1

サーバーは Opensip サーバー 1.10.0-tls (linux) です。ローカル ステーションとの間の会話を処理でき、最近、外部システムからのステーションを許可するように更新されました。これは、ステーションがローカルに存在しない場合 ($tu はそのまま)、$ru のユーザー名、IP、およびポートを変更することによって行われます。これは、招待、通話、および同様のすべてのメッセージに対して正常に機能します。

私が抱えている問題は、ローカル クライアント ステーションに渡されている外部サーバーからの bye が、クライアントからのものであることを確認できる 481 (コール レッグ/トランザクションが存在しない) によって拒否されていることです。ソフトウェアですが、同じサーバー上のローカル ステーションからの Bye を問題なく受け入れます。ローカルからローカル エンドへの呼び出しは問題ありません。ローカルから外部への呼び出しはすべてシャットダウンされています。外部の呼び出し元からローカルの呼び出し先への呼び出しだけが閉じられません (481 と言っているのは呼び出し先です)。

これは、to/from と call-id のタグが異なるため、トランザクションの照合が行われないことが原因であると理解しています。$ru の一部を変更する何か (私の $ru スクリプトなど) がトランザクションを決定するためにハッシュに影響を与える可能性があることは理解していますが、タグや callid は変更せず、$ru の名前だけを変更します。右の IP とステーション名に移動します。

私の質問は、クライアント アプリケーションを変更せずにサーバー上でこれを解決するにはどうすればよいですか? 以下に、クライアント ワークステーションでの Wireshark キャプチャから取得したメッセージの例をいくつか含めました。トランザクションの一致に関係なく、sip メッセージを介してクライアントにマークを付けたり、会話をシャットダウンするように指示したりする方法はありますか?

私はこれについてしばらくの間私の髪を引っ張ってきたので、これについて何か助けていただければ幸いです.

外部呼び出し元 (サーバー 5.44 では 103) からローカル呼び出し先 (ローカル名は wks2、外部参照名は 155、サーバー 3.3 ではクライアントは 3.0) のメッセージ例。まずさようならが問題です。次は、クライアントでハングしている接続を閉じることです。

----------
INVITE sip:895eedf7-4256-44d0-9edf-39785b6ceef0@172.16.3.0:5050 SIP/2.0  
    Record-Route: <sip:172.16.3.3;lr;ftag=as678f227c>  
    Via: SIP/2.0/UDP 172.16.3.3:5060;branch=z9hG4bKd066.93df6e05.0  
    Via: SIP/2.0/UDP 172.16.5.44:5060;received=172.16.5.44;branch=z9hG4bK50029c58;rport=5060  
    Max-Forwards: 69  
    From: "Station 103   " <sip:103@172.16.5.44>;tag=as678f227c  
    To: <sip:155@172.16.3.3:5060>  
    Contact: <sip:103@172.16.5.44:5060>  
    Call-ID: 2697521655d00bab6de06a5941ddf8b4@172.16.5.44:5060  
    CSeq: 102 INVITE  
    User-Agent: Asterisk PBX 1.8.13.1~dfsg1-3+deb7u3  
    Date: Thu, 25 Jun 2015 14:27:31 GMT  
    Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH  
    Supported: replaces, timer  
    Content-Type: application/sdp  
    Content-Length: 296  
    Redirect-to: sip:wks2@172.16.3.3:5060  
----------
SIP/2.0 180 Ringing  
    Via: SIP/2.0/UDP 172.16.3.3:5060;branch=z9hG4bKd066.93df6e05.0;received=172.16.3.3;rport=5060  
    Via: SIP/2.0/UDP 172.16.5.44:5060;received=172.16.5.44;branch=z9hG4bK50029c58;rport=5060  
    To: <sip:155@172.16.3.3:5060>;tag=1262186908  
    From: "Station 103   " <sip:103@172.16.5.44>;tag=as678f227c  
    Call-ID: 2697521655d00bab6de06a5941ddf8b4@172.16.5.44:5060  
    CSeq: 102 INVITE  
    Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER, REGISTER, SUBSCRIBE  
    Content-Length: 0  
----------
SIP/2.0 200 Ok  
    Via: SIP/2.0/UDP 172.16.3.3:5060;branch=z9hG4bKd066.93df6e05.0;received=172.16.3.3;rport=5060  
    Via: SIP/2.0/UDP 172.16.5.44:5060;received=172.16.5.44;branch=z9hG4bK50029c58;rport=5060  
    To: <sip:155@172.16.3.3:5060>;tag=1262186908  
    From: "Station 103   " <sip:103@172.16.5.44>;tag=as678f227c  
    Call-ID: 2697521655d00bab6de06a5941ddf8b4@172.16.5.44:5060  
    CSeq: 102 INVITE  
    Contact: <sip:172.16.3.0:5050>  
    Record-Route: <sip:172.16.3.3;lr;ftag=as678f227c>  
    Server: www.sipsorcery.com  
    Content-Length: 161  
    Content-Type: application/sdp  
----------
ACK sip:172.16.3.0:5050 SIP/2.0  
    Via: SIP/2.0/UDP 172.16.3.3:5060;branch=z9hG4bKd066.93df6e05.2  
    Via: SIP/2.0/UDP 172.16.5.44:5060;received=172.16.5.44;branch=z9hG4bK49d179f0;rport=5060  
    Max-Forwards: 69  
    From: "Station 103   " <sip:103@172.16.5.44>;tag=as678f227c  
    To: <sip:155@172.16.3.3:5060>;tag=1262186908  
    Contact: <sip:103@172.16.5.44:5060>  
    Call-ID: 2697521655d00bab6de06a5941ddf8b4@172.16.5.44:5060  
    CSeq: 102 ACK  
    User-Agent: Asterisk PBX 1.8.13.1~dfsg1-3+deb7u3  
    Content-Length: 0  
----------
BYE sip:172.16.3.0:5050 SIP/2.0  
    Via: SIP/2.0/UDP 172.16.3.3:5060;branch=z9hG4bKe066.64948323.0  
    Via: SIP/2.0/UDP 172.16.5.44:5060;received=172.16.5.44;branch=z9hG4bK1e381a63;rport=5060  
    Max-Forwards: 69  
    From: "Station 103   " <sip:103@172.16.5.44>;tag=as678f227c  
    To: <sip:155@172.16.3.3:5060>;tag=1262186908  
    Call-ID: 2697521655d00bab6de06a5941ddf8b4@172.16.5.44:5060  
    CSeq: 103 BYE  
    User-Agent: Asterisk PBX 1.8.13.1~dfsg1-3+deb7u3  
    X-Asterisk-HangupCause: Normal Clearing  
    X-Asterisk-HangupCauseCode: 16  
    Content-Length: 0  
----------
SIP/2.0 481 CallLegTransactionDoesNotExist  
    Via: SIP/2.0/UDP 172.16.3.3:5060;branch=z9hG4bKe066.64948323.0;received=172.16.3.3;rport=5060  
    Via: SIP/2.0/UDP 172.16.5.44:5060;received=172.16.5.44;branch=z9hG4bK1e381a63;rport=5060  
    To: <sip:155@172.16.3.3:5060>;tag=1262186908  
    From: "Station 103   " <sip:103@172.16.5.44>;tag=as678f227c  
    Call-ID: 2697521655d00bab6de06a5941ddf8b4@172.16.5.44:5060  
    CSeq: 103 BYE  
    Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER, REGISTER, SUBSCRIBE  
    Content-Length: 0  
----------
BYE sip:103@172.16.5.44:5060 SIP/2.0  
    Via: SIP/2.0/UDP 172.16.3.0:5050;branch=z9hG4bKfe13e63d99524b06846bde0fedbd8a69;rport  
    To: "Station 103   " <sip:103@172.16.5.44>;tag=as678f227c  
    From: <sip:155@172.16.3.3:5060>;tag=1262186908  
    Call-ID: 2697521655d00bab6de06a5941ddf8b4@172.16.5.44:5060  
    CSeq: 103 BYE  
    Max-Forwards: 70  
    Route: <sip:172.16.3.3;lr;ftag=as678f227c>  
    Content-Length: 0  
----------
SIP/2.0 481 Call leg/transaction does not exist  
    Via: SIP/2.0/UDP 172.16.3.0:5050;received=172.16.3.0;branch=z9hG4bKfe13e63d99524b06846bde0fedbd8a69;rport=5050  
    From: <sip:155@172.16.3.3:5060>;tag=1262186908  
    To: "Station 103 " <sip:103@172.16.5.44>;tag=as678f227c  
    Call-ID: 2697521655d00bab6de06a5941ddf8b4@172.16.5.44:5060  
    CSeq: 103 BYE  
    Server: Asterisk PBX 1.8.13.1~dfsg1-3+deb7u3  
    Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH  
    Supported: replaces, timer  
    Content-Length: 0  
----------

ありがとうございました :-)

4

1 に答える 1

1

上記のコメントを参照してください。問題は、クライアント アプリがさようならメッセージをチェックするための非標準的な動作に従っていたことでした (to タグではなく、チェックされました)。クライアント アプリの変更によって解決されている問題。

于 2015-06-26T14:51:57.587 に答える