版本:v1.4.4
属性名称前如果有下划线表示其为内置属性(而非自定义属性)。

全局方法

方法 说明
getInstance() 获取 AgoraAPIOnlySignal 实例

IAgoraAPI 接口类

IAgoraAPI 类为信令的接口类。

方法 说明
destroy() 销毁信令实例
callbackSet() 为信令实例设置回调对象
callbackGet() 获取信令实例的回调对象
login()

登录信令系统

login2()

登录信令系统

logout() 登出信令系统。登出成功将收到 ICallBack 类的 onLogout 回调。
invoke() RPC 远程过程调用方法。可用于用户或频道相关操作。结果通过 ICallBack 类的 onInvokeRet 回调返回。
queryUserStatus() 查询名为 account 的用户是否在线。结果通过 ICallBack 类的 onQueryUserStatusResult 回调返回。
setAttr() 设置当前登录用户的相关属性值。
getAttr() 获取当前登录用户的相关属性值。结果通过 ICallBack 类的 onUserAttrResult 回调返回。
getAttrAll() 获取当前登录用户的全部属性值。结果通过 ICallBack 类的 onUserAttrAllResult 回调返回。
getUserAttr() 获取名为 account 的用户的 name 属性值。结果通过 ICallBack 类的 onUserAttrResult 回调返回。
getUserAttrAll() 获取名为 account 的用户的所有属性值。结果通过 ICallBack 类的 onUserAttrAllResult 回调返回。
messageInstantSend()

向名为 account 的用户发送点对点消息

channelJoin()

加入指定频道。

channelLeave()

退出指定频道。退出成功时:

channelQueryUserNum() 查询频道用户数。结果通过 ICallBack 类的 onChannelQueryUserNumResult 回调返回。
channelSetAttr() 设置频道属性。设置成功将收到 ICallBack 类的 onChannelAttrUpdated 回调。
channelDelAttr() 删除频道属性。删除成功将收到 ICallBack 类的 onChannelAttrUpdated 回调。
channelClearAttr() 删除所有频道属性。删除成功将收到 ICallBack 类的 onChannelAttrUpdated 回调。
messageChannelSend()

发送频道消息(消息发送者必须在频道内)

messageChannelSendForce() 发送频道消息(消息发送者不必在频道内)
channelInviteUser()

邀请名为 account 的用户加入指定频道

channelInviteUser2()

邀请名为 account 的用户加入指定频道,呼叫方可以附带一段额外信息。

channelInviteDTMF() 发送 DTMF 消息到对端 phoneNum 用户,一般用于 SIP 网关的呼叫。
channelInviteAccept() 接受来自 account 用户的加入指定频道的呼叫邀请。接收后主叫方将收到 onInviteAcceptedByPeer 回调。
channelInviteRefuse() 拒绝来自 account 用户的加入指定频道的呼叫邀请。拒绝后主叫方将收到 onInviteRefusedByPeer 回调。
channelInviteEnd() 终止向 account 用户发送加入指定频道的邀请。终止成功后主叫方将收到 onInviteEndByMyself 回调。
getStatus() 获取用户登录状态 (未登录、正在登录、登录成功、正在重连)
getSdkVersion() 获取SDK版本,版本号示例:1010104019

生命周期

获取 AgoraAPIOnlySignal 实例 (getInstance)

该方法用于获取 AgoraAPIOnlySignal 实例。

public static AgoraAPIOnlySignal getInstance(Context context, String appId);
参数 描述
context Android activity 的 Context(上下文环境)
appId Agora 提供的 App 账号,详见 App ID

设置回调 (callbackSet)

该方法用于设置回调。

public native void callbackSet(ICallBack handler);
参数 描述
handler ICallBackhandler

使用回调时请避免同步或阻塞操作,否则可能导致系统崩溃。

获取回调 (callbackGet)

该方法用于获取 ICallBack 对象。

public ICallBack callbackGet();
返回值 描述
ICallBack ICallBack对象

销毁信令实例 (destroy)

该方法用于销毁信令实例。

public void destroy();

用户系统

登录 (login)

public void login(String appId,String account,String token,int uid,String deviceID);

该方法用于登录 Agora 信令系统。用户在进行任何操作前,必须先登录。

  • 登录成功:回调 onLoginSuccess
  • 登录失败:回调 onLoginFailed
  • 登录之后失去与服务器的连接:回调 onLogout
参数 描述
appId Agora 提供的 App ID,详见 App ID
account 客户端定义的用户账号,最大 128 字节可见字符(不能使用空格)。可以是用户的 uid、昵称、guid 等任何内容,但必须保证唯一。本文提到的所有 account 参数都是如此。
token 由 App ID 和 App Certificate 生成的 SignalingToken,详见 密钥说明
uid 固定填 0
deviceID 暂时无用,设置为空

在测试环境下您可以将参数 token 设为 noneed_token 表示不使用秘钥,但是声网不建议在生产环境下不使用动态秘钥。 默认情况下如果当前已经处于登录状态,调用 login 方法会被忽略。如果希望踢掉老的登录,可以在 login 之前调用 logout 且不用等退出成功就可登录。

登录 (login2)

public void login2(String appId,String account,String token,int uid,String deviceID,int retry_time_in_s, int retry_count);

该方法用于登录 Agora 信令系统。用户在进行任何操作前,必须先登录。

  • 登录成功:回调 onLoginSuccess
  • 登录失败:回调 onLoginFailed
  • 登录之后失去与服务器的连接:回调 onLogout
参数 描述
appId App ID, 详见 App ID
account 客户端定义的用户账号,最大 128 字节可见字符(不能使用空格)。可以是用户的 uid、昵称、guid 等任何内容,但必须保证唯一。本文提到的所有 account 参数都是如此。
token 由 App ID 和 App Certificate 生成的 SignalingToken ,详见 SignalingToken
uid 固定填 0
deviceID 暂时无用,设置为空
retry_time_in_s 登录重试时间,默认为 30 秒
retry_count 登录重试次数,默认为 3 次

在测试环境下您可以将参数 token 设为 _no_need_token 表示不使用秘钥,但是声网不建议在生产环境下不使用动态秘钥。 当达到 retry_time_in_sretry_count 其中任一上限时,将触发 onLoginFailed 回调并停止重连。

登出 (logout)

public void logout();

该方法允许用户退出 Agora 信令系统。成功退出 Agora 信令系统时会触发 onLogout 回调。

RPC 远程过程调用 (invoke)

public void invoke(String name, String req, String callID);

该方法用于远程过程调用。调用成功将触发 onInvokeRet 回调。

实现功能 参数设置及返回值
查询用户状态
  • name: io.agora.signal.user_query_user_status
  • req: {“account”:用户名}
  • 返回值:status(1:在线;0:不在线)
设置用户属性
  • name: io.agora.signal.user_set_attr
  • req: {“name”:属性名,”value”:属性值}
获取用户属性
  • name: io.agora.signal.user_get_attr
  • req: {“account”:用户名,”name”:属性名}
  • 返回值: {“value”:属性值}
获取用户所有属性
  • name: io.agora.signal.user_get_attr_all
  • req: {“account”:用户名}
  • 返回值:所有属性的 JSON 值
查询频道人数
  • name: io.agora.signal.channel_query_num
  • req: {“name”:频道名}
  • 返回值:总人数
查询是否在频道内
  • name: io.agora.signal.channel_query_user_isin
  • req: {“name”:频道名,”account”:用户名}
  • 返回值:isin(1: 在频道内;0:不在频道内)
查询频道用户列表
  • name: io.agora.signal.channel_query_userlist
  • req: {“name”:频道名}
  • 返回值:{“num”:总人数,”list”:最近成员}
查询频道最近用户列表
  • name: io.agora.signal.channel_query_userlist_all
  • req: {“name”:频道名,”num”:数量(默认 1000*1000)}
  • 返回值:{“num”:总人数,”list”:最近成员}
  • 建议服务端使用,客户端使用注意频率限制
清空频道属性
  • name: io.agora.signal.channel_clear_attr
  • req: {“channel”:频道名}
删除频道属性
  • name: io.agora.signal.channel_del_attr
  • req: {“channel”:频道名,”name”:属性名}
设置频道属性
  • name: io.agora.signal.channel_set_attr
  • req: {“channel”:频道名,”name”:属性名,”value”:属性值}

查询用户状态 (queryUserStatus)

public void queryUserStatus(String account);

该方法用于查询用户是否在线。

参数 描述
account 用户账号

设置用户属性 (setAttr)

public void setAttr(String name,String value);

该方法用于设置用户属性。

参数 描述
name 属性名称。最大 128 字节可见字符,例如:_conn_timeout 为内置属性,表示掉线超时秒数。默认设置为 120 秒,可设置范围为 20 秒至 120 秒。若设置成低于 20 秒,系统将自动设成 20 秒;若设置成高于 120 秒,系统将自动设成 120 秒。
value 属性值。最大 8096 字节可见字符

获取自己的属性 (getAttr)

该方法用于获取自己的用户属性。调用成功会回调 onUserAttrResult

public void getAttr(String name);
参数 描述
name 属性名称。最大 128 字节可见字符

获取自己的全部属性 (getAttrAll)

public void getAttrAll();

该方法用于获取自己的全部用户属性。调用成功会回调 onUserAttrAllResult

获取某个用户的属性 (getUserAttr)

public void getUserAttr(String account,String name);

该方法用于获取某个特定用户的用户属性。调用成功会回调 onUserAttrResult

参数 描述
account 客户端定义的用户账号
name 属性名称。最大 128 字节可见字符

获取某个用户的所有属性 (getUserAttrAll)

public void getUserAttrAll(String account);

该方法用于获取某个用户的所有用户属性。调用成功会回调 onUserAttrAllResult

参数 描述
account 客户端定义的用户账号

发送点对点消息 (messageInstantSend)

public void messageInstantSend(String account,int uid,String msg,String msgID);

该方法发送点对点消息到某个指定账号。

  • 发送成功本地将回调 onMessageSendSuccess,对方将收到 onMessageInstantReceive 回调。
  • 发送失败将回调 onMessageSendError
参数 描述
account 客户端定义的用户账号
uid 固定填 0
msg 消息正文。每条消息最大为 8196 字节可见字符
msgID 消息的 ID。声网建议将其设置为”“(即由 SDK 接管 msgID 的生成、分配并保证唯一)

频道系统

加入频道 (channelJoin)

public void channelJoin(String channelID);

该方法让用户加入指定频道。用户一次只能加入一个频道。

用户加入频道成功后,自己将收到回调 onChannelJoined,其他同一频道内用户将收到回调 onChannelUserJoined。用户加入失败后,自己将收到回调 onChannelJoinFailed

参数 描述
channelID

频道名。最大为 128 字节可见字符。包含以下特殊频道名:

  • __agora_user_online :当前 appId 中所有用户登录或离线事件将发送至该频道。
  • __agora_channel_event : 当前 appId 中用户加入或离开频道的所有事件将发送至该频道。

特殊频道名供服务端使用,加入频道即可获取相关事件,如登录事件、频道事件。

离开频道 (channelLeave)

public void channelLeave(String channelID);

该方法让用户退出当前频道。退出成功后,所有频道用户将收到回调 onChannelUserLeaved

参数 描述
channelID 频道名。最大为 128 字节可见字符

查询频道用户数 (channelQueryUserNum)

public void channelQueryUserNum(String channelID);

该方法用于查询指定频道的用户数量。当操作成功,用户将收到 onChannelQueryUserNumResult 回调。

参数 描述
channelID 频道名。最大为 128 字节可见字符

设置频道属性 (channelSetAttr)

public void channelSetAttr(String channelID,String name,String value);

该方法用于设置频道属性。当操作成功,所有频道用户都将收到 onChannelAttrUpdated 回调。

参数 描述
channelID 频道名。最大为 128 字节可见字符
name 属性名称。最大为 128 字节可见字符
value 属性值。最大为 8096 字节可见字符

以下是 参数 name 的内置属性:

  • _userNotification 1: 默认值,频道发送用户加入或离开频道的事件;0: 频道不发送用户加入或离开频道的事件。
  • _channel_ttl :频道最后一个用户离开后,多久销毁,单位为秒,默认为7200 。特殊频道永不销毁。
  • _member_num : 表示当前频道人数,由系统自动更新;更新频次由 _auto_update_num 确定。如果 _auto_update_num 时间内没有用户进出频道,不会收到人数更新回调 onChannelAttrUpdated;如果 _auto_update_num 内有用户频繁进出频道,只会按固定时间收到一次回调。
  • _auto_update_num :表示是否由系统自动更新频道人数。0:关闭(默认);1-n:(每多少秒更新一次)
  • _total_member_num :表示当前频道累计登录人次,由系统自动更新。_auto_update_num_auto_update_total_num 需要同时设置为非0。更新原则类似 _member_num
  • _auto_update_total_num : 表示是否由系统自动更新频道人数,0:关闭(默认);非0:每多少秒后台更新一次(与 _auto_update_num 相同)。
  • _sendmsg_limit : 整个频道每秒能发送的消息数
  • _setattr_limit : 频道每个属性每秒能修改的次数

删除频道属性 (channelDelAttr)

public void channelDelAttr(String channelID,String name);

该方法用于删除频道属性。当操作成功,所有频道用户将收到 onChannelAttrUpdated 回调。

参数 描述
channelID 频道名。最大为 128 字节可见字符
name 属性名称。最大为 128 字节可见字符

删除所有频道属性 (channelClearAttr)

public void channelClearAttr(String channelID);

该方法用于删除所有频道属性。当操作成功,所有频道用户都将收到 onChannelAttrUpdated 回调。

参数 描述
channelID 频道名。最大为 128 字节可见字符

发送频道消息 (messageChannelSend)

public void messageChannelSend(String channelID,String msg,String msgID);

该方法用于发送频道消息,频道内所有成员会收到 onMessageChannelReceive 回调。

发送成功会回调 onMessageSendSuccess,发送失败会回调 onMessageSendError

参数 描述
channelID 频道名。最大为 128 字节可见字符
msg 消息正文。每条频道消息最大为 8K 字节可见字符。每个用户每秒不能发超过 60 条消息,整个频道每秒不能发超过 200 条消息。
msgID 可见字符,消息的 ID。声网建议将其设置为”“(即由 SDK 接管 msgID 的生成、分配并保证唯一)

发送频道消息 (messageChannelSendForce)

public native void messageChannelSendForce(String channelID,String msg,String msgID);

该方法用于在不加入频道的情况下发送频道消息。建议不要在应用程序端使用该方法。

参数 描述
channelID 频道 ID
msg 待发送的消息
msgID 消息的 ID。声网建议将其设置为”“(即由 SDK 接管 msgID 的生成、分配并保证唯一)

呼叫系统

发起呼叫 (channelInviteUser)

public void channelInviteUser(String channelID,String account,int uid);

该方法用于发起呼叫,即邀请某用户加入某个频道。

呼叫和加入频道是两个独立的过程。用户必须自己再另行加入频道,用户可以选择:先加入频道,再发送呼叫邀请或先发送呼叫邀请,对方接受后再加入频道。

如果呼叫失败,会回调 onInviteFailed。可能的原因有:

  • 对方不在线
  • 本端网络不通
  • 服务器异常

如果收到对方的确认信息,本地将回调 onInviteReceivedByPeer, 对方会回调 onInviteReceived

参数 描述
channelID 频道名。最大为 128 字节可见字符
account 客户端定义的用户账号
uid 固定填 0

发起呼叫 (channelInviteUser2)

public void channelInviteUser2(String channelID,String account,String extra);

channelInviteUser 功能相同,参数不同。

参数 描述
channelID 频道名。最大为 128 字节可见字符
account 客户端定义的用户账号
extra

主叫方想传递给呼叫方的其他信息,最大为 8K 字节可见字符。必须为 JSON 格式。如:

  • {“_require_peer_online”:1} 如果对方不在线,则立即触发 ICallBack 回调接口类的 onInviteFailed 回调
  • {“_require_peer_online”:0} 如果对方不在线超过 20 秒,则触发 ICallBack 回调接口类的 onInviteFailed 回调(默认)
  • {“_timeout”:30} 呼叫超时。超时后收到 inviteFailed 的同时消息被销毁,被叫不再收到。范围:0~30s。
  • {“destMediaUid” : 123} 指定的加入相应媒体频道的 uid
  • {“srcNum” : “+123456789”} 指定的在远端手机屏幕上显示的手机号码。

SIP 呼叫时你不需要设置 _require_peer_online 字段。

向远端发送 DTMF 消息 (channelInviteDTMF)

public void channelInviteDTMF(String channelID,String phoneNum,String dtmf);

该方法发送 DTMF 消息到对端,用于 SIP 网关的呼叫。对方会回调 onInviteMsg

参数 描述
channelID 频道名。最大为 128 字节可见字符
phoneNum 对方的电话号码
dtmf 拨通后,后续需要输入的模拟电话按键 (DTMF)

接受呼叫 (channelInviteAccept)

public void channelInviteAccept(String channelID,String account,int uid,String extra);

该方法用于当收到呼叫时,调用本接口接受收到的呼叫。主叫方将回调 onInviteAcceptedByPeer

参数 描述
channelID 频道名。最大为 128 字节可见字符
account 客户端定义的用户账号
uid 固定填 0
extra JSON 字符串或为”“。用户自定义字段,可用于 SIP 呼叫。

拒绝呼叫 (channelInviteRefuse)

public void channelInviteRefuse(String channelID,String account,int uid, String extra);

该方法用于当收到呼叫时,调用本接口拒绝收到的呼叫。对方会收到 onInviteRefusedByPeer 的回调。

参数 描述
channelID 频道名。最大为 128 字节可见字符
account 客户端定义的用户账号
uid 固定填 0
extra 其他信息。最大为 8K 字节可见字符。必须为 JSON 格式。

结束呼叫 (channelInviteEnd)

public void channelInviteEnd(String channelID,String account,int uid);

该方法用于当呼叫接通后,调用本接口关闭呼叫。本端会回调 onInviteEndByMyself,对端会回调 onInviteEndByPeer

参数 描述
channelID 频道名。最大为 128 字节可见字符
account 客户端定义的用户账号
uid 固定填 0

其他方法

获取用户状态 (getStatus)

public int getStatus();

该方法用于获取用户状态信息。

返回值 描述
LOGIN_STATE_NOT_LOGIN 0: 用户未登录。
LOGIN_STATE_LOGINING 1: 用户正在登录。
LOGIN_STATE_LOGINED 2: 用户已登录。
LOGIN_STATE_RECONNECTING 3: 用户正在重建连接。

获取 SDK 版本 (getSdkVersion)

public int getSdkVersion();

该方法用于获取 SDK 版本信息。

返回值 描述
SDK 版本号 如返回 1010104019 则表示版本号为 1.1.4.19.

ICallBack 回调接口类

ICallBack 类为信令的回调接口类。

回调 说明
onReconnecting() 连接丢失回调
onError() 出错回调
onQueryUserStatusResult() 用户状态查询回调
onReconnected() 重连成功回调
onLoginSuccess() 登录成功回调
onLogout() 退出登录回调
onLoginFailed() 登录失败回调
onInvokeRet() RPC 远程过程调用成功回调
onChannelJoined() 加入频道回调
onChannelJoinFailed() 加入频道失败回调
onChannelLeaved() 离开频道回调
onChannelUserJoined() 其他用户加入频道回调
onChannelUserLeaved() 其他用户离开频道回调
onChannelUserList() 获取频道内用户列表回调
onChannelQueryUserNumResult() 返回查询的用户数量回调
onChannelAttrUpdated() 频道属性发生变化回调
onInviteReceived() 收到呼叫邀请回调
onInviteReceivedByPeer() 远端已收到呼叫回调
onInviteAcceptedByPeer() 远端已接受呼叫回调
onInviteRefusedByPeer() 对方已拒绝呼叫回调
onInviteFailed() 呼叫失败回调
onInviteEndByPeer() 对方已结束呼叫回调
onInviteEndByMyself() 本地已结束呼叫回调
onInviteMsg() 本地已收到消息回调
onMessageSendError() 消息发送失败回调
onMessageSendSuccess() 消息已发送成功回调
onMessageInstantReceive() 接收方收到消息后,接收方收到的回调
onMessageChannelReceive() 收到频道消息回调
onLog() 已打印日志回调
onUserAttrResult() 已获取用户属性查询结果回调
onUserAttrAllResult() 已获取所有用户属性查询结果回调

回调事件

连接丢失回调 (onReconnecting)

public void onReconnecting(int nretry);

与Agora信令系统的连接时触发本回调。

参数 描述
nretry 当前重连的次数

出错回调 (onError)

public void onError(String name,int ecode,String desc)

该回调返回详细的出错信息。

参数 描述
name 错误类型
ecode

错误码。

  • GENERAL_E = 1000 : 一般错误
  • GENERAL_E_FAILED = 1001: 操作失败
  • GENERAL_E_UNKNOWN = 1002: 一般错误 - 未知
  • GENERAL_E_NOT_LOGIN = 1003: 未登录
  • GENERAL_E_WRONG_PARAM = 1004: 参数错误
  • GENERAL_E_LARGE_PARAM = 1005: 参数过大
desc 错误的内容

用户状态查询回调 (onQueryUserStatusResult)

public void onQueryUserStatusResult(String name,String status)

该回调返回用户状态查询结果。调用 queryUserStatus 方法时触发此回调。

参数 描述
name 用户账号名称
status

用户状态:是否在线

  • 1: 用户在线
  • 0: 用户离线

重连成功回调 (onReconnected)

public void onReconnected(int fd);

  • 当与 Agora 信令系统重连成功时会触发此回调。
  • 重连失败会触发 onLogout 回调。
参数 描述
fd 仅供 Agora 内部使用

登录成功回调 (onLoginSuccess)

public void onLoginSuccess(int uid,int fd);

当登录成功时触发此回调。

参数 描述
uid 固定填 0
fd 仅供 Agora 内部使用

退出登录回调 (onLogout)

public void onLogout(int ecode);

当退出登录时触发此回调。

参数 描述
ecode 错误代码

登录失败回调 (onLoginFailed)

public void onLoginFailed(int ecode);

当登录失败时触发此回调。

参数 描述
ecode 错误代码

RPC 远程过程调用成功回调 (onInvokeRet)

void onInvokeRet(String callID, String err, String resp);

参数 描述
callID 由 invoke传入的 callID
err 错误码
resp 返回的 JSON 值

当 RPC 远程过程调用成功触发此回调。

加入频道回调 (onChannelJoined)

public void onChannelJoined(String channelID);

当加入频道成功时触发此回调。

参数 描述
channelID 频道名。最大为 128 字节可见字符

加入频道失败回调 (onChannelJoinFailed)

public void onChannelJoinFailed(String channelID,int ecode);

当加入频道失败时触发此回调。

参数 描述
channelID 频道名
ecode 错误代码

离开频道回调 (onChannelLeaved)

public void onChannelLeaved(String channelID,int ecode);

当离开频道成功时触发此回调。

参数 描述
channelID 频道名
ecode 错误代码

其他用户加入频道回调 (onChannelUserJoined)

public void onChannelUserJoined(String account,int uid);

当有用户加入频道时触发此回调。

参数 描述
account 客户端定义的用户账号
uid 固定填 0

其他用户离开频道回调 (onChannelUserLeaved)

public void onChannelUserLeaved(String account,int uid);

当有用户离开频道触发此回调。

获取频道内用户列表回调 (onChannelUserList)

public void onChannelUserList(String[] accounts, int[] uids);

当加入频道成功后,本人会收到此回调。

返回的频道内用户列表为最近的 200 个用户。

参数 描述
accounts 用户账号列表
uids 频道内用户列表

返回查询的用户数量回调 (onChannelQueryUserNumResult)

public void onChannelQueryUserNumResult(String channelID,int ecode,int num);

查询频道用户数量时触发此回调。

参数 描述
channelID 频道名
ecode 错误码
num 查询结果

频道属性发生变化回调 (onChannelAttrUpdated)

public void onChannelAttrUpdated(String channelID,String name,String value,String type);

当频道属性变化时触发此回调。

参数 描述
channelID 频道名
name 属性名
value 属性值
type

变化类型:

  • “update”:更新
  • “del”:删除
  • “clear”:全部删除
  • “set”: 废弃类型

收到呼叫邀请回调 (onInviteReceived)

  public void onInviteReceived(String channelID,String account,int uid,String extra);

当收到呼叫邀请时触发此回调。

参数 描述
channelID 频道名
account 客户端定义的用户账号
uid 固定填 0
extra 呼叫方向对方发送的其他信息,最大为 8K 字节可见字符。必须为 JSON 模式。

远端已收到呼叫回调 (onInviteReceivedByPeer)

public void onInviteReceivedByPeer(String channelID,String account,int uid);

当呼叫被对方收到时触发。

参数 描述
channelID 频道名
account 客户端定义的用户账号
uid 固定填 0

远端已接受呼叫回调 (onInviteAcceptedByPeer)

public void onInviteAcceptedByPeer(String channelID,String account,int uid, String extra);

当呼叫被对方接受时触发此回调。

参数 描述
channelID 频道名
account 客户端定义的用户账号
uid 固定填 0
extra 呼叫方向对方发送的其他信息,如该呼叫为视频通话还是语音通话。必须为 JSON 模式。

对方已拒绝呼叫回调 (onInviteRefusedByPeer)

public void onInviteRefusedByPeer(String channelID,String account,int uid, String extra);

当呼叫被对方拒绝时触发此回调。

参数 描述
channelID 频道名
account 客户端定义的用户账号
uid 固定填 0
extra 呼叫方向对方发送的其他信息,例如:该呼叫为视频通话还是语音通话。必须为 JSON 格式。

呼叫失败回调 (onInviteFailed)

public void onInviteFailed(String channelID,String account,int uid,int ecode, String extra);

当呼叫失败时触发。

参数 描述
channelID 频道名
account 被呼叫用户的用户账号
uid 固定填 0
ecode 错误代码
extra 关于该呼叫的其他信息, 可以是一个 JSON 字符串或将其设置为空

对方已结束呼叫回调 (onInviteEndByPeer)

public void onInviteEndByPeer(String channelID,String account,int uid, String extra);

当呼叫被对方结束时触发此回调。

参数 描述
channelID 频道名
account 客户端定义的用户账号
uid 固定填 0
extra 呼叫方需传送的其他信息, 如该呼叫为视频通话还是语音通话。可以是一个 JSON 字符串或将其设置为空

本地已结束呼叫回调 (onInviteEndByMyself)

public void onInviteEndByMyself(String channelID,String account,int uid);

当呼叫被自己结束时触发。

参数 描述
channelID 频道名
account 客户端定义的用户账号
uid 固定填 0

本地已收到消息回调 (onInviteMsg)

public void onInviteMsg(String channelID, String account, int uid, String msgType, String msgData, String extra)

当本地接收到远端用户发送的 DTMF 消息时触发该回调。

参数 描述
channelID 频道名。最大 128 字节可见字符
account 客户端定义的用户账号
uid 固定填 0
msgType 消息类型。目前指的是 DTMF
msgData DTMF 消息内容。支持的字符串范围为: 0-9, * , #
extra 关于该呼叫的其他信息, 可以是一个 JSON 字符串或将其设置为空

消息发送失败回调 (onMessageSendError)

public void onMessageSendError(String messageID,int ecode);

当发送消息失败时触发。

参数 描述
messageID 消息 ID
ecode 错误代码

消息已发送成功回调 (onMessageSendSuccess)

public void onMessageSendSuccess(String messageID);

当发送消息成功时触发。

参数 描述
messageID 消息 ID

接收方收到消息时接收方收到的回调 (onMessageInstantReceive)

public void onMessageInstantReceive(String account,int uid,String msg);

接收方收到消息时接收方收到的回调。

参数 描述
account 客户端定义的用户账号
uid 固定填 0
msg 消息正文

收到频道消息回调 (onMessageChannelReceive)

public void onMessageChannelReceive(String channelID,String account,int uid,String msg);

当收到频道消息时触发。

参数 描述
channelID 频道名
account 客户端定义的用户账号
uid 固定填 0
msg 消息正文

已打印日志回调 (onLog)

public void onLog(String txt)

当有日志打印时触发。

参数 描述
txt 一行日志的内容

已获取用户属性查询结果回调 (onUserAttrResult)

public void onUserAttrResult(String account,String name,String value);

当用户已查询到某个用户的属性后即触发该回调。

参数 描述
account 用户登录客户端的账号
name 属性名
value 所有属性的 JSON 值

已获取所有用户属性查询结果回调 (onUserAttrAllResult)

public void onUserAttrAllResult(String account,String value);

当用户已查询到某个用户的所有属性后即触发该回调。

参数 描述
account 用户登录客户端的账号
value 所有属性的 JSON 值

废弃接口

接口 原型
messageDTMFSend (void) messageDTMFSend:(uint32_t)uid msg:(NSString*)msg msgID:(NSString*)msgID;
channelInvitePhone (void) channelInvitePhone:(NSString*)channelID phoneNum:(NSString*)phoneNum uid:(uint32_t)uid;
channelInvitePhone2 (void) channelInvitePhone2:(NSString*)channelID phoneNum:(NSString*)phoneNum sourcesNum:(NSString*)sourcesNum;
channelInvitePhone3 (void) channelInvitePhone3:(NSString*)channelID phoneNum:(NSString*)phoneNum sourcesNum:(NSString*)sourcesNum extra:(NSString*)extra;
isOnline (bool) isOnline;

错误代码和警告代码

详见 错误代码和警告代码