我目前正在Android应用中实施Twilio Video
,其中正常行为(以及我需要的行为)应该是:
如果客户端A呼叫客户端B,并且客户端B拒绝该呼叫,则客户端A接收(onConversation
)包含TwilioConversationsException
的错误(对象code:107, message:Participant rejects the call.
)。
或者,如果客户端A呼叫客户端B,并且客户端B未连接到Twilio,则客户端A会立即收到code:106, message:Participant is unavailable at the moment.
的错误。此时,我会多次重试,直到用户连接并响应(接受或拒绝),或者在呼叫开始后30秒过去。
我的工作基于此,但在客户B失去互联网连接或应用程序意外关闭后,我遇到了问题。在重新连接到Twilio之后,当客户端B拒绝呼叫时,客户端A收到错误code:106, message:Participant is unavailable at the moment.
而不是code:107, message:Participant rejects the call.
,欺骗客户端A认为客户B与Twilio断开连接(当他实际连接时),这会触发新的来电尝试。对于我一直在观察的内容,此问题与客户端B身份相关联,在某种程度上,它仍然注册为unavailable
并且不让它正常工作。如果我改变了客户B的身份,那么这种行为会回归常规,但这不是主意。我的目的是让身份成为我的用户ID:唯一且固定的。
根据这个帖子,在iOS中也是如此:
Twilio iOS Video Call: Getting "User is unavailable" error message when user rejects the call
我很感激一些帮助!最好的问候!
答案 0 :(得分:0)
一位同事问Twilio的支持并被告知:
嘿Deneb,
这些工作流程对当前的对话有一些挑战 可编程视频中的API,我们正在努力解决这些问题 即将推出的产品:新的Rooms API。房间允许 您的用户连接到指定的房间(多方电话会议) 您定义的名称,或其唯一ID(RoomSid)。使用此API, 您不必担心您的终端是否/何时在线 - 您 可以让你的用户连接到适当的房间,他们会 能够彼此分享语音和视频。
Rooms API将在短短几周内推出,我想 它将更适合您的用例。如果你需要一个 解决方案更紧急,我建议使用第三方 通知产品,如Firebase或PubNub,以确保两者 参与者“清醒”并连接,然后发起邀请 流动。
如果您对此有任何疑问,请与我们联系。谢谢你的尝试 可编程视频,
此致,Rob Brazier