TwilioConversation挂断了来自呼叫结束的邀请

时间:2016-10-28 05:04:43

标签: javascript jquery ionic-framework twilio twilio-api

是否有任何方法可以拒绝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();
            });

1 个答案:

答案 0 :(得分:1)

Twilio开发者传道者在这里。

当您致电inviteToConversation时,它会返回OutgoingInvite,这是一张最终解析为Conversation的承诺。

但是,API目前将promises实现为可取消。因此,您可以随时致电承诺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();

希望有所帮助。

[再次编辑]

在isCalled结束时,您可以在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
  })
})