由于浏览器的安全策略对除 127.0.0.1 以外的 HTTP 地址作了限制,RTCSIP Web SDK 仅支持 HTTPS 协议或者 http://localhost (http://127.0.0.1),请勿使用 HTTP 协议部署你的项目。
<script src="SDK目录/QZLinkRTCSipSDK.min.js"></script>
<div id="stream_area"></div>
请在设置播放音视频流的HTML元素后,再初始化对象实例。
// 开启(true)/关闭(false)调试模式
QZLinkRTCSip.debug = true
// 初始化实例对象
const rtcsip = new QZLinkRTCSip()
登录服务器。
options
Objectappid
String - 应用IDusername
String - 应用账号password
String - 应用密码host
String - 服务器IP地址port
String - 服务器端口element
String - 播放音视频流的HTML元素IDjoinType
(可选) String - 用户进入房间的方式,默认值为connect
。取值:connect
- 在接听后进入;ringing
- 在振铃后进入codec
(可选) String - 浏览器使用的编码格式,默认值为vp8
。有以下两种选择:vp8
- 浏览器使用 VP8 编码;h264
- 浏览器使用 H.264 编码。cameraResolution
(可选) String - 视频属性,默认值为480p_1
success(res)
Function (可选) - 执行成功后的回调res
Objectuserid
String - 用户IDfail(err)
Function (可选) - 执行失败后的回调err
Objecttype
String - 错误类型evt
String - 事件名称reason
String - 错误码msg
String - 错误信息rtcsip.init({
appid: '应用ID',
username: '应用账号',
password: '应用密码',
host: '服务器IP地址',
port: '服务器端口',
codec: 'vp8',
cameraResolution: '480p_1',
element: 'stream_area' // 播放音视频流的HTML元素ID
}, res => {
console.log('登录成功:', res)
}, err => {
console.error('登录失败: ' + err.msg)
})
发起通话请求。
远端会触发ringing
事件。
callee
String - 被呼叫方的用户ID或者电话号码options
ObjectisVideo
Boolean - 是否视频通话,默认值为false
。isSip
Boolean - 是否SIP通话,默认值为false
。gateway
(可选)String - 网关。若通话为Call Sip模式,则必须传此值。success(res)
Function (可选) - 执行成功后的回调res
Objectuserid
String - 用户IDcaller
String - 呼叫者IDcallee
String - 被呼者IDcallType
String - 呼叫类型:AUDIO
(音频)、VIDEO
(视频)sip
Boolean - 是否SIP通话channel
String - 通话频道IDfail(err)
Function (可选) - 执行失败后的回调err
Objecttype
String - 错误类型evt
String - 事件名称reason
String - 错误码msg
String - 错误信息rtcsip.calling('被呼者ID', {
isVideo: false,
isSip: true,
gateway: '106.xx.xx.xx:15080'
}, res => {
console.log('拨号成功:', res)
}, err => {
console.error('拨号失败: ' + err.msg)
})
接受通话请求。
本地及远端都会触发connected
事件。
success(res)
Function (可选) - 执行成功后的回调res
Objectuserid
String - 用户IDcaller
String - 呼叫者IDcallee
String - 被呼者IDcallType
String - 呼叫类型:AUDIO
(音频)、VIDEO
(视频)sip
Boolean - 是否SIP通话channel
String - 通话频道IDfail(err)
Function (可选) - 执行失败后的回调err
Objecttype
String - 错误类型evt
String - 事件名称reason
String - 错误码msg
String - 错误信息取消/拒绝/挂断通话。
本地会触发hangup
事件,远端会触发remote-cancel
/remote-rejected
/remote-disconnect
事件
success(res)
Function (可选) - 执行成功后的回调res
Objectuserid
String - 用户IDcaller
String - 呼叫者IDcallee
String - 被呼者IDcallType
String - 呼叫类型:AUDIO
(音频)、VIDEO
(视频)sip
Boolean - 是否SIP通话channel
String - 通话频道IDfail(err)
Function (可选) - 执行失败后的回调err
Objecttype
String - 错误类型evt
String - 事件名称reason
String - 错误码msg
String - 错误信息设置用户进入房间的方式,若正在通话中执行此方法,则会返回USER_BUSY
错误。
joinType
String - 用户进入房间的方式,默认值为connect
。取值:connect
- 在接听后进入;ringing
- 在振铃后进入rtcsip.setJoinType('`ringing`')
设置浏览器使用的编码格式,若正在通话中执行此方法,则会返回USER_BUSY
错误。
codec
String - 浏览器使用的编码格式,默认值为vp8
。有以下两种选择:vp8
- 浏览器使用 VP8 编码;h264
- 浏览器使用 H.264 编码。rtcsip.setCodec('h264')
设置视频属性,若正在通话中执行此方法,则会返回USER_BUSY
错误。
cameraResolution
String - 视频属性,默认值为480p_1
rtcsip.setCameraResolution('720p_1')
错误事件。
rtcsip.on('ringing', err => console.log(err))
返回:
err
Objecttype
String - 错误类型evt
String - 事件名称reason
String - 错误码msg
String - 错误信息警告事件。
返回:
err
Objecttype
String - 错误类型evt
String - 事件名称reason
String - 错误码msg
String - 错误信息有远端通话请求时触发。
返回:
evt
Objectuserid
String - 用户IDcaller
String - 呼叫者IDcallee
String - 被呼者IDcallType
String - 呼叫类型:AUDIO
(音频)、VIDEO
(视频)sip
Boolean - 是否SIP通话channel
String - 通话频道ID通话连接建立后触发。
返回:
evt
Objectuserid
String - 用户IDcaller
String - 呼叫者IDcallee
String - 被呼者IDcallType
String - 呼叫类型:AUDIO
(音频)、VIDEO
(视频)sip
Boolean - 是否SIP通话channel
String - 通话频道ID本地取消/拒绝/挂断通话后触发。
返回:
evt
Objectuserid
String - 用户IDcaller
String - 呼叫者IDcallee
String - 被呼者IDcallType
String - 呼叫类型:AUDIO
(音频)、VIDEO
(视频)sip
Boolean - 是否SIP通话channel
String - 通话频道ID远端拒绝通话后触发。
返回:
evt
Objectuserid
String - 用户IDcaller
String - 呼叫者IDcallee
String - 被呼者IDcallType
String - 呼叫类型:AUDIO
(音频)、VIDEO
(视频)sip
Boolean - 是否SIP通话channel
String - 通话频道ID远端取消通话后触发。
返回:
evt
Objectuserid
String - 用户IDcaller
String - 呼叫者IDcallee
String - 被呼者IDcallType
String - 呼叫类型:AUDIO
(音频)、VIDEO
(视频)sip
Boolean - 是否SIP通话channel
String - 通话频道ID本地请求通话,而远端正在通话中时触发。
返回:
evt
Objectuserid
String - 用户IDcaller
String - 呼叫者IDcallee
String - 被呼者IDcallType
String - 呼叫类型:AUDIO
(音频)、VIDEO
(视频)sip
Boolean - 是否SIP通话channel
String - 通话频道ID远端挂断通话时触发。
返回:
evt
Objectuserid
String - 用户IDcaller
String - 呼叫者IDcallee
String - 被呼者IDcallType
String - 呼叫类型:AUDIO
(音频)、VIDEO
(视频)sip
Boolean - 是否SIP通话channel
String - 通话频道ID远端音视频流添加后触发。
返回:
evt
ObjectstreamId
Int - 音视频流ID,用于控制其所在的HTML元素,id名称为video
+streamId
远端音视频流删除后触发。
返回:
evt
ObjectstreamId
Int - 音视频流ID,用于控制其所在的HTML元素,id名称为video
+streamId