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