2
Twilio Docsには、ユーザーがコールに応答したときに発生したイベントについては見つかりません。 Connection.accept(ハンドラ)は、アンバー時に呼び出されたユーザブラウザでのみ起動されます。私はAurelia.jsの2つのブラウザ間の接続を行い、コールが応答された瞬間にタイマーを開始したいが、ドキュメントに記述されているイベントはユーザーの応答と呼ばれるときに起動しないようだ。これは私のクライアントコードです。Twilioクライアント - 呼び出し元サイトで接続が許可されたイベント
setupTwilio() {
this.http.get("twilio/client/create").then(response => {
this.twilioData = JSON.parse(response.response);
Twilio.Device.setup(this.twilioData.token);
Twilio.Device.offline((device)=>{
Twilio.Device.destroy();
this.setupTwilio();
});
Twilio.Device.ready((device) => {
console.log("Ready");
});
Twilio.Device.error((error) => {
console.log("Error: " + error.message);
});
Twilio.Device.connect((conn) => {
this.call.startedAt = moment().unix();
});
Twilio.Device.disconnect((conn) => {
this.rejectCall();
});
Twilio.Device.cancel((conn) => {
this.rejectCall();
});
Twilio.Device.incoming((conn) => {
var userId = conn.parameters.From.split(":").pop().substring(4);
this.http.get('users/' + userId).then((response) => {
this.call.user = JSON.parse(response.response);
$('#incomingCall').modal({backdrop: 'static', keyboard: false});
}).catch(error => {
this.notification.error("Error fetching user");
});
});
});
}
私が必要としているものではありません。 webhookを使用して、私はバックエンドにユーザーがanwseredを知らせることができます。タイマーを起動してコールウィンドウビューを変更するために、フロントエンドにこの情報が必要です。もちろん、私はバックエンドからこの情報を取得することができますが、Twilioのためにその機能をポーリングするために別のソケットを設定することは、過度のようです。 – McOffsky
私は他に何も見つけられません。あなたはsocket.ioやpubnubのようなものを設定して、ブラウザが聞いているチャネルを作成し、呼び出されたユーザのブラウザからプッシュして他のブラウザで受信することができます。 – ecorvo
正直言って、今のところ私はちょっとしたやり方でこれをやっていました - タイマーが動作していて、呼び出し元のアプリケーションの呼び出し中のウィンドウが起動中です。そして私は呼び出されたユーザーのアプリケーションからコールの長さについての情報を投稿します。それは私の場合は少し安全性が低いですが、その情報のためだけに、コールの長さ制限はTwimlによって設定されています。 とにかく助けてくれてありがとう。 – McOffsky