音视频通话

SIP/H.323 设备支持

功能介绍

SDK 支持通过 SIP、H.323 标准协议与硬件视频会议系统或 PSTN 电话系统对接,典型场景如下:

  1. SDK 呼叫单个对接端:从 SDK 端向对接端发起呼叫,对方应答后与 SDK 一起进入房间;
  2. SDK 邀请多个对接端:SDK 端先进入房间,再向一个或多个对接端发起邀请,对方接受后加入该房间;
  3. 对接端呼叫 SDK:对接端向在线 SDK 用户发起呼叫,SDK 应答后一起进入房间;
  4. 对接端直接加入房间:房间已创建,对接端呼叫房间号后加入。

对接端可以是支持 SIP/H.323 的硬件终端、传统电话、MCU 会议等。

使用介绍

1. 功能开通

  1. 联系商务开通 SIP/H.323 对接功能,或在官网咨询客服。
  2. 登录 SDK 后台,在 SIP 配置 / H.323 配置 中打开开关;若使用中继模式,填写终端地址、端口及协议(SIP 可选传输协议)。

SIP 配置:

SipCfg

H.323 配置:

H323Cfg

2. SDK 呼叫单个对接端

注意:

被叫 SIP/H.323 设备须在线;若呼叫 E.164 号码,对应设备须已注册,否则无法收到呼叫。设备收到呼叫后,按自身设置自动入会或接听后入会。

若在后台「SIP 配置」或「H.323 配置」中已配置中继地址,呼叫时无需填写对端 IP,直接使用 sip:号码h323:号码 即可。

被叫用户 ID 以 sip:h323: 为前缀,填写 IP 或 E.164 号码:

const calledUserID = "sip:192.168.0.10";   // SIP 设备 IP
// const calledUserID = "h323:149689338";  // H.323 设备 E.164 号码

const MeetInfoObj = { ID: 88888888 };

// 可选:设备入会参数 devInfo
const userExtDat = JSON.stringify({
  devInfo: {
    autoOpenMic: 0,
    nickName: "sipNickname",
  },
});

CRVideo_Call(calledUserID, MeetInfoObj, userExtDat);
CRVideo_CallSuccess.callback = function (callID, cookie) {
  // 呼叫请求发送成功
};

CRVideo_CallFail.callback = function (callID, sdkErr, cookie) {
  // 呼叫失败
};

相关 API 请参考:

3. SDK 邀请多个对接端

注意:

须在成功进入房间后,方可邀请 SIP/H.323 设备。

被邀请设备须在线;若邀请 E.164 号码,设备须已注册。已配置中继地址时,邀请 ID 使用 sip:号码h323:号码,无需填写对端 IP。

const inviteeUsrID = "sip:192.168.0.10";
// const inviteeUsrID = "h323:149689338";

const usrExtDat = JSON.stringify({
  meeting: { ID: 88888888 },
  // 设备的默认 UserID 和 nickName 即为 inviteeUsrID,可通过 devInfo 自定义(非必传)
  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 请参考:

4. 对接端呼叫 SDK

SDK 端收到对接端呼叫时的处理,参见 呼叫 中「被呼叫」一节。

5. 对接端直接加入房间

以下以 Linphone 为例(实际云服务地址请咨询商务):

二次拨号:呼叫 sip:116.63.139.166h323:116.63.139.166,接通后按提示输入房间号,再按 # 进入房间。

sipDial1

sipDial2

直接呼叫房间号:呼叫 10252565@116.63.139.166 进入对应房间。

sipDial3

6. 配置终端

以下以宝利通硬终端、Linphone 软终端为例,说明终端侧 SIP/H.323 配置方法。

宝利通终端

登录 Web 管理页面,选择 管理设置 → 网络 → IP 网络

  • 启用 SIP 呼叫(须与 SDK 后台 SIP 配置中的传输协议一致):

polycomSip

  • 启用 H.323 呼叫:

polycomH323

Linphone 软终端

打开偏好设置 → 视频,添加 H.264 解码器并确保开启:

linphoneSip