Room (SIP)

Video SDK offers the ability to call out to conference room devices using the H.323/SIP Conference Room Connector. H.323 and Session Initiation Protocol (SIP) are protocols for sending media online.

Prerequisites

Check whether CRC is available

Use isCRCEnabled() on ZoomVideoSDKCRCHelper to see if CRC is available for this user.

if let crcHelper = ZoomVideoSDK.shareInstance()?.getCRCHelper() {
    let isEnabled = crcHelper.isCRCEnabled()
}
ZoomVideoSDKCRCHelper *crcHelper = [[ZoomVideoSDK shareInstance] getCRCHelper];
BOOL isEnabled = [crcHelper isCRCEnabled];

Dial out

Use callCRCDevice on ZoomVideoSDKCRCHelper to call out to a Cloud Room Connector (CRC) device to join a session.

if let crcHelper = ZoomVideoSDK.shareInstance()?.getCRCHelper() {
    crcHelper.callCRCDevice("7357@test.plcm.vc", protocol: ZoomVideoSDKCRCProtocol_SIP)
}
ZoomVideoSDKCRCHelper *crcHelper = [[ZoomVideoSDK shareInstance] getCRCHelper];
[crcHelper callCRCDevice:@"7357@test.plcm.vc" protocol:ZoomVideoSDKCRCProtocol_SIP];

Cancel room device call

Cancel the CRC call with cancelCallCRCDevice if you need to cancel the call out request before it is complete.

if let crcHelper = ZoomVideoSDK.shareInstance()?.getCRCHelper() {
    crcHelper.cancelCallCRCDevice()
}
ZoomVideoSDKCRCHelper *crcHelper = [[ZoomVideoSDK shareInstance] getCRCHelper];
[crcHelper cancelCallCRCDevice];

Callback for call status

Listen for CRC device call state changes with the onCallCRCDeviceStatusChanged callback under ZoomVideoSDKDelegate. States include ZoomVideoSDKCRCCallStatus_Busy, ZoomVideoSDKCRCCallStatus_Decline, ZoomVideoSDKCRCCallStatus_Failed, ZoomVideoSDKCRCCallStatus_Ring, ZoomVideoSDKCRCCallStatus_Success, and ZoomVideoSDKCRCCallStatus_Timeout.

func onCallCRCDeviceStatusChanged(_ state: ZoomVideoSDKCRCCallStatus) {
    print("CRC call status: \(state)")
}
- (void)onCallCRCDeviceStatusChanged:(ZoomVideoSDKCRCCallStatus)state {
    NSLog(@"CRC call status: %lu", (unsigned long)state);
}

Webhooks

Use the following webhooks to get notified of the call out status.

Dial-in

To dial in to a Video SDK session, append the session number to @zoomcrc.com, for example {SESSION_NUMBER}.{PASSCODE}@zoomcrc.com, and provide the passcode when prompted. You can obtain these values using an SDK function or API endpoints.

Reserve a session to set up dial-in access

To enable dial-in, you must reserve a session ID in advance using the Create a session API. This reserves the session for up to 24 hours for your specified session name. When you start and join the session with that session name during the reservation period, dial-in users will be able to access it.

Get dial-in information

Get dial-in details using either the SDK function or API endpoints.

Using an SDK function

To retrieve dial-in information with the getSessionSIPAddress function, the returned value will be in this format: {SESSION_NUMBER}.{PASSCODE}@global.zoomcrc.com

For example:

if let crcHelper = ZoomVideoSDK.shareInstance()?.getCRCHelper() {
    let sipAddress = crcHelper.getSessionSIPAddress()
}
ZoomVideoSDKCRCHelper *crcHelper = [[ZoomVideoSDK shareInstance] getCRCHelper];
NSString *sipAddress = [crcHelper getSessionSIPAddress];

Using API endpoints

Get dial-in information using either the Create a session or Get session details APIs.

Sample request

var sipDialInAddress = responseBody.session_number + "@zoomcrc.com";
var sipDialInPasscode = responseBody.session_password;

Sample response

{
    "session_id": "sfk/aOFJSJSYhGwk1hnxgw==",
    "session_number": 97763643886,
    "session_name": "My session",
    "session_password": "123456",
    "passcode": "123456",
    "created_at": "2022-03-25T07:29:29Z",
    "settings": {
        "auto_recording": "cloud",
        "global_dial_in_countries": [
            //...
        ],
        "global_dial_in_numbers": [
            //...
        ]
    }
}

Custom welcome message

You can customize the welcome message that H.323/SIP participants hear when they join a session. See H.323/SIP Conferencing in the account settings documentation for details.

More SIP features

For the full set of SIP features, see ZoomVideoSDKCRCHelper in the Video SDK Reference.