Asterisk ari-request: Difference between revisions
Line 658: | Line 658: | ||
== Endpoints == | == Endpoints == | ||
=== /endpoints GET === | |||
<pre> | |||
[ | |||
{ | |||
"technology": "PJSIP", | |||
"resource": "call-in", | |||
"state": "offline", | |||
"channel_ids": [ | |||
"1589734169.2662", | |||
"1590042190.6700", | |||
"1590042642.6701" | |||
] | |||
}, | |||
{ | |||
"technology": "PJSIP", | |||
"resource": "test", | |||
"state": "offline", | |||
"channel_ids": [] | |||
}, | |||
{ | |||
"technology": "PJSIP", | |||
"resource": "dispatcher", | |||
"state": "offline", | |||
"channel_ids": [] | |||
}, | |||
{ | |||
"technology": "PJSIP", | |||
"resource": "call-out", | |||
"state": "offline", | |||
"channel_ids": [] | |||
} | |||
] | |||
</pre> | |||
== Events == | == Events == |
Revision as of 07:02, 22 May 2020
Overview
Asterisk ARI(Asterisk REST Interface) 내용 정리.
Basic
Asterisk-12 버전부터는 ARI(Asterisk REST Interface) 를 지원한다.
기본 사용포트 및 base uri 은 다음과 같다.
http://localhost:8088/ari
Applications
/applications GET
List all applications.
Example
Normal
$ curl -X GET -u asterisk:asterisk localhost:8088/ari/applications [ { "name": "test", "channel_ids": [ "__AST_CHANNEL_ALL_TOPIC" ], "bridge_ids": [ "__AST_BRIDGE_ALL_TOPIC" ], "endpoint_ids": [ "__AST_ENDPOINT_ALL_TOPIC" ], "device_names": [ "__AST_DEVICE_STATE_ALL_TOPIC" ], "events_allowed": [], "events_disallowed": [] } ]
/applications/{applicationName} GET
Get detail of an application.
Path parameters
- applicationName: string - Application's name.
Error responses
- 404 : Application does not exist.
Example
Normal
$ curl -X GET -u asterisk:asterisk http://192.168.30.10:8088/ari/applications/test { "name": "test", "channel_ids": [ "__AST_CHANNEL_ALL_TOPIC" ], "bridge_ids": [ "__AST_BRIDGE_ALL_TOPIC" ], "endpoint_ids": [ "__AST_ENDPOINT_ALL_TOPIC" ], "device_names": [ "__AST_DEVICE_STATE_ALL_TOPIC" ], "events_allowed": [], "events_disallowed": [] }
/applications/{applicationName}/subscription POST
Subscribe an application to a event source. Returns the state of the application after the subscriptions have changed.
Path parameters(parameters are case-sensitive)
- applicationName: string - Application's name
Query parameters
- eventSource: string - (required) URI for event source (channel: {channelId}, bridge: {bridgeId}, endpoint: {tech}[/{resource}], deviceState:{deviceName}
- Allows comma separated values.
Error responses
- 400: Missing parameter.
- 404: Application does not exist.
- 422: Event source does not exist.
Example
$ curl -X POST -u asterisk:asterisk http://localhost:8088/ari/applications/test/subscription -H 'content-type: application/json' \ -d '{"eventSource": "endpoint:PJSIP"}' { "bridge_ids": [ "__AST_BRIDGE_ALL_TOPIC" ], "channel_ids": [ "__AST_CHANNEL_ALL_TOPIC" ], "device_names": [ "__AST_DEVICE_STATE_ALL_TOPIC" ], "endpoint_ids": [ "__AST_ENDPOINT_ALL_TOPIC" ], "events_allowed": [], "events_disallowed": [], "name": "test" }
/applications/{applicationName}/subscription DELETE
Unsubscribe an application from an event source. Returns the state of the application after the subscription have changed.
Path parameters(parameters are case-sensitive)
- applicationName: string - Application's name
Query parameters
- eventSource: string - (required) URI for event source (channel: {channelId}, bridge: {bridgeId}, endpoint: {tech}[/{resource}], deviceState:{deviceName}
- Allows comma separated values.
Error responses
- 400: Missing parameter.
- 404: Application does not exist.
- 409: Application not subscribed to event source.
- 422: Event source does not exist.
Example
$ curl -X DELETE -u asterisk:asterisk http://localhost:8088/ari/applications/test/subscription -H 'content-type: application/json' -d '{"eventSource": "endpoint:PJSIP"}' { "bridge_ids": [ "__AST_BRIDGE_ALL_TOPIC" ], "channel_ids": [ "__AST_CHANNEL_ALL_TOPIC" ], "device_names": [ "__AST_DEVICE_STATE_ALL_TOPIC" ], "endpoint_ids": [], "events_allowed": [], "events_disallowed": [], "name": "test" }
Asterisk
/asterisk/info GET
Gets Asterisk system information.
Query parameters
- only: string: Filter information returned.
- Allowed values: build, system, config, status
- Allows comma separated values.
Examples
$ curl -X GET -u asterisk:asterisk http://localhost:8088/ari/asterisk/info { "build": { "date": "2019-01-08 14:16:26 UTC", "kernel": "4.9.0-8-amd64", "machine": "x86_64", "options": "OPTIONAL_API", "os": "Linux", "user": "pchero" }, "config": { "default_language": "en", "name": "", "setid": { "group": "", "user": "" } }, "status": { "last_reload_time": "2019-01-11T08:04:11.203+0000", "startup_time": "2019-01-11T08:04:11.203+0000" }, "system": { "entity_id": "42:01:0a:84:00:12", "version": "GIT-master-cb214713c0M" } }
/asterisk/modules GET
List Asterisk modules
Examples
$ curl -X GET -u asterisk:asterisk http://localhost:8088/ari/asterisk/modules [ { "description": "Named ACL system", "name": "acl", "status": "Running", "support_level": "core", "use_count": 2 }, { "description": "Asterisk ADSI Programming Application", "name": "app_adsiprog.so", "status": "Running", "support_level": "deprecated", "use_count": 0 }, ... ]
/asterisk/modules/{moduleName} GET
Get Asterisk module information.
Path parameters(Parameters are case-sensitive)
- moduleName: string: Module's name
Error responses
- 404: Module could not be found in running modules.
- 409: Module information could not be retrieved.
Examples
$ curl -X GET -u asterisk:asterisk http://localhost:8088/ari/asterisk/modules/res_pjsip.so { "description": "Basic SIP resource", "name": "res_pjsip.so", "status": "Running", "support_level": "core", "use_count": 46 }
Bridges
/bridges GET
List all active bridges in Asterisk.
Example
$ curl -s -X GET -u asterisk:asterisk localhost:8088/ari/bridges | python -m json.tool [ { "bridge_class": "stasis", "bridge_type": "mixing", "channels": [], "creator": "Stasis", "id": "3b925a5a-c464-4fc1-8fd9-8dc5dd330284", "name": "", "technology": "simple_bridge", "video_mode": "none" }, { "bridge_class": "stasis", "bridge_type": "mixing", "channels": [], "creator": "Stasis", "id": "1beb554c-d752-4b16-b1d9-91b3f1375562", "name": "", "technology": "simple_bridge", "video_mode": "none" }, { "bridge_class": "stasis", "bridge_type": "mixing", "channels": [], "creator": "Stasis", "id": "edfc58b1-1130-42c3-8117-0ca6d9e279f1", "name": "", "technology": "simple_bridge", "video_mode": "none" } ]
/bridges POST
Create a new bridge. This bridge persists until it has been shut down, or Asterisk has been shut down.
Query parameters
- type: string : Comma separated list of bridge type attributes(mixing, holding, dtmf_events, proxy_media, video_sfu).
- bridgeId: string : Unique ID to give to the bridge being created.
- name: string : Name to give to the bridge being created.
Example
$ curl -s -X POST -u asterisk:asterisk localhost:8088/ari/bridges | python -m json.tool { "bridge_class": "stasis", "bridge_type": "mixing", "channels": [], "creator": "Stasis", "id": "edfc58b1-1130-42c3-8117-0ca6d9e279f1", "name": "", "technology": "simple_bridge", "video_mode": "talker" }
/bridges/{bridgeId}/record POST
Start a recording. This record the mixed audio from all channels participating in this bridge.
Path parameters
- bridgeid: string : Bridge's Id.
Query parameters
- name: string : (required) Recording's filename.
- format: string : (required) Format to encode audio in.
- maxDurationSeconds: int : Maximum duration of the recording, in seconds. 0 for no limit.
- Allowed range: Min: 0; Max: None.
- maxSilenceSeconds: int : Maximum duration of the silence, in seconds. 0 for no limit.
- Allowed range: Min: 0; Max: None.
- ifExists: string : Action to take if a recording with the same name already exists.
- Default: fail
- Allowed values: fail, overwrite, append.
- beep: boolean : Play beep when recording begins.
- terminateOn: string : DTMF input to terminate recording.
- Default: None.
- Allowed values: none, any, *, #.
Exmaples
curl -X "POST" "http://localhost:8088/ari/bridges/e2e8dc59-8a2a-4729-848a-d4926bd08876/record" \ -H 'Content-Type: application/json; charset=utf-8' \ -u 'asterisk:asterisk' \ -d $'{ "name": "testrecording-202002101204", "format": "wav" }' HTTP/1.1 201 Created Server: Asterisk Date: Mon, 10 Feb 2020 11:05:26 GMT Connection: close Cache-Control: no-cache, no-store Location: /ari/recordings/live/testrecording-202002101204 Content-type: application/json Content-Length: 128 {"name":"testrecording-202002101204","format":"wav","state":"queued","target_uri":"bridge:e2e8dc59-8a2a-4729-848a-d4926bd08876"}
Channels
/channels GET
Example
$ curl localhost:8088/ari/channels [ { "id": "test_call", "name": "PJSIP/sipp-uac-00000000", "state": "Up", "caller": { "name": "", "number": "" }, "connected": { "name": "", "number": "" }, "accountcode": "", "dialplan": { "context": "sipp-uac", "exten": "s", "priority": 1 }, "creationtime": "2019-03-15T23:16:26.026+0100", "language": "en" } ]
/channels POST
Create a new channel(originate). The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated for further events and updates.
Query parameters
- endpoint: string - (required) Endpoint to call.
- extension: string - The extension to dial after the endpoint answers. Mutually exclusive with 'app'.
- context: string - The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.
- priority: long - The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.
- label: string - The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.
- app: string - The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority' and 'label'.
- appArgs: string - The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.
- callerid: string - CallerID to use when dialing the endpoint or extension.
- 이 항목을 설정하게 되면 SIP INVITE 메시지의 FROM header 가 변경되게 된다. 아래와 같이 설정하면 된다.
+0123456789
"pchero" <+0123456789>
- timeout: int - Timeout(in seconds) before giving up dialing, or -1 for no timeout.
- Default: 30
- channelId: string - The unique id to assign the channel on creation.
- otherChannelId: string - The unique id to assign the second channel when using local channels.
- originator: string - The unique id of the channel which is originating this one.
- formats: string - The format name capability list to use if originator is not specified. Ex. "ulaw, slin16". Format names can be found with "core show codecs".
Body parameter
- variables: containers - The "variables" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { "endpoint": "SIP/Alice", "variables": {"CALLERID(name)": "Alice"}}
Error response
- 400 : Invalid parameters for originating a channel.
- 409 : Channel with given unique ID already exists.
Example
$ curl -X POST http://192.168.200.20:8088/ari/channels\?api_key=asterisk:asterisk\&endpoint=pjsip/test@sippuas\&app=test { "id": "1543782963.26", "name": "PJSIP/sippuas-0000000d", "state": "Down", "caller": { "name": "", "number": "" }, "connected": { "name": "", "number": "" }, "accountcode": "", "dialplan": { "context": "sippuas", "exten": "s", "priority": 1 }, "creationtime": "2018-12-02T21:36:03.239+0100", "language": "en" }
/channels/{channelId} GET
Example
$ curl localhost:8088/ari/channels/test_call { "id": "test_call", "name": "PJSIP/sipp-uac-00000000", "state": "Up", "caller": { "name": "", "number": "" }, "connected": { "name": "", "number": "" }, "accountcode": "", "dialplan": { "context": "sipp-uac", "exten": "s", "priority": 1 }, "creationtime": "2019-03-15T23:16:26.026+0100", "language": "en" }
/channels/{channelId}/answer POST
Example
$ curl -X POST -u asterisk:asterisk localhost:8088/ari/channels/1548886670.0/answer
/channels/{channelId}/continue POST
Exit application; continue execution in the dialplan.
Path parameters(Parameters are case-sensitive)
- channelId: string - Channel's Id
Query parameters
- context: string - The context to continue to.
- extension: string - The extension to continue to.
- priority: int - The priority to continue to.
- label: string - The label to continue to - will supersede 'priority' if both are provided.
Error responses
- 404: Channel not found
- 409: Channel not in a Stasis application.
- 412: Channel in invalid state.
Example
Normal
$ curl -X POST http://192.168.200.20:8088/ari/channels/1543782963.26/continue\?api_key=asterisk:asterisk
No channel info
~$ curl -X POST http://192.168.200.20:8088/ari/channels/1543782963.26/continue\?api_key=asterisk:asterisk {"message":"Channel not in Stasis application"}
/channels/{channelId}/create POST
Create channel.
Query parameters
- endpoint: string - (required) Endpoint for channel communication.
- app: string - (required) Stasis Application to place channel into.
- appArgs: string - The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.
- channelId: string - The unique id to assign the channel on creation.
- otherChannelId: string - The unique id to assign the second channel when using local channels.
- originator: string - Unique ID of the calling channel.
- formats: string - The format name capability list to use if originator is not specified. Ex. "ulaw,slin16". Format names can be found with "core show codecs".
Error responses
- 409: Channel with given unique ID already exists.
Example
Normal
## Asterisk - test_call2: create channel only curl -X "POST" "http://localhost:8088/ari/channels/create" \ -H 'Content-Type: application/json; charset=utf-8' \ -u 'asterisk:asterisk' \ -d $'{ "appArgs": "pchero_dialed=1", "channelId": "test_call2", "app": "pchero_voip", "endpoint": "PJSIP/pchero-voip/sip:test@127.0.0.1", "callerId": "pchero" }' { "accountcode": "", "caller": { "name": "", "number": "" }, "connected": { "name": "", "number": "" }, "creationtime": "2019-02-25T13:37:26.509+0000", "dialplan": { "context": "pchero-voip", "exten": "s", "priority": 1 }, "id": "test_call2", "language": "en", "name": "PJSIP/pchero-voip-00000049", "state": "Down" }
/channels/{channelId}/dial POST
Dial a created channel.
Path parameters(Parameters are case-sensitive)
- ChannelId: string - Channel's id.
Query parameters
- caller: string - Channel ID of caller.
- timeout: int - Dial timeout.
- Allowed range: Min: 0, Max: None
Example
Normal
## Asterisk - test_call: dial to test_call2 curl -X "POST" "http://localhost:8088/ari/channels/test_call/dial" \ -H 'Content-Type: application/json; charset=utf-8' \ -u 'asterisk:asterisk' \ -d $'{ "channelId": "test_call2" }'
/channels/{channelId}/record POST
Start a recording. Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.
Path parameters(Parameters are case-sensitive)
- chanelId: string: Channel's Id.
Query parameters
- name: string: (required)Recording's filename.
- format: string: (required)Format to encode audio in.
- maxDurationSeconds: int: Maximum duration of the recording, in seconds. 0 for no limit.
- Allowed range: Min: 0, Max: None
- maxSilenceSeconds: int: Maximum duration of silence, in seconds, 0 for no limit
- Allowed range: Min: 0, Max: None
- ifExists: string: Action to take if a recording with the same name already exists.
- Default: fail
- Allowed values: fail, overwrite, append
- beep: boolean: Play beep when recording begins.
- terminateOn: string: DTMF input to terminate recording.
- Default: none
- Allowed value: non, any, *, #
Error responses
- 400: Invalid parameters.
- 404: Channel not found.
- 409: Channel is not in a Stasis application; the channel is currently bridged with other channels; A recording with the same name already exists on the system and can not be overwritten because it is in progess or ifExists=fail.
- 422: The format specified is unknown on this system.
/channels/{channelId}/play POST
Example
curl -X POST -u asterisk:asterisk -H 'Content-Type: application/json; charset=utf-8' localhost:8088/ari/channels/1548886670.0/play -d \ '{"media": ["sound:https://github.com/pchero/asterisk-medias/raw/master/samples_codec/pcm_samples/example-mono_16bit_8khz_pcm.wav"]}' { "id": "bbd2b76c-091d-4b13-bb9d-982ddeec53d5", "language": "en", "media_uri": "sound:https://github.com/pchero/asterisk-medias/raw/master/samples_codec/pcm_samples/example-mono_16bit_8khz_pcm.wav", "state": "queued", "target_uri": "channel:1548886670.0" }
/channels/{channelId}/snoop POST
/channels/{channelId}/variable GET
Get the value of a channel variable or function.
You can see the more available channel variables are here
Path Parameters
- channelId : string : Channel's id.
Query parameters
- variable : string : (required) The channel variable or function to get.
Example
$ curl -s -u asterisk:asterisk localhost:8088/ari/channels/test_call/variable\?variable=CHANNEL\(rtcp,all_loss\) | python -m json.tool { "value": "minrxlost=0.000000;maxrxlost=8.000000;avgrxlost=0.024691;stdevrxlost=inf;reported_minlost=0.000000;reported_maxlost=0.000000;reported_avglost=0.000000;reported_stdevlost=0.000000;" }
$ curl -s -u asterisk:asterisk localhost:8088/ari/channels/test_call/variable\?variable=CHANNEL\(rtcp,all\) | python -m json.tool { "value":"ssrc=528427381;themssrc=487275306;lp=8;rxjitter=0.000000;rxcount=96231;txjitter=0.001051;txcount=900;rlp=0;rtt=0.000000" }
$ curl -s -u asterisk:asterisk localhost:8088/ari/channels/test_call/variable\?variable=CHANNEL\(pjsip,call-id\) | python -m json.tool { "value":"7486de53-1305-42a3-abc5-97a34626fe8e" }
Devicestates
Endpoints
/endpoints GET
[ { "technology": "PJSIP", "resource": "call-in", "state": "offline", "channel_ids": [ "1589734169.2662", "1590042190.6700", "1590042642.6701" ] }, { "technology": "PJSIP", "resource": "test", "state": "offline", "channel_ids": [] }, { "technology": "PJSIP", "resource": "dispatcher", "state": "offline", "channel_ids": [] }, { "technology": "PJSIP", "resource": "call-out", "state": "offline", "channel_ids": [] } ]
Events
/events GET
Websocket connection for events.
Query parameters
- app: string - (required) Applications to subscribe to.
- Allows comma separated values.
- subscribeAll: boolean - Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions.
- Default: false
Example
ws://192.168.200.20:8088/ari/events?api_key=asterisk:asterisk&app=test
ws://192.168.200.20:8088/ari/events?api_key=asterisk:asterisk&app=test&subscribeAll=true
Mailboxes
Playbacks
Recordings
/recordings/live/{recordingName} GET
List live recordings.
Path parameters
- recordingName: string : The name of the recording.
Examples
$ curl "http://localhost:8088/ari/recordings/live/testrecording-202002101246" \ -H 'Content-Type: application/json; charset=utf-8' \ -u 'asterisk:asterisk' \ -d $'{ "name": "testrecording-202002101204", "format": "wav" }' HTTP/1.1 200 OK Server: Asterisk Date: Mon, 10 Feb 2020 11:47:12 GMT Connection: close Cache-Control: no-cache, no-store Content-type: application/json Content-Length: 131 {"name":"testrecording-202002101246","format":"wav","state":"recording","target_uri":"bridge:c5630d1d-ef94-4582-bcb5-4175385e9eb2"}
/recordings/live/{recordingName}/mute DELETE
Unmute a live recording.
Path parameters
- recordingName: string : The name of the recording.
Examples
## Recordings/live - unmute recordings curl -X "DELETE" "http://localhost:8088/ari/recordings/live/testrecording-202002101258/mute" \ -H 'Content-Type: application/json; charset=utf-8' \ -u 'asterisk:asterisk' HTTP/1.1 204 No Content Server: Asterisk Date: Mon, 10 Feb 2020 12:00:15 GMT Connection: close Cache-Control: no-cache, no-store Content-Length: 0
/recordings/live/{recordingName}/mute POST
Mute a live recording. Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.
진행중인 레코딩을 묵음(mute) 모드로 바꾼다. Mute 모드 시, 레코딩 중단이 아니기에 레코딩은 계속 진행되며, 묵음(slience)이 녹음된다.
Path parameters
- recordingName: string : The name of the recording.
Examples
## Recordings/live - mute recordings curl -X "POST" "http://localhost:8088/ari/recordings/live/testrecording-202002101258/mute" \ -H 'Content-Type: application/json; charset=utf-8' \ -u 'asterisk:asterisk' HTTP/1.1 204 No Content Server: Asterisk Date: Mon, 10 Feb 2020 11:59:13 GMT Connection: close Cache-Control: no-cache, no-store Content-Length: 0
/recordings/live/{recordingName}/pause DELETE
Unpause a live recording.
Pause 된 레코딩을 다시 시작한다.
Path parameters
- recordingName: string : The name of the recording.
Examples
## Recordings/live - unpause live recordings curl -X "DELETE" "http://localhost:8088/ari/recordings/live/testrecording-202002101246/pause" \ -H 'Content-Type: application/json; charset=utf-8' \ -u 'asterisk:asterisk' HTTP/1.1 204 No Content Server: Asterisk Date: Mon, 10 Feb 2020 11:51:22 GMT Connection: close Cache-Control: no-cache, no-store Content-Length: 0
/recordings/live/{recordingName}/pause POST
Pause a live recording. Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.
레코딩을 잠시 중단(pause)한다. 중단시킨 시간은 maxDurationSeconds 에 포함되지 않으며 중단시킨 시간동안은 레코딩이 되지 않으므로 레코딩 파일의 play 시간에도 포함되지 않는다.
Path parameters
- recordingName: string : The name of the recording
Examples
## Recordings/live - pause live recordings curl -X "POST" "http://localhost:8088/ari/recordings/live/testrecording-202002101246/pause" \ -H 'Content-Type: application/json; charset=utf-8' \ -u 'asterisk:asterisk' HTTP/1.1 204 No Content Server: Asterisk Date: Mon, 10 Feb 2020 11:50:05 GMT Connection: close Cache-Control: no-cache, no-store Content-Length: 0
/recordings/stored GET
List recordings that are complete.
Examples
$ curl -X GET -u asterisk:asterisk http://localhost:8088/ari/recordings/stored [ { "format": "wav", "name": "test_call" } ]
/recordings/stored/{recordingName} DELETE
Delete a stored recording.
Path parameters
- recordingName: string: The name of the recording.
Error responses
- 404: Recording not found.
Examples
Normal
$ curl -X DELETE -u asterisk:asterisk http://localhost:8088/ari/recordings/stored/test_call
Not found
$ curl -X DELETE -u asterisk:asterisk http://localhost:8088/ari/recordings/stored/test_call {"message":"Recording not found"}
/recordings/stored/{recording name} GET
Get a stored recording's details.
Path parameters
- recording name: string: The name of the recording.
Error response
- 404: Recording not found
Examples
$ curl -X GET -u asterisk:asterisk http://localhost:8088/ari/recordings/stored/test_call { "format": "wav", "name": "test_call" }
Sounds
/sounds GET
List all sounds.
Query parameters
- lang: string: Lookup sound for specific language.
- format: string: Lookup sound in a specific format.
Examples
$ curl -X GET -u asterisk:asterisk http://localhost:8088/ari/sounds [ { "formats": [ { "format": "gsm", "language": "en" } ], "id": "conf-now-unmuted", "text": "The conference is now unmuted." }, { "formats": [ { "format": "gsm", "language": "en" } ], "id": "queue-minutes", "text": "minutes" }, ... ]
/sounds/{soundId} GET
Get a sound's details.
Path parameters(case-sensitive)
- sound: string: Sound's id.
Examples
$ curl -X GET -u asterisk:asterisk http://localhost:8088/ari/sounds/demo-thanks { "formats": [ { "format": "gsm", "language": "en" } ], "id": "demo-thanks", "text": "Goodbye. Thank you for trying out the Asterisk Open Source PBX." }
See also
- https://wiki.asterisk.org/wiki/display/AST/Asterisk+17+ARI - Asterisk 17 ARI
- https://wiki.asterisk.org/wiki/display/AST/Asterisk+16+ARI - Asterisk 16 ARI
- https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+ARI - Asterisk 13 ARI