Put the Call on Hold from the Application CallCardSetHold

If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the MCP server so that the assistant can utilize the official REST documentation.

Scope: placement — registration of the placement, telephony — registration of the call that raises the card

Who can execute the command: any user

The CallCardSetHold command puts the call on hold or takes it off hold in the call card.

The command operates within the application context in the PAGE_BACKGROUND_WORKER placement. This is a JS interface command, not a REST method: it cannot be invoked with a request to /rest/.

How to Call the Command

The command is invoked from the widget with the BX24.placement.call method. The third argument is the callback function, which receives the result of the command.

BX24.placement.call('CallCardSetHold', {held: true}, function (result) {
            console.log(result);
        });
        

Command Parameters

Required parameters are marked with *

Name
type

Description

held*
boolean

Hold control.

Possible values:

  • true — put the call on hold
  • false — take the call off hold

Code Examples

How to Use Examples in Documentation

It is recommended to call the command after the BackgroundCallCard::initialized event

BX24.ready(function () {
            BX24.init(function () {
                BX24.placement.call('CallCardSetHold', {held: true}, function (result) {
                    console.log(result);
                });
            });
        });
        
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide)
        import type { B24Frame } from '@bitrix24/b24jssdk'
        
        declare const $b24: B24Frame
        
        await $b24.placement.call('CallCardSetHold', { held: true })
        
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
        <script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
        <script>
          document.addEventListener('DOMContentLoaded', async () => {
            const $b24 = await B24Js.initializeB24Frame()
        
            const result = await $b24.placement.call('CallCardSetHold', {held: true})
        
            console.log(result)
          })
        </script>
        

Command Result

[]
        

Returned Data

An empty array on a successful call.

If the call is already in the requested state, the command returns an empty array right away: the card does not change and the BackgroundCallCard::holdButtonClick event does not occur.

Errors

The command error arrives in the same callback function: instead of the usual result, it receives an array with an object whose result equals error.

[
            {
                "result": "error",
                "errorCode": "Call card is undefined"
            }
        ]
        

errorCode Values

Code

Description

Value

Call card is undefined

The call card is unavailable

There is no active call card to manage

missing field held

The required held parameter was not passed

A parameter error in the desktop scenario. Because of the way it is implemented, a second response — an empty array — may arrive after it

If the command is invoked in another placement, the callback function will not be invoked at all: the placement interface ignores an unknown command. To check that the CallCardSetHold command is available, use the BX24.placement.getInterface method.

Continue Learning