- Requests to wazo-auth now default to
localhost:80, through nginx.
- New
rest_api.min_threadsoption: threads kept ready at all times.max_threadsis now a ceiling the pool grows to under load, not a fixed thread count.
-
The call listing endpoints (
GET /calls,GET /users/me/calls) and the call events relayed to the bus now read channel variables from thechannelvarsdict embedded in ARI channel snapshots, falling back to livegetChannelVarrequests for variables missing from the snapshot. This drastically reduces the number of HTTP requests made to Asterisk; the full reduction requires the updatedchannelvarslist in the platformari.conf(see wazo-asterisk-config). There is no API change. -
New admin endpoint
GET /1.0/voicemails/messagesto list all voicemail messages in a tenant. -
The
transcriptionattribute has been added to voicemail messages. It contains the transcription text when available, ornullotherwise. -
New events for voicemail transcriptions:
user_voicemail_transcription_createduser_voicemail_transcription_deletedglobal_voicemail_transcription_createdglobal_voicemail_transcription_deleted
POST,PATCHandPUTrequest bodies to endpoints accepting JSON payload are systematically parsed as JSON, with or without a properContent-Typeheader;POST,PATCHandPUTrequests to endpoints accepting JSON payload and which are missing a body now return a400status response; previously those invalid requests could be treated as valid when Content-Type was missing and bodies were not parsed;
-
The following endpoint has been added for a user to access the messages across all the voicemails they have access to
PUT /1.0/users/me/voicemails/messages
-
The
emptyattribute has been added to voicemail messages. It is set toTruewhen the duration of the message is 0, meaning that there is a voicemail but the audio is empty. -
accesstypeattribute has been added to the voicemail object and events
- The
stateattribute has been added to the application playback response and events
-
The following endpoints can now return a
403when call recording is not enabled on the user, the queue or the groupPUT /1.0/users/me/calls/<call_id>/record/startPUT /1.0/users/me/calls/<call_id>/record/stopPUT /1.0/calls/<call_id>/record/startPUT /1.0/calls/<call_id>/record/stop
-
New API to resume and pause call recordings:
PUT /1.0/users/me/calls/<call_id>/record/pausePUT /1.0/users/me/calls/<call_id>/record/resumePUT /1.0/calls/<call_id>/record/pausePUT /1.0/calls/<call_id>/record/resume
- The following endpoints are not marking a voicemail message as read anymore when accessed:
GET /1.0/voicemails/<voicemail_id>/messages/<message_id>/recordingGET /1.0/users/me/voicemails/<voicemail_id>/messages/<message_id>/recordingIf you want to mark a message as read, use thePUT /1.0/voicemails/<voicemail_id>/messages/<message_id>orPUT /1.0/users/me/voicemails/messages/<message_id>API to change thefolder_idof the message to theOldfolder (id 2).
-
The following endpoints now enforce tenant isolation:
GET /1.0/voicemails/<voicemail_id>GET /1.0/voicemails/<voicemail_id>/folders/<folder_id>GET /1.0/voicemails/<voicemail_id>/greetings/<greeting_id>HEAD /1.0/voicemails/<voicemail_id>/greetings/<greeting_id>POST /1.0/voicemails/<voicemail_id>/greetings/<greeting_id>PUT /1.0/voicemails/<voicemail_id>/greetings/<greeting_id>DELETE /1.0/voicemails/<voicemail_id>/greetings/<greeting_id>POST /1.0/voicemails/<voicemail_id>/greetings/<greeting_id>/copyGET /1.0/voicemails/<voicemail_id>/messages/<message_id>PUT /1.0/voicemails/<voicemail_id>/messages/<message_id>DELETE /1.0/voicemails/<voicemail_id>/messages/<message_id>GET /1.0/voicemails/<voicemail_id>/messages/<message_id>/recording
-
The following endpoints are now performing additional validation before starting a call, which introduces a different behavior for existing error conditions:
POST /1.0/callsPOST /1.0/users/me/callsIf the requested source line is of type SIP, and is not registered nor available, the API will respond with a 400 status and error idcall-origin-unavailable
-
The following endpoints now enforce tenant isolation:
POST /1.0/callsDELETE /1.0/calls/<call-id>PUT /1.0/calls/<call_id>/user/<user_uuid>PUT /1.0/calls/{call_id}/answerPUT /1.0/calls/{call_id}/dtmfPUT /1.0/calls/{call_id}/hold/startPUT /1.0/calls/{call_id}/hold/stopPUT /1.0/calls/{call_id}/record/startPUT /1.0/calls/{call_id}/record/stopPUT /1.0/calls/{call_id}/mute/startPUT /1.0/calls/{call_id}/mute/stop
In order to make an action in another tenant, you need to specify the
Wazo-TenantHTTP header.
-
The following endpoints now have Wazo-Tenant header to support multi-tenant
GET /1.0/callsGET /1.0/calls/<call-id>
-
The following endpoints have a new query parameter
recurse:GET /1.0/calls
-
The
conversation_idattribute has been added to theapplication_callobject -
New API to list parkings and parked calls
- GET
/parking_lots
- GET
-
The following attributes have been added to the
parking_lotobject:idname
-
The following attributes have been added to the
parked_callobject:conversation_idcaller_id_namecaller_id_numparker_caller_id_nameparker_caller_id_num
-
New API to manage a call parking
- GET
/parking_lots/<parking-id> - PUT
/calls/<call-id>/park - PUT
/users/me/calls/<call-id>/park
- GET
-
New attribute for
callsobjects (API and events):parked
-
The
timeoutfield has been added to the following resources:- PUT
/calls/<call-id>/user/<user-uuid>
- PUT
-
The following bus configuration keys have been changed:
- key
exchange_namenow defaults towazo-headers - key
exchange_typewas removed
- key
-
The
directionfield has been added to the following resources:- GET
/calls - GET
/calls/<call-id> - GET
/users/me/calls
- GET
-
The
directionfield has been added to the following events:call_createdcall_updatedcall_answeredcall_ended
-
New API to kick participants out of a meeting:
-
DELETE /meetings/{meeting_uuid}/participants/{participant_id} -
DELETE /users/me/meetings/{meeting_uuid}/participants/{participant_id}
-
The
answer_timefield has been added to the following resources:- GET
/calls - GET
/calls/<call-id> - GET
/users/me/calls
- GET
-
The
hangup_timefield has been added to the following resources:- GET
/calls - GET
/calls/<call-id> - GET
/users/me/calls
- GET
-
The
answer_timeandhangup_timefields have been added to the following events:call_createdcall_updatedcall_answeredcall_ended
-
The
ivr_extensionandwait_timefields have been added to the following resources:- POST
/faxes - POST
/users/me/faxes
- POST
-
The
is_videofield has been added to the following resources:- GET
/calls - GET
/calls/<call-id> - GET
/users/me/calls
- GET
-
New attribute for
Transferobjects:initiator_tenant_uuid
-
New API to get the status of a meeting:
-
GET /guests/me/meetings/{meeting_uuid}/status
-
New API to get participants in a meeting:
-
GET /meetings/{meeting_uuid}/participants -
GET /users/me/meetings/{meeting_uuid}/participants
- The event
call_endednow sendreason_codeto know why a call was ended`. - The event
call_endednow contains theis_callerfield of the call.
-
New endpoint to get and update configuration of
wazo-calld:GET /configPATCH /config- Only the
debugattribute may be modified.
- Only the
- The event
call_missednow contains aconversation_idwhenever a call is missed or refused.
-
New attribute for
callsobjects (API and events):conversation_id
-
The following endpoints now filter out whitespace in the requested extension:
POST /applications/{application_uuid}/callsPOST /applications/{application_uuid}/nodes/{node_uuid}/callsPOST /faxes/createPOST /users/me/faxes/createPOST /transfersPOST /users/me/transfers
-
New attribute for
callsobjects (API and events):record_state
-
New API to start recording calls
PUT /calls/{call_id}/record/startPUT /users/me/calls/{call_id}/record/start
-
New API to stop recording calls
PUT /calls/{call_id}/record/stopPUT /users/me/calls/{call_id}/record/stop
-
New attribute for
callsobjects (API and events):line_id
-
New API to create adhoc conferences
POST /users/me/conferences/adhocDELETE /users/me/conferences/adhocPUT /users/me/conferences/adhoc/{adhoc_conference_id}/participants/{call_id}DELETE /users/me/conferences/adhoc/{adhoc_conference_id}/participants/{call_id}
-
New events for adhoc conferences:
adhoc_conference_createdadhoc_conference_deletedadhoc_conference_participant_joinedadhoc_conference_participant_left
-
New API to answer calls
PUT /calls/{call_id}/answerPUT /user/me/calls/{call_id}/answer
-
New API to hold calls
PUT /calls/{call_id}/hold/startPUT /calls/{call_id}/hold/stopPUT /users/me/calls/{call_id}/hold/startPUT /users/me/calls/{call_id}/hold/stop
- The event
call_updatedis sent to all conference participants when a new participant joins.
-
Deprecate SSL configuration
-
New API to check if voicemail greeting exists
HEAD /voicemails/{voicemail_id}/greetings/<greeting>HEAD /users/me/voicemails/{voicemail_id}/greetings/<greeting>
-
New API to simulate a user pressing DTMF keys
PUT /calls/{call_id}/dtmfPUT /users/me/calls/{call_id}/dtmf
-
New API to simulate a user pressing DTMF keys inside an application
PUT /applications/{application_uuid}/calls/{call_id}/dtmf
-
New attribute
all_linesin routes:POST /callsPOST /users/me/calls
-
New event
call_answeredis sent when a call is answered. -
New attribute
auto_answerin routes:POST /callsPOST /relocates
-
New attribute
auto_answer_callerin routePOST /users/me/calls
-
New attribute
mutedfor Call objects in routes:GET,POST /callsGET /calls/{call_id}GET,POST /users/me/calls
-
New API to mute calls
PUT /calls/{call_id}/mute/startPUT /calls/{call_id}/mute/stopPUT /users/me/calls/{call_id}/mute/startPUT /users/me/calls/{call_id}/mute/stop
-
Configuration
startup_connection_trieshas been removed -
The following endpoint has been added to list the status of lines
GET /1.0/lines
-
The following endpoint has been added to list the status of trunks
GET /1.0/trunks
-
The following endpoints have a new query parameter
line_idto select a linePUT /1.0/switchboards/{switchboard_uuid}/calls/queue/{call_id}/answerPUT /1.0/switchboards/{switchboard_uuid}/calls/held/{call_id}/answer
-
New API for calling users into applications:
- POST
/1.0/applications/{uuid}/nodes/{node_uuid}/calls/users
- POST
-
New API for answering a call inside an application:
- PUT
/1.0/applications/{uuid}/calls/{call_id}/answer - PUT
/1.0/applications/{uuid}/calls/{call_id}/progress/start - PUT
/1.0/applications/{uuid}/calls/{call_id}/progress/stop
- PUT
-
The following endpoints now have Wazo-Tenant header to support multi-tenant
GET /1.0/switchboards/{switchboard_uuid}/calls/heldPUT /1.0/switchboards/{switchboard_uuid}/calls/held/{call_id}/answerPUT /1.0/switchboards/{switchboard_uuid}/calls/held/{call_id}GET /1.0/switchboards/{switchboard_uuid}/calls/queuedPUT /1.0/switchboards/{switchboard_uuid}/calls/queued/{call_id}/answer
-
The
sip_call_idfield has been added to the calls response and events
-
The following endpoints have been moved to wazo-chatd and deleted from wazo-calld:
- POST
/1.0/chats - POST
/1.0/users/me/chats - GET
/1.0/users/me/chats
- POST
-
New API for faxes:
POST /faxesPOST /users/me/faxes
-
The following endpoints have been moved to wazo-chatd and deleted from wazo-calld:
-
GET
/1.0/lines/{id}/presences -
GET
/1.0/users/{uuid}/presences -
PUT
/1.0/users/{uuid}/presences -
GET
/1.0/users/me/presences -
PUT
/1.0/users/me/presences -
GET
/1.0/users/me/calls -
DELETE
/1.0/users/me/calls/{id}
-
-
New API for conferences:
POST /conferences/{conference_id}/recordDELETE /conferences/{conference_id}/record
-
Modification of conference mute API:
PUT /conferences/{conference_id}/participants/{participant_id}/mutePUT /conferences/{conference_id}/participants/{participant_id}/unmute
-
New API for conferences:
GET /conferences/{conference_id}/participantsDELETE /conferences/{conference_id}/participants/{participant_id}POST /conferences/{conference_id}/participants/{participant_id}/muteDELETE /conferences/{conference_id}/participants/{participant_id}/mute
-
Add the ability to specify a PJSIP contact on relocates using the
contactfield in the line location bodyPOST /users/me/relocates
-
Channel variables can now be specified on the following resources
POST /applications/{application_uuid}/callsPOST /applications/{application_uuid}/nodes/{node_uuid}/calls
-
The displayed caller id name and number can be specified on the following resources
POST /applications/{application_uuid}/callsPOST /applications/{application_uuid}/nodes/{node_uuid}/calls
- The body of endpoint
GET /statushas been added a new subkeystatus. - The applications calls now contain the snoop fields which list snoop membership
-
New API to start and stop music on hold on a call in an application
PUT /applications/{application_uuid}/calls/{call_id}/moh/{moh_uuid}/startPUT /applications/{application_uuid}/calls/{call_id}/moh/stop
-
New API to place a call on hold and resume it
PUT /applications/{application_uuid}/calls/{call_id}/hold/startPUT /applications/{application_uuid}/calls/{call_id}/hold/stop
-
New API to snoop on calls
GET /applications/{application_uuid}/snoopsPOST /applications/{application_uuid}/calls/{call_id}/snoopPUT /applications/{application_uuid}/snoops/{snoop_uuid}GET /applications/{application_uuid}/snoops/{snoop_uuid}DELETE /applications/{application_uuid}/snoops/{snoop_uuid}
-
New API to mute calls
PUT /applications/{application_uuid}/calls/{call_id}/mute/startPUT /applications/{application_uuid}/calls/{call_id}/mute/stop
-
A new API to create custom applications has been added
GET /applications/{application_uuid}GET /applications/{application_uuid}/callsPOST /applications/{application_uuid}/callsDELETE /applications/{application_uuid}/calls/{call_id}POST /applications/{application_uuid}/calls/{call_id}/playbacksGET /applications/{application_uuid}/nodesPOST /applications/{application_uuid}/nodesGET /applications/{application_uuid}/nodes/{node_uuid}DELETE /applications/{application_uuid}/nodes/{node_uuid}POST /applications/{application_uuid}/nodes/{node_uuid}/callsPUT /applications/{application_uuid}/nodes/{node_uuid}/calls/{call_id}DELETE /applications/{application_uuid}/nodes/{node_uuid}/calls/{call_id}DELETE /applications/{application_uuid}/playbacks/{playback_uuid}
-
New API for relocating calls:
PUT /users/me/relocates/{relocate_uuid}/cancel
-
New field for calls:
dialed_extension
-
New APIs for relocating calls:
GET,POST /users/me/relocatesGET /users/me/relocates/{relocate_uuid}PUT /users/me/relocates/{relocate_uuid}/complete
-
A new API for getting chat history:
- GET
/1.0/users/me/chats
- GET
-
New attribute
is_callerfor Call objects in routes:GET,POST /callsGET /calls/{call_id}GET,POST /users/me/calls
-
New routes for switchboard operations. This is not (yet) related to the current switchboard implementation.
GET /1.0/switchboards/{switchboard_uuid}/calls/heldPUT /1.0/switchboards/{switchboard_uuid}/calls/held/{call_id}PUT /1.0/switchboards/{switchboard_uuid}/calls/held/{call_id}/answer
-
A new API for switchboard operations. This is not (yet) related to the current switchboard implementation.
GET /1.0/switchboards/{switchboard_uuid}/calls/queuedPUT /1.0/switchboards/{switchboard_uuid}/calls/queued/{call_id}/answer
-
A new parameter for call creation (
POST /callsandPOST /users/me/calls)from_mobile
-
A new API for managing voicemails messages:
- GET
/1.0/voicemails/{voicemail_id} - GET
/1.0/voicemails/{voicemail_id}/folders/{folder_id} - DELETE
/1.0/voicemails/{voicemail_id}/messages/{message_id} - GET
/1.0/voicemails/{voicemail_id}/messages/{message_id} - PUT
/1.0/voicemails/{voicemail_id}/messages/{message_id} - POST
/1.0/voicemails/{voicemail_id}/messages/{message_id}/recording - GET
/1.0/users/me/voicemails - GET
/1.0/users/me/voicemails/folders/{folder_id} - DELETE
/1.0/users/me/voicemails/messages/{message_id} - GET
/1.0/users/me/voicemails/messages/{message_id} - PUT
/1.0/users/me/voicemails/messages/{message_id} - POST
/1.0/users/me/voicemails/messages/{message_id}/recording
- GET
-
A new
timeoutparameter has been added to the following URL:- POST
/1.0/transfers - POST
/1.0/users/me/transfers
- POST
-
A new
line_idparameter has been added to the following URL:- POST
/1.0/calls - POST
/1.0/users/me/calls
- POST
-
A new API for getting the status of lines:
- GET
/1.0/lines/{id}/presences
- GET
-
A new API for checking the status of the daemon:
- GET
/1.0/status
- GET
-
A new API for updating user presences:
- GET
/1.0/users/{uuid}/presences - PUT
/1.0/users/{uuid}/presences - GET
/1.0/users/me/presences - PUT
/1.0/users/me/presences
- GET
-
New APIs for listing and hanging up calls of a user:
- GET
/1.0/users/me/calls - DELETE
/1.0/users/me/calls/{id}
- GET
-
New APIs for listing, cancelling and completing transfers of a user:
- GET
/1.0/users/me/transfers - DELETE
/1.0/users/me/transfers/{transfer_id} - PUT
/1.0/users/me/transfers/{transfer_id}/complete
- GET
-
POST
/1.0/users/me/transfersmay now return 403 status code. -
Originates (POST
/*/calls) now return 400 if an invalid extension is given.
-
A new API for making calls from the authenticated user:
- POST
/1.0/users/me/calls
- POST
-
A new API for sending chat messages:
- POST
/1.0/chats - POST
/1.0/users/me/chats
- POST
-
A new parameter for transfer creation (POST
/1.0/transfers):variables
-
A new API for making transfers from the authenticated user:
- POST
/1.0/users/me/transfers
- POST