Music On Hold
The Music On Hold object is supported by the MiRTA PBX OpenAPI endpoint. This object is normally tenant-scoped. With a global API key, use global=1 to manage the shared/global record set. Tenant writes still require tenant=CANISTRACCI.
Object Summary
| Property | Value |
|---|---|
| Object | musiconhold |
| Primary path | /musiconholds |
| ID field | mu_id |
| Label field | mu_name |
| Primary source table | mu_musiconholds |
| Required on create | mu_name |
| Path aliases | /moh, /music, /musiconholds, /music_on_hold, /music_on_holds |
Endpoint Patterns
| Action | Example pattern |
|---|---|
| List | GET https://pbx.example.com/pbx/openapi.php/musiconholds?tenant=CANISTRACCI |
| Get by ID | GET https://pbx.example.com/pbx/openapi.php/musiconholds/OBJECT_ID?tenant=CANISTRACCI |
| Create | POST https://pbx.example.com/pbx/openapi.php/musiconholds?tenant=CANISTRACCI |
| Update | PATCH https://pbx.example.com/pbx/openapi.php/musiconholds/OBJECT_ID?tenant=CANISTRACCI |
| Delete | DELETE https://pbx.example.com/pbx/openapi.php/musiconholds/OBJECT_ID?tenant=CANISTRACCI |
Accepted Field Aliases
| Request field | Source field |
|---|---|
name | mu_name |
custom | mu_custom |
volume | mu_volume |
randomizeorder | mu_randomizeorder |
streamengine | mu_streamengine |
format | format |
application | application |
mode | mode |
Destination Fields
Destination fields accept one destination string or an array of destination strings such as EXT-100, VOICEMAIL-100, or another supported destination type and ID pair.
| Destination type | Accepted aliases |
|---|---|
MUSICONHOLD | mediafile, mediafiles, destination |
Examples
List Music On Hold Classes
Returns the music on hold classes visible to the key and scope.
curl -H "X-API-Key: TENANT_API_KEY" \
"https://pbx.example.com/pbx/openapi.php/musiconholds?tenant=CANISTRACCI"
Get Music On Hold
Reads one object by its internal ID.
curl -H "X-API-Key: TENANT_API_KEY" \
"https://pbx.example.com/pbx/openapi.php/musiconholds/OBJECT_ID?tenant=CANISTRACCI"
Create Music On Hold
Creates a new object. Use the short aliases shown above or the source field names.
curl -X POST \
-H "X-API-Key: TENANT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Docs API Music On Hold",
"custom": "yes",
"volume": 0,
"mode": "playlist",
"format": "slin"
}' \
"https://pbx.example.com/pbx/openapi.php/musiconholds?tenant=CANISTRACCI"
Edit Music On Hold
Updates only the supplied fields.
curl -X PATCH \
-H "X-API-Key: TENANT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"volume": -3
}' \
"https://pbx.example.com/pbx/openapi.php/musiconholds/OBJECT_ID?tenant=CANISTRACCI"
Delete Music On Hold
Deletes the object. Check references before deleting configuration used by routing or reporting.
curl -X DELETE \
-H "X-API-Key: TENANT_API_KEY" \
"https://pbx.example.com/pbx/openapi.php/musiconholds/OBJECT_ID?tenant=CANISTRACCI"
List Global Music On Hold Classes
curl -H "X-API-Key: GLOBAL_API_KEY" \
"https://pbx.example.com/pbx/openapi.php/musiconholds?global=1"
Music On Hold Destination
Updates the MUSICONHOLD destination. The same value can also be sent inside a destinations object.
curl -X PATCH \
-H "X-API-Key: TENANT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mediafile": [
22
]
}' \
"https://pbx.example.com/pbx/openapi.php/musiconholds/OBJECT_ID?tenant=CANISTRACCI"
Music On Hold Entries and Default
Replaces music-on-hold entries and marks the class as the default class for the scope.
curl -X PATCH \
-H "X-API-Key: TENANT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"entries": [
{
"me_id": 22,
"order": 1
},
{
"me_id": 23,
"order": 2
}
],
"default": true
}' \
"https://pbx.example.com/pbx/openapi.php/musiconholds/OBJECT_ID?tenant=CANISTRACCI"
Common Errors
| Error | Meaning |
|---|---|
missing_api_key | No API key was supplied in the query string, X-API-Key, or bearer token. |
invalid_api_key | The supplied key does not match the tenant or global API key. |
tenant_required | A tenant code is required for tenant-scoped writes or tenant-key reads. |
read_only_api_key | The key can read data but cannot create, update, or delete objects. |
missing_required_field | A required create field is missing. |
No comments to display
No comments to display