UserAgentProxy 说明
UserAgentProxy 提供消息、呼叫等服务接口。
@interface UserAgentProxy : NSObject #pragma mark - proxyInit & proxyDestory /** * 初始化 * @param appId 应用的 APP ID * @param api api version , now is "2.0" * @param client client version, now is "chatgame-3.0" * @return self */ -(id) initProxyWithAppId:(NSInteger)appId apiVersion:(NSString*)api clientVersion:(NSString*)client; /** * 销毁 UserAgentProxy */ -(void) destoryProxy; /** * 设置本机 IP 地址 * @param ip IP 地址 * @return true 表示设置成功 */ -(BOOL) setLocalIp:(NSString*)ip; #pragma mark - connectService /** * 登录消息处理服务器 * @param nameMd5 用户ID * @param session 用户的 sessionID * @param hostname 登录服务器信息, 通过服务端接口 /api/server/addr 获取, 内容为json数据格式 * @param language 指定手机端语言类型, 服务端推送等相关信息将会使用此语言类型 * @param regionCode 登录服务器的区号, 中国区 0086, 其他区 0001 * @return true 表示调用成功 */ - (BOOL) loginToTCPServer:(NSString*)nameMd5 session:(NSString*)session hostName:(NSString*)hostName language:(NSString*)language regionCode:(NSString*)regionCode; /** * 检测消息服务器是否已经登录 * @return true 表示已经登录 */ -(BOOL) messageServerIsLgoined; /** * 检测用户传输音视频数据的 UDP 服务器是否连接成功 * @return true 表示连接成功 */ -(BOOL) udpServerIsconnected; /** * 从消息服务器登出 * @return true 表示调用成功 */ -(BOOL) logoutFromTcpServer; /** * 设置客户端网络类型, 上层检测出网络变化是设置, 禁用网络时只需设置flag=FALSE //会导致网络层重新登录 * @param netType 网络类型 * @param flag true 表示网络可用, false 表示网络不可用 * @return true 表示设置成功 */ -(BOOL) setNetworkWithType:(NetType)netType netWorkEnable:(BOOL)flag; -(BOOL) setNetworkType:(NetType)netType; /** * 更新消息服务器信息 * @param hostname 登录服务器信息, 通过服务端接口 /api/server/addr 获取, 内容为json数据格式 * @return true 表示调用成功 */ -(BOOL) updateFrontServer:(NSString*)hostName; #pragma mark - callService /** * 发起视频呼叫 * @param peerName 对方用户ID * @param roomId 标识一次呼叫的唯一ID * @param extraData 附加信息 * @return true 表示调用成功 */ -(BOOL) videoCall:(NSString*)peerName roomId:(NSString*)roomId extraData:(NSData*)extraData; /** * 发起语音呼叫 * @param peerName 对方用户ID * @param roomId 标识一次呼叫的唯一ID * @param extraData 附加信息 * @return true 表示调用成功 */ -(BOOL) audioCall:(NSString*)peerName roomId:(NSString*)roomId extraData:(NSData*)extraData; /** * 拒绝来电 * @return true 表示调用成功 */ -(BOOL) reject; /** * 接受视频呼叫 * @param extraData 附加信息 * @return true 表示调用成功 */ -(BOOL) acceptVideoCall:(NSData*)extraData; /** * 接受视频呼叫 * @param extraData 附加信息 * @return true 表示调用成功 */ -(BOOL) acceptAudioCall:(NSData*)extraData; /** * 挂断呼叫 * @return true 表示调用成功 */ -(BOOL) hangup; /** * 同步获取本次通话上传流量的统计值,单位千字节,根据需要调用 * @return 字节数 */ -(NSInteger) bytesUploadedWhileChatting; /** * 同步获取本次通话下载流量的统计值,单位千字节,根据需要调用 * @return 字节数 */ -(NSInteger) bytesDownloadedWhileChatting; /** * 获取呼叫状态 * @return 呼叫状态 */ -(CallStatus) getCallStatus; /** * 回复忙 * @return true 表示调用成功 */ -(BOOL) busyCall; /** * 获取正在呼叫的 roomId * @return roomId */ -(NSString*) getRoomId; /** * 设置本地支持的 Audio SDP * @param sdp * @return true 表示调用成功 */ -(BOOL) setSDP:(NSString*)sdp; /** * 发起群视频呼叫请求 * @param groupId 群组ID * @param roomId 标识一次呼叫的唯一ID * @param ssrc 流标识 * @param csrc 用户在群中的标识 * @param relayServer turn server 列表 * @param extraData 附加信息 * @return true 表示调用成功 */ -(BOOL) groupCall:(NSString*)groupId roomId:(NSString*)roomId ssrc:(NSInteger)ssrc csrc:(NSInteger)csrc relayServer:(NSString*)relayServer extraData:(NSData*)extraData; /** * 挂断群组呼叫 * @param groupId 群组ID * @param extraData 附加信息 * @return true 表示调用成功 */ -(BOOL) groupHangup:(NSString*)groupId extraData:(NSData*)extraData; /** * 探测群呼叫最优 turn server * @param roomId * @param timeout 探测超时时间 * @return true 表示调用成功 */ -(BOOL) getRelayServer:(NSString*)roomId timeout:(NSInteger)timeout; #pragma mark - mediaService -(BOOL) sendEncodedAudioData:(NSData*)data codeId:(NSInteger)codeId vad:(NSInteger)vad; -(BOOL) sendEncodedVideoData:(NSData*)data codeId:(NSInteger)codeId isKeyFrame:(NSInteger)iskey direction:(MediaOrientation)direction camPosition:(uint8_t)camPosition fitRate:(uint8_t)fitRate; - (NSInteger)getSelfLostRate; -(BOOL) peerAudioEnabled:(BOOL)enable; -(BOOL) peerVideoEnabled:(BOOL)enable; #pragma mark - messageService /** * 向个人发送文本消息 * @param peerName 对方用户ID * @param content 消息内容 * @param msgUUID 消息uuid,客户端本地生成 * @param resend 重复发送标识 * @return true 表示调用成功 */ -(BOOL) sendTextMessageToUser:(NSString*)peerName content:(NSString*)content msgUUID:(NSString*)msgUUID resendFlag:(BOOL)resend; /** * 向群组发送文本消息 * @param groupName 群组ID * @param content 消息内容 * @param msgUUID 消息uuid,客户端本地生成 * @param resend 重复发送标识 * @param extraType 富文本消息标识 * @return true 表示调用成功 */ -(BOOL) sendTextMessageToGroup:(NSString*)groupName content:(NSString*)content msgUUID:(NSString*)msgUUID resendFlag:(BOOL)resend extraType:(NSInteger)extraType; /** * 向个人发送图片消息 * @param peerName 对方用户ID * @param content 消息内容 * @param msgUUID 消息uuid,客户端本地生成 * @param resend 重复发送标识 * @return true 表示调用成功 */ -(BOOL) sendImageUrlToUser:(NSString*)peerName content:(NSString*)content msgUUID:(NSString*)msgUUID resendFlag:(BOOL)resend; /** * 向群组发送图片消息 * @param groupName 群组ID * @param content 消息内容 * @param msgUUID 消息uuid,客户端本地生成 * @param resend 重复发送标识 * @param extraType 富文本消息标识 * @return true 表示调用成功 */ -(BOOL) sendImageUrlToGroup:(NSString*)groupName content:(NSString*)content msgUUID:(NSString*)msgUUID resendFlag:(BOOL)resend extraType:(NSInteger)extraType; /** * 向个人发送透传消息 * @param peerName 对方用户ID * @param content 二进制内容 * @param msgUUID 消息uuid,客户端本地生成 * @param resend 重复发送标识 * @return true 表示调用成功 */ -(BOOL) sendForwardDataToUser:(NSString*)peerName content:(NSData*)content msgUUID:(NSString*)msgUUID resendFlag:(BOOL)resend; /** * 通话中,向群组发送可靠透传透传消息 * @param groupId 群组ID * @param content 二进制内容 * @param msgUUID 消息uuid,客户端本地生成 * @param resend 重复发送标识 * @return true 表示调用成功 */ -(BOOL) sendForwardDataToGroup:(NSString*)groupId content:(NSData*)content msgUUID:(NSString*)msgUUID resendFlag:(BOOL)resend; /** * 通话中,向对方或者群组发送不可靠透传消息 * @param userId 对方或群组ID * @param content 二进制内容 * @param msgUUID 消息uuid,客户端本地生成 * @param resend 重复发送标识 * @return true 表示调用成功 */ -(BOOL) sendForwardDataInCall:(NSString*)userId content:(NSData*)content msgUUID:(NSString*)msgUUID resendFlag:(BOOL)resend; /** * 向个人发送语音消息 * @param peerName 对方用户ID * @param content 消息内容 * @param msgUUID 消息uuid,客户端本地生成 * @param resend 重复发送标识 * @return true 表示调用成功 */ -(BOOL) sendAudioUrlToUser:(NSString*)peerName content:(NSString*)content msgUUID:(NSString*)msgUUID resendFlag:(BOOL)resend; /** * 向群组发送语音消息 * @param groupName 群组ID * @param content 消息内容 * @param msgUUID 消息uuid,客户端本地生成 * @param resend 重复发送标识 * @param extraType 富文本消息标识 * @return true 表示调用成功 */ -(BOOL) sendAudioUrlToGroup:(NSString*)groupName content:(NSString*)content msgUUID:(NSString*)msgUUID resendFlag:(BOOL)resend extraType:(NSInteger)extraType; /** * 向个人发送视频消息 * @param peerName 对方用户ID * @param content 消息内容 * @param msgUUID 消息uuid,客户端本地生成 * @param resend 重复发送标识 * @return true 表示调用成功 */ -(BOOL) sendVideoMessageToUser:(NSString*)peerName describe:(NSString*)describe shortUrl:(NSString*)shortUrl videoUrl:(NSString*)videoUrl msgUUID:(NSString*)msgUUID resendFlag:(BOOL)resend; /** * 向群组发送视频消息 * @param groupName 群组ID * @param content 消息内容 * @param msgUUID 消息uuid,客户端本地生成 * @param resend 重复发送标识 * @param extraType 富文本消息标识 * @return true 表示调用成功 */ -(BOOL) sendVideoMessageToGroup:(NSString*)groupName describe:(NSString*)describe shortUrl:(NSString*)shortUrl videoUrl:(NSString*)videoUrl msgUUID:(NSString*)msgUUID resendFlag:(BOOL)resend extraType:(NSInteger)extraType; /** * 确认消息已收到 * @param messageId 消息全局uuid * @return true 表示调用成功 */ -(BOOL) messageReceived:(UInt64)messageId; /** * 确认消息已阅读 * @param messageId 消息全局uuid * @return true 表示调用成功 */ -(BOOL) messageRead:(UInt64)messageId; /** * 获取版本号 * @return 版本号 */ + (NSString*)version; @end