iOS

# 通话操作

本文将介绍视频客服可基于插件提供的通话操作能力实现的功能。

# 1. 通话保持/取回

通话内座席可发起保持通话的操作,保持通话之后座席和访客皆停发音视频数据,双方将互相听不到声音看不到视频画面。

该接口仅座席插件接口调用生效

var webPlugin = new WebPlugin();

/**
  * @desc 保持/取回
  * @interface Hold
  * @param {boolean} holdState - true保持/false取回
  */
// 保持
webPlugin.SetHoldState(true)
// 取回
webPlugin.SetHoldState(false)

保持取回上报通知,该通知座席访客均可收到。

var webPlugin = new WebPlugin();

/**
  * @desc 保持取回上报
  * @param {Boolean} hold - true保持 false取回
  */
webPlugin.OnHeldNotify = function (hold) {
  console.log('OnHeldNotify', hold);
};

# 2. 音视频切换

通话内座席与访客皆可发起音视频通话切换的操作,视频通话状态下座席访客互相可听到对方声音看到视频画面,语音通话状态下座席访客只能听到对方声音,看不到对方视频画面。

var webPlugin = new WebPlugin();
/**
  * @desc 切换音视频通话
  * @param {string} callType - 类型
  * - Audio: 音频
  * - Video: 视频
  */
//切换音频
webPlugin.TurnCallType("Audio");
//切换视频
webPlugin.TurnCallType("Video");

当通话类型发生变化,会触发 OnCallTypeTurnedNotify 回调:

var webPlugin = new WebPlugin();

/**
  * @desc 音视频切换状态上报
  * @param {String} content - 属性
  */
webPlugin.OnCallTypeTurnedNotify = function (callType) {
  console.log('OnCallTypeTurnedNotify', callType);
};

# 3. SIP音视频切换

SIP通话中,如果需要切换SIP成员音视频通话类型,需要单独调用TurnCallTypeForSIP方法。如果切换普通成员需要调用TurnCallType。

var webPlugin = new WebPlugin();
/**
  * @desc 切换音视频通话
  * @param {string} callType - 类型
  * - Audio: 音频
  * - Video: 视频
  */
//切换音频
webPlugin.TurnCallTypeForSIP("Audio");
//切换视频
webPlugin.TurnCallTypeForSIP("Video");

当通话类型发生变化,会触发 OnCallTypeTurnedNotify 回调:

var webPlugin = new WebPlugin();

/**
  * @desc sip通话时,sip音视频切换的结果通知。
  * 1. 当本端调用TurnCallTypeForSIP时,收到协商结果为同意切换时会上报
  * 2. 当收到sip音视频切换的请求,本端处理结果会上报
  * @param {string} callType - 通话类型
  * 					- Video 视频
  * 					- Audio 音频
  */
webPlugin.OnSIPCallTypeTurnedNotify = function (callType) {
  console.log('OnSIPCallTypeTurnedNotify', callType);
};

# 4. 获取RoomId

用户获取RoomId

var webPlugin = new WebPlugin();

/**
  * @desc 获取RoomId
  */
webPlugin.GetRoomId();

获取获取RoomId结果通知

var webPlugin = new WebPlugin();

/**
  * @desc 获取RoomId回调
  * @param {String} roomId 
  */
webPlugin.OnGetRoomId = function (roomId) {
  console.log('OnGetRoomId', roomId);
};