TCP連接客戶端的方法


 

 

 

SDKUtils.java 工具類

package com.gsafety.dispatcher.maikexing.util;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.gsafety.dispatcher.maikexing.employee.Employee;
import com.gsafety.dispatcher.maikexing.group.Group;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

/**
 * 用於定義所有的sdk的調用方式
 * @author luwch
 *
 */
public class SdkUtil {
    private static Map<String,Dispatch> dispatchMap = new HashMap<String,Dispatch>();
    
    /**
     * 獲得SDK的內容信息
     * @return
     */
    public static  Dispatch getDispatch(String ip,String port){
        Dispatch dispatch = null;
        if(dispatchMap.get("dispatch")==null){
            //用來獲取Dispatch對象
            dispatch = ResultUtil.createDispatch();
//            InitSdk.connectSDK(dispatch, "118.178.92.58", "9000");
            SdkUtil.connectSDK(dispatch, ip, port);
            dispatchMap.put("dispatch", dispatch);
        }else{
            dispatch = dispatchMap.get("dispatch");
        }
        return dispatch;
    }
    
    /**
     * 初始化sdk的內容
     * @param dispatch
     * @param ip
     * @param port
     */
    public static void connectSDK(Dispatch dispatch,String ip,String port) {
        Variant f = dispatch.call(dispatch, "Net_SDK_Init",
                new Variant(ip), new Variant(port),
                new Variant(""), new Variant(0));
        System.out.println("connectSDK======f.getInt()=======>"+f.getInt());
    }
    
    /*******銷毀SDK*******start***/
    public void getCleanup(Dispatch dispatch,int cmdId,String username,String password){
        // 自增ID;userName用戶名 password用戶密碼
        Variant b = Dispatch.call(dispatch, "Net_SDK_Cleanup", 
                new Variant(cmdId), new Variant(username), new Variant(password), new Variant());
        System.out.println("b.getInt()=====>"+b.getInt());
    }
    /*******銷毀SDK*******end***/
    
    
    /***********登錄和登錄返回的信息********start*******/
    /**
     * 登錄信息
     * @param dispatch
     * @param cmdId
     * @param username
     * @param password
     */
    public static  void getLogin(Dispatch dispatch,int cmdId,String username,String password){
        // 自增ID;userName用戶名 password用戶密碼
        Variant b = Dispatch.call(dispatch, "Net_SDK_Login", 
                new Variant(cmdId), new Variant(username), new Variant(password), new Variant());
        System.out.println("getLogin=====b.getInt()=====>"+b.getInt());
    }
    /***********登錄和登錄返回的信息********end*******/
    
    /*********退出和退出返回的信息********start*********/
    /**
     * @param dispatch
     * @param cmdId  命令序列號,自增長。
     * @param bstrAgentID  登錄操作員的ID,如果是其他座席的ID代表將它下線(只有admin或班長座席有權限)。
     */
    public static void getLogout(Dispatch dispatch,int cmdId,String bstrAgentID){
        // 自增ID;userName用戶名 password用戶密碼
        Variant b = Dispatch.call(dispatch, "Net_SDK_Logout", 
                cmdId, bstrAgentID);
        System.out.println("getLogout===============》b.getInt()=====>"+b.getInt());
    }
    
    /**
     * 連接保活
     * @param dispatch
     * @param sReconnectInterval
     * @param sHeartInterval
     * @param sWaitTime
     */
    public static void setTimeout(Dispatch dispatch,Integer sReconnectInterval,Integer sHeartInterval,Integer sWaitTime){
        // 自增ID;userName用戶名 password用戶密碼
        Variant b = Dispatch.call(dispatch, "Net_SDK_SetConnectTime", 
                new Variant(sReconnectInterval), new Variant(sHeartInterval),new Variant(sWaitTime));
        System.out.println("getLogout===============》b.getInt()=====>"+b.getInt());
    }
    
    /*********退出和退出返回的信息********end*********/
    
    
    
    /******************用於打電話**********start***********/
    /**
     * 調用打電話的功能
     * @param dispatch SDK 
     * @param cmdId    編碼
     * @param bstrCallingDevice  主叫用戶號碼
     * @param bstrCalledDevice   被叫用戶號碼
     * @param bstrUserID   被叫用戶ID,可選
     * @param eCallType  呼叫類型,枚舉定義 0 表示語音呼叫  其他的為視頻的接口信息
     * @param eDuplexMode  雙工模式,枚舉定義 0表示全雙工,1表示半雙工
     */
    public static void makeCall(Dispatch dispatch,int cmdId,String bstrCallingDevice,String bstrCalledDevice,
            String bstrUserID,int eCallType,int  eDuplexMode){
        // 自增ID;userName用戶名 password用戶密碼
        Variant b = Dispatch.call(dispatch, "Net_SDK_MakeCall", 
                new Variant(cmdId), new Variant(bstrCallingDevice), new Variant(bstrCalledDevice), new Variant(bstrUserID)
                , new Variant(eCallType) , new Variant(eDuplexMode));
        System.out.println("makeCall=======b.getInt()=====>"+b.getInt());
    }
    

    /**
     * 調度台獲取當前號碼的通話錄音記錄。
     * @param dispatch  sdk初始化內容
     * @param cmdId    登錄編碼
     * @param bstrBeginTime  起始時間,可為空,格式:YYYYMMDDHHMMSS
     * @param bstrEndTime  截止時間,可為空,格式:YYYYMMDDHHMMSS
     * @param bstrCallingDevice  主叫用戶號碼,可為空
     * @param bstrCalledDevice  被叫用戶號碼,可為空 
     * @param bstrCallDevice   通話的用戶號碼,主叫或被叫,可為空
     * @param bstrOperatorID  操作員ID,可為空
     * @param sBeginIndex   起始索引,必填
     * @param sCount   請求條數,必填
     */
    public  static void getGetCallRecord(Dispatch dispatch,int cmdId,String bstrBeginTime,String bstrEndTime,String bstrCallingDevice,
            String bstrCalledDevice,String bstrCallDevice,String bstrOperatorID,int sBeginIndex,int sCount){
        Variant b = Dispatch.call(dispatch, "Net_SDK_GetCallRecord", 
                cmdId, bstrBeginTime,bstrEndTime,bstrCallingDevice,bstrCalledDevice,bstrCallDevice,bstrOperatorID,sBeginIndex,sCount);
        System.out.println("b.getInt()=====>"+b.getInt());
    }
    
    
    /**
     * 調度台對用戶號碼進行拆線操作。
     * @param dispatch sdk
     * @param cmdId   編號
     * @param bstrCalledDevice  
     * @param bstrUserID
     */
    public  static void getClearConnection(Dispatch dispatch,int cmdId,String bstrCalledDevice,String bstrUserID){
        Variant b = Dispatch.call(dispatch, "Net_SDK_ClearConnection", 
                new Variant(cmdId), new Variant(bstrCalledDevice),new Variant(bstrUserID));
        System.out.println("b.getInt()=====>"+b.getInt());
    }
    
    /**
     * 用於掛斷電話的信息
     * @param dispatch
     * @param cmdId  編碼
     * @param bstrAgentID  操作員id
     */
    public static void getClearCall(Dispatch dispatch,int cmdId,String bstrAgentID){
        Variant b = Dispatch.call(dispatch, "Net_SDK_ClearCall", 
                new Variant(cmdId), new Variant(bstrAgentID));
        System.out.println("b.getInt()=====>"+b.getInt());
    }
    /******************用於打電話**********end***********/
    
    
    
    /*******用於操作職員信息*****start****/
    /**
     * 用於添加職員的信息
     * @param dispatch
     * @param cmdId
     * @param info
     */
    public static void employeeAdd(Dispatch dispatch,int cmdId,Employee info){
        // 自增ID;userName用戶名 password用戶密碼【】
        Variant b = Dispatch.call(dispatch, "Net_SDK_EmployeeAdd", 
                new Variant(cmdId), JSON.toJSONString(info));
        System.out.println("employeeAdd=======b.getInt()=====>"+b.getInt());
    }
    /**
     * 用於修改職員的信息
     * @param dispatch
     * @param cmdId
     * @param info
     */
    public static void employeeMod(Dispatch dispatch,int cmdId,Employee info){
        // 自增ID;userName用戶名 password用戶密碼【】
        Variant b = Dispatch.call(dispatch, "Net_SDK_EmployeeMod", 
                new Variant(cmdId), JSON.toJSONString(info));
        System.out.println("employeeMod=======b.getInt()=====>"+b.getInt());
    }
    
    /**
     * 用於刪除職員的信息
     * @param dispatch
     * @param cmdId
     * @param bstrEmployeeID
     */
    public static void employeeDel(Dispatch dispatch,int cmdId,String bstrEmployeeID){
        // 自增ID;userName用戶名 password用戶密碼【】
        Variant b = Dispatch.call(dispatch, "Net_SDK_EmployeeDel", 
                new Variant(cmdId), bstrEmployeeID);
        System.out.println("employeeDel=======b.getInt()=====>"+b.getInt());
    }
    
    /**
     * 用於查詢人員的信息
     * @param dispatch
     * @param cmdId      命令序列號,自增長
     * @param bstrEmployeeID   職員ID,當該項不為空時,查詢對應ID的職員信息
     * @param bstrGroupID  組ID,當該項不為空時,查詢對應ID組下的所有職員信息
     */
    public static void employeeQuery(Dispatch dispatch,int cmdId,String bstrEmployeeID,String bstrGroupID){
//        // 自增ID;userName用戶名 password用戶密碼【】
//        Variant b = Dispatch.call(dispatch, "Net_SDK_EmployeeQuery", 
//                new Variant(cmdId), bstrEmployeeID,bstrGroupID);
        // 自增ID;userName用戶名 password用戶密碼【】
        Variant b = Dispatch.call(dispatch, "Net_SDK_EmployeeQuery", 
                new Variant(cmdId));
        System.out.println("employeeQuery=======b.getInt()=====>"+b.getInt());
    }
    
    /*******用於操作職員信息*****end****/
    
    
    /*******用於操作組的信息*****start****/
    /**
     * 添加組的信息
     * @param dispatch
     * @param cmdId
     * @param info
     */
    public static void groupAdd(Dispatch dispatch,int cmdId,Group info){
        // 自增ID;userName用戶名 password用戶密碼
        Variant b = Dispatch.call(dispatch, "Net_SDK_GroupAdd", 
                new Variant(cmdId), JSON.toJSONString(info));
        System.out.println("groupAdd=======b.getInt()=====>"+b.getInt());
    }
    
    /**
     * 查詢組的信息
     * @param dispatch
     * @param cmdId
     * @param info
     */
    public static void groupQuery(Dispatch dispatch,int cmdId,String bstrGroupID,String bstrParentID){
        // 自增ID;userName用戶名 password用戶密碼
        Variant b = Dispatch.call(dispatch, "Net_SDK_GroupQuery", 
                new Variant(cmdId), bstrGroupID,bstrParentID);
        System.out.println("groupQuery=======b.getInt()=====>"+b.getInt());
    }
    
    /**
     * 刪除用戶組的信息
     * @param dispatch
     * @param cmdId
     * @param bstrGroupID
     */
    public static void groupDel(Dispatch dispatch,int cmdId,String bstrGroupID){
        // 自增ID;userName用戶名 password用戶密碼
        Variant b = Dispatch.call(dispatch, "Net_SDK_GroupDel", 
                new Variant(cmdId), bstrGroupID);
        System.out.println("groupQuery=======b.getInt()=====>"+b.getInt());
    }
    
    /**
     * 用於修改組的信息
     * @param dispatch
     * @param cmdId
     * @param info
     */
    public static void groupMod(Dispatch dispatch,int cmdId,Group info){
        // 自增ID;userName用戶名 password用戶密碼
        Variant b = Dispatch.call(dispatch, "Net_SDK_GroupMod", 
                new Variant(cmdId), JSON.toJSONString(info));
        System.out.println("groupQuery=======b.getInt()=====>"+b.getInt());
    }
    /*******用於操作組的信息*****end****/
    
    
    /*******用於發送短信的信息***********start*******/
    /**
     * 
     * @param dispatch
     * @param cmdId  命令序列號,自增長
     * @param bstrSmsContent  短信內容,支持中文,最大1024字節
     * @param bstrSmsContacts  接收人的短信號碼或調度台ID,支持群發多個,數組大小1000
     * @param bstrSmsGroupID   群發組ID,首次群發時由服務端生成,可選
     * @param eSmsFormat   短信文件類型,枚舉定義  
     *             typedef enum E_SMS_FORMAT
                {
                SMS_FORMAT = 0,      //文本
                PHOTO_FORMAT,        //圖片
                VIDEO_FORMAT,        //視頻
                AUDIO_FORMAT,        //語音
                FILE_FORAMT,            //文件
                } 
     * @param bstrSmsFileName   圖片、視頻上傳到服務器的文件名(確保唯一性)
     * @param bstrSmsRealFileName   圖片、視頻顯示文件名稱
     * @param bstrSmsFileSize   文件大小,單位:字節
     * @param eSmsType   短信類型
     * typedef enum E_SENDTYPE
        {
        SENDTYPE_SINGLE = 0,   //單發
        SENDTYPE_GROUP,           //群發
        SENDTYPE_CHAT,            //群聊
        SENDTYPE_MCHAT,        //會議群聊
        } 

     */
    public static void smsSend(Dispatch dispatch,int cmdId,String bstrSmsContent,String [] bstrSmsContacts,    String bstrSmsGroupID,
            int eSmsFormat,String bstrSmsFileName,String bstrSmsRealFileName,String bstrSmsFileSize,int eSmsType){
        // 自增ID;userName用戶名 password用戶密碼
        Variant b = Dispatch.call(dispatch, "Net_SDK_SmsSend", 
                new Variant(cmdId), bstrSmsContent, JSON.toJSONString(bstrSmsContacts),bstrSmsGroupID,eSmsFormat,
                bstrSmsFileName,bstrSmsRealFileName,bstrSmsFileSize,eSmsType);
        System.out.println("smsSend=======b.getInt()=====>"+b.getInt());
    }
    /**
     * 
     * @param dispatch
     * @param cmdId
     * @param sBeginIndex
     * @param sCount
     */
    public static void smsList(Dispatch dispatch,int cmdId,int sBeginIndex,int sCount){
        // 自增ID;userName用戶名 password用戶密碼
        Variant b = Dispatch.call(dispatch, "Net_SDK_GetSmsList", 
                new Variant(cmdId), sBeginIndex,sCount);
        System.out.println("smsSend=======b.getInt()=====>"+b.getInt());
    }
    
    
    /*******用於創建會議***********start*******/
    public static void createMeet(Dispatch dispatch, int cmdid, String meetName, String meetNum, int isAllowSpeak,
            int meetMode) {
        Variant b = Dispatch.call(dispatch, "Net_SDK_MeetCreate",
                new Variant(cmdid),meetName,meetNum, isAllowSpeak,meetMode);
        System.out.println("createMeet=======b.getInt()=====>"+b.getInt());
    }
    /*******用於結束會議***********start*******/
    public static void endMeet(Dispatch dispatch, int cmdid, String meetID) {
        Variant b= Dispatch.call(dispatch, "Net_SDK_MeetEnd",
                new Variant(cmdid),meetID);
        System.out.println("endMeet=======b.getInt()=====>"+b.getInt());
    }

    //修改會議
    public static void modifyMeet(Dispatch dispatch, int cmdid, String meetID, String meetName, String meetNum,
            int isAllowSpeak) {
        Variant b= Dispatch.call(dispatch, "Net_SDK_MeetModify",
                new Variant(cmdid),meetID,meetName,meetNum,isAllowSpeak);
        System.out.println("modifyMeet=======b.getInt()=====>"+b.getInt());
    }

    //查詢會議
    public  static void  queryMeet(Dispatch dispatch, int cmdid, String meetId) {
        Variant b= Dispatch.call(dispatch, "Net_SDK_GetMeetInfo",new Variant(cmdid));
        System.out.println("queryMeet=======b.getInt()=====>"+b.getInt());
    }

    //鎖定會議
    public static void lockedMeet(Dispatch dispatch, int cmdid, String meetId, int isLocked) {
        Variant b= Dispatch.call(dispatch, "Net_SDK_MeetLock",new Variant(cmdid),meetId,isLocked);
        System.out.println("lockedMeet=======b.getInt()=====>"+b.getInt());
    }

    //會議錄音
    public static void recordMeet(Dispatch dispatch, int cmdid, String meetId, int isRecord) {
        Variant b= Dispatch.call(dispatch, "Net_SDK_MeetRecord",new Variant(cmdid),meetId,isRecord);
        System.out.println("recordMeet=======b.getInt()=====>"+b.getInt());
    }

    //會議廣播
    public static void MeetBroadcast(Dispatch dispatch, int cmdid, String meetId, int isBroadcast, String fileName) {
        Variant b= Dispatch.call(dispatch, "Net_SDK_MeetBroadcast",new Variant(cmdid),meetId,isBroadcast,fileName);
        System.out.println("MeetBroadcast=======b.getInt()=====>"+b.getInt());
    }
    //成員發言
    public static void allowSpeak(Dispatch dispatch, int cmdid, String meetId, String activeDevice, String userID) {
        Variant b= Dispatch.call(dispatch, "Net_SDK_MeetSpeakAllow",new Variant(cmdid),meetId,activeDevice,userID);
        System.out.println("allowSpeak=======b.getInt()=====>"+b.getInt());
    }

    //成員禁言
    public static void banSpeak(Dispatch dispatch, int cmdid, String meetId, String activeDevice, String userID) {
        Variant b= Dispatch.call(dispatch, "Net_SDK_MeetSpeakBan",new Variant(cmdid),meetId,activeDevice,userID);
        System.out.println("banSpeak=======b.getInt()=====>"+b.getInt());
    }

    //成員踢出
    public static void kickMember(Dispatch dispatch, int cmdid, String meetId, String activeDevice, String userID) {
        Variant b= Dispatch.call(dispatch, "Net_SDK_MeetKick",new Variant(cmdid),meetId,activeDevice,userID);
        System.out.println("kickMember=======b.getInt()=====>"+b.getInt());
    }

    //回到會場
    public static void backMeet(Dispatch dispatch, int cmdid, String meetId, String activeDevice, String userID) {
        Variant b= Dispatch.call(dispatch, "Net_SDK_MeetBack",new Variant(cmdid),meetId,activeDevice,userID);
        System.out.println("backMeet=======b.getInt()=====>"+b.getInt());
    }

    //查詢會議成員
    public static void showMeetMemeber(Dispatch dispatch, int cmdid) {
        Variant b= Dispatch.call(dispatch, "Net_SDK_GetMeetMemberInfo",new Variant(cmdid));
        System.out.println("backMeet=======b.getInt()=====>"+b.getInt());
    }

    //加入會議
    public static void joinMeet(Dispatch dispatch, int cmdid, String phonenum, String bstrCalledDevice,
            String bstrUserID, String meetId) {
        Variant b= Dispatch.call(dispatch, "Net_SDK_JoinMeetCall",new Variant(cmdid),phonenum,bstrCalledDevice,bstrUserID,meetId);
        System.out.println("joinMeet=======b.getInt()=====>"+b.getInt());
    }
    /**
     * 電話點名功能
     * @param dispatch
     * @param cmdId
     * @param bstrCallingDevice
     * @param bstrCalledDevice
     * @param bstrUserID
     * @param eCallMode
     * @param eFileName
     */
    public static void rollCall(Dispatch dispatch,int cmdId,String bstrCallingDevice,String bstrCalledDevice,
            String bstrUserID,Integer eCallMode,String  eFileName){
        Variant b = Dispatch.call(dispatch, "Net_SDK_RollCall", 
                new Variant(cmdId), new Variant(bstrCallingDevice), new Variant(bstrCalledDevice)
                , new Variant(eCallMode) , eFileName);
        System.out.println("smsSend=======b.getInt()=====>"+b.getInt());
    }
    
    /**
     * 中斷點名操作
     * @param dispatch
     * @param cmdId
     * @param flowID
     */
    public static void endRollCall(Dispatch dispatch,int cmdId,String flowID){
        Variant b = Dispatch.call(dispatch, "Net_SDK_EndRollCall", 
                new Variant(cmdId), new Variant(flowID));
        System.out.println("smsSend=======b.getInt()=====>"+b.getInt());
    }
    
    /**
     * 輪詢功能
     * @param dispatch
     * @param cmdId
     * @param bstrCallingDevice
     * @param bstrCalledDevice
     * @param bstrUserID
     * @param ecallType
     */
    public static void pollCall(Dispatch dispatch,int cmdId,String bstrCallingDevice,String bstrCalledDevice,
            String bstrUserID,Integer ecallType){
        Variant b = Dispatch.call(dispatch, "Net_SDK_PollCall", 
                new Variant(cmdId), new Variant(bstrCallingDevice), 
                new Variant(bstrCalledDevice), new Variant(ecallType));
        System.out.println("smsSend=======b.getInt()=====>"+b.getInt());
    }
    
    /**
     * 中斷點名操作
     * @param dispatch
     * @param cmdId
     * @param flowID
     */
    public static void pollCallEnd(Dispatch dispatch,int cmdId,String flowID){
        Variant b = Dispatch.call(dispatch, "Net_SDK_PollCallEnd", 
                new Variant(cmdId), new Variant(flowID));
        System.out.println("smsSend=======b.getInt()=====>"+b.getInt());
    }
    
    /**
     * 呼叫廣播操作
     * @param dispatch
     * @param cmdId
     * @param bstrCallingDevice
     * @param bstrCalledDevice
     */
    public static void broadcastCall(Dispatch dispatch,int cmdId,String bstrCallingDevice,
            String bstrCalledDevice,Integer callMode,String bstrFileName){
        Variant b = Dispatch.call(dispatch, "Net_SDK_BroadcastCall", 
                new Variant(cmdId),new Variant(bstrCallingDevice), 
                new Variant(bstrCalledDevice),new Variant(callMode),new Variant(), 
                new Variant(bstrFileName), new Variant(0), new Variant());
        System.out.println("smsSend=======b.getInt()=====>"+b.getInt());
    }
    
    /**
     * 結束廣播操作
     * @param dispatch
     * @param cmdId
     * @param flowID
     */
    public static void broadcastCallEnd(Dispatch dispatch,int cmdId,String flowID){
        Variant b = Dispatch.call(dispatch, "Net_SDK_BroadcastCallEnd", 
                new Variant(cmdId), new Variant(flowID));
        System.out.println("smsSend=======b.getInt()=====>"+b.getInt());
    }
    
    /**
     * 電話錄音
     * @param dispatch
     * @param cmdId
     * @param flowID
     */
    public static void recordCall(Dispatch dispatch,String isRecord,String bstrActiveDevice,int bstrActiveUserID){
        Variant b = Dispatch.call(dispatch, "Net_SDK_RecordCall",new Variant(isRecord),new Variant(bstrActiveDevice),new Variant(bstrActiveUserID));
        System.out.println("smsSend=======b.getInt()=====>"+b.getInt());
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM