2017-10-30 11 views
0

私はahmedです。私はopensipsで作業しています。 実際には、私はフォーラムにあなたの質問を投げて、私はあなたが答えを持っていると思うという問題があります。Opensips 2.1 SIPトランクの設定

実際には、opensipsサーバに登録されているユーザ間で通話をルーティングするためにシンプルなシナリオを実行しましたが、実際のIP電話(各自が独自のIPアドレスを持っています)では動作しません。 (トランク)。 例:私のopensipsアドレス:10.42.15.18 と私のIPアドレスは:10.42.13.82 です。

私はこの部分でブロックされ、解決策がたくさん検索されていますが、私が逃した詳細があるかもしれません。 機能はIP電話で要求と応答を処理する責任がありますか?

私はこのコードを使用し

アカウントのみ

if ($rU=="49894614950666"){ 
         $rU = $tU; 
         rewritehostport("10.42.13.82:5060"); 
         $du = "sip:[email protected];user=phone"; 
         t_relay(); 
         xlog("reference to URI of 'To' header ====> $tu"); 
         xlog("reference to domain in URI of 'TO' header ====> $td"); 
         # route the call out based on RURI 
         route(3); 
         } 



route[3]{ 

     seturi("sip:[email protected];user=phone"); 
     $du = "sip:[email protected];user=phone"; 
     rewriteuri("sip:[email protected];user=phone"); 
     xlog("route 2 : forwarding to $tU \n $ruri \n"); 
     xlog("Received $rm from $fu (callid: $ci)\n"); 
     forward(); 



       if (is_method("INVITE")) { 
       t_on_branch("2"); 
       t_on_reply("2"); 
       t_on_failure("1"); 
     } 



     if (!t_relay()) { 
       sl_reply_error(); 
     }; 
     exit; 
} 

ソフトフォンから要求された番号を呼び出して、サーバは要求を次のようにINVITEを送信する招待:

INVITE sip:[email protected];transport=TCP SIP/2.0 
Via: SIP/2.0/TCP 10.42.15.12:5060;branch=z9hG4bK-524287-1---dedd27ee7475c0f1 
Max-Forwards: 70 
Contact: <sip:[email protected]:5060;transport=tcp> 
To: <sip:[email protected];transport=TCP> 
From: <sip:[email protected];transport=TCP>;tag=2f025b44 
Call-ID: tdO14DnlADH9Okx6Sr0p4A.. 
CSeq: 1 INVITE 
Content-Type: application/sdp 
User-Agent: Z 3.15.40006 rv2.8.20 
Allow-Events: presence, kpml, talk 
Content-Length: 237 

をし、ターゲットVMはOpensipsサーバにINVITEリクエストを再送しますが、サーバはメッセージを送信してターゲットマシンに応答しません。

私は、INVITEメッセージの "To"フィールドが偽であるのは不思議です! opensipsは、IP電話に招待状を送信し、そこからのメッセージを無視し、ackで応答しません。 追加または変更する必要はありますか? ありがとうございます。

+0

「opensipsctlアドレス」コマンドを使用して、実行時に場所を変更することができます! –

答えて

0

lookup機能を使用しないのはなぜですか?あなたのようなケースを正確に意図しており、URIを自動的に書き直す際にすべての義務を負うことになります。そのような

何か:

    if (lookup("location","m")) { 
          xlog("[INCOMINGCALL][$rU @ $si:$sp ] Forward call call to <$ru> via <$du>\n"); 
          if (!t_relay()) { 
            send_reply("503","Internal Error"); 
          }; 
          exit; 
        } 

        t_reply("404", "Not Found"); 
        exit; 

この技術の利点あなたがいずれかを助けることができる

関連する問題