### View Kubernetes Configuration with kubectl Source: https://doc.quobis.com/wac/intro_kubernetes Displays the current kubectl configuration, including cluster details, contexts, and users. This is useful for verifying API access and understanding your cluster setup. It requires kubectl to be installed and configured. ```bash kubectl config view ``` -------------------------------- ### Create Call Response Sample (JSON) Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.0.0/wac-core_REST_API_v5.0.0/index Example JSON response after successfully creating a call. It returns the details of the newly created call, similar to the 'Get Calls' response. ```json { "id": "57c82b0763d8f2f3717b1dd2", "caller": "100@demo.quobis.com", "calle": "", "target": "", "users": [ "57985e3781a0d1b014e74a06" ], "sessions": [ "57c80fb163d8f2f3717b1dc9" ], "date": 1472736007901, "from": 1472736007901, "to": 1472736007901, "state": "servererror", "data": { }, "queueposition": 0, "context": { }, "anonymousSessionId": "", "attempts": [ ] } ``` -------------------------------- ### Get Domains - Response Sample (200) Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.10.1/Kitter_REST_API_v5.10.1/index Example response when successfully retrieving a list of domains. ```json { "domains": [ { "domain": "string", "enable_anonymous": true, "id": "string", "origins": [ "string" ] }, "parent": "string", "services": { "callcontrol": [ "string" ] }, "contacts": [ "string" ] }, "datapipe": [ "string" ] }, "filesharing": [ "string" ] }, "filetransfer": [ "string" ] }, "forms": [ "string" ] }, "login": [ "string" ] }, "meetings": [ "string" ] }, "oauth2client": [ "string" ] }, "presence": [ "string" ] }, "remotelog": [ "string" ] }, "usersettings": [ "string" ] }, "usersgroup": [ "string" ] }, "xmpp": [ "string" ] } } ] } ``` -------------------------------- ### Get Kubernetes Contexts with kubectl Source: https://doc.quobis.com/wac/intro_kubernetes Lists all available Kubernetes contexts, indicating the current context with an asterisk. This helps in identifying and selecting the correct cluster and namespace to manage. Requires kubectl to be installed and configured. ```bash kubectl config get-contexts ``` -------------------------------- ### Configure File Upload Service (INI) Source: https://doc.quobis.com/wac/intro_filetransfer This configuration example demonstrates how to set up the file upload service within the sippo-server configuration file (wac.ini). It specifies network address, port, temporary upload directory, chunk size, allowed file extensions, maximum file size, and filename length limits. This setup is crucial for enabling and securing file transfer functionality. ```INI [fileupload] address = 127.0.0.1 port = 5678 uploadDir = /tmp/sfuploads chunkSize = 10240 allowedExtensions[] = image/jpeg allowedExtensions[] = image/png maxFileSize = 4194304 filenameLengthLimit = 40 ``` -------------------------------- ### Verify Kubernetes Cluster Installation Source: https://doc.quobis.com/wac/installation/install_k8s After deploying the cluster, this command verifies its installation by listing the nodes. A successful output shows the master and worker nodes in a 'Ready' state with the correct Kubernetes version. ```bash $ kubectl get node ``` -------------------------------- ### POST /sapi/login Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.0.0/wac-core_REST_API_v5.0.0/index Starts a new authenticated session in the WAC. ```APIDOC # login ## Log into the WAC ### Description Start a new authenticated session in the WAC. ### Method POST ### Endpoint https://web.sippo/sapi/login ### Parameters #### Request Body - **provider** (string) - Required - The OAuth2 provider to use for authentication. - **token** (string) - Required - The token used for log in. - **context** (object) - Required - The login context (browser, language...). - **src** (string) - The source IP address. - **useragent** (string) - The user agent string. - **language** (string) - The preferred language. - **location** (string) - The current location. - **platform** (string) - The operating system platform. - **vendor** (string) - The browser vendor. ### Request Example ```json { "provider": "wac", "token": "52c20...7e043c31d", "context": { "src": "127.0.0.1", "useragent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36", "language": "es-ES", "location": "https://localhost:9000/#/login", "platform": "Linux x86_64", "vendor": "Google Inc." } } ``` ### Response #### Success Response (201) - **access_token** (string) - The session access token. - **expires_in** (integer) - The token expiration time in seconds. - **token_type** (string) - The token type. - **session_id** (string) - The unique session identifier. - **session** (object) - Session details. - **credential** (object) - Credential details. - **capabilities** (object) - User capabilities. - **domain** (array) - List of domain capabilities. - **user** (array) - List of user capabilities. #### Response Example ```json { "access_token": "52c20...7e043c31d;", "expires_in": 29991, "token_type": "WACSessionToken", "session_id": "57b6f6b9cffcde4149cbe060", "session": { }, "credential": { }, "capabilities": { "domain": [ { } ], "user": [ { } ] } } ``` ``` -------------------------------- ### Describe Kubernetes Node Details Source: https://doc.quobis.com/wac/intro_kubernetes Use this command to get detailed information about a specific Kubernetes node, which is essential for troubleshooting 'NotReady' or other unhealthy states. It provides insights into events, conditions, and resource allocation for the node. ```bash kubectl describe node ``` -------------------------------- ### SMS Template Example (Handlebars) Source: https://doc.quobis.com/wac/intro_sms An example structure for SMS templates using Handlebars syntax. Templates are stored in a 'text.hbs' file within a specific folder under 'templatePath'. ```text templatePath/ - myMeetingsSMS/ - text.hbs ``` -------------------------------- ### Handlebars Template Example with Helpers Source: https://doc.quobis.com/wac/intro_meetings An example of a Handlebars template for meeting notifications, demonstrating the use of custom `formatDate` and `formatTime` helpers for localized date and time display. It also shows conditional rendering for DDI extensions. ```handlebars Your meeting {{ meeting.name }} will start on {{ formatDate meeting.validSince }} at {{ formatTime meeting.validSince hour="numeric" minute="numeric" hour12=false timeZone=”Europe/Madrid” timeZoneName="short" }}

Hi {{ party }},
you have been invited to a meeting via our communications platform.

To join us, please this link {{#if meeting.ddi.extension}} or dial {{meeting.ddi.extension}} and introduce the code{{meeting.ddi.pin}}{{/if}}.

If you cannot make it, please answer "No" to the RSVP.

Thanks!

``` -------------------------------- ### List Domains API Response Example Source: https://doc.quobis.com/wac/domains This is an example JSON response for the 'List Domains' API request, showing the structure of a domain object, including its ID, parent, name, anonymous settings, and available services. ```json [ { "id": "57877673e8f15d3472817349", "parent": null, "domain": "quobis", "origins": [null], "enableAnonymous": false, "anonymousExpiration": 0, "anonymousCapabilities": [], "services": { "callalarms": [], "callcontrol": [], "chat": [], "contacts": [ "wac", "static" ], "datapipe": [], "filetransfer": [], "forms": [], "im": [], "ldap": [], "login": [], "meetings": [], "oauth2client": [], "presence": [], "remotelog": [], "usersettings": ["wac"] } } ] ``` -------------------------------- ### GET /api/users Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.5.0/Kitter_REST_API_v5.5.0/index Lists all provisioned users. ```APIDOC ## GET /api/users ### Description Lists all the provisioned users. ### Method GET ### Endpoint /api/users ### Responses #### Success Response (200) - **users** (array) - An array of user objects. - **user_id** (string) - The unique identifier of the user. - **username** (string) - The username. - **domain_id** (string) - The ID of the domain the user belongs to. - **roles** (array of strings) - Roles assigned to the user. #### Error Response (401) - **error** (string) - Unauthorized. ### Response Example (200) ```json { "users": [ { "user_id": "string", "username": "string", "domain_id": "string", "roles": [ "string" ] } ] } ``` ### Response Example (401) ```json { "error": "string" } ``` ``` -------------------------------- ### Create Domain - Request Sample Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.10.1/Kitter_REST_API_v5.10.1/index Example request body for creating a new domain. ```json { "domain": { "domain": "string", "enable_anonymous": true, "id": "string", "origins": [ "string" ] }, "parent": "string", "services": { "callcontrol": [ "string" ] }, "contacts": [ "string" ] }, "datapipe": [ "string" ] }, "filesharing": [ "string" ] }, "filetransfer": [ "string" ] }, "forms": [ "string" ] }, "login": [ "string" ] }, "meetings": [ "string" ] }, "oauth2client": [ "string" ] }, "presence": [ "string" ] }, "remotelog": [ "string" ] }, "usersettings": [ "string" ] }, "usersgroup": [ "string" ] }, "xmpp": [ "string" ] } } } ``` -------------------------------- ### POST /api/domains Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.7.1/Kitter_REST_API_v5.7.1/index Creates a new domain in the system. ```APIDOC ## POST /api/domains ### Description Creates a new domain. The request body specifies the details of the domain to be created. ### Method POST ### Endpoint /api/domains ### Request Body - **domain** (object) - Required - The definition of the domain to create. - **domain** (string) - Required - The name of the domain. - **enable_anonymous** (boolean) - Optional - Indicates if anonymous users are supported. - **id** (string) - Required - The unique identifier for the domain. - **origins** (array of strings) - Optional - List of valid origins for the domain. - **parent** (string) - Optional - The parent domain name, if applicable. - **services** (object) - Optional - The configuration of the domain's enabled services. - **callcontrol** (array of strings) - **contacts** (array of strings) - **datapipe** (array of strings) - **filesharing** (array of strings) - **filetransfer** (array of strings) - **forms** (array of strings) - **login** (array of strings) - **meetings** (array of strings) - **oauth2client** (array of strings) - **presence** (array of strings) - **remotelog** (array of strings) - **usersettings** (array of strings) - **usersgroup** (array of strings) - **xmpp** (array of strings) ### Request Example ```json { "domain": { "domain": "string", "enable_anonymous": true, "id": "string", "origins": [ "string" ], "parent": "string", "services": { "callcontrol": [ "string" ], "contacts": [ "string" ], "datapipe": [ "string" ], "filesharing": [ "string" ], "filetransfer": [ "string" ], "forms": [ "string" ], "login": [ "string" ], "meetings": [ "string" ], "oauth2client": [ "string" ], "presence": [ "string" ], "remotelog": [ "string" ], "usersettings": [ "string" ], "usersgroup": [ "string" ], "xmpp": [ "string" ] } } } ``` ### Responses #### Success Response (201) - **domain** (object) - The newly created domain object (structure same as in GET /api/domains response). #### Error Response (400) - **error** (string) - Bad Request message. #### Error Response (401) - **error** (string) - Unauthorized access message. #### Error Response (409) - **error** (string) - Domain Already Exists message. ### Response Example (201) ```json { "domain": { "domain": "string", "enable_anonymous": true, "id": "string", "origins": [ "string" ], "parent": "string", "services": { "callcontrol": [ "string" ], "contacts": [ "string" ], "datapipe": [ "string" ], "filesharing": [ "string" ], "filetransfer": [ "string" ], "forms": [ "string" ], "login": [ "string" ], "meetings": [ "string" ], "oauth2client": [ "string" ], "presence": [ "string" ], "remotelog": [ "string" ], "usersettings": [ "string" ], "usersgroup": [ "string" ], "xmpp": [ "string" ] } } } ``` ### Response Example (400, 401, 409) ```json { "error": "string" } ``` ``` -------------------------------- ### POST /api/usersettings Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.0.0/wac-core_REST_API_v5.0.0/index Creates a new user setting for a given source, key, and value. ```APIDOC ## POST /api/usersettings ### Description Creates a new user setting. ### Method POST ### Endpoint https://web.sippo/sapi/usersettings ### Parameters #### Request Body - **source** (string) - Required - The source of the setting. - **key** (string) - Required - The key of the setting. - **value** (string) - Required - The value of the setting. ### Request Example ```json { "source": "wac", "key": "test", "value": "test" } ``` ### Response #### Success Response (201) - **id** (string) - The ID of the newly created user setting. - **source** (string) - The source of the setting. - **user** (string) - The user associated with the setting. - **key** (string) - The key of the setting. - **value** (string) - The value of the setting. #### Response Example ```json { "id": "57c817cff28b6f1b47b01d0b@wac", "source": "wac", "user": "57985e3781a0d1b014e74a06", "key": "test", "value": "test" } ``` ``` -------------------------------- ### Retrieve All Contacts Request Example (Conceptual) Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.0.0/wac-core_REST_API_v5.0.0/index This snippet represents a conceptual GET request to retrieve all contacts. It shows potential query parameters for filtering and pagination such as 'source', 'favorite', 'limit', and 'offset'. ```http GET /contacts?source=device&favorite=true&limit=50&offset=100 HTTP/1.1 Host: web.sippo Authorization: Bearer ``` -------------------------------- ### Retrieve All Conferences Request Example (Conceptual) Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.0.0/wac-core_REST_API_v5.0.0/index This snippet represents a conceptual GET request to retrieve all conferences using cursor-based pagination. It demonstrates how query parameters like 'sort' and 'page' might be used. ```http GET /v5/conferences?sort=-createdAt&page[size]=30&page[after]=WzAuNzUseyIkb2lkIjoiNTgxNjY4MzE4YzExNTk2YWYyMmE2MmRmIn1d HTTP/1.1 Host: web.sippo Authorization: Bearer ``` -------------------------------- ### POST /api/domains Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.11.3/Kitter_REST_API_v5.11.3/index Creates a new domain in the system. ```APIDOC ## POST /api/domains ### Description Creates a new domain. The request body must contain the domain definition. ### Method POST ### Endpoint /api/domains ### Parameters #### Request Body - **domain** (object) - Required - The definition of the domain to be created. - **domain** (string) - Required - The name of the domain. - **enable_anonymous** (boolean) - Optional - Indicates if anonymous users are supported. - **id** (string) - Required - The unique identifier for the domain. - **origins** (array of strings) - Optional - A list of valid origins for the domain. - **parent** (string) - Optional - The parent domain name, if applicable. - **services** (object) - Optional - Configuration of the domain's enabled services. - **callcontrol** (array of strings) - **contacts** (array of strings) - **datapipe** (array of strings) - **filesharing** (array of strings) - **filetransfer** (array of strings) - **forms** (array of strings) - **login** (array of strings) - **meetings** (array of strings) - **oauth2client** (array of strings) - **presence** (array of strings) - **remotelog** (array of strings) - **usersettings** (array of strings) - **usersgroup** (array of strings) - **xmpp** (array of strings) ### Request Example ```json { "domain": { "domain": "example.com", "enable_anonymous": true, "id": "unique-domain-id", "origins": [ "https://app.example.com" ], "parent": "parent.com", "services": { "callcontrol": [ "v1" ], "contacts": [ "v1" ] } } } ``` ### Responses #### Success Response (201) - **domain** (object) - The created domain object (structure similar to GET response). #### Error Response (400) - **error** (string) - Bad Request message. #### Error Response (401) - **error** (string) - Unauthorized access message. #### Error Response (409) - **error** (string) - Domain already exists message. ### Response Example (201) ```json { "domain": { "domain": "example.com", "enable_anonymous": true, "id": "unique-domain-id", "origins": [ "https://app.example.com" ], "parent": "parent.com", "services": { "callcontrol": [ "v1" ], "contacts": [ "v1" ] } } } ``` ``` -------------------------------- ### Response Sample - Get Conference by ID (200 OK) Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.0.0/wac-core_REST_API_v5.0.0/index Example JSON response for successfully retrieving a single conference by its ID. The structure mirrors the detailed conference object returned when listing conferences. ```json { "id": "string", "roomId": "string", "finishedAt": 0, "createdAt": 0, "invites": [ { "from": "string", "to": "string", "state": "string", "group": true, "inviteRequest": true, "error": 0, "mediatypes": { "audio": true, "video": true }, "candidates": [ { "address": "string", "endReason": 0 } ] } ], "participants": [ { "address": "string", "createdAt": 0, "finishedAt": 0, "sessionId": "string" } ], "transfers": [ ], "state": "string", "domains": [ "string" ] } ``` -------------------------------- ### Request Sample: Create User Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.7.5/Kitter_REST_API_v5.7.5/index This snippet shows a sample payload for creating a new user. It also includes SIP mapping information if provided. The request uses application/json and includes user attributes, email, and credentials. ```JSON { \n "user": { \n "attributes": { \n "capabilities": [ \n "string"\n ], \n "domain": "string", \n "phone_number": "string", \n "sip_mapping": { \n "password": "string", \n "username": "string"\n } \n }, \n "email": "string", \n "enabled": true, \n "first_name": "string", \n "id": "string", \n "last_name": "string", \n "username": "string", \n "credentials": { \n "password": "string", \n "temporary": true\n } \n } \n} ``` -------------------------------- ### Get Calls Response Sample (JSON) Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.0.0/wac-core_REST_API_v5.0.0/index Example JSON response for a successful request to retrieve a list of calls. This structure includes details about individual call objects, such as caller, calle, state, and timestamps. ```json [ { "id": "57c82b0763d8f2f3717b1dd2", "caller": "100@demo.quobis.com", "calle": "", "target": "", "users": [ "57985e3781a0d1b014e74a06" ], "sessions": [ "57c80fb163d8f2f3717b1dc9" ], "date": 1472736007901, "from": 1472736007901, "to": 1472736007901, "state": "servererror", "data": { }, "queueposition": 0, "context": { }, "anonymousSessionId": "", "attempts": [ ] } ] ``` -------------------------------- ### POST /api/users Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.3.1/Kitter_REST_API_v5.3.1/index Provisions a new user into the system. ```APIDOC ## POST /api/users ### Description Provisions a new user. ### Method POST ### Endpoint /api/users ### Request Body *(Request body schema for user provisioning is not detailed in the provided text)* ### Responses *(Specific response details for POST /api/users are not provided in the text. Typically would return the created user object or a success message)* ``` -------------------------------- ### Switch Kubernetes Context with kubectl Source: https://doc.quobis.com/wac/intro_kubernetes Changes the current kubectl context to a new one, allowing you to manage a different Kubernetes cluster. Replace `` with the name of the context you wish to switch to. Requires kubectl to be installed and configured. ```bash kubectl config use-context ``` -------------------------------- ### Configuration Example for Phone Book Service Source: https://doc.quobis.com/wac/phonebooks This INI file snippet shows how to activate the phonebook service in Quobis WAC. It involves adding a '[phonebook]' entry to the wac.ini configuration file. ```ini [phonebook] ``` -------------------------------- ### Set Default Kubernetes Namespace with kubectl Source: https://doc.quobis.com/wac/intro_kubernetes Sets the default namespace for the current kubectl context. This command ensures that subsequent operations are performed within the specified namespace. Replace `` with the target namespace. Requires kubectl to be installed and configured. ```bash kubectl config set-context --current --namespace= ``` -------------------------------- ### Configure Recording Service (recording.toml) Source: https://doc.quobis.com/wac/intro_recording Sets up parameters for the recording service in 'recording.toml'. This includes paths for raw and processed recordings, queue names for processing, codec and quality settings for video, and encryption options. ```toml { "recordings_path": "/sippo-recording/raw_files/", "audio_path": "/sippo-recording/raw_audio/", "destination_path": "/sippo-recording/postprocessed/", "processing_queue": "processing_queue", "failure_queue": "failure_queue", "processed_queue": "processed_queue", "webm_codec": "vp8", "quality": "low", "clean_temporary_files": false, "fileformat": "rec-{{year}}{{month}}{{day}}-{{hours}}{{minutes}}{{seconds}}-{{uuid}}-{{confbridgeid}}", "should_encrypt" : true, "encryption_key" : "/sippo-recording/encryption/key.asc", "encryption_mail" : "mail@domain.com", "split_recording_output" : true, "mix_limit" : 9 } ``` -------------------------------- ### Get SIP Mapping for User (REST API) Source: https://doc.quobis.com/wac/intro_sipmappings Retrieves the SIP mapping assigned to a specific user via the REST API. This is an example of the response when a user has an associated SIP mapping from the pool. It includes the username and password for the SIP identity. ```JSON { "username": "0034986111444@sip-pbx.com", "password": "changeme!hurryup" } ``` -------------------------------- ### Install Ansible on Ubuntu Source: https://doc.quobis.com/wac/installation/install_ansible Installs Ansible on Ubuntu systems by updating the package list, installing the 'software-properties-common' package, adding the Ansible PPA, and finally installing Ansible. This process ensures the latest version of Ansible is available. It mentions compatibility notes for older Ubuntu versions regarding 'software-properties-common' and the 'apt' command. ```bash 1$ sudo apt update 2$ sudo apt install software-properties-common 3$ sudo apt-add-repository --yes --update ppa:ansible/ansible 4$ sudo apt install ansible ``` -------------------------------- ### Install Ansible on Debian Source: https://doc.quobis.com/wac/installation/install_ansible Installs Ansible on Debian systems by adding the Ansible PPA to the sources list, importing the GPG key, updating the package list, and installing Ansible. This method allows Debian users to leverage the same Ansible repository as Ubuntu. It provides specific commands for key management and package installation and notes verification with specific Debian versions. ```bash deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main 1 $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 2 $ sudo apt update 3 $ sudo apt install ansible ``` -------------------------------- ### POST /api/users Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.5.0/Kitter_REST_API_v5.5.0/index Provisions a new user. ```APIDOC ## POST /api/users ### Description Provisions a User. ### Method POST ### Endpoint /api/users ### Request Body - **user** (object) - Required - The user details. - **username** (string) - Required - The username. - **domain_id** (string) - Required - The ID of the domain the user belongs to. - **roles** (array of strings) - Optional - Roles to assign to the user. ### Request Example ```json { "user": { "username": "string", "domain_id": "string", "roles": [ "string" ] } } ``` ### Responses #### Success Response (201) - **user** (object) - The provisioned user object. - **user_id** (string) - The unique identifier of the user. - **username** (string) - The username. - **domain_id** (string) - The ID of the domain the user belongs to. - **roles** (array of strings) - Roles assigned to the user. #### Error Response (400) - **error** (string) - Bad Request. #### Error Response (401) - **error** (string) - Unauthorized. #### Error Response (409) - **error** (string) - User already exists. ### Response Example (201) ```json { "user": { "user_id": "string", "username": "string", "domain_id": "string", "roles": [ "string" ] } } ``` ### Response Example (400, 401, 409) ```json { "error": "string" } ``` ``` -------------------------------- ### GET /staticContacts/{id} Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.0.0/wac-core_REST_API_v5.0.0/index Endpoint that gets a static contact by its ID. ```APIDOC ## GET /staticContacts/{id} ### Description Endpoint that gets a static contact by its id. ### Method GET ### Endpoint https://web.sippo/sapi/staticContacts/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the contact to get. #### Query Parameters - **domain** (string) - Optional - If present, the contact will be looked up in this domain. Note that this parameter will only be used by an admin. #### Request Body None ### Request Example None ### Response #### Success Response (200) - **Contact Object** (object) - The details of the requested contact. - **id** (string) - The contact's ID. - **name** (string) - The contact's name. - **phones** (Array of objects) - Array of phone objects. - **type** (string) - Type of phone number (e.g., "home"). - **value** (string) - The phone number. - **primary** (boolean) - Indicates if this is the primary phone number. - **emails** (Array of objects) - Array of email objects. - **type** (string) - Type of email address (e.g., "home"). - **value** (string) - The email address. - **primary** (boolean) - Indicates if this is the primary email address. - **associatedUserId** (string) - The ID of the associated user. #### Response Example ```json { "id": "string", "name": "string", "phones": [ { "type": "home", "value": "string", "primary": true } ], "emails": [ { "type": "home", "value": "string", "primary": true } ], "associatedUserId": "string" } ``` ``` -------------------------------- ### GET /billingInfo/meetings Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.0.0/wac-core_REST_API_v5.0.0/index Gets billing information about meetings, including time consumed. ```APIDOC ## get billing info about meetings ### Description Endpoint that returns information about time consumed in meetings. It's possible to obtain the time consumed in a given interval. ### Method GET ### Endpoint /billingInfo/meetings ### Parameters #### Query Parameters - **from** (number) - Optional - Used to obtain all conference logs that start after the given time. - **to** (number) - Optional - Used to obtain all conference logs that start before the given time. ### Responses #### Success Response (200) - **expendedTime** (number) - An object that contains all billing information, specifically the total expended time in meetings. #### Response Example (200) ```json { "expendedTime": 0 } ``` ``` -------------------------------- ### POST /api/domains Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.5.0/Kitter_REST_API_v5.5.0/index Creates a new domain in the system. ```APIDOC ## POST /api/domains ### Description Creates a Domain. ### Method POST ### Endpoint /api/domains ### Request Body - **domain** (object) - Required - The definition of a domain. - **domain** (string) - The name of the domain. - **enable_anonymous** (boolean) - Whether anonymous access is enabled. - **id** (string) - The unique identifier of the domain. - **origins** (array of strings) - List of origins associated with the domain. - **parent** (string) - The parent domain. - **services** (object) - Services configured for the domain. - **callcontrol** (array of strings) - **contacts** (array of strings) - **datapipe** (array of strings) - **filesharing** (array of strings) - **filetransfer** (array of strings) - **forms** (array of strings) - **login** (array of strings) - **meetings** (array of strings) - **oauth2client** (array of strings) - **presence** (array of strings) - **remotelog** (array of strings) - **usersettings** (array of strings) - **usersgroup** (array of strings) - **xmpp** (array of strings) ### Request Example ```json { "domain": { "domain": "string", "enable_anonymous": true, "id": "string", "origins": [ "string" ], "parent": "string", "services": { "callcontrol": [ "string" ], "contacts": [ "string" ], "datapipe": [ "string" ], "filesharing": [ "string" ], "filetransfer": [ "string" ], "forms": [ "string" ], "login": [ "string" ], "meetings": [ "string" ], "oauth2client": [ "string" ], "presence": [ "string" ], "remotelog": [ "string" ], "usersettings": [ "string" ], "usersgroup": [ "string" ], "xmpp": [ "string" ] } } } ``` ### Responses #### Success Response (201) - **domain** (object) - The newly created domain object (structure similar to request body). #### Error Response (400) - **error** (string) - Bad Request. #### Error Response (401) - **error** (string) - Unauthorized. #### Error Response (409) - **error** (string) - Domain already exists. ### Response Example (201) ```json { "domain": { "domain": "string", "enable_anonymous": true, "id": "string", "origins": [ "string" ], "parent": "string", "services": { "callcontrol": [ "string" ], "contacts": [ "string" ], "datapipe": [ "string" ], "filesharing": [ "string" ], "filetransfer": [ "string" ], "forms": [ "string" ], "login": [ "string" ], "meetings": [ "string" ], "oauth2client": [ "string" ], "presence": [ "string" ], "remotelog": [ "string" ], "usersettings": [ "string" ], "usersgroup": [ "string" ], "xmpp": [ "string" ] } } } ``` ### Response Example (400, 401, 409) ```json { "error": "string" } ``` ``` -------------------------------- ### POST /api/users Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.9.0/Kitter_REST_API_v5.9.0/index Provisions a new user into the system. If provided, related SIP Mapping will also be provisioned. ```APIDOC ## POST /api/users ### Description Provisions a User. If given, related SIP Mapping will be provisioned as well. ### Method POST ### Endpoint /api/users ### Request Body - **user** (object) - Required - The definition of a user. - **attributes** (object) - User attributes. - **capabilities** (array) - Array of strings representing user capabilities. - **domain** (string) - The domain the user belongs to. - **phone_number** (string) - The user's phone number. - **sip_mapping** (object) - SIP mapping details. - **password** (string) - SIP username password. - **username** (string) - SIP username. - **email** (string) - Required - The user's email address. - **enabled** (boolean) - Indicates if the user account is enabled. - **first_name** (string) - The user's first name. - **id** (string) - The unique identifier for the user. - **last_name** (string) - The user's last name. - **username** (string) - Required - The user's username. - **credentials** (object) - User credentials. - **password** (string) - User's password. - **temporary** (boolean) - Indicates if the password is temporary. ### Request Example ```json { "user": { "attributes": { "capabilities": [ "string" ], "domain": "string", "phone_number": "string", "sip_mapping": { "password": "string", "username": "string" } }, "email": "string", "enabled": true, "first_name": "string", "id": "string", "last_name": "string", "username": "string", "credentials": { "password": "string", "temporary": true } } } ``` ### Response #### Success Response (201) - **user** (object) - The created user object. - **attributes** (object) - User attributes. - **capabilities** (array) - Array of strings representing user capabilities. - **domain** (string) - The domain the user belongs to. - **phone_number** (string) - The user's phone number. - **sip_mapping** (object) - SIP mapping details. - **password** (string) - SIP username password. - **username** (string) - SIP username. - **email** (string) - The user's email address. - **enabled** (boolean) - Indicates if the user account is enabled. - **first_name** (string) - The user's first name. - **id** (string) - The unique identifier for the user. - **last_name** (string) - The user's last name. - **username** (string) - The user's username. #### Response Example (201) ```json { "user": { "attributes": { "capabilities": [ "string" ], "domain": "string", "phone_number": "string", "sip_mapping": { "password": "string", "username": "string" } }, "email": "string", "enabled": true, "first_name": "string", "id": "string", "last_name": "string", "username": "string" } } ``` ``` -------------------------------- ### POST /api/users Source: https://doc.quobis.com/wac/_static/rest_api_reference_web/5.8.0/Kitter_REST_API_v5.8.0/index Provisions a new user into the system. If related SIP Mapping details are provided, they will be provisioned as well. ```APIDOC ## POST /api/users ### Description Provisions a User. If given, related SIP Mapping will be provisioned as well. ### Method POST ### Endpoint /api/users ### Request Body - **user** (object) - Required - The definition of a user. - **attributes** (object) - User attributes. - **capabilities** (array of strings) - Optional - User capabilities. - **domain** (string) - Optional - The domain of the user. - **phone_number** (string) - Optional - The phone number of the user. - **sip_mapping** (object) - Optional - SIP mapping details. - **password** (string) - Required - SIP username password. - **username** (string) - Required - SIP username. - **email** (string) - Optional - The email address of the user. - **enabled** (boolean) - Optional - Indicates if the user is enabled. - **first_name** (string) - Optional - The first name of the user. - **id** (string) - Optional - The unique identifier of the user. - **last_name** (string) - Optional - The last name of the user. - **username** (string) - Optional - The username of the user. - **credentials** (object) - Optional - User credentials. - **password** (string) - Required - User password. - **temporary** (boolean) - Required - Indicates if the password is temporary. ### Request Example ```json { "user": { "attributes": { "capabilities": [ "string" ], "domain": "string", "phone_number": "string", "sip_mapping": { "password": "string", "username": "string" } }, "email": "string", "enabled": true, "first_name": "string", "id": "string", "last_name": "string", "username": "string", "credentials": { "password": "string", "temporary": true } } } ``` ### Response #### Success Response (201) - **user** (object) - The created user object. - **attributes** (object) - User attributes. - **capabilities** (array of strings) - User capabilities. - **domain** (string) - The domain of the user. - **phone_number** (string) - The phone number of the user. - **sip_mapping** (object) - SIP mapping details. - **password** (string) - SIP username password. - **username** (string) - SIP username. - **email** (string) - The email address of the user. - **enabled** (boolean) - Indicates if the user is enabled. - **first_name** (string) - The first name of the user. - **id** (string) - The unique identifier of the user. - **last_name** (string) - The last name of the user. - **username** (string) - The username of the user. #### Response Example (201) ```json { "user": { "attributes": { "capabilities": [ "string" ], "domain": "string", "phone_number": "string", "sip_mapping": { "password": "string", "username": "string" } }, "email": "string", "enabled": true, "first_name": "string", "id": "string", "last_name": "string", "username": "string" } } ``` #### Error Responses - **400** (Bad Request): The request body is invalid. - **401** (Unauthorized): Authentication failed. - **409** (Already Exists): A user with the same identifier already exists. ```