台湾一级a毛片在线播放,黄色精品偷拍视频大全,精品一区二区在线欧美日韩,日本特黄一级视频播三级片,日韩美女18岁美女视频,偷偷操不一样的99,国产午夜激无码av毛片久

智慧服務(wù),成就美好體驗(yàn) 項(xiàng)目咨詢

主頁(yè) > 服務(wù)與支持 > 開(kāi)發(fā)平臺(tái) > 客戶端SDK參考 > Android Native SDK > 會(huì)議 漸進(jìn)式會(huì)議

入門使用

漸進(jìn)式會(huì)議

更新時(shí)間:2019-11-20

兩方通話轉(zhuǎn)會(huì)議

描述

用戶在點(diǎn)對(duì)點(diǎn)通話過(guò)程中發(fā)起轉(zhuǎn)會(huì)議,或邀請(qǐng)第三方(或更多)加入通話。

前提條件

  • 鑒權(quán)登錄成功。
  • SIP號(hào)碼已成功注冊(cè)。
  • 會(huì)議環(huán)境參數(shù)已設(shè)置。
業(yè)務(wù)流程
圖1 兩方通話轉(zhuǎn)會(huì)議流程 
  1. 會(huì)議發(fā)起方UI調(diào)用TsdkConferenceManager對(duì)象中的p2pTransferToConference()方法發(fā)起通話轉(zhuǎn)會(huì)議,參數(shù)為TsdkBookConfInfo類和TsdkCall類。

     

    代碼示例:
    //java code
    public int callTransferToConference(int call_id){
    
        Log.i(TAG, "callTransferToConference.");
    
        Session callSession = CallMgr.getInstance().getCallSessionByCallID(call_id);
        if (callSession == null)
        {
            Log.e(TAG, "call Session is null.");
            return -1;
        }
    
        TsdkCall tsdkCall =  callSession.getTsdkCall();
        if (tsdkCall == null)
        {
            Log.e(TAG, "call is invalid.");
            return -1;
        }
    
        TsdkBookConfInfo bookConfInfo = new TsdkBookConfInfo();
    
        bookConfInfo.setConfType(TsdkConfType.TSDK_E_CONF_INSTANT);
        bookConfInfo.setIsAutoProlong(1);
    
        bookConfInfo.setSubject(LoginMgr.getInstance().getAccount() + "'s Meeting");
        if (1 == tsdkCall.getCallInfo().getIsVideoCall()) {
            bookConfInfo.setConfMediaType(TSDK_E_CONF_MEDIA_VIDEO);
        }else {
            bookConfInfo.setConfMediaType(TSDK_E_CONF_MEDIA_VOICE);
        }
    
        bookConfInfo.setSize(2);
    
        List<TsdkAttendeeBaseInfo> attendeeList = new ArrayList<>();
        TsdkAttendeeBaseInfo confctrlAttendee = new TsdkAttendeeBaseInfo();
        //confctrlAttendee.setNumber(callInfo.getPeerNumber());
        confctrlAttendee.setRole(TsdkConfRole.TSDK_E_CONF_ROLE_ATTENDEE);
        attendeeList.add(confctrlAttendee);
    
        bookConfInfo.setAttendeeList(attendeeList);
        bookConfInfo.setAttendeeNum(attendeeList.size());
    
        //The other parameters are optional, using the default value
        //其他參數(shù)可選,使用默認(rèn)值即可
        bookConfInfo.setLanguage(TsdkConfLanguage.TSDK_E_CONF_LANGUAGE_EN_US);
    
        int result = TsdkManager.getInstance().getConferenceManager().p2pTransferToConference(tsdkCall, bookConfInfo);
        if (result != 0) {
            Log.e(TAG, "call transfer to conference is return failed, result = " + result);
        }
        return result;
    }
    
     

     

  2. 發(fā)起方SDK在收到服務(wù)器返回的立即會(huì)議創(chuàng)建響應(yīng)后,通過(guò)TsdkNotify對(duì)象中的onEvtBookConfResult()方法向向UI上報(bào)會(huì)議創(chuàng)建結(jié)果。
  3. 會(huì)議發(fā)起方SDK完成通話轉(zhuǎn)會(huì)議處理,自動(dòng)掛斷原通話,通過(guò)TsdkNotify對(duì)象中的onEvtTransToConfResult()方法向UI上報(bào)通話轉(zhuǎn)會(huì)議結(jié)果,攜帶原通話對(duì)象。

     

    說(shuō)明: 

    若轉(zhuǎn)會(huì)議失敗,原通話仍存在,UI需要使用原通話對(duì)象恢復(fù)原通話界面;若轉(zhuǎn)會(huì)議成功,原通話對(duì)象由SDK自動(dòng)回收,此時(shí)返回的原通話對(duì)象可能為空。

     

  4. 通話雙方SDK完成通話轉(zhuǎn)會(huì)議處理,通過(guò)TsdkNotify對(duì)象中的onEvtJoinConfResult()方法加入會(huì)議結(jié)果,并返回會(huì)議對(duì)象TsdkConference,后續(xù)會(huì)控時(shí)使用。此時(shí)UI可跳轉(zhuǎn)至?xí)h界面。
  5. 所有與會(huì)者側(cè)SDK收到會(huì)議狀態(tài)刷新通知,通過(guò)TsdkNotify對(duì)象中的onEvtInfoAndStatusUpdate()方法向UI上報(bào)會(huì)議信息及會(huì)議狀態(tài)刷新事件,UI刷新會(huì)議狀態(tài)和成員列表。

注意事項(xiàng)

無(wú)。

升級(jí)會(huì)議

描述

  • “語(yǔ)音會(huì)議”升級(jí)至“語(yǔ)音+數(shù)據(jù)會(huì)議”。
  • “視頻會(huì)議”升級(jí)至“視頻+數(shù)據(jù)會(huì)議”。
  • 暫不支持“語(yǔ)音會(huì)議”升級(jí)至“語(yǔ)音+視頻會(huì)議”。

前提條件

與會(huì)者通過(guò)主席身份加入會(huì)議,或已申請(qǐng)獲取為主席。

業(yè)務(wù)流程

圖2 升級(jí)會(huì)議流程 
  1. 會(huì)議發(fā)起方UI調(diào)用TsdkConference對(duì)象中的upgradeConference()方法升級(jí)為數(shù)據(jù)會(huì)議,參數(shù)為群組ID,SDK發(fā)送升級(jí)會(huì)議請(qǐng)求至服務(wù)器。

     

    代碼示例:
    //Java code
    public int upgradeConf()
    {
        if (null == currentConference)
        {
            Log.e(TAG,  "upgrade conf failed, currentConference is null ");
            return -1;
        }
    
        int result =  currentConference.upgradeConference("");
        return result;
    }
    
     

     

  2. 發(fā)起方SDK在收到“升級(jí)為數(shù)據(jù)會(huì)議”請(qǐng)求的響應(yīng)后, 通過(guò)TsdkNotify對(duì)象中的onEvtConfctrlOperationResult()方法向UI上報(bào)升級(jí)會(huì)議的會(huì)控操作結(jié)果。

     

    代碼示例:
    //Java code
    public void handleConfctrlOperationResult(TsdkConference conference, TsdkConfOperationResult result)
    {
        Log.i(TAG, "handleConfctrlOperationResult");
        int ret = result.getReasonCode();
        if (null == conference || null == result)
        {
            return;
        }
        if (ret != 0)
        {
            Log.e(TAG, "conf ctrl operation failed: " + result.getDescription());
            return;
        }
        int confOperationType = result.getOperationType();
    }
    
     

     

  3. 會(huì)議發(fā)起方、接收方SDK收到會(huì)議成員列表刷新通知,通過(guò)TsdkNotify對(duì)象中的onEvtInfoAndStatusUpdate()方法向UI上報(bào)會(huì)議信息及狀態(tài)刷新事件,UI刷新會(huì)議狀態(tài)和成員列表。

     

    說(shuō)明: 

    詳細(xì)流程參見(jiàn)會(huì)議信息及會(huì)議狀態(tài)更新描述。

     

  4. SDK自動(dòng)獲取數(shù)據(jù)會(huì)議入會(huì)參數(shù),通過(guò)TsdkNotify對(duì)象中的onEvtGetDataconfParamResult()方法向UI上報(bào)數(shù)據(jù)會(huì)議入會(huì)參數(shù)獲取結(jié)果,UI應(yīng)調(diào)用TsdkConference對(duì)象中的joinDataConference()方法加入數(shù)據(jù)會(huì)議。

     

    代碼示例:
    //Java code
    public void  handleGetDataConfParamsResult(TsdkConference tsdkConference, TsdkCommonResult commonResult){
        Log.i(TAG, "handleJoinConfResult");
        if ((tsdkConference == null) || (commonResult == null)) {
            return;
        }
        int result = commonResult.getResult();
        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.GET_DATA_CONF_PARAM_RESULT, result);
    }
    
     

     

  5. SDK自動(dòng)獲取數(shù)據(jù)會(huì)議入會(huì)參數(shù),通過(guò)TsdkNotify對(duì)象中的onEvtJoinDataConfResult()方法向UI上報(bào)加入數(shù)據(jù)會(huì)議結(jié)果,UI根據(jù)結(jié)果顯示相應(yīng)標(biāo)識(shí)按鈕。

     

    代碼示例:
    //Java code
    public void  handleGetDataConfParamsResult(TsdkConference tsdkConference, TsdkCommonResult commonResult){
        Log.i(TAG, "handleJoinConfResult");
        if ((tsdkConference == null) || (commonResult == null)) {
            return;
        }
        int result = commonResult.getResult();
        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.GET_DATA_CONF_PARAM_RESULT, result);
    }
    
     

     

注意事項(xiàng)

無(wú)。