Table of Contents
API : PBX : Send to self
Request
This is an internal API used by PBX servers.
It is invoked when a recording has completed and the employee who owns the recording wants to receive it via e-mail. The e-mail is sent to the employees own e-mail address.
The e-mail has the same content as the E-mail endpoint - in this order, and only when present on the recording:
- A warning box at the top when the AI sensitivity level is not NORMAL.
- The AI summary, formatted for easy reading.
- The calendar events found by the AI, each with an “add to Google Calendar” link and attached to the e-mail as an .ics calendar file.
- The sensitivity level and the reasons the AI chose it, when the level is not NORMAL.
- The recording attached as MP3 - only when the employees recording notification settings ask for attachments (recording.notification.attach) and the estimated file size is within recording.notification.maxSize - otherwise a link to the portal. With 0 days retention see below.
- The transcription, folded and expanded by the click of a button (e-mail clients without support for folding show it expanded).
The e-mail is written in the employees language (Danish or English).
0 days retention
When the employee keeps recordings 0 days (recording.retension = 0, see Employee update), the e-mail is the only copy of the recording:
- The recording is always attached, whatever recording.notification.attach says - as long as its size is within recording.notification.maxSize and the mail servers limit. When it is too large, the e-mail says the recording was too large to attach and has been deleted, instead of linking to the portal.
- Once the e-mail has been sent, the recording is deleted - the audio file and the recording with its transcription and AI summary. The response then has deleted set to true.
- When the e-mail cannot be sent nothing is deleted. Recordings left over this way are removed by the nightly clean-up one day after they were made.
Waiting for the transcription
When the owner of the recording has automatic transcription enabled (recording.transcribe is not DISABLED), this endpoint does not send the e-mail before the transcription and the AI summary are stored on the recording. Without that wait the e-mail is rendered without them, as the PBX invokes Transcribe auto and this endpoint as two independent requests.
- When another request is already transcribing the recording, it waits for that request - up to 3 minutes - and then uses what it stored. See pbxRecordingTranscribe.
- When nothing has transcribed the recording yet, it transcribes and summarizes the recording itself.
- When the transcription fails, or the wait runs out, the e-mail is sent without the summary and transcription rather than not at all.
The request may therefore take minutes to reply - far longer than the PBX HTTP timeout. That is harmless: the e-mail is sent whether or not the PBX is still waiting for the reply. A PBX retry does not send a second e-mail - the recording is claimed in pbxRecordingEmailSent for 15 minutes and the retry replies with sent set to false.
| URL | https://api.telecomx.dk/pbx/recording/RECORDING_ID/send | ||
|---|---|---|---|
| Method | GET | ||
| Access level | None - may only be invoked from PBX server IP addresses. | ||
| Params | RECORDING_ID | String | Id of recording to e-mail. |
Query example
https://api.telecomx.dk/pbx/recording/1234578901234567890ABCD/send
Response
| JSON object | ||
|---|---|---|
| success | Boolean | True on success |
| sent | Boolean | True when this request sent the e-mail, false when the recording had already been e-mailed within the last 15 minutes (a PBX retry) |
| deleted | Boolean | True when the recording was deleted after the e-mail (0 days retention). Missing when sent is false. |
Example
{ "success": true, "sent": true, "deleted": false }
Errors
| Error code | Message | Description |
|---|---|---|
| 403 | access_denied | Not invoked from a PBX server |
| 404 | not_found | Recording not found |
| 404 | employee | Recording is a common recording with no employee, or the employee has no e-mail address |
| 500 | internal_error | <Unspecified> |