Voicemail
The Voicemail object is supported by the MiRTA PBX OpenAPI endpoint. This object is tenant-scoped. Tenant API keys must include tenant=CANISTRACCI; writes require a writable API key.
Object Summary
| Property | Value |
|---|---|
| Object | voicemail |
| Primary path | /voicemails |
| ID field | uniqueid |
| Label field | mailbox |
| Primary source table | voicemail |
| Required on create | mailbox |
| Path aliases | /voicemails |
Endpoint Patterns
| Action | Example pattern |
|---|---|
| List | GET https://pbx.example.com/pbx/openapi.php/voicemails?tenant=CANISTRACCI |
| Get by ID | GET https://pbx.example.com/pbx/openapi.php/voicemails/OBJECT_ID?tenant=CANISTRACCI |
| Create | POST https://pbx.example.com/pbx/openapi.php/voicemails?tenant=CANISTRACCI |
| Update | PATCH https://pbx.example.com/pbx/openapi.php/voicemails/OBJECT_ID?tenant=CANISTRACCI |
| Delete | DELETE https://pbx.example.com/pbx/openapi.php/voicemails/OBJECT_ID?tenant=CANISTRACCI |
Accepted Field Aliases
| Request field | Source field |
|---|---|
name | fullname |
number | mailbox |
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 |
|---|---|
VOICEMAIL-OPERATOR | operator, voicemail_operator |
VOICEMAIL-FOLLOW | follow, voicemail_follow |
VOICEMAIL-BROADCAST | broadcast, voicemail_broadcast |
Examples
List Voicemails
Returns the voicemails visible to the key and scope.
curl -H "X-API-Key: TENANT_API_KEY" \
"https://pbx.example.com/pbx/openapi.php/voicemails?tenant=CANISTRACCI"
Get Voicemail
Reads one object by its internal ID.
curl -H "X-API-Key: TENANT_API_KEY" \
"https://pbx.example.com/pbx/openapi.php/voicemails/OBJECT_ID?tenant=CANISTRACCI"
Create Voicemail
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 '{
"number": "240",
"name": "Docs API Mailbox",
"email": "voicemail@example.com",
"password": "1234"
}' \
"https://pbx.example.com/pbx/openapi.php/voicemails?tenant=CANISTRACCI"
Edit Voicemail
Updates only the supplied fields.
curl -X PATCH \
-H "X-API-Key: TENANT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Docs API Mailbox Updated",
"email": "voicemail-updated@example.com"
}' \
"https://pbx.example.com/pbx/openapi.php/voicemails/OBJECT_ID?tenant=CANISTRACCI"
Delete Voicemail
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/voicemails/OBJECT_ID?tenant=CANISTRACCI"
Voicemail OPERATOR Destination
Updates the VOICEMAIL-OPERATOR 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 '{
"operator": [
"EXT-100"
]
}' \
"https://pbx.example.com/pbx/openapi.php/voicemails/OBJECT_ID?tenant=CANISTRACCI"
Voicemail FOLLOW Destination
Updates the VOICEMAIL-FOLLOW 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 '{
"follow": [
"EXT-100"
]
}' \
"https://pbx.example.com/pbx/openapi.php/voicemails/OBJECT_ID?tenant=CANISTRACCI"
Voicemail BROADCAST Destination
Updates the VOICEMAIL-BROADCAST 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 '{
"broadcast": [
"EXT-100"
]
}' \
"https://pbx.example.com/pbx/openapi.php/voicemails/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. |
Voicemail messages and greetings
| Resource | Supported methods |
|---|---|
| /voicemails/{id}/messages | GET list, POST create |
| /voicemails/{id}/messages/{messageId} | GET, PUT, PATCH, DELETE |
| /voicemails/{id}/greetings | GET list, POST create |
| /voicemails/{id}/greetings/{name} | GET, PUT, PATCH, DELETE |
The voicemail ID is the mailbox configuration ID, and messageId is the recording’s database ID, not its position number. Greeting names: busy, unavail, greet, temp. Every operation checks both tenant and mailbox ownership. Use limit and offset for lists (100 by default, maximum 1000).
POST requires data_base64; greeting POST also requires name. Audio must be PCM WAV, mono, 8000 Hz, 16 bit, at most 16 MiB decoded, and the installation’s VOICEMAILFORMAT must be wav. Full-key detail GET returns data_base64; list responses and read-only keys omit audio. An existing greeting is replaced with PUT/PATCH, not another POST.
Message fields: folder (INBOX by default; also Old, Work, Family, Friends, Cust1–Cust5), callerid, flag (empty, Urgent or PRIORITY), category, origtime (Unix timestamp), and data_base64. PATCH folder moves the message within that mailbox. Storage paths, mailbox identity, message positions and analysis fields are generated/read-only. Replacing audio clears stale transcripts and summaries.
curl -H "X-API-Key: TENANT_API_KEY" \
'https://pbx.example.com/pbx/openapi.php/voicemails/8/messages?tenant=TENANT_CODE'
curl -X PATCH -H "X-API-Key: TENANT_API_KEY" -H "Content-Type: application/json" \
-d '{"folder":"Old"}' \
'https://pbx.example.com/pbx/openapi.php/voicemails/8/messages/42?tenant=TENANT_CODE'
curl -X PUT -H "X-API-Key: TENANT_API_KEY" -H "Content-Type: application/json" \
-d '{"data_base64":"BASE64_ENCODED_WAV"}' \
'https://pbx.example.com/pbx/openapi.php/voicemails/8/greetings/busy?tenant=TENANT_CODE'
Query routing is supported using object=voicemail&action=messages&id=8&item=42 or action=greetings&id=8&item=busy. Omit item for collection requests. DELETE requires one item and does not clear the entire mailbox.
See Additional Configuration Operations for complete request fields, scope rules and examples.
No comments to display
No comments to display