mirror of
https://github.com/jambonz/next-static-site.git
synced 2025-12-19 04:47:44 +00:00
docs updates
This commit is contained in:
@@ -67,6 +67,9 @@ navi:
|
||||
-
|
||||
path: applications
|
||||
title: Applications
|
||||
-
|
||||
path: calls
|
||||
title: Calls
|
||||
-
|
||||
path: getting-started
|
||||
title: Getting Started
|
||||
|
||||
@@ -4,7 +4,7 @@ hero:
|
||||
- jambonz is the open source CPaaS
|
||||
- built for communications service providers.
|
||||
cta: Sign up for free
|
||||
url: https://jambonz.us
|
||||
url: https://jambonz.us/register
|
||||
tech:
|
||||
image: /images/Jambonz_app_screenshot.png
|
||||
notes:
|
||||
@@ -91,4 +91,4 @@ byo:
|
||||
- Cloud
|
||||
comment: Why pay someone to upcharge you for all of that when it’s basically a one-click experience to provision all of those yourself in today's world. You know how to <a href="https://jambonz.us" target="_blank">click</a>, right?
|
||||
cta: Get started for free
|
||||
url: https://jambonz.us
|
||||
url: https://jambonz.us/register
|
||||
@@ -1,6 +1,6 @@
|
||||
hero:
|
||||
headline: Simple, capacity based pricing.
|
||||
subtext: Choose the number of concurrent calls you want to handle, and pay $12 per call session MRC.
|
||||
subtext: Choose the number of concurrent calls you need to support, and pay $12/call session on our hosted platform (MRC).
|
||||
structure:
|
||||
text:
|
||||
- Oh, and with that you can register 5 x the number of devices - so if you purchased 100 sessions you can also register up to 500 devices.
|
||||
@@ -15,16 +15,16 @@ additional:
|
||||
services:
|
||||
-
|
||||
title: Static IP
|
||||
text: Static IP address assigned only to you, to be used for routing your calls to carriers and devices.
|
||||
text: A static IP address assigned only to you, to be used for routing your SIP traffic from carriers.
|
||||
-
|
||||
title: Microsoft Teams Direct Routing
|
||||
text: Ability to route PSTN calls to and from your MS teams clients.
|
||||
-
|
||||
title: Dedicated SBC
|
||||
text: A private session border controller handling only your traffic, along with a grafana dashboard to let your NOC folks monitor your traffic in real-time.
|
||||
text: A private session border controller handling only your traffic, along with grafana dashboards to provide real-time traffic monitoring.
|
||||
-
|
||||
title: Professional Services
|
||||
text: Commission us to help build your voice applications, or to set up and manage a jambonz cluster on your own infrastructure.
|
||||
cta: Contact us to get started
|
||||
text: Take advantage of our expertise! We offer on-call support plans to manage and install your self-hosted jambonz systems, as well as custom application development services.
|
||||
cta: Contact us to learn more
|
||||
icon: Send
|
||||
url: mailto:support@jambonz.org
|
||||
@@ -2,7 +2,7 @@ hero:
|
||||
headline: Why choose jambonz?
|
||||
subtext: jambonz is the communications platform that brings your ideas to life. So you can bring your best to your customers every day.
|
||||
cta: Get started for free
|
||||
url: https://jambonz.us
|
||||
url: https://jambonz.us/register
|
||||
facts:
|
||||
-
|
||||
icon: Layers
|
||||
@@ -35,4 +35,4 @@ os:
|
||||
logo: /svg/drachtio.svg
|
||||
icon: Heart
|
||||
cta: Get started for free
|
||||
url: https://jambonz.us
|
||||
url: https://jambonz.us/register
|
||||
@@ -1,11 +1,14 @@
|
||||
## Welcome, developers!
|
||||
|
||||
jambonz is an open source CPaaS platform that is primarily designed for use by communications service providers. As an API-driven platform, you will primarily interface with it using [Webhooks](/docs/webhooks/overview/) and [REST APIs](/docs/rest/overview/). Our client SDKs include a [Node.js SDK]() SDK as well as [Node-RED plugins]().
|
||||
jambonz is an open-source CPaaS platform that is primarily designed for use by communications service providers.
|
||||
|
||||
There are two ways to get started with jambonz:
|
||||
- create a free account on our hosted platform, or
|
||||
- download and install a jambonz system on your own infrastructure.
|
||||
A good idea is to start by creating a free account on the hosted platform. Then, based on your testing and traffic needs, you can bring up a jambonz cluster on your own infrastructure and migrate your applications seamlessly.
|
||||
As an API-driven platform, you will primarily interface with it using [Webhooks](/docs/webhooks/overview/) and [REST APIs](/docs/rest/overview/). Our client SDKs include a [Node.js SDK]() SDK as well as [Node-RED plugins]().
|
||||
|
||||
There are two ways to run jambonz:
|
||||
- use our hosted platform (you can [create a free account](https://jambonz.us/register)), or
|
||||
- self-host your own jambonz system using the open-source distribution.
|
||||
|
||||
> Pro tip: Start by creating a free account on the hosted platform because you can start testing immediately without going through a build/install process or having to allocate any compute/network/storage resources. You can always migrate your applications seamlessly to a self-hosted platform later.
|
||||
|
||||
In these pages you will find information about our SDKs and APIs, along with some useful tips for [Getting Started]() on the hosted platform, [tutorials]() describing how to perform common tasks, as well as some quick [how-to videos]().
|
||||
|
||||
|
||||
@@ -1 +1,145 @@
|
||||
# Applications
|
||||
# Applications
|
||||
An application represents the call handling rules to be applied to phone calls either made or received by the platform. Applications can be created, queried, updated, and destroyed via the API by using your api key.
|
||||
|
||||
Applications have the following properties:
|
||||
|
||||
| property | description |
|
||||
| ------------- |------------- |
|
||||
| account_sid | identifies the Account this application belongs to |
|
||||
| application_sid | unique identifier for the application |
|
||||
| name | user-specified name of application |
|
||||
| call_hook | web callback to invoke for new calls |
|
||||
| call_status_hook | web callback to invoke for call status notifications |
|
||||
| speech_recognizer_vendor | vendor to use for speech recognition. Default: google|
|
||||
| speech_recognizer_language | default language to use for speech recognition, if not specified in the 'gather' or 'transcribe' verbs. Default: en-US |
|
||||
| speech_synthesis_vendor | vendor to use for text to speech. Default: google|
|
||||
| speech_synthesis_voice | default voice to use for text to speech, if not specified in the 'say' verb. Default: en-US-Wavenet-C |
|
||||
|
||||
### Retrieving an Application
|
||||
|
||||
**GET /v1/Applications/{ApplicationSid}**
|
||||
|
||||
```bash
|
||||
curl -X GET "https://jambonz.us/v1/Applications/0e0681b0-d49f-4fb8-b973-b5a3c6758de1" \
|
||||
-H "accept: application/json" \
|
||||
-H "Authorization: Bearer 38700987-c7a4-4685-a5bb-af378f9734de"
|
||||
|
||||
200 response
|
||||
{
|
||||
"application_sid": "0e0681b0-d49f-4fb8-b973-b5a3c6758de1",
|
||||
"name": "daveh test app",
|
||||
"account_sid": "fef61e75-cec3-496c-a7bc-8368e4d02a04",
|
||||
"speech_synthesis_vendor": "google",
|
||||
"speech_synthesis_voice": "en-US-Wavenet-C",
|
||||
"speech_recognizer_vendor": "google",
|
||||
"speech_recognizer_language": "en-US",
|
||||
"call_hook": {
|
||||
"webhook_sid": "f227508f-dbb0-4fe8-a7e8-2974f54e24a1",
|
||||
"url": "http://vibe-test.drachtio.org.ngrok.io",
|
||||
"method": "post",
|
||||
"username": "drachtio",
|
||||
"password": "3298fn238hf9n823hf93h24398gj93n84h"
|
||||
},
|
||||
"call_status_hook": {
|
||||
"webhook_sid": "8226d33c-6a46-40d4-8fb3-02ef01199085",
|
||||
"url": "http://vibe-test.drachtio.org.ngrok.io/callStatus",
|
||||
"method": "post",
|
||||
"username": "drachtio",
|
||||
"password": "3298fn238hf9n823hf93h24398gj93n84h"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Listing Applications
|
||||
|
||||
**GET /v1/Applications**
|
||||
|
||||
Lists all Applications an Account (if an account scope api token is used).
|
||||
|
||||
```bash
|
||||
curl -X GET "https://api.jambonz.us/v1/Applications" \
|
||||
-H "accept: application/json" \
|
||||
-H "Authorization: Bearer 97b24a80-4908-4c23-8c47-e88b49193d3d"
|
||||
|
||||
[
|
||||
{
|
||||
"application_sid": "d91f18e3-252d-499e-bd6e-bd0e5668c6d2",
|
||||
"name": "dial time clock",
|
||||
"service_provider_sid": null,
|
||||
"account_sid": "9b0b47b7-0dc5-4c34-b4fb-b23fbc32b069",
|
||||
"speech_synthesis_vendor": "google",
|
||||
"speech_synthesis_language": "en-US",
|
||||
"speech_synthesis_voice": "en-US-Standard-C",
|
||||
"speech_recognizer_vendor": "google",
|
||||
"speech_recognizer_language": "en-US",
|
||||
"created_at": "2021-05-01T22:18:25.000Z",
|
||||
"call_hook": {
|
||||
"webhook_sid": "df2fc834-10e5-4355-96fb-1faf63c8b02b",
|
||||
"url": "https://jambonz-apps.drachtio.org/dial/time",
|
||||
"method": "POST",
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"call_status_hook": {
|
||||
"webhook_sid": "961dfbfd-a690-4e23-80b8-28ff1e1269ba",
|
||||
"url": "https://jambonz-apps.drachtio.org/call-status",
|
||||
"method": "POST",
|
||||
"username": null,
|
||||
"password": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"application_sid": "39b8db72-7661-41c2-a9b6-202bbae0fe51",
|
||||
"name": "hello world",
|
||||
"service_provider_sid": null,
|
||||
"account_sid": "9b0b47b7-0dc5-4c34-b4fb-b23fbc32b069",
|
||||
"speech_synthesis_vendor": "google",
|
||||
"speech_synthesis_language": "en-US",
|
||||
"speech_synthesis_voice": "en-US-Standard-C",
|
||||
"speech_recognizer_vendor": "google",
|
||||
"speech_recognizer_language": "en-US",
|
||||
"created_at": "2021-05-01T22:12:40.000Z",
|
||||
"call_hook": {
|
||||
"webhook_sid": "ddde52a7-4176-4a9f-855b-2dd3c481976d",
|
||||
"url": "https://jambonz-apps.drachtio.org/tts-test",
|
||||
"method": "POST",
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"call_status_hook": {
|
||||
"webhook_sid": "fb50f822-01e4-4278-b396-80db62aa0e36",
|
||||
"url": "https://jambonz-apps.drachtio.org/call-status",
|
||||
"method": "POST",
|
||||
"username": null,
|
||||
"password": null
|
||||
}
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
### Deleting an Application
|
||||
|
||||
**DELETE /v1/Applications/{ApplicationSid}**
|
||||
|
||||
Deletes a specific Application.
|
||||
|
||||
### Creating an Application
|
||||
|
||||
**POST /v1/Applications**
|
||||
|
||||
Creates a new Application.
|
||||
|
||||
Upon success, a 201 response is returned with a JSON body providing the account_sid ("sid") of the application that was created.
|
||||
|
||||
```xml
|
||||
curl -X POST "https://jambonz.us/v1/Applications" \
|
||||
-H "accept: application/json" \
|
||||
-H "Authorization: Bearer 38700987-c7a4-4685-a5bb-af378f9734de" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"name\":\"forward to mobile\",\"account_sid\":\"fef61e75-cec3-496c-a7bc-8368e4d02a04\",\"call_hook\":{\"url\":\"http://vibe-test.drachtio.org.ngrok.io/mobile\"},\"call_status_hook\":{\"url\":\"http://vibe-test.drachtio.org.ngrok.io/mobileStatus\"}}"
|
||||
|
||||
201 response
|
||||
{
|
||||
"sid": "65cddc02-6cf8-476c-97a8-1941a96e143b"
|
||||
}
|
||||
```
|
||||
|
||||
229
docs/rest/calls.md
Normal file
229
docs/rest/calls.md
Normal file
@@ -0,0 +1,229 @@
|
||||
# Calls
|
||||
A call is a voice connection made between the jambonz platform and another endpoint, which may be a phone or a sip endpoint. Inbound calls are those made from external numbers or devices towards the platform, while outbound calls are placed by the platform to an endpoint. Inbound calls quite often are used to trigger outbound calls and in such a situation the outbound call will have a Parent Call Sid that references the inbound call.
|
||||
|
||||
Calls may created, modified, and deleted through the API.
|
||||
|
||||
### Create a Call
|
||||
Calls are created from the REST API by sending an HTTP POST request. A successful HTTP 201 response will contain the Call Sid of the call attempt that has been launched.
|
||||
|
||||
An example is shown below:
|
||||
```bash
|
||||
POST /v1/Accounts/fef61e75-cec3-496c-a7bc-8368e4d02a04/Calls HTTP/1.1
|
||||
Content-Length: 175
|
||||
Accept: application/json
|
||||
Authorization: Bearer 9404e5f7-9a77-4bcc-b0fa-5665ace28ab3
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"application_sid": "0e06a1b0-d49f-4fb8-b973-b5a3c6758de1",
|
||||
"from": "+15083728299",
|
||||
"to": {
|
||||
"type": "phone",
|
||||
"name": "+16172375089"
|
||||
},
|
||||
"tag": {
|
||||
"accountCode": "288fe284"
|
||||
}
|
||||
}
|
||||
|
||||
HTTP/1.1 201 Created
|
||||
Content-Type: application/json; charset=utf-8
|
||||
Content-Length: 46
|
||||
|
||||
{
|
||||
"sid":"9210add6-9573-4860-a003-648c7829faaa"
|
||||
}
|
||||
```
|
||||
|
||||
The Request-URI of the POST contains the Account Sid of the caller and JSON payload may contain the following properties
|
||||
|
||||
| property | description | required |
|
||||
| ------------- |-------------| -----|
|
||||
| application_sid | The unique identifier of the application used to handle the call | either call_hook or application_sid must be supplied |
|
||||
| call_hook | an object specifying a web callback that will be invoked when the call is answered | either call_hook or application_sid must be supplied |
|
||||
| call_hook.url | web callback url | yes |
|
||||
| call_hook.method | 'GET' or 'POST'. Defaults to 'POST' | no |
|
||||
| call_hook.username | username for HTTP Basic Authentication | no |
|
||||
| call_hook.password | password for HTTP Basic Authentication | no |
|
||||
| call_status_hook | an object specifying a a web callback that will be invoked with call status notifications. Object properties the same as 'call_hook' property above. | no |
|
||||
| from | the calling party number | yes |
|
||||
| headers | an object containing arbitrary sip headers to apply to the outbound call attempt | no |
|
||||
| tag | an object containing customer data to associate with this call; this essentially calls the [tag](/jambonz#tag) verb for you| no |
|
||||
| timeout | the number of seconds to wait for the call to be answered. Defaults to 60. | no |
|
||||
| to | specifies the destination of the call. See description of [target types](/jambonz#target-types) in jambonz call control language. | yes |
|
||||
|
||||
At the time that the 201 response is returned to the caller, the call attempt has been launched (i.e., the SIP INVITE has been sent) but no ringing or call answer has yet occurred. The caller will receive call status notifications via the call_status_hook (either that supplied in the POST request, or if an application_sid is supplied then via the configured call_status_hook for that application).
|
||||
|
||||
### Retrieving a Call
|
||||
|
||||
**GET /v1/Accounts/{AccountSid}/Calls/{CallSid}**
|
||||
|
||||
```bash
|
||||
curl -X GET "https://jambonz.us/v1/Accounts/fef61e75-cec3-496c-a7bc-8368e4d02a04/Calls/ba01d74c-397e-4c80-9c8f-d57515ca8e86" \
|
||||
-H "accept: application/json" \
|
||||
-H "Authorization: Bearer 38700987-c7a4-4685-a5bb-af378f9734de"
|
||||
|
||||
200 response
|
||||
{
|
||||
"service_url": "http://172.31.3.33:4001",
|
||||
"call_sid": "ba01d74c-397e-4c80-9c8f-d57515ca8e86",
|
||||
"account_sid": "fef61e75-cec3-496c-a7bc-8368e4d02a04",
|
||||
"application_sid": "0e0681b0-d49f-4fb8-b973-b5a3c6758de1",
|
||||
"caller_name": "+15083084809",
|
||||
"call_id": "95863901-c3c5-1238-6185-06d91d68c9b0",
|
||||
"sip_status": "200",
|
||||
"call_status": "completed",
|
||||
"duration": 182,
|
||||
"originating_sip_ip": "64.172.60.1:5060",
|
||||
"originating_sip_trunk_name": "cheaprates"
|
||||
}
|
||||
```
|
||||
|
||||
### Listing Calls
|
||||
|
||||
**GET /v1/Accounts/{AccountSid}/Calls**
|
||||
|
||||
Lists all Calls under an Account
|
||||
|
||||
### Deleting a Call
|
||||
|
||||
**DELETE /v1/Accounts/{AccountSid}/Calls/{CallSid}**
|
||||
|
||||
Deletes a specific Call.
|
||||
|
||||
### Updating a Call
|
||||
|
||||
**PUT /v1/Accounts/{AccountSid}/Calls/{CallSid}**
|
||||
|
||||
This operation allows you to modify certain aspects of an active call (aka "live call control"). The JSON payload can support the following properties:
|
||||
|
||||
| property | description | when can this be used
|
||||
| ------------- |-------------| ---------------------|
|
||||
| call_hook | a new application to start executing on the call | at any time a call is active |
|
||||
| call_status | Change the status of the call. Possible values are 'completed' or 'no-answer' (the former terminates an answered call, the latter a call that is ringing) | at any time a call is in-progress or ringing |
|
||||
| listen_status | Change the status of a listen stream. Possible values are 'pause' or 'resume'. Pausing a stream maintains the websocket connection but will discontinue sending audio over the connection. Resuming will start sending audio again. This may be useful, for example, when a caller is providing confidential information that you do not want to appear in a recording. | only when a listen command is active on the call (may be nested in an active dial command) |
|
||||
| mute_status | Mute or unmute a call that is currently in a Dial verb. Possible values are 'mute' or 'unmute'. Either party in a call may be modified, depending on the call_sid provided in the path of the request-uri. | only when a dial command is currently active on a call |
|
||||
| whisper | Play a mid-call whisper prompt to one of the parties on a call in progress. The whisper prompt is provided in a play or say verb, as shown in the examples below. The whisper may be played to either party on the call, depending on the call_sid provided in the path of the request-uri. The other party is briefly placed on hold while the prompt is played, and then reconnected to the other party afterwards.| only when a dial command is currently active on the call |
|
||||
|
||||
The call_status, listen_status, and mute_status properties are mutually exclusive -- only one may be provided in the same request.
|
||||
|
||||
The whisper property may be provided alone, or together with a listen_status or mute_status property, in which case the whisper prompt is played after the listen_status or mute_status operation is complete.
|
||||
|
||||
Finally, if call_hook is provided, then call_status_hook may also optionally be included. This is used to specify a new callback to send call status events to.
|
||||
|
||||
The response to a successful PUT is a 204 No Content.
|
||||
|
||||
#### Providing a new application
|
||||
```bash
|
||||
POST /v1/Accounts/fef61e75-cec3-496c-a7bc-8368e4d02a04/Calls/bd9a8d8d-bd55-4c53-a373-929e85c6db22 HTTP/1.1
|
||||
Authorization: Bearer 9604e5f7-9a77-4bcc-b0fa-5665ace28ab3
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"call_hook": {
|
||||
"url": "/transfer-to-support",
|
||||
}
|
||||
}
|
||||
```
|
||||
#### Terminating a call
|
||||
```bash
|
||||
POST /v1/Accounts/fef61e75-cec3-496c-a7bc-8368e4d02a04/Calls/bd9a8d8d-bd55-4c53-a373-929e85c6db22 HTTP/1.1
|
||||
Authorization: Bearer 9604e5f7-9a77-4bcc-b0fa-5665ace28ab3
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"call_status": "completed"
|
||||
}
|
||||
```
|
||||
#### Pausing a listen stream
|
||||
```bash
|
||||
POST /v1/Accounts/fef61e75-cec3-496c-a7bc-8368e4d02a04/Calls/bd9a8d8d-bd55-4c53-a373-929e85c6db22 HTTP/1.1
|
||||
Authorization: Bearer 9604e5f7-9a77-4bcc-b0fa-5665ace28ab3
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"listen_status": "pause"
|
||||
}
|
||||
```
|
||||
#### Resuming a listen stream
|
||||
```bash
|
||||
POST /v1/Accounts/fef61e75-cec3-496c-a7bc-8368e4d02a04/Calls/bd9a8d8d-bd55-4c53-a373-929e85c6db22 HTTP/1.1
|
||||
Authorization: Bearer 9604e5f7-9a77-4bcc-b0fa-5665ace28ab3
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"listen_status": "resume"
|
||||
}
|
||||
```
|
||||
|
||||
#### Muting a party
|
||||
```bash
|
||||
POST /v1/Accounts/fef61e75-cec3-496c-a7bc-8368e4d02a04/Calls/bd9a8d8d-bd55-4c53-a373-929e85c6db22 HTTP/1.1
|
||||
Authorization: Bearer 9604e5f7-9a77-4bcc-b0fa-5665ace28ab3
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"mute_status": "mute"
|
||||
}
|
||||
```
|
||||
|
||||
#### Unmuting a party
|
||||
```bash
|
||||
POST /v1/Accounts/fef61e75-cec3-496c-a7bc-8368e4d02a04/Calls/bd9a8d8d-bd55-4c53-a373-929e85c6db22 HTTP/1.1
|
||||
Authorization: Bearer 9604e5f7-9a77-4bcc-b0fa-5665ace28ab3
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"mute_status": "unmute"
|
||||
}
|
||||
```
|
||||
|
||||
#### Playing a whisper prompt
|
||||
|
||||
The content of the whisper prompt may be a single say or play verb:
|
||||
```bash
|
||||
POST /v1/Accounts/fef61e75-cec3-496c-a7bc-8368e4d02a04/Calls/bd9a8d8d-bd55-4c53-a373-929e85c6db22 HTTP/1.1
|
||||
Authorization: Bearer 9604e5f7-9a77-4bcc-b0fa-5665ace28ab3
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"whisper": {
|
||||
"verb": "say",
|
||||
"text": "You have two minutes remaining on your call."
|
||||
}
|
||||
}
|
||||
```
|
||||
or an array of play or say verbs:
|
||||
```bash
|
||||
POST /v1/Accounts/fef61e75-cec3-496c-a7bc-8368e4d02a04/Calls/bd9a8d8d-bd55-4c53-a373-929e85c6db22 HTTP/1.1
|
||||
Authorization: Bearer 9604e5f7-9a77-4bcc-b0fa-5665ace28ab3
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"whisper": [{
|
||||
"verb": "say",
|
||||
"text": "You have two minutes remaining on your call."
|
||||
}, {
|
||||
"verb": "say",
|
||||
"text": "Please use them wisely"
|
||||
}]
|
||||
}
|
||||
```
|
||||
No verb other than a play or say verb may be included. The `loop` property of the verb is not supported in this usage.
|
||||
|
||||
#### Muting someone and then telling them about it
|
||||
```bash
|
||||
POST /v1/Accounts/fef61e75-cec3-496c-a7bc-8368e4d02a04/Calls/bd9a8d8d-bd55-4c53-a373-929e85c6db22 HTTP/1.1
|
||||
Authorization: Bearer 9604e5f7-9a77-4bcc-b0fa-5665ace28ab3
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"mute_status": "mute",
|
||||
"whisper": [
|
||||
{
|
||||
"verb": "say",
|
||||
"text": "Your call has been muted."
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user