Twilio Conversation 挂断呼叫端的邀请

TwilioConversation hang up the invite from calling end

有什么方法可以拒绝刚刚发送的 twilioconversation 邀请。有一次,我邀请,如果由于超时而发生错误,则错误仅发送给调用端,而不发送给被调用端。

 $scope.callUser = function(beingCalledId) {

        if (activeConversation) {
            // add a participant
            activeConversation.invite(beingCalledID);

        } else {
            //create a conversation
            var options = {};
            if (previewMedia) {
                options.localMedia = previewMedia;
            }
            conversationsClient.inviteToConversation(beingCalledId, options).then(
                conversationStarted,
                function(error) {
                    alert(error);
                }
            );
        }
    };

即使被调用端没有收到调用,Error_conversation_invitation也会发出。但是,电话仍在 beingCalled(recieving end) 上响铃。有没有像这样的方法:

conversationsClient.rejectJustSentInvitation();  

twilio怎么挂断主叫端的电话??接收端可以拒绝来电哪个好?调用端呢?

编辑: 是否没有发出诸如失败之类的事件?或取消?

conversationsClient.on('failed', function(invite) {
            $scope.modal2.hide();
            $scope.modal1.hide();
            invite.reject();
        });

conversationsClient.on('canceled', function(invite) {
                $scope.modal2.hide();
                $scope.modal1.hide();
                invite.reject();
            });

这里是 Twilio 开发人员布道者。

当你调用 inviteToConversation 时,它 returns 一个 OutgoingInvite 这是一个最终解析为 Conversation.

的承诺

但是,API 目前将承诺实现为可取消。因此,您可以随时调用 cancel() 承诺,直到它被拒绝或履行。

让我知道这是否有帮助!

[编辑]

为了更清楚起见,这里有一个例子。您可以将其保存为变量,而不是仅仅链接您从对 inviteToConversation 的调用中收到的承诺。然后稍后,如果你需要取消它,调用cancel就可以了:

var invitePromise = conversationsClient.inviteToConversation(beingCalledId, options)
invitePromise.then(conversationStarted, function(error) {
  alert(error);
});

// Then sometime later, if you need to cancel the invite

invitePromise.cancel();

希望对您有所帮助。

[再次编辑]

在 beingCalled 端,您可以监听 IncomingInvite 对象上的取消和失败事件。

conversationsClient.on('invite', function(invite) {
  // show modal for accepting the call

  invite.on('canceled', function(event) {
    // hide modal
  });

  invite.on('failed', function(event) {
    // hide modal
  })
})