Telefonie
Das Telefonie-Modul verbindet Codemeta OS mit der hauseigenen PBX. Calls werden mit Tickets verknüpft, Audio kann aufgezeichnet, transkribiert und durch eine KI zusammengefasst werden.
Resources – Calls
| Resource | Pfad | Permission-Präfix | Sequenz |
|---|---|---|---|
| Phone-Calls | /api/v1/phone_calls | phone_call | CALL- |
| Call-Notes | /api/v1/call_notes | call_note | — |
Aufzeichnung, Transkript und KI-Summary liegen als typisierte Felder direkt
am phone_call-Datensatz — keine separaten Sub-Resources.
Resources – PBX-Konfiguration
| Resource | Pfad | Permission-Präfix |
|---|---|---|
| Extensions | /api/v1/pbx_extensions | pbx_extension |
| Queues | /api/v1/pbx_queues | pbx_queue |
| Konferenz-Räume | /api/v1/pbx_conference_rooms | pbx_conference_room |
| Voicemails | /api/v1/pbx_voicemails | pbx_voicemail |
| Aufzeichnungen | /api/v1/pbx_recordings | pbx_recording |
Custom-Endpoints (/api/v1/telephony/...)
Über CRUD hinaus gibt es dedizierte Telephony-Endpoints für Live-Steuerung und PBX-Operationen. Auszug:
| Operation | Hinweis |
|---|---|
POST /api/v1/telephony/click-to-call | Outbound-Call vom UI initiieren |
POST /api/v1/telephony/calls/<id>/answer | Inbound annehmen |
POST /api/v1/telephony/calls/<id>/transfer | Weiterleiten |
POST /api/v1/telephony/calls/<id>/hold | Halten / Fortsetzen |
GET /api/v1/telephony/queues | Aktive Queues |
POST /api/v1/telephony/queues/<id>/join | Agent betritt Queue |
POST /api/v1/telephony/queues/<id>/leave | Agent verlässt Queue |
Die vollständige, immer aktuelle Liste finden Sie in der OpenAPI-Spec.
Schemas
Phone-Call
Schema for phone call records including PBX integration data
direction
Call direction
INBOUNDOUTBOUND callerNumber
Phone number of the caller
calledNumber
Phone number that was called
durationSeconds
Total call duration in seconds
partyId
Linked party (customer/contact)
contactPartyId
Linked contact person
handledById
User who handled the call
rungUserIds
Users whose phone rang during this call. Populated for inbound PBX calls (Starface CALLFLOW with CALLED_TYPE=USER) so missed calls show up under "my calls" for everyone whose extension rang, not just the (non-existent) handler.
ticketId
Linked ticket
note
Free-text note about the call
isCallbackRequested
Whether a callback was requested
startedAt
When the call started (ISO 8601)
endedAt
When the call ended (ISO 8601)
callerName
Caller name from PBX
calledName
Called party name from PBX
callerAccountId
PBX account ID of the caller (-1 for external)
isConnected
Whether the call was answered
isInternalCall
Whether this was an internal call
isPickup
Whether the call was picked up by another user
externalCallUuid
External PBX call UUID (e.g. Starface CALL_UUID)
source
Source of the call record
manualstarfaceteamsfreeswitch teamsCallId
Microsoft Graph call record ID
teamsCallType
Teams call type: peer-to-peer calling or group meeting
callingmeeting teamsMeetingUrl
Teams meeting join URL (for meeting-type calls)
teamsParticipants
Teams call participants
teamsModalities
Communication modalities used (audio, video, screen share)
callFlow
Detailed call routing steps from PBX
calledType
USERGROUPMODULEUNKNOWN calledAccountId
pickupFirstName
pickupLastName
pickupAccountId
pickupTime
pickupLoginId
moduleInfo
waitTimeMs
Time the caller waited before pickup or abandonment (INBOUND only)
rawWebhookData
Raw webhook payload for future analysis
bookedAsTimeRecordId
Time record ID created from this call (marks call as booked)
pbxCallId
FreeSWITCH call UUID
sipTrunkId
SIP trunk used
extensionId
Extension that handled the call
queueId
ACD queue if routed through queue
recordingFileId
pbx_recording entity ID
transcriptText
Call transcript from STT
aiSummary
AI-generated call summary
sentimentScore
Sentiment score -1 (negative) to 1 (positive)
Keine Felder passen zum Filter.
Note
note
phoneNumber
partyId
contactPartyId
phoneCallId
Keine Felder passen zum Filter.
Extension
Schema for a user extension (one per user) in the FreeSWITCH PBX module
extensionNumber
Internal extension number (1–6 digits)
displayName
Display name shown in calls and directory
userId
UUID of the linked user account
sipUser
Auto-generated SIP username for FreeSWITCH registration (protected field)
voicemailEnabled
Whether voicemail is enabled for this extension
voicemailPin
Voicemail PIN (4–6 digits)
doNotDisturb
Do Not Disturb flag — all calls go directly to voicemail when enabled
forwardEnabled
Whether call forwarding is active for this extension
forwardTarget
Target number or extension for call forwarding
forwardType
When to apply call forwarding
UNCONDITIONALBUSYNO_ANSWER callRecordingEnabled
Whether calls on this extension are automatically recorded
ringTimeout
Seconds to ring before going to voicemail or forwarding
isActive
Whether this extension is active in FreeSWITCH
Keine Felder passen zum Filter.
Queue
Schema for an ACD (Automatic Call Distribution) call queue in the FreeSWITCH PBX module
name
Human-readable name for this queue
extensionNumber
Extension number callers dial to reach this queue
strategy
Agent ring strategy for distributing incoming calls
RING_ALLROUND_ROBINLEAST_RECENTFEWEST_CALLSRANDOMLINEARBROADCAST maxWaitSeconds
Maximum time in seconds a caller waits before being removed from the queue
maxQueueSize
Maximum number of callers that can be queued at once
announcePosition
Whether to announce the caller's position in the queue
announceFrequency
How often (in seconds) to announce position/wait time
musicOnHold
Music-on-hold class or audio file reference
welcomePrompt
Audio file key played when caller enters the queue
memberExtensionIds
List of pbx_extension IDs (UUIDs) that are members of this queue
wrapUpSeconds
Seconds an agent has after a call ends before receiving another (wrap-up time)
isActive
Whether this queue is active in FreeSWITCH
ringTimeoutPerMember
Seconds to ring each member before moving to the next (LINEAR strategy)
fallbackAction
Action when all members exhausted or max wait time reached
VOICEMAILIVRQUEUEHANGUPFORWARD fallbackTarget
Target for fallback action (extension, IVR ID, queue ID, or external number)
pagingMode
When true with BROADCAST strategy, members auto-answer for one-way paging
Keine Felder passen zum Filter.
Conference-Room
Schema for a conference room in the FreeSWITCH PBX module
name
Human-readable name for this conference room
extensionNumber
Extension number to dial into this conference room
pin
Optional PIN code for room access
maxParticipants
Maximum number of concurrent participants
recordingEnabled
Whether to auto-record the conference
profile
FreeSWITCH conference audio profile
defaultwidebandultrawideband isActive
Whether this conference room is active
Keine Felder passen zum Filter.
Voicemail
Schema for a voicemail message left on a PBX extension
extensionId
UUID of the pbx_extension this voicemail was left on
callerNumber
Phone number of the caller who left the voicemail
durationSeconds
Duration of the voicemail message in seconds
fileKey
S3/MinIO object key where the voicemail audio file is stored (protected field)
isRead
Whether this voicemail has been listened to / marked as read
callerName
Caller name resolved from PBX directory or CRM
transcriptText
Full transcript text generated by speech-to-text (STT)
transcriptStatus
Current status of the transcription job
PENDINGPROCESSINGDONEFAILED partyId
UUID of the linked party (customer/contact) resolved from the caller number
phoneCallId
UUID of the phone_call entity associated with this voicemail
Keine Felder passen zum Filter.
Recording
Schema for a call recording entity created by the FreeSWITCH PBX module
phoneCallId
UUID of the phone_call entity this recording belongs to
direction
Direction of the recorded call
INBOUNDOUTBOUND durationSeconds
Duration of the recording in seconds
fileKey
S3/MinIO object key where the recording file is stored (protected field)
consentGiven
Whether explicit consent was obtained before recording (required for GDPR compliance)
fileSize
File size in bytes
transcriptText
Full transcript text generated by speech-to-text (STT)
transcriptStatus
Current status of the transcription job
PENDINGPROCESSINGDONEFAILED deletedAfter
Retention date — the recording will be deleted after this timestamp (ISO 8601)
partyId
UUID of the linked party (customer/contact)
extensionId
UUID of the pbx_extension that participated in this recording
format
Audio file format of the recording
WAVMP3OGG Keine Felder passen zum Filter.
Recording / Transcript / Summary
Aufzeichnungen sind Opt-in pro Call. Sobald eine Aufnahme abgeschlossen ist,
verarbeitet die Plattform sie automatisch zu Transkript und KI-Summary —
beide Felder werden direkt am phone_call gepflegt.
Verwandt
- Konventionen
- Tickets — Calls werden Tickets zugeordnet