音视频呼叫建立成功后,主动挂断监听回调为失败返回2

发送呼叫邀请成功,但是还没有接通,这个时候主叫挂断电话,调用cancelLocalInvitation返回2是什么原因?

请确认主叫方是否有收到 onLocalInvitationReceivedByPeer 回调(返回给主叫的回调:被叫已收到呼叫邀请),确认一下是否有成功发送呼叫邀请。

已经成功,并且跳转页面了

请提供 RTM SDK 日志,我们来分析一下。

agorartm.zip (29.8 KB)

INFO    2020-05-22T09:32:43:344   6213; [RtmCallManagerImpl] local invite received by peer

INFO    2020-05-22T09:33:43:273   6214; [rtm-note] onLocalInvitationFailure
INFO    2020-05-22T09:33:43:273   6214; [rtm-note] onLocalInvitationEnd
INFO    2020-05-22T09:33:43:273   6213; [rtm-callimpl] Local Invitation Failure
INFO    2020-05-22T09:33:43:276   6213; [RtmCallManagerImpl] local invite failure: LOCAL_INVITATION_ERR_INVITATION_EXPIRE
INFO    2020-05-22T09:33:43:277   6213; [rtm-callimpl] Local Invitation End

从日志可以看到,主叫发送呼叫邀请 60 秒后未被取消、接受、拒绝,此时呼叫邀请过期。

此时再去取消呼叫邀请就会失败

INFO    2020-05-22T09:33:44:060   6193; [RtmCallManagerImpl] create call invitation, callee: 18354275005
INFO    2020-05-22T09:33:56:223   6193; [RtmCallManagerImpl] cancel invitation
INFO    2020-05-22T09:33:56:224   6193; [rtm-API] cancel invitation
INFO    2020-05-22T09:33:56:224   6193; [rtm-callimpl] cancel, current state is 0, content size is 0
INFO    2020-05-22T09:33:56:228   6193; [RtmCallManagerImpl] cancel invite to 18354275005 ret: 2

建议你可以在监测到 onLocalInvitationFailure 回调后 就在 UI 上提示用户呼叫邀请超时。

好的

RtmCallManager是唯一的,还是在需要的时候去创建

每个 RtmClient 实例都有各自唯一的 RtmCallManager 实例。属于不同 RtmClient 实例的 RtmCallManager 实例各不相同。
RtmCallManager 的生命周期随 RtmClient 一同管理,在调用 release 方法后随 RtmClient 一同被销毁。

如果在俩个页面都设置了setEventListener,在上个页面调用sendLocalInvitation,收到onLocalInvitationReceivedByPeer之后,跳转到下个页面,这个时候主叫方挂断电话是不是会失败。

不会失败,但是需要确保:

  1. cancelLocalInvitation 设置的 localInvitation ,是 onLocalInvitationReceivedByPeer 回调返回的 localInvitation。
  2. 呼叫邀请没有结束/没有失败,还在进行中。

如果只是 localInvitation中的值一致,是不可以的对吧

嗯。

当前登陆的用户在别的手机上进行登陆了,有什么监听方法能够监听到被挤掉了吗?

一般来说会触发 onConnectionStateChanged 回调, 其中连接状态是 CONNECTION_STATE_ABORTED(SDK 停止登录 Agora RTM 系统。可能原因:另一实例已经以同一用户 ID 登录 Agora RTM 系统), reason 是 CONNECTION_CHANGE_REASON_REMOTE_LOGIN(另一个用户正以相同的用户 ID 登陆 Agora RTM 系统)。

ok