api:pbx:app:settings:desktop:save
Table of Contents
API : PBX : APP: Settings : Desktop : Save
Introduction
This request is used to save the Communicator Desktop configuration for an employee. An employee can only access the employees own configuration.
Request
| URL | https://api.telecomx.dk/pbx/app/settings/desktop | |
|---|---|---|
| Method | POST | |
| Access level | PERSONAL, VIEWER, MANAGER, OWNER, RESELLER, RESELLER_ADMIN, ADMIN. | |
Request
| Property | Type | Description |
|---|---|---|
| ringtoneExternal | Id | Ringtone to use for external callers - see list here, null for no ringtone. |
| ringtoneLocal | Id | Ringtone to use for internal callers - see list here, null for no ringtone. |
| ringtoneQueue | Id | Ringtone to use for calls from queues - see list here, null to use regular ringtones. |
| showStatusPanel | Boolean | Should the status panel with connection status be shown. |
| autoLaunch | Boolean | Shall the app auto launch when the employee logon their computer. |
| autoLaunchHide | Boolean | If auto launch is enabled, shall the app launch as hidden. |
| queueCriticalSound | Boolean | True to play an alarm when a queue caller has waiting for a critical long time. |
| theme | string | Name of theme for styling the app. |
| phoneId | Id | Optional id of SIP phone to pair with. |
| softphoneId | Id | Optional id of Softphone if using softphone. |
| dashboardId | Id | Optional id of dashboard to use. |
| windowWallboardMode | Boolean | Shall the app be shown i fullscreen wallboard mode. |
| presenceBackground | Boolean | If presence shall also color the background of the employee. |
| callBackground | Boolean | If on a call, also change the background of the employee. |
| fullscreen | Boolean | If we are in/shall run in fullscreeen mode. |
| zoom | Number | UI zoom level, default 100. |
| dashboardColumnWidth | Number | Standard width of columns in the dashboard (default 370). |
| dndWhenDesktopLocked | Boolean | When true Communicator sets itself DND while the computer is locked. |
| popupOnIncomingCall | Boolean | When true and Communicator is minimized or not in focus, it will pop to the front. |
| popupRevertWhenDone | Boolean | If popupOnIncomingCall is enabled, this will hide Communicator when the call has ended. |
| alwaysOnTop | Boolean | True if Communicator shall allways be on top. |
| beaconsMayUpdateLocation | Boolean | True if beacons may update the users location. |
| queueRingtones | Array | List of queues with distinct ringtones. |
| queueRingtones[].queue | Id | Id of queue. |
| queueRingtones[].ringtone | Id | Id of ringtone. |
| window | Object | Settings for the size and placement of the app window. |
| window.x | Number | X position in pixels. |
| window.y | Number | Y position in pixels. |
| window.width | Number | Width of window in pixels. |
| window.height | Number | Height of window in pixels. |
| globalShortcuts | Object | Global shortcut settings. |
| globalShortcuts.ANSWER | Object | Answer shortcut settings. |
| globalShortcuts.ANSWER.enabled | Boolean | True if the shortcut is enabled. |
| globalShortcuts.ANSWER.key | String | Key to press. |
| globalShortcuts.ANSWER.commandOrControl | Boolean | True if Command (MacOS) or Control (Windows) must also be pressed. |
| globalShortcuts.ANSWER.shift | Boolean | True if shift must also be pressed. |
| globalShortcuts.ANSWER.alt | Boolean | True if alt must also be pressed. |
| globalShortcuts.HANGUP | Object | Answer shortcut settings. |
| globalShortcuts.HANGUP.enabled | Boolean | True if the shortcut is enabled. |
| globalShortcuts.HANGUP.key | String | Key to press. |
| globalShortcuts.HANGUP.commandOrControl | Boolean | True if Command (MacOS) or Control (Windows) must also be pressed. |
| globalShortcuts.HANGUP.shift | Boolean | True if shift must also be pressed. |
| globalShortcuts.HANGUP.alt | Boolean | True if alt must also be pressed. |
| globalShortcuts.TOGGLE_WINDOW | Object | Answer shortcut settings. |
| globalShortcuts.TOGGLE_WINDOW.enabled | Boolean | True if the shortcut is enabled. |
| globalShortcuts.TOGGLE_WINDOW.key | String | Key to press. |
| globalShortcuts.TOGGLE_WINDOW.commandOrControl | Boolean | True if Command (MacOS) or Control (Windows) must also be pressed. |
| globalShortcuts.TOGGLE_WINDOW.shift | Boolean | True if shift must also be pressed. |
| globalShortcuts.TOGGLE_WINDOW.alt | Boolean | True if alt must also be pressed. |
| globalShortcuts.CALL | Object | Answer shortcut settings. |
| globalShortcuts.CALL.enabled | Boolean | True if the shortcut is enabled. |
| globalShortcuts.CALL.key | String | Key to press. |
| globalShortcuts.CALL.commandOrControl | Boolean | True if Command (MacOS) or Control (Windows) must also be pressed. |
| globalShortcuts.CALL.shift | Boolean | True if shift must also be pressed. |
| globalShortcuts.CALL.alt | Boolean | True if alt must also be pressed. |
| globalShortcuts.SEARCH | Object | Answer shortcut settings. |
| globalShortcuts.SEARCH.enabled | Boolean | True if the shortcut is enabled. |
| globalShortcuts.SEARCH.key | String | Key to press. |
| globalShortcuts.SEARCH.commandOrControl | Boolean | True if Command (MacOS) or Control (Windows) must also be pressed. |
| globalShortcuts.SEARCH.shift | Boolean | True if shift must also be pressed. |
| globalShortcuts.SEARCH.alt | Boolean | True if alt must also be pressed. |
| integration | Object | Integration settings. |
| integration.run | Object | Run application settings. |
| integration.run.when | String | When to run - NEVER, RINGING or ANSWERED. |
| integration.run.delay | Number | Number of milliseconds to wait before running. |
| integration.run.command | String | Command to execute - supports variables: {NUMBER}, {NUMBER-NO-PREFIX}, {NAME}, {VAR:call-variable-name}. |
| integration.run.requireArgs | Boolean | The integration shall only run if all variables used have values. |
| integration.sendkeys | Object | Send keystrokes settings. |
| integration.sendkeys.when | String | When to run - NEVER, RINGING or ANSWERED. |
| integration.sendkeys.delay | Number | Number of milliseconds to wait before running. |
| integration.sendkeys.focusProcess | String | Name of process to give focus to. |
| integration.sendkeys.maximizeProcess | Boolean | True if process shall be maximized. |
| integration.sendkeys.useAutoit | Boolean | True to use AutoIT instead of system for sending keys (Windows only). |
| integration.sendkeys.keys | String | Keys to type - supports variables: {NUMBER}, {NUMBER-NO-PREFIX}, {NAME}, {VAR:call-variable-name}. |
| integration.sendkeys.requireArgs | Boolean | The integration shall only run if all variables used have values. |
| integration.copyToClipboard | Object | Copy to clipboard settings. |
| integration.copyToClipboard.when | String | When to run - NEVER, RINGING or ANSWERED. |
| integration.copyToClipboard.what | String | The string to store in the clipboard - supports variables: {NUMBER}, {NUMBER-NO-PREFIX}, {NAME}, {VAR:call-variable-name}. |
| integration.copyToClipboard.requireArgs | Boolean | The integration shall only run if all variables used have values. |
| integration.browser | Object | Browser integration settings. |
| integration.browser.when | String | When to run - NEVER, RINGING or ANSWERED. |
| integration.browser.website | String | Hostname of website to be active on. |
| integration.browser.spa | Boolean | True if website is a single page application. |
| integration.browser.requireArgs | Boolean | The integration shall only run if all variables used have values. |
| integration.browser.actions | Array | List of actions to perform. |
| integration.browser.actions[].action | String | Type of action to perform: sleep - for X milliseconds, target - select DOM target, click - click on target, focus - focus target, clear - clear target value, insert - insert text into target, js - execute JS code, scrolltop - scroll to top of page. |
| integration.browser.actions[].value | string/number | Value for action: sleep - milliseconds target - CSS selector insert - text to insert, supports variables: {NUMBER}, {NUMBER-NO-PREFIX}, {NAME}, {VAR:call-variable-name} js - JS code to run. |
| integration.website | Object | Webpage integration settings. |
| integration.website.when | String | When to run - NEVER, RINGING or ANSWERED. |
| integration.website.delay | Number | Number of milliseconds to wait before opening the website. |
| integration.website.url | String | URL to open, supports variables: {NUMBER}, {NUMBER-NO-PREFIX}, {NAME}, {VAR:call-variable-name}. |
| integration.website.preferWindow | Boolean | True if URL should be opened in a window, instead of a tab. |
| integration.website.requireArgs | Boolean | The integration shall only run if all variables used have values. |
| integration.website.apiMode | String | If set, request operates in API mode, Set to POST, PATCH, PUT or GET. Set to null if not used. |
| integration.website.apiData | String | Body of API request if API mode is POST or PATCH. Supports variables: {NUMBER}, {NUMBER-NO-PREFIX}, {NAME}, {VAR:call-variable-name}. |
| media | Object | Settings for media. |
| media.preferredAudioInputs | Array | Ordered list of which microphone is preferred, latest 5 used. |
| media.preferredAudioOutputs | Array | Ordered list of which speaker is preferred, latest 5 used. |
| media.preferredVideoInputs | Array | Ordered list of which cameras is preferred, latest 5 used. |
| media.preferredRingerOutputs | Array | Ordered list of which speaker devices is preferred for playing ringtone on, latest 5 used. |
| media.ringerVolume | Number | Ringtone volume 0-1. |
| media.kuando | Object | Kuando busylight settings. |
| media.kuando.use | Boolean | True to use Kuando. |
| media.kuando.ringTone | String | Name of ringtone to play, blank for none. |
| media.kuando.ringVolume | Number | Ringtone volume 0-100. |
| media.preferredHeadset | String | Name of preferred headset that Communicator will connect to if possible on startup and after sleep: NONE, JABRA, SENNHEISER, YEALINK. |
Example
{ "ringtoneExternal":"12345678901234567890ABCD", "ringtoneLocal": "1245678901234567890ABCE", "ringtoneQueue": "12345678901234567890AABB", "showStatusPanel": true, "autoLaunch": true, "autoLaunchHide": true, "queueCriticalSound": false, "theme": "EARTH", "phoneId": null, "softphoneId": "1234567890123457890AAAA", "dashboardId": "12345678902134567890BBBB", "windowWallboardMode": false, "callBackground": false, "presenceBackground": true, "fullscreen": false, "zoom": 100, "dashboardColumnWidth": 370, "dndWhenDesktopLocked": false, "popupOnIncomingCall": false, "popupRevertWhenDone": false, "alwaysOnTop": false, "beaconsMayUpdateLocation": false, "queueRingtones": [ { "queue": "123456780124567890ABCD", "ringtone": "12345678901234567890AAAA" } ], "window": { "x": 0, "y": 0, "width": 800, "height": 600 }, "globalShortcuts": { "ANSWER": { "enabled": true, "key": "a", "commandOrControl": true, "shift": true, "alt": false }, "HANGUP": { "enabled": true. "key": "h", "commandOrControl": true, "shift": true, "alt": false }, "TOGGLE_WINDOW": { "enabled": true, "key": "t", "commandOrControl": true, "shift": true, "alt": false }. "CALL": { "enabled": true, "key": "c", "commandOrControl": true. "shift": true, "alt": false }, "SEARCH": { "enabled": true, "key": "s", "commandOrControl": true, "shift": true. "alt": false } }, "integration": { "run": { "when": "ANSWERED", "delay": 500, "command": "cmdrun.exe {NUMBER} {NAME}", "requireArgs": true }, "sendkeys": { "when": "ANSWERED", "delay": 500, "focusProcess": "notepad.exe", "maximizeProcess": false, "useAutoit": false, "keys": "{F2}{NUMBER}{ENTER}", "requireArgs": true }, "copyToClipboard": { "when": "ANSWERED", "what": "{NUMBER}", "requireArgs": true }, "browser": { "when": "ANSWERED", "website": "www.mycrm-solution.com", "spa": true, "requireArgs": true, "actions": [ { "action": "target", "value": ".searchButton" }, { "action": "click" }, { "action": "target", "value": ".searchQuery" }, { "action": "insert", "value": "{NUMBER}" } ] }, "website": { "when": "ANSWERED", "delay": 0, "url": "http://mycrm.com/integratiob/%NUMBER%", "preferWindow": true, "requireArgs": false, "apiMode": null, "apiData": null } } "media": { "preferredAudioInputs": [ "12345678901234567890001", "1234567890123457890002" ], "preferredAudioOutputs": [ "12345678901234567890003", "12345678901234567890004" ], "preferredVideoInputs": [ "12345678901245678900005" ], "preferredRingerOutputs": [ "12345678901234567890003", "12345678901234567890004" ], "ringerVolume": 0.5, "kuando": { "use": true, "ringTone": "wave", "ringVolume": 25 }, "preferredHeadset": "YEALINK" } }
Response
| Property | Type | Description |
|---|---|---|
| ringtoneExternal | Id | Ringtone to use for external callers - see list here, null for no ringtone. |
| ringtoneLocal | Id | Ringtone to use for internal callers - see list here, null for no ringtone. |
| ringtoneQueue | Id | Ringtone to use for calls from queues - see list here, null to use regular ringtones. |
| showStatusPanel | Boolean | Should the status panel with connection status be shown. |
| autoLaunch | Boolean | Shall the app auto launch when the employee logon their computer. |
| autoLaunchHide | Boolean | If auto launch is enabled, shall the app launch as hidden. |
| queueCriticalSound | Boolean | True to play an alarm when a queue caller has waiting for a critical long time. |
| theme | string | Name of theme for styling the app. |
| phoneId | Id | Optional id of SIP phone to pair with. |
| softphoneId | Id | Optional id of Softphone if using softphone. |
| dashboardId | Id | Optional id of dashboard to use. |
| windowWallboardMode | Boolean | Shall the app be shown i fullscreen wallboard mode. |
| presenceBackground | Boolean | If presence shall also color the background of the employee. |
| callBackground | Boolean | If on a call, also change the background of the employee. |
| fullscreen | Boolean | If we are in/shall run in fullscreeen mode. |
| zoom | Number | UI zoom level, default 100. |
| dashboardColumnWidth | Number | Standard width of columns in the dashboard (default 370). |
| dndWhenDesktopLocked | Boolean | When true Communicator sets itself DND while the computer is locked. |
| popupOnIncomingCall | Boolean | When true and Communicator is minimized or not in focus, it will pop to the front. |
| popupRevertWhenDone | Boolean | If popupOnIncomingCall is enabled, this will hide Communicator when the call has ended. |
| alwaysOnTop | Boolean | True if Communicator shall allways be on top. |
| beaconsMayUpdateLocation | Boolean | True if beacons may update the users location. |
| queueRingtones | Array | List of queues with distinct ringtones. |
| queueRingtones[].queue | Id | Id of queue. |
| queueRingtones[].ringtone | Id | Id of ringtone. |
| window | Object | Settings for the size and placement of the app window. |
| window.x | Number | X position in pixels. |
| window.y | Number | Y position in pixels. |
| window.width | Number | Width of window in pixels. |
| window.height | Number | Height of window in pixels. |
| globalShortcuts | Object | Global shortcut settings. |
| globalShortcuts.ANSWER | Object | Answer shortcut settings. |
| globalShortcuts.ANSWER.enabled | Boolean | True if the shortcut is enabled. |
| globalShortcuts.ANSWER.key | String | Key to press. |
| globalShortcuts.ANSWER.commandOrControl | Boolean | True if Command (MacOS) or Control (Windows) must also be pressed. |
| globalShortcuts.ANSWER.shift | Boolean | True if shift must also be pressed. |
| globalShortcuts.ANSWER.alt | Boolean | True if alt must also be pressed. |
| globalShortcuts.HANGUP | Object | Answer shortcut settings. |
| globalShortcuts.HANGUP.enabled | Boolean | True if the shortcut is enabled. |
| globalShortcuts.HANGUP.key | String | Key to press. |
| globalShortcuts.HANGUP.commandOrControl | Boolean | True if Command (MacOS) or Control (Windows) must also be pressed. |
| globalShortcuts.HANGUP.shift | Boolean | True if shift must also be pressed. |
| globalShortcuts.HANGUP.alt | Boolean | True if alt must also be pressed. |
| globalShortcuts.TOGGLE_WINDOW | Object | Answer shortcut settings. |
| globalShortcuts.TOGGLE_WINDOW.enabled | Boolean | True if the shortcut is enabled. |
| globalShortcuts.TOGGLE_WINDOW.key | String | Key to press. |
| globalShortcuts.TOGGLE_WINDOW.commandOrControl | Boolean | True if Command (MacOS) or Control (Windows) must also be pressed. |
| globalShortcuts.TOGGLE_WINDOW.shift | Boolean | True if shift must also be pressed. |
| globalShortcuts.TOGGLE_WINDOW.alt | Boolean | True if alt must also be pressed. |
| globalShortcuts.CALL | Object | Answer shortcut settings. |
| globalShortcuts.CALL.enabled | Boolean | True if the shortcut is enabled. |
| globalShortcuts.CALL.key | String | Key to press. |
| globalShortcuts.CALL.commandOrControl | Boolean | True if Command (MacOS) or Control (Windows) must also be pressed. |
| globalShortcuts.CALL.shift | Boolean | True if shift must also be pressed. |
| globalShortcuts.CALL.alt | Boolean | True if alt must also be pressed. |
| globalShortcuts.SEARCH | Object | Answer shortcut settings. |
| globalShortcuts.SEARCH.enabled | Boolean | True if the shortcut is enabled. |
| globalShortcuts.SEARCH.key | String | Key to press. |
| globalShortcuts.SEARCH.commandOrControl | Boolean | True if Command (MacOS) or Control (Windows) must also be pressed. |
| globalShortcuts.SEARCH.shift | Boolean | True if shift must also be pressed. |
| globalShortcuts.SEARCH.alt | Boolean | True if alt must also be pressed. |
| integration | Object | Integration settings. |
| integration.run | Object | Run application settings. |
| integration.run.when | String | When to run - NEVER, RINGING or ANSWERED. |
| integration.run.delay | Number | Number of milliseconds to wait before running. |
| integration.run.command | String | Command to execute - supports variables: {NUMBER}, {NUMBER-NO-PREFIX}, {NAME}, {VAR:call-variable-name}. |
| integration.run.requireArgs | Boolean | The integration shall only run if all variables used have values. |
| integration.sendkeys | Object | Send keystrokes settings. |
| integration.sendkeys.when | String | When to run - NEVER, RINGING or ANSWERED. |
| integration.sendkeys.delay | Number | Number of milliseconds to wait before running. |
| integration.sendkeys.focusProcess | String | Name of process to give focus to. |
| integration.sendkeys.maximizeProcess | Boolean | True if process shall be maximized. |
| integration.sendkeys.useAutoit | Boolean | True to use AutoIT instead of system for sending keys (Windows only). |
| integration.sendkeys.keys | String | Keys to type - supports variables: {NUMBER}, {NUMBER-NO-PREFIX}, {NAME}, {VAR:call-variable-name}. |
| integration.sendkeys.requireArgs | Boolean | The integration shall only run if all variables used have values. |
| integration.copyToClipboard | Object | Copy to clipboard settings. |
| integration.copyToClipboard.when | String | When to run - NEVER, RINGING or ANSWERED. |
| integration.copyToClipboard.what | String | The string to store in the clipboard - supports variables: {NUMBER}, {NUMBER-NO-PREFIX}, {NAME}, {VAR:call-variable-name}. |
| integration.copyToClipboard.requireArgs | Boolean | The integration shall only run if all variables used have values. |
| integration.browser | Object | Browser integration settings. |
| integration.browser.when | String | When to run - NEVER, RINGING or ANSWERED. |
| integration.browser.website | String | Hostname of website to be active on. |
| integration.browser.spa | Boolean | True if website is a single page application. |
| integration.browser.requireArgs | Boolean | The integration shall only run if all variables used have values. |
| integration.browser.actions | Array | List of actions to perform. |
| integration.browser.actions[].action | String | Type of action to perform: sleep - for X milliseconds, target - select DOM target, click - click on target, focus - focus target, clear - clear target value, insert - insert text into target, js - execute JS code, scrolltop - scroll to top of page. |
| integration.browser.actions[].value | string/number | Value for action: sleep - milliseconds target - CSS selector insert - text to insert, supports variables: {NUMBER}, {NUMBER-NO-PREFIX}, {NAME}, {VAR:call-variable-name} js - JS code to run. |
| integration.website | Object | Webpage integration settings. |
| integration.website.when | String | When to run - NEVER, RINGING or ANSWERED. |
| integration.website.delay | Number | Number of milliseconds to wait before opening the website. |
| integration.website.url | String | URL to open, supports variables: {NUMBER}, {NUMBER-NO-PREFIX}, {NAME}, {VAR:call-variable-name}. |
| integration.website.preferWindow | Boolean | True if URL should be opened in a window, instead of a tab. |
| integration.website.requireArgs | Boolean | The integration shall only run if all variables used have values. |
| integration.website.apiMode | String | If set, request operates in API mode, Set to POST, PATCH, PUT or GET. Set to null if not used. |
| integration.website.apiData | String | Body of API request if API mode is POST or PATCH. Supports variables: {NUMBER}, {NUMBER-NO-PREFIX}, {NAME}, {VAR:call-variable-name}. |
| media | Object | Settings for media. |
| media.preferredAudioInputs | Array | Ordered list of which microphone is preferred, latest 5 used. |
| media.preferredAudioOutputs | Array | Ordered list of which speaker is preferred, latest 5 used. |
| media.preferredVideoInputs | Array | Ordered list of which cameras is preferred, latest 5 used. |
| media.preferredRingerOutputs | Array | Ordered list of which speaker devices is preferred for playing ringtone on, latest 5 used. |
| media.ringerVolume | Number | Ringtone volume 0-1. |
| media.kuando | Object | Kuando busylight settings. |
| media.kuando.use | Boolean | True to use Kuando. |
| media.kuando.ringTone | String | Name of ringtone to play, blank for none. |
| media.kuando.ringVolume | Number | Ringtone volume 0-100. |
| media.preferredHeadset | String | Name of preferred headset that Communicator will connect to if possible on startup and after sleep: NONE, JABRA, SENNHEISER, YEALINK. |
Example
{ "ringtoneExternal": "12345678901234567890ABCD", "ringtoneLocal": "1245678901234567890ABCE", "rintoneQueue": "1234567890123457890AABB", "showStatusPanel": true, "autoLaunch": true, "autoLaunchHide": true, "queueCriticalSound": false, "theme": "EARTH", "phoneId": null, "softphoneId": "1234567890123457890AAAA", "dashboardId": "12345678902134567890BBBB", "windowWallboardMode": false, "callBackground": false, "presenceBackground": true, "fullscreen": false, "zoom": 100, "dashboardColumnWidth": 370, "dndWhenDesktopLocked": false, "popupOnIncomingCall": false, "popupRevertWhenDone": false, "alwaysOnTop": false, "beaconsMayUpdateLocation": false, "queueRingtones": [ { "queue": "123456780124567890ABCD", "ringtone": "12345678901234567890AAAA" } ], "window": { "x": 0, "y": 0, "width": 800, "height": 600 }, "globalShortcuts": { "ANSWER": { "enabled": true, "key": "a", "commandOrControl": true, "shift": true, "alt": false }, "HANGUP": { "enabled": true. "key": "h", "commandOrControl": true, "shift": true, "alt": false }, "TOGGLE_WINDOW": { "enabled": true, "key": "t", "commandOrControl": true, "shift": true, "alt": false }. "CALL": { "enabled": true, "key": "c", "commandOrControl": true. "shift": true, "alt": false }, "SEARCH": { "enabled": true, "key": "s", "commandOrControl": true, "shift": true. "alt": false } }, "integration": { "run": { "when": "ANSWERED", "delay": 500, "command": "cmdrun.exe {NUMBER} {NAME}", "requireArgs": true }, "sendkeys": { "when": "ANSWERED", "delay": 500, "focusProcess": "notepad.exe", "maximizeProcess": false, "useAutoit": false, "keys": "{F2}{NUMBER}{ENTER}", "requireArgs": true }, "copyToClipboard": { "when": "ANSWERED", "what": "{NUMBER}", "requireArgs": true }, "browser": { "when": "ANSWERED", "website": "www.mycrm-solution.com", "spa": true, "requireArgs": true, "actions": [ { "action": "target", "value": ".searchButton" }, { "action": "click" }, { "action": "target", "value": ".searchQuery" }, { "action": "insert", "value": "{NUMBER}" } ] }, "website": { "when": "ANSWERED", "delay": 0, "url": "http://mycrm.com/integration/%NUMBER%", "preferWindow": true, "requireArgs": false, "apiMode": null, "apiData": null } } "media": { "preferredAudioInputs": [ "12345678901234567890001", "1234567890123457890002" ], "preferredAudioOutputs": [ "12345678901234567890003", "12345678901234567890004" ], "preferredVideoInputs": [ "12345678901245678900005" ], "preferredRingerOutputs": [ "12345678901234567890003", "12345678901234567890004" ], "ringerVolume": 0.5, "kuando": { "use": true, "ringTone": "wave", "ringVolume": 25 }, "preferredHeadset": "YEALINK" } }
Errors
| Error code | Message | Description |
|---|---|---|
| 422 | ringtoneExternal | Ringtone not found |
| 422 | ringtoneLocal | Ringtone not found |
| 422 | phoneId | Phone not found |
| 403 | access_denied | Access denied |
| 500 | internal_error | <Unspecified> |
api/pbx/app/settings/desktop/save.txt · Last modified: 2025/09/22 15:40 by Per Møller