Android 呼叫服务类说明

CallService 获取

UserAgentProxy proxy = UserAgentProxy.getInstance();
......
CallService callService = proxy.getCallService();

CallService 说明

public class CallService {
    /**
     * 设置呼叫处理的回调
     * @param listener 回调处理实现类
     */
    public synchronized void setCallListener(CallListener listener){}
 
    /**
     * 发起视频呼叫
     * @param peerUserID 对方用户ID
     * @param roomid 标识一次呼叫的唯一ID
     * @param extraData 附加信息
     * @return
     */
    public boolean videoCall(String peerUserID, String roomid, byte[] extraData){}
 
    /**
     * 发起音频呼叫
     * @param peerUserID 对方用户ID
     * @param roomid 标识一次呼叫的唯一ID
     * @param extraData 附加信息
     * @return
     */
    public boolean audioCall(String peerUserID, String roomid, byte[] extraData){}
 
    /**
     * 接听视频呼叫
     * @param extraData 附加信息
     * @return
     */
    public boolean acceptVideo(byte[] extraData){}
 
    /**
     * 接听音频呼叫
     * @param extraData
     * @return
     */
    public boolean acceptAudio(byte[] extraData){}
 
    /**
     * 拒绝来电
     * @return
     */
    public boolean reject(){}
 
    /**
     * 挂断电话
     * @return
     */
    public boolean hangup(){}
 
    /**
     * 电话忙
     * @return
     */
    public boolean busyCall(){}
 
    /**
     * 获取本次通话流量
     * @param sendBytes
     * @param recvBytes
     * @return
     */
    public boolean getTransferFlow(long[] sendBytes, long[] recvBytes){}
 
    /**
     * 获取本地电话的roomID
     * @return
     */
    public String getRoomId(){}
 
    /**
     * 游戏呼叫
     * @param peerUserID 对方用户ID
     * @param roomid 标识一次呼叫的唯一ID
     * @param gameId 业务自定义的游戏ID
     * @param mediaType 游戏呼叫使用音频或视频
     * @param extraData 附加信息
     * @return
     */
    public boolean inviteGame(String peerUserID, String roomid, int gameId, int mediaType, byte[] extraData){}
 
    /**
     * 接听游戏呼叫
     * @param peerUserID 对方用户ID
     * @param gameId 游戏ID
     * @param mediaType 游戏呼叫使用音频或视频
     * @param extraData 附加信息
     * @return
     */
    public boolean acceptGame(String peerUserID, int gameId, int mediaType, byte[] extraData){}
 
    /**
     * 拒绝游戏呼叫
     * @param peerUserID 对方用户ID
     * @param gameId 游戏ID
     * @param mediaType 游戏呼叫使用音频或视频
     * @return
     */
    public boolean rejectGame(String peerUserID, int gameId, int mediaType){}
 
    /**
     * 挂断游戏电话
     * @param peerUserID 对方用户ID
     * @param gameId 游戏ID
     * @param mediaType 游戏呼叫使用音频或视频
     * @param extraData 附加信息
     * @return
     */
    public boolean hangupGame(String peerUserID, int gameId, int mediaType, byte[] extraData){}
 
    /**
     * 启用接口
     * @param peerUserID
     * @param roomId
     * @param gameId
     * @param mediaType
     * @return
     */
    public boolean pushCallIncoming(String peerUserID, String roomId, int gameId, int mediaType){}
 
    /**
     * 设置本地支持的 Audio SDP
     * @param sdp
     * @return
     */
    public boolean setSDP(String sdp){}
 
    /**
     * 群视频呼叫请求
     * @param groupID 群组ID
     * @param roomid 标识一次呼叫的唯一ID
     * @param ssrc 流标识
     * @param csrc 用户在群中的标识
     * @param relayServer turn server 列表
     * @param extraData 附加信息
     * @return
     */
    public boolean groupCall(String groupID, String roomid, int ssrc, int csrc, String relayServer, byte[] extraData){}
 
    /**
     * 挂断群组呼叫
     * @param groupID 群组ID
     * @param extraData 附加信息
     * @return
     */
    public boolean groupHangup(String groupID, byte[] extraData){}
 
    /**
     * 探测群呼叫最优 turn server
     * @param roomId 
     * @param timeout 探测超时时间
     * @return
     */
    public boolean getRelayServer(String roomId, int timeout){}
}

CallListener 说明

public interface CallListener {
    /**
     * 收到视频呼叫时回调
     * @param status 总是 0
     * @param peerUserID 呼叫方的用户ID
     * @param extraData 呼叫方携带的扩展数据
     */
    void videoIncoming(int status, String peerUserID, byte[] extraData);
 
    /**
     * 收到语音呼叫时回调
     * @param status 总是 0
     * @param peerUserID 呼叫方的用户ID
     * @param extraData 呼叫方携带的扩展数据
     */
    void audioIncoming(int status, String peerUserID, byte[] extraData);
 
    /**
     * 对方挂断通话时回调
     * @param status 总是 0
     * @param peerUserID 对方的用户ID
     */
    void hangup(int status, String peerUserID);
 
    /**
     * 对方忙时(正在和其他人通话)回调
     * @param status 总是 0
     * @param peerUserID 对方的用户ID
     */
    void busy(int status, String peerUserID);
 
    /**
     * 对方接受己方视频呼叫时回调
     * @param status 总是 0
     * @param peerUserID 呼叫方的用户ID
     * @param extraData 呼叫方携带的扩展数据
     */
    void videoAccept(int status, String peerUserID, byte[] extraData);
 
    /**
     * 对方接受己方语音呼叫时回调
     * @param status 总是 0
     * @param peerUserID 呼叫方的用户ID
     * @param extraData 呼叫方携带的扩展数据
     */
    void audioAccept(int status, String peerUserID, byte[] extraData);
 
    /**
     * 对方拒绝了己方呼叫时回调
     * @param status 总是 0
     * @param peerUserID 对方的用户ID
     */
    void reject(int status, String peerUserID);
 
    /**
     * 呼叫接通,并且可以开始收发音视频数据时回调
     * @param status 总是 0
     * @param peerUserID 对方用户ID
     * @param call_type 呼叫类型
     * @param peer_nettype 对方网络类型
     * @param cpuLevel 对方CPU Level
     * @param screen_aspect 对方屏幕宽高比
     * @param peer_sdp 对方呼叫 SDP 参数
     * @param peer_os 对方系统类型
     * @param voip_sdp 音视频 SDP 参数
     * @param recommendBitrate 建议的视频比特率
     */
    void sendMediaDataStart(int status, String peerUserID, CallType call_type, NetworkType peer_nettype, int cpuLevel, int screen_aspect, String peer_sdp, String peer_os, String voip_sdp, int recommendBitrate);
 
    void missVideoCall(int status, String peerUserID, byte[] extraData, String roomId);
 
    void missAudioCall(int status, String peerUserID, byte[] extraData, String roomId);
 
    void peerOffline(int status, String peerUserID);
 
    /**
     * 对方同时在呼叫己方时回调
     * @param status 总是 0
     * @param peerUserID 对方用户ID
     * @param extraData 扩展数据
     */
    void callAcceptTogether(int status, String peerUserID, byte[] extraData);
 
    /**
     * 呼叫请求服务器收到时回调
     * @param status 总是 0
     * @param peerUserID 对方用户ID
     */
    void serverAckCall(int status, String peerUserID);
 
    /**
     * 呼叫请求对方收到时回调
     * @param status 总是 0
     * @param peerUserID 对方用户ID
     */
    void peerAckCall(int status, String peerUserID);
 
}