2015-10-19 3 views
7

アスタリスクARIを使用してWebフロントエンドから実行できるアスタリスクのミュート機能を現在開発中です。ARI JSクライアントのミュートエラー

しかし、私はそれは私に次のエラーを与えるミュート機能を呼び出す/実行しようとするたび:

Error: { 
    "message": "Channel not in Stasis application" 
} 

しかし、それは限り承知していますと、この関数ではなく直接チャネルデータを渡しています、です役立たず。

ARI JSクライアントのご提案はありますか?

ミュートボタンがクリックされる

クライアント側はサーバ側にTDで見つかったデータを発します。

$(document).on('click', '.mute', function() { 
     var mute = $(this).closest('td').siblings(':first-child').text(); 
     socket.emit('muting', mute); 
     if ($(this).hasClass('mute')) { 
      $(this).removeClass('mute').addClass('unmute').find('span').text('Unmute'); 
     } else { 
      console.log("Error"); 
     } 
    }); 

サーバー側

ストアデータは、VARに、クライアント側から受信し、その後停滞関数を呼び出します。

io.sockets.on('connection', function (socket) { 
    updateSip(); 
    socket.on('muting', function (data) { 
     mute(data); 
     console.log("Reached listener for muting") 
    }); 
}); 

うっ滞機能ミュートあなただけのARIクライアントコマンドを使用してサーバ側にクライアントから渡されているチャンネルは、ユーザーがミュートされ、うっ滞アプリケーションで表示されます。

チャネルがアプリケーション内にあり、ミュート機能に渡されているため、現在動作していない方法はわかりません。

EDIT:ハングアップ/キック機能が同じ方法で処理されており、正常に動作します。以下はすべて私のデバッグです。

チャンネルダンプ Channel Dump

無料PBXログ enter image description here AsteriskのCLIデバッグレベル5 enter image description here

Socket.ioエラー enter image description here

私はsocket.ioを介してそれを実行しようとしましたが、その結果は同じで、私は他の機能を持っていて、すべてうまく動作します。

答えて

2

チャネルIDではなくチャネル名が必要なため、チャネル名で機能するため、実行されませんでした。

アスタリスクARIは、ハングアップや発信機能などの他の機能と同様に、チャネルIDだけでなく、チャネル名でも動作するはずであるため、矛盾しています。

+1

ARIでは矛盾していません。操作では、パスではなく名前でチャネルIDが必要です。一般的には、実際には、IDはチャネルに対するより良い扱いです。なぜなら、(1)あいまいなケースでは名前を再利用することができます。 (2)IDは常に自動的に生成されますが、アプリによってIDを提供することができます。 歴史的なアスタリスクと矛盾していることに同意しますが、新しいAPI /機能ではときどき発生します。 –

関連する問題