SIP/H.323设备支持
更新时间: 2024/11/18 11:14:08功能介绍
云屋SDK支持通过SIP和H.323标准协议与硬件视频会议系统或PSTN电话系统对接,可支持以下几种场景:
- SDK呼叫单个对接端:从SDK端向对接端发起呼叫,对接端用户应答后与SDK一起进入房间;
- SDK邀请多个对接端:SDK端先进入房间,然后向一个或多个对接端用户发起邀请,被邀请用户接受邀请后加入该房间;
- 对接端呼叫SDK:SDK端在线,对接端向SDK端发起呼叫,SDK端应答后与对接端一起加入房间;
- 对接端直接加入房间:SDK房间提前建好,对接端呼叫房间号后加入房间;
以上对接端可以是支持SIP/H.323的硬件终端、传统电话、MCU会议
功能开通
-
联系商务开通SIP/H.323对接功能,或在网站咨询客服。
-
登录 SDK后台 ,选择SIP配置/H.323配置,打开配置开关;如需配置中继模式,则填入对应的终端地址、端口号、协议(且SIP设备支持选择协议)。
- SIP配置:
- H.323配置:
SDK呼叫单个对接端
注意:
注意:
- 当用户A呼叫SIP/H.323设备时,对端设备需要在线,如果呼叫的是E.164号码,需要对应设备已注册,否则被呼叫端无法收到被呼叫的消息;设备收到呼叫消息后,根据其自身设置的应答机制,会自动进入房间或在按下接听后进入房间。
- 如果在 功能开通 的"SIP配置"或者"H.323配置"界面配置了中继地址,呼叫时不需要填写对端设备IP,直接填写"sip:号码"或者"h323:号码"即可
- 调用接口:
//被呼叫的SIP/H.323设备的IP或E.164号码,以sip:或h323:为前缀
const calledUserID = "sip:192.168.0.10"; // 呼叫IP为192.168.0.10的SIP设备
// const calledUserID = "h323:149689338"; // 呼叫E.164号码为14989338的H.323设备
const MeetInfoObj = { ID: 88888888 };
CRVideo_Call(calledUserID, MeetInfoObj);
- 回调通知:
//呼叫操作成功响应
CRVideo_CallSuccess.callback = function (callID, cookie) {
console.log("callSuccess:" + callID);
};
// 呼叫操作失败响应
CRVideo_CallFail.callback = function (callID, sdkErr, cookie) {
console.log("callFail, error:" + sdkErr + ", callID:" + callID);
};
呼叫相关API请参考:
SDK邀请多个对接端
注意:
注意:
- 仅当用户A已经进入房间议,才可以邀请SIP/H.323设备。
- 当用户A邀请SIP/H.323设备时,对应设备需要在线,如果呼叫的是E.164号码,需要对应设备已注册,否则被呼叫端无法收到被呼叫的消息;设备收到呼叫消息后,根据其自身设置的应答机制,会自动进入房间或在按下接听后进入房间。
- 如果在 功能开通 的"SIP配置"或者"H.323配置"界面配置了中继地址,邀请时不需要填写对端设备IP,直接填写"sip:号码"或者"h323:号码"即可
- 调用接口:
//被邀请的SIP/H.323设备的IP或E.164号码,以sip:或h323:为前缀
const inviteeUsrID = "sip:192.168.0.10"; // 邀请IP为192.168.0.10的SIP设备
// const inviteeUsrID = "h323:149689338"; // 邀请E.164号码为14989338的H.323设备
const usrExtDat = JSON.stringify(
{
meeting: { ID: xxx } ,
// 设备的默认UserID和昵称就是inviteeUsrID,可以通过devInfo参数来自定义设备的UserID和昵称(非必传)
devInfo: {
userID: '自定义设备在房间中的UserID',
nickName: '自定义设备在房间中的昵称'
}
}
);
const inviteID = CRVideo_Invite(inviteeUsrID, usrExtDat);
- 回调通知:
//邀请发送成功
CRVideo_InviteSuccess.callback = function (inviteID, cookie) {
//等待被邀请方应答/拒绝,或邀请超时
};
//邀请发送失败
CRVideo_InviteFail.callback = function (inviteID, sdkErr, cookie) {
//邀请发送失败,弹出提示框等处理
};
//通知邀请被接受
CRVideo_NotifyInviteAccepted.callback = function (inviteID, userExtDat) {
//邀请被接受,等待被邀请方进入房间等处理
};
//通知邀请被拒绝
CRVideo_NotifyInviteRejected.callback = function (inviteID, reason, userExtDat) {
//邀请被拒绝,弹出提示框等处理
};
相关API请参考:
- CRVideo_Invite
- CRVideo_InviteSuccess
- CRVideo_InviteFail
- CRVideo_NotifyInviteAccepted
- CRVideo_NotifyInviteRejected
对接端呼叫SDK
被呼叫的SDK端收到被他人呼叫通知,具体请参考 SDK被呼叫 部分
对接端直接加入房间
下面以 Linphone 为例演示直接加入房间的方法:
- 二次拨号方式,呼叫 sip:116.63.139.166 或者 h323:116.63.139.166 (实际云服务地址请咨询商务),呼通后根据界面提示输入房间号,再输入"#"键以进入对应房间
- 拨号界面
- 输入房间号界面
- 直接呼叫房间号方式,呼叫 10252565@116.63.139.166 ,进入对应房间
配置终端
下面以宝利通硬终端和Linphone软终端为例,说明终端的配置方法。
宝利通终端
-
登录web管理页面,左侧导航栏选择管理设置→网络→IP网络
-
启用SIP呼叫,注:如果在SDK后台配置SIP时选择了协议,此处应选择一致的传输协议
-
启用H.323呼叫:
Linphone软终端
- 打开偏好设置,选择视频,在下方添加H264解码器并确保开启