智慧服务,成就美好体验 项目咨询

主页 > 服务与支持 > 开发平台 > 客户端SDK参考 > Web SDK > 音视频呼叫 音视频呼叫

入门使用

音视频呼叫

更新时间:2019-11-19

描述

该接口用于用户发起音视频呼叫,应答或拒绝呼叫,主动挂断呼叫,发送二次拨号信息,音视频通话相互转换,接受或拒绝音频转视频请求,两方通话转多方会议。

音视频呼叫的前提是已登录。

业务流程

图1 音视频呼叫流程图 
  1. 调用接口发起音视频呼叫、接听音视频呼叫或拒绝音视频呼叫。
    • 主叫方调用client.makeCall()接口发起音频或视频呼叫。
    • 被叫方调用client.answerCall(false)接口拒绝音频或视频呼叫。
    • 被叫方调用client.answerCall(true)接口接听音频或视频呼叫。

    代码示例:

    function makeCall(){
        var isVideoCall = 0;
        var calleeNum = document.getElementById("callee_num").value;
        if(document.getElementById("isVideoCall").checked)
        {
            isVideoCall = 1;
        }
    
        client.makeCall(calleeNum, isVideoCall,function(data){
    	if(data.result){
    	    document.getElementById("callState").innerHTML = "call state: make call";
    	}
        });  
    }
    
    function answerCall(accept){
    	var call = client.getCallHandler();
    	if (call == null) {
    		return;
    	}
    	var isVideo = document.getElementById("isVideoCall").checked;
    	client.answerCall(accept, isVideo);
    }
    
     

    参考文件:\usage\conference_usage.js。

  2. 调用client.hangup()接口挂断呼叫。

    代码示例:

    function hangup(){
        var call = client.getCallHandler();
        if (call == null) {
    	return;
        }
        client.hangup();
    }
    
     

    参考文件:\usage\conference_usage.js。

  3. 调用client.sendDTMF()接口发送DTMF信号。

    代码示例:

    function DTMF(dmtfNo){
    	var call = client.getCallHandler();
    	if (call == null) {
    		return;
    	}
    	client.sendDTMF(dmtfNo);
    }
    
     

    参考文件:\usage\conference_usage.js。

  4. 调用接口发起音视频呼叫请求、接听音视频呼叫请求或拒绝音视频呼叫请求。
    • 通话双方任意一方调用client.switchAudioCall()接口发起音频呼叫转视频呼叫请求。
    • 对端收到请求后,调用client.answerSwitch(false)接口拒绝音频呼叫转视频呼叫请求。
    • 对端收到请求后,调用client.answerSwitch(true)接口接受音频呼叫转视频呼叫请求。

    代码示例:

    function addVideo(){
    	var call = client.getCallHandler();
    	if (call == null) {
    		return;
    	}
    
    	client.switchAudioCall(false);	
    }
    
    function delVideo(){
    	var call = client.getCallHandler();
    	if (call == null) {
    		return;
    	}
    
    	client.switchAudioCall(true);	
    }
    
    function replyAddVideo(accept){
    	var call = client.getCallHandler();
    	if (call == null) {
    		return;
    	}
    
    	client.answerSwitch(accept);	
    }
    
     

    参考文件:\usage\conference_usage.js。

  5. 调用client.transfer2Conf()接口发起呼叫转会议。

    代码示例:

    function transfer2Conf(){
    	var call = client.getCallHandler();
    	if (call == null) {
    		return;
    	}
    
    	var memberList = document.getElementById("memberList").value;
    	if(memberList!=undefined && memberList!=null && memberList!=""){
    		var memberListArr = memberList.split(",");
    		var memberListTemp = new Array();
    		for (var i = 0; i < memberListArr.length; i++) {
    			memberListTemp[i] = { number: memberListArr[i], name: "", smsPhone: "", email: "", autoInvite: 1, role: 0,extensions: "" };
    		}
    		transfer2ConfParam = { attendees: memberListTemp }	
    	}else{
    		transfer2ConfParam=null;
    	}
    
    	client.transfer2Conf(transfer2ConfParam);	
    }
    
     

    参考文件:\usage\conference_usage.js。

注意事项

  1. 调用answerCall()接口需在来电事件之后调用,否则失败。
  2. 通话双方均可以调用hangup()接口挂断呼叫。
  3. 处于通话中才可以调用switchAudioCall()接口、sendDTMF()接口、answerSwitch()接口。
  4. 为了实现更友好的最终用户体验,UI应同步调用SDK提供的媒体播放接口或系统提供的播放接口,实现播放DTMF按键音。