? 說明
(1)實時音頻、實時視頻均通過相同的接口進行調用
遵循相同的業務流程。不同的業務通過呼叫接口參數callType進行區分,1視頻、0音頻。
(2)接口邏輯
接口調用是采取異步調用的方式。所有的呼叫相關接口的調用結果通過回調接口RL_YTX.onCallMsgListener來接受服務端返回的各種狀態。
(3)業務流程
a、客戶A呼叫客戶B發起請求
b、云通訊服務端收到A請求并把請求轉發給B
c、客戶B收到請求并應答
d、云通訊服務端收到B應答并轉發A
e、A收到應答,通話建立。
//view 是展示對方的影像或聲音 // localView是展示自己的影像或聲音 //這里的 view 和 localView 根據實際需要選擇video標簽或者audio標簽,要求是dom元素 RL_YTX.setCallView(view,localView);
var makeCallBuilder= new RL_YTX.MakeCallBuilder(); makeCallBuilder.setCalled(‘John的號碼’); makeCallBuilder.setCallType(1);//呼叫的類型 0 音頻 1視頻 RL_YTX.setCallView(view,localView); //呼叫類型1的時候這么傳 // RL_YTX.setCallView(view,null);//呼叫類型是0的時候這么傳 RL_YTX.makeCall(makeCallBuilder, function(){ //呼叫成功 }, function callback(obj){ obj.code //錯誤碼 })
var voipAcceptBuilder = new RL_YTX.AcceptCallBuilder(); voipAcceptBuilder.setCallId(callId);//請求的callId, voipAcceptBuilder.setCaller(caller);//請求的主叫號碼,即Tony的號碼 //通過RL_YTX.onCallMsgListener(callback)中的callback.callId屬性獲得callId //通過RL_YTX.onCallMsgListener(callback)中的callback.caller屬性獲得caller RL_YTX.accetpCall(voipAcceptBuilder, function(){ }, function callback(obj){ alert(obj. code) //錯誤碼 })
var VoipRejectBuilder = new RL_YTX.RejectCallBuilder(); VoipRejectBuilder.setCallId(callId);//請求的callId VoipRejectBuilder.setCaller(caller);//請求的主叫號碼,即Tony的號碼 //通過RL_YTX.onCallMsgListener(callback)中的callback.callId屬性獲得callId //通過RL_YTX.onCallMsgListener(callback)中的callback.caller屬性獲得caller //通過RL_YTX.onCallMsgListener(callback)中的callback.reason屬性獲得reason RL_YTX.rejectCall(VoipRejectBuilder,function(){ }, function(obj){ alert(obj.code) })
var VoipReleaseBuilder = new RL_YTX.ReleaseCallBuilder(); VoipReleaseBuilder.setCallId(callId);//請求的callId VoipReleaseBuilder.setCaller(caller);//請求的主叫號碼,即Tony的號碼 VoipReleaseBuilder.setCalled(called);// 請求的被叫號碼,即John的號碼 //通過RL_YTX.onCallMsgListener(callback)中的callback.callId屬性獲得callId //通過RL_YTX.onCallMsgListener(callback)中的callback.caller屬性獲得called //通過RL_YTX.onCallMsgListener(callback)中的callback.called屬性獲得caller RL_YTX.releaseCall(VoipReleaseBuilder,function(){ }, function(obj){ alert(obj.code) })
RL_YTX.setRecordVideo();
RL_YTX.onCallMsgListener(function(obj){ obj.callId;//唯一消息標識 obj.caller;//主叫號碼 obj.called; //被叫無值 obj.callType;//0 音頻 1 視頻 obj.state; //1 對方振鈴(被叫的振鈴消息) 2 呼叫中(主叫呼叫發送成功返回該值) 3 呼叫建立(被叫接收后主叫監聽到該值) //4 呼叫失敗(對主叫;對方拒絕或者忙) 5 結束通話(主叫取消成功和主、被叫掛機成功后得到該值) //6 呼叫到達(被叫監聽到呼叫請求時獲得該值) //7 媒體已正式建立連接(被叫獲取該值) obj.code;// 200操作成功,非200代表因本地原因,導致無法接受音視頻邀請(例如不支持音視頻等),具體原因請參照錯誤碼 }
文檔更新時間:2017年12月12日