2016-10-28 3 views
0

Есть ли способ отклонить только что отправленное приглашение на twilioconversation. Однажды я приглашаю, и если ошибка возникает из-за таймаута, ошибка испускается только для завершения вызова, а не для вызываемого конца.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); 
       } 
      ); 
     } 
    }; 

Даже конец beingCalled оленья кожа Получать вызов, 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

Twilio разработчик евангелист здесь.

Когда вы звоните inviteToConversation, он возвращает 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 
    }) 
}) 
+0

philnash, я уже видел документ, но не мог получить его в коде. Можете ли вы привести пример кода отмены. был бы более чем благодарен. Извините, но я здесь. –

+0

Вы также можете увидеть мое редактирование. Если это может дать больше разъяснений. Отмена обещания ничего не делает. Infact при logging invitePromise, я получил пустой объект «{}». Ошибка тайм-аута при завершении вызова не отклоняет приглашение, отправленное в twilio. Потому что он ничего не испускает на том, что происходит. –

+0

Ах, я мог бы что-то испортить с обещаниями. Проверьте последний код, который устанавливает 'invitePromise' в исходный' OutgoingInvite', а не результат вызова 'then' на нем. – philnash