Developer Docs
Phone API

The Phone API

Introduction

The Phone API provides allows your extensions to listen in to the event generated by the phone when the user places and receives calls.

The Phone API will include functions to control the phone in a future API version.

Connecting to the Phone API

The extension API is available at:

window.voxtopAPI.phone

Phone API - Functions

At the moment the phone API does not provide any functions for controlling the phone.

Phone API - Events

Subscribing

As with all of the voxtopAPI events you subscribe using the onEvent function and pass a callback function to process messages.

    const unsubscribePhoneEvents = window.voxtopAPI.phone.onEvent(callback)

Unsubscribing

To unsubscribe from receiving events, simply run the function return from the onEvent function call.

unsubscribePhoneEvents();

Example Usage

    const processMessages = (event) => {
        console.log('Received phone event:', event)
    }

    const unsubscribePhoneEvents = window.voxtopAPI.phone.onEvent(processMessages)

Phone Event Messages

The following events describe phone connection, registration, and call lifecycle activity.

createdAt is formatted as an ISO 8601 UTC timestamp.

Required is based on the provided examples. Fields marked Conditional appear only for some call directions or event scenarios.

The following eventType values are emitted from the phone.

Event TypePurpose
phone.state.connectedEmitted when the phone connects to the i164 network
phone.state.registeredEmitted when the phone registers with the i164 network
phone.call.createdEmitted when the phone makes or receives a new call
phone.call.progressEmitted when a call is ringing and awaiting answer.
phone.call.acceptedEmitted when a call is answered.
phone.call.confirmedEmitted when a call is answered and ready.
phone.call.hanging-upEmitted when a call is in the process of being hung-up.
phone.call.endedEmitted when a call has ended
phone.call.holdEmitted when a call is put on hold
phone.call.unholdEmitted when a call is taken off hold
phone.call.mutedEmitted when a call is muted
phone.call.unmutedEmitted when a call is unmuted
phone.call.blindTransfer.startedEmitted when a blind transfer has been started for an active call
phone.call.blindTransfer.succeededEmitted when a blind transfer has completed successfully.

phone.state.connected

Emitted when the phone connection is established.

{
  "eventId": "719fc228-b7fc-45f4-ae63-6188b6dc6f6a",
  "createdAt": "2026-07-03T14:30:54.446Z",
  "eventType": "phone.state.connected",
  "connectionId": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "deviceRegistrationUUID": "8f1fa31a-2389-4412-9fa3-1a23892412ea"
}

Properties

PropertyTypeRequiredDescription
eventIdstringYesUnique identifier for this event message.
createdAtstringYesTime the event occurred, formatted as an ISO 8601 UTC timestamp.
eventTypestringYesName of the event. For this message, the value is phone.state.connected.
connectionIdstringYesUnique identifier for the phone connection.
deviceRegistrationUUIDstringYesUnique identifier for the registered phone device.

phone.state.registered

Emitted when the phone device has successfully registered.

{
  "eventId": "835fb0ac-7deb-4fe2-9c4c-5431db052dc3",
  "createdAt": "2026-07-03T14:30:54.525Z",
  "eventType": "phone.state.registered",
  "connectionId": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "deviceRegistrationUUID": "8f1fa31a-2389-4412-9fa3-1a23892412ea"
}

Properties

PropertyTypeRequiredDescription
eventIdstringYesUnique identifier for this event message.
createdAtstringYesTime the event occurred, formatted as an ISO 8601 UTC timestamp.
eventTypestringYesName of the event. For this message, the value is phone.state.registered.
connectionIdstringYesUnique identifier for the phone connection.
deviceRegistrationUUIDstringYesUnique identifier for the registered phone device.

phone.call.created

Emitted when a new phone call is created.

{
  "eventId": "80f1f421-16ef-457d-b650-da9f0725e482",
  "createdAt": "2026-07-03T14:34:47.525Z",
  "eventType": "phone.call.created",
  "direction": "incoming",
  "callRef": "5c0481f8-538e-4ab8-9025-4b28dccba607",
  "connectionId": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "deviceRegistrationUUID": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "virtualDeviceRegistrationUUID": "e4971753-daca-4c9f-9717-53daca1c9f51",
  "phoneServiceUUID": "3e560df5-3792-4206-960d-f53792020693",
  "voxletInstanceUUID": "c5e8e1f6-50c5-48c0-a8e1-f650c5a8c08f",
  "state": "new",
  "onHold": false,
  "stt": {
    "local": false,
    "remote": false
  },
  "localNumber": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "localDisplayName": "Voxtop Desktop",
  "remoteNumber": "07XXXXXXXX",
  "remoteDisplayName": "Max"
}

Properties

PropertyTypeRequiredDescription
eventIdstringYesUnique identifier for this event message.
createdAtstringYesTime the event occurred, formatted as an ISO 8601 UTC timestamp.
eventTypestringYesName of the event. For this message, the value is phone.call.created.
directionstringYesDirection of the call. Observed values are incoming and outgoing.
callRefstringYesUnique reference for the call. This value can be used to correlate events for the same call.
connectionIdstringYesUnique identifier for the phone connection.
deviceRegistrationUUIDstringYesUnique identifier for the registered phone device.
virtualDeviceRegistrationUUIDstringYesUnique identifier for the virtual device registration associated with the call.
phoneServiceUUIDstringConditionalUnique identifier for the phone service. Present in the provided incoming call examples.
voxletInstanceUUIDstringConditionalUnique identifier for the Voxlet instance. Present in the provided incoming call examples.
statestringYesCurrent call state. Observed values for this event are new and dialled.
onHoldbooleanYesIndicates whether the call is currently on hold.
sttobjectYesSpeech-to-text status for the local and remote parties.
localNumberstringYesNumber or identifier for the local party.
localDisplayNamestringYesDisplay name for the local party.
remoteNumberstringYesNumber or identifier for the remote party.
remoteDisplayNamestring/nullYesDisplay name for the remote party, or null when unavailable.

stt object

PropertyTypeRequiredDescription
stt.localbooleanYesIndicates whether speech-to-text is enabled or active for the local party.
stt.remotebooleanYesIndicates whether speech-to-text is enabled or active for the remote party.

phone.call.progress

Emitted when a call is progressing, such as when the remote side is ringing.

{
  "eventId": "c7158bc6-f91a-4839-9e46-5386c592f581",
  "createdAt": "2026-07-03T14:31:23.726Z",
  "eventType": "phone.call.progress",
  "direction": "outgoing",
  "callRef": "4378a4ff-2ff9-49a0-a8ad-e9b64a0394d9",
  "connectionId": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "deviceRegistrationUUID": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "virtualDeviceRegistrationUUID": "e4971753-daca-4c9f-9717-53daca1c9f51",
  "state": "progress",
  "onHold": false,
  "stt": {
    "local": false,
    "remote": false
  },
  "localNumber": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "localDisplayName": "Voxtop Desktop",
  "remoteNumber": "123",
  "remoteDisplayName": null,
  "data": {
    "originator": "remote",
    "statusCode": 180,
    "reasonPhrase": "Ringing"
  }
}

Properties

PropertyTypeRequiredDescription
eventIdstringYesUnique identifier for this event message.
createdAtstringYesTime the event occurred, formatted as an ISO 8601 UTC timestamp.
eventTypestringYesName of the event. For this message, the value is phone.call.progress.
directionstringYesDirection of the call. Observed values are incoming and outgoing.
callRefstringYesUnique reference for the call. This value can be used to correlate events for the same call.
connectionIdstringYesUnique identifier for the phone connection.
deviceRegistrationUUIDstringYesUnique identifier for the registered phone device.
virtualDeviceRegistrationUUIDstringYesUnique identifier for the virtual device registration associated with the call.
phoneServiceUUIDstringConditionalUnique identifier for the phone service. Present in the provided incoming call examples.
voxletInstanceUUIDstringConditionalUnique identifier for the Voxlet instance. Present in the provided incoming call examples.
statestringYesCurrent call state. For this event, the observed value is progress.
onHoldbooleanYesIndicates whether the call is currently on hold.
sttobjectYesSpeech-to-text status for the local and remote parties.
localNumberstringYesNumber or identifier for the local party.
localDisplayNamestringYesDisplay name for the local party.
remoteNumberstringYesNumber or identifier for the remote party.
remoteDisplayNamestring/nullYesDisplay name for the remote party, or null when unavailable.
dataobjectConditionalAdditional progress information, such as SIP-style status details.

stt object

PropertyTypeRequiredDescription
stt.localbooleanYesIndicates whether speech-to-text is enabled or active for the local party.
stt.remotebooleanYesIndicates whether speech-to-text is enabled or active for the remote party.

data object

PropertyTypeRequiredDescription
data.originatorstringYesParty that originated the progress update. Observed value is remote.
data.statusCodenumberYesStatus code associated with the progress update. Example value is 180.
data.reasonPhrasestringYesHuman-readable reason phrase associated with the progress update. Example value is Ringing.

phone.call.accepted

Emitted when a call has been accepted.

{
  "eventId": "35873b1a-38b5-44df-ad5b-3438ad43c261",
  "createdAt": "2026-07-03T14:34:50.954Z",
  "eventType": "phone.call.accepted",
  "direction": "incoming",
  "callRef": "5c0481f8-538e-4ab8-9025-4b28dccba607",
  "connectionId": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "deviceRegistrationUUID": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "virtualDeviceRegistrationUUID": "e4971753-daca-4c9f-9717-53daca1c9f51",
  "phoneServiceUUID": "3e560df5-3792-4206-960d-f53792020693",
  "voxletInstanceUUID": "c5e8e1f6-50c5-48c0-a8e1-f650c5a8c08f",
  "state": "accepted",
  "onHold": false,
  "stt": {
    "local": false,
    "remote": false
  },
  "localNumber": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "localDisplayName": "Voxtop Desktop",
  "remoteNumber": "07XXXXXXXX",
  "remoteDisplayName": "Max"
}

Properties

PropertyTypeRequiredDescription
eventIdstringYesUnique identifier for this event message.
createdAtstringYesTime the event occurred, formatted as an ISO 8601 UTC timestamp.
eventTypestringYesName of the event. For this message, the value is phone.call.accepted.
directionstringYesDirection of the call. Observed values are incoming and outgoing.
callRefstringYesUnique reference for the call. This value can be used to correlate events for the same call.
connectionIdstringYesUnique identifier for the phone connection.
deviceRegistrationUUIDstringYesUnique identifier for the registered phone device.
virtualDeviceRegistrationUUIDstringYesUnique identifier for the virtual device registration associated with the call.
phoneServiceUUIDstringConditionalUnique identifier for the phone service. Present in the provided incoming call examples.
voxletInstanceUUIDstringConditionalUnique identifier for the Voxlet instance. Present in the provided incoming call examples.
statestringYesCurrent call state. For this event, the observed value is accepted.
onHoldbooleanYesIndicates whether the call is currently on hold.
sttobjectYesSpeech-to-text status for the local and remote parties.
localNumberstringYesNumber or identifier for the local party.
localDisplayNamestringYesDisplay name for the local party.
remoteNumberstringYesNumber or identifier for the remote party.
remoteDisplayNamestring/nullYesDisplay name for the remote party, or null when unavailable.

stt object

PropertyTypeRequiredDescription
stt.localbooleanYesIndicates whether speech-to-text is enabled or active for the local party.
stt.remotebooleanYesIndicates whether speech-to-text is enabled or active for the remote party.

phone.call.confirmed

Emitted when a call has been confirmed and is active.

{
  "eventId": "eb675ff3-e330-4731-af09-150614a21d7f",
  "createdAt": "2026-07-03T14:34:50.988Z",
  "eventType": "phone.call.confirmed",
  "direction": "incoming",
  "callRef": "5c0481f8-538e-4ab8-9025-4b28dccba607",
  "connectionId": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "deviceRegistrationUUID": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "virtualDeviceRegistrationUUID": "e4971753-daca-4c9f-9717-53daca1c9f51",
  "phoneServiceUUID": "3e560df5-3792-4206-960d-f53792020693",
  "voxletInstanceUUID": "c5e8e1f6-50c5-48c0-a8e1-f650c5a8c08f",
  "state": "confirmed",
  "onHold": false,
  "stt": {
    "local": false,
    "remote": false
  },
  "localNumber": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "localDisplayName": "Voxtop Desktop",
  "remoteNumber": "07XXXXXXXX",
  "remoteDisplayName": "Max"
}

Properties

PropertyTypeRequiredDescription
eventIdstringYesUnique identifier for this event message.
createdAtstringYesTime the event occurred, formatted as an ISO 8601 UTC timestamp.
eventTypestringYesName of the event. For this message, the value is phone.call.confirmed.
directionstringYesDirection of the call. Observed values are incoming and outgoing.
callRefstringYesUnique reference for the call. This value can be used to correlate events for the same call.
connectionIdstringYesUnique identifier for the phone connection.
deviceRegistrationUUIDstringYesUnique identifier for the registered phone device.
virtualDeviceRegistrationUUIDstringYesUnique identifier for the virtual device registration associated with the call.
phoneServiceUUIDstringConditionalUnique identifier for the phone service. Present in the provided incoming call examples.
voxletInstanceUUIDstringConditionalUnique identifier for the Voxlet instance. Present in the provided incoming call examples.
statestringYesCurrent call state. For this event, the observed value is confirmed.
onHoldbooleanYesIndicates whether the call is currently on hold.
sttobjectYesSpeech-to-text status for the local and remote parties.
localNumberstringYesNumber or identifier for the local party.
localDisplayNamestringYesDisplay name for the local party.
remoteNumberstringYesNumber or identifier for the remote party.
remoteDisplayNamestring/nullYesDisplay name for the remote party, or null when unavailable.

stt object

PropertyTypeRequiredDescription
stt.localbooleanYesIndicates whether speech-to-text is enabled or active for the local party.
stt.remotebooleanYesIndicates whether speech-to-text is enabled or active for the remote party.

phone.call.hanging-up

Emitted when a call is in the process of being hung up.

{
  "eventId": "14ef0d68-1181-46a3-a116-9a7967dfbae5",
  "createdAt": "2026-07-03T14:34:56.164Z",
  "eventType": "phone.call.hanging-up",
  "direction": "incoming",
  "callRef": "5c0481f8-538e-4ab8-9025-4b28dccba607",
  "connectionId": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "deviceRegistrationUUID": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "virtualDeviceRegistrationUUID": "e4971753-daca-4c9f-9717-53daca1c9f51",
  "phoneServiceUUID": "3e560df5-3792-4206-960d-f53792020693",
  "voxletInstanceUUID": "c5e8e1f6-50c5-48c0-a8e1-f650c5a8c08f",
  "state": "confirmed",
  "onHold": false,
  "stt": {
    "local": true,
    "remote": true
  },
  "localNumber": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "localDisplayName": "Voxtop Desktop",
  "remoteNumber": "07XXXXXXXX",
  "remoteDisplayName": "Max"
}

Properties

PropertyTypeRequiredDescription
eventIdstringYesUnique identifier for this event message.
createdAtstringYesTime the event occurred, formatted as an ISO 8601 UTC timestamp.
eventTypestringYesName of the event. For this message, the value is phone.call.hanging-up.
directionstringYesDirection of the call. Observed value is incoming.
callRefstringYesUnique reference for the call. This value can be used to correlate events for the same call.
connectionIdstringYesUnique identifier for the phone connection.
deviceRegistrationUUIDstringYesUnique identifier for the registered phone device.
virtualDeviceRegistrationUUIDstringYesUnique identifier for the virtual device registration associated with the call.
phoneServiceUUIDstringYesUnique identifier for the phone service.
voxletInstanceUUIDstringYesUnique identifier for the Voxlet instance.
statestringYesCurrent call state at the time the hang-up is initiated. Observed value is confirmed.
onHoldbooleanYesIndicates whether the call is currently on hold.
sttobjectYesSpeech-to-text status for the local and remote parties.
localNumberstringYesNumber or identifier for the local party.
localDisplayNamestringYesDisplay name for the local party.
remoteNumberstringYesNumber or identifier for the remote party.
remoteDisplayNamestring/nullYesDisplay name for the remote party, or null when unavailable.

stt object

PropertyTypeRequiredDescription
stt.localbooleanYesIndicates whether speech-to-text is enabled or active for the local party.
stt.remotebooleanYesIndicates whether speech-to-text is enabled or active for the remote party.

phone.call.ended

Emitted when a call has ended.

{
  "eventId": "4fd1bb90-9028-4a68-9eab-dfcb79a906d9",
  "createdAt": "2026-07-03T14:34:56.171Z",
  "eventType": "phone.call.ended",
  "direction": "incoming",
  "callRef": "5c0481f8-538e-4ab8-9025-4b28dccba607",
  "connectionId": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "deviceRegistrationUUID": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "virtualDeviceRegistrationUUID": "e4971753-daca-4c9f-9717-53daca1c9f51",
  "phoneServiceUUID": "3e560df5-3792-4206-960d-f53792020693",
  "voxletInstanceUUID": "c5e8e1f6-50c5-48c0-a8e1-f650c5a8c08f",
  "state": "ended",
  "onHold": false,
  "stt": {
    "local": true,
    "remote": true
  },
  "localNumber": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "localDisplayName": "Voxtop Desktop",
  "remoteNumber": "07XXXXXXXX",
  "remoteDisplayName": "Max",
  "data": {
    "originator": "local",
    "cause": "Terminated",
    "statusCode": null,
    "reasonPhrase": null
  }
}

Properties

PropertyTypeRequiredDescription
eventIdstringYesUnique identifier for this event message.
createdAtstringYesTime the event occurred, formatted as an ISO 8601 UTC timestamp.
eventTypestringYesName of the event. For this message, the value is phone.call.ended.
directionstringYesDirection of the call. Observed values are incoming and outgoing.
callRefstringYesUnique reference for the call. This value can be used to correlate events for the same call.
connectionIdstringYesUnique identifier for the phone connection.
deviceRegistrationUUIDstringYesUnique identifier for the registered phone device.
virtualDeviceRegistrationUUIDstringYesUnique identifier for the virtual device registration associated with the call.
phoneServiceUUIDstringConditionalUnique identifier for the phone service. Present in the provided incoming call examples.
voxletInstanceUUIDstringConditionalUnique identifier for the Voxlet instance. Present in the provided incoming call examples.
statestringYesCurrent call state. For this event, the observed value is ended.
onHoldbooleanYesIndicates whether the call is currently on hold.
sttobjectYesSpeech-to-text status for the local and remote parties.
localNumberstringYesNumber or identifier for the local party.
localDisplayNamestringYesDisplay name for the local party.
remoteNumberstringYesNumber or identifier for the remote party.
remoteDisplayNamestring/nullYesDisplay name for the remote party, or null when unavailable.
dataobjectYesAdditional information about why the call ended.

stt object

PropertyTypeRequiredDescription
stt.localbooleanYesIndicates whether speech-to-text is enabled or active for the local party.
stt.remotebooleanYesIndicates whether speech-to-text is enabled or active for the remote party.

data object

PropertyTypeRequiredDescription
data.originatorstringYesParty that originated the call termination. Observed values are local and remote.
data.causestringYesCause of the call termination. Example value is Terminated.
data.statusCodenumber/nullConditionalStatus code associated with the call termination, or null when unavailable.
data.reasonPhrasestring/nullConditionalHuman-readable reason phrase associated with the call termination, or null when unavailable.

phone.call.hold

Emitted when a call is placed on hold.

{
  "eventId": "e98700cb-ffe1-4ed1-a617-389c11307497",
  "createdAt": "2026-07-03T14:42:35.746Z",
  "eventType": "phone.call.hold",
  "direction": "incoming",
  "callRef": "e06ce829-ce09-4ec1-850f-95081216078c",
  "connectionId": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "deviceRegistrationUUID": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "virtualDeviceRegistrationUUID": "e4971753-daca-4c9f-9717-53daca1c9f51",
  "phoneServiceUUID": "3e560df5-3792-4206-960d-f53792020693",
  "voxletInstanceUUID": "c5e8e1f6-50c5-48c0-a8e1-f650c5a8c08f",
  "state": "confirmed",
  "onHold": true,
  "stt": {
    "local": true,
    "remote": true
  },
  "localNumber": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "localDisplayName": "Voxtop Desktop",
  "remoteNumber": "07XXXXXXXX",
  "remoteDisplayName": "Max"
}

Properties

PropertyTypeRequiredDescription
eventIdstringYesUnique identifier for this event message.
createdAtstringYesTime the event occurred, formatted as an ISO 8601 UTC timestamp.
eventTypestringYesName of the event. For this message, the value is phone.call.hold.
directionstringYesDirection of the call. Observed value is incoming.
callRefstringYesUnique reference for the call. This value can be used to correlate events for the same call.
connectionIdstringYesUnique identifier for the phone connection.
deviceRegistrationUUIDstringYesUnique identifier for the registered phone device.
virtualDeviceRegistrationUUIDstringYesUnique identifier for the virtual device registration associated with the call.
phoneServiceUUIDstringYesUnique identifier for the phone service.
voxletInstanceUUIDstringYesUnique identifier for the Voxlet instance.
statestringYesCurrent call state. For this event, the observed value is confirmed.
onHoldbooleanYesIndicates whether the call is currently on hold. For this event, the value is true.
sttobjectYesSpeech-to-text status for the local and remote parties.
localNumberstringYesNumber or identifier for the local party.
localDisplayNamestringYesDisplay name for the local party.
remoteNumberstringYesNumber or identifier for the remote party.
remoteDisplayNamestring/nullYesDisplay name for the remote party, or null when unavailable.

stt object

PropertyTypeRequiredDescription
stt.localbooleanYesIndicates whether speech-to-text is enabled or active for the local party.
stt.remotebooleanYesIndicates whether speech-to-text is enabled or active for the remote party.

phone.call.unhold

Emitted when a call is taken off hold.

{
  "eventId": "891fb14f-1cb2-4856-b568-0b50f5d41a9c",
  "createdAt": "2026-07-03T14:42:40.213Z",
  "eventType": "phone.call.unhold",
  "direction": "incoming",
  "callRef": "e06ce829-ce09-4ec1-850f-95081216078c",
  "connectionId": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "deviceRegistrationUUID": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "virtualDeviceRegistrationUUID": "e4971753-daca-4c9f-9717-53daca1c9f51",
  "phoneServiceUUID": "3e560df5-3792-4206-960d-f53792020693",
  "voxletInstanceUUID": "c5e8e1f6-50c5-48c0-a8e1-f650c5a8c08f",
  "state": "confirmed",
  "onHold": false,
  "stt": {
    "local": true,
    "remote": true
  },
  "localNumber": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "localDisplayName": "Voxtop Desktop",
  "remoteNumber": "07XXXXXXXX",
  "remoteDisplayName": "Max"
}

Properties

PropertyTypeRequiredDescription
eventIdstringYesUnique identifier for this event message.
createdAtstringYesTime the event occurred, formatted as an ISO 8601 UTC timestamp.
eventTypestringYesName of the event. For this message, the value is phone.call.unhold.
directionstringYesDirection of the call. Observed value is incoming.
callRefstringYesUnique reference for the call. This value can be used to correlate events for the same call.
connectionIdstringYesUnique identifier for the phone connection.
deviceRegistrationUUIDstringYesUnique identifier for the registered phone device.
virtualDeviceRegistrationUUIDstringYesUnique identifier for the virtual device registration associated with the call.
phoneServiceUUIDstringYesUnique identifier for the phone service.
voxletInstanceUUIDstringYesUnique identifier for the Voxlet instance.
statestringYesCurrent call state. For this event, the observed value is confirmed.
onHoldbooleanYesIndicates whether the call is currently on hold. For this event, the value is false.
sttobjectYesSpeech-to-text status for the local and remote parties.
localNumberstringYesNumber or identifier for the local party.
localDisplayNamestringYesDisplay name for the local party.
remoteNumberstringYesNumber or identifier for the remote party.
remoteDisplayNamestring/nullYesDisplay name for the remote party, or null when unavailable.

stt object

PropertyTypeRequiredDescription
stt.localbooleanYesIndicates whether speech-to-text is enabled or active for the local party.
stt.remotebooleanYesIndicates whether speech-to-text is enabled or active for the remote party.

phone.call.muted

Emitted when the local call audio is muted.

{
  "eventId": "db308856-3dd9-4840-a738-2ccca828c8ea",
  "createdAt": "2026-07-03T14:51:21.344Z",
  "eventType": "phone.call.muted",
  "direction": "outgoing",
  "callRef": "aa3382b8-db67-413f-bfbe-bbf03959347c",
  "connectionId": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "deviceRegistrationUUID": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "virtualDeviceRegistrationUUID": "e4971753-daca-4c9f-9717-53daca1c9f51",
  "state": "confirmed",
  "onHold": false,
  "stt": {
    "local": true,
    "remote": true
  },
  "localNumber": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "localDisplayName": "Voxtop Desktop",
  "remoteNumber": "123",
  "remoteDisplayName": null
}

Properties

PropertyTypeRequiredDescription
eventIdstringYesUnique identifier for this event message.
createdAtstringYesTime the event occurred, formatted as an ISO 8601 UTC timestamp.
eventTypestringYesName of the event. For this message, the value is phone.call.muted.
directionstringYesDirection of the call. Observed value is outgoing.
callRefstringYesUnique reference for the call. This value can be used to correlate events for the same call.
connectionIdstringYesUnique identifier for the phone connection.
deviceRegistrationUUIDstringYesUnique identifier for the registered phone device.
virtualDeviceRegistrationUUIDstringYesUnique identifier for the virtual device registration associated with the call.
statestringYesCurrent call state. For this event, the observed value is confirmed.
onHoldbooleanYesIndicates whether the call is currently on hold.
sttobjectYesSpeech-to-text status for the local and remote parties.
localNumberstringYesNumber or identifier for the local party.
localDisplayNamestringYesDisplay name for the local party.
remoteNumberstringYesNumber or identifier for the remote party.
remoteDisplayNamestring/nullYesDisplay name for the remote party, or null when unavailable.

stt object

PropertyTypeRequiredDescription
stt.localbooleanYesIndicates whether speech-to-text is enabled or active for the local party.
stt.remotebooleanYesIndicates whether speech-to-text is enabled or active for the remote party.

phone.call.unmuted

Emitted when the local call audio is unmuted.

{
  "eventId": "db308856-3dd9-4840-a738-2ccca828c8ea",
  "createdAt": "2026-07-03T14:51:21.344Z",
  "eventType": "phone.call.unmuted",
  "direction": "outgoing",
  "callRef": "aa3382b8-db67-413f-bfbe-bbf03959347c",
  "connectionId": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "deviceRegistrationUUID": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "virtualDeviceRegistrationUUID": "e4971753-daca-4c9f-9717-53daca1c9f51",
  "state": "confirmed",
  "onHold": false,
  "stt": {
    "local": true,
    "remote": true
  },
  "localNumber": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "localDisplayName": "Voxtop Desktop",
  "remoteNumber": "123",
  "remoteDisplayName": null
}

Properties

PropertyTypeRequiredDescription
eventIdstringYesUnique identifier for this event message.
createdAtstringYesTime the event occurred, formatted as an ISO 8601 UTC timestamp.
eventTypestringYesName of the event. For this message, the value is phone.call.unmuted.
directionstringYesDirection of the call. Observed value is outgoing.
callRefstringYesUnique reference for the call. This value can be used to correlate events for the same call.
connectionIdstringYesUnique identifier for the phone connection.
deviceRegistrationUUIDstringYesUnique identifier for the registered phone device.
virtualDeviceRegistrationUUIDstringYesUnique identifier for the virtual device registration associated with the call.
statestringYesCurrent call state. For this event, the observed value is confirmed.
onHoldbooleanYesIndicates whether the call is currently on hold.
sttobjectYesSpeech-to-text status for the local and remote parties.
localNumberstringYesNumber or identifier for the local party.
localDisplayNamestringYesDisplay name for the local party.
remoteNumberstringYesNumber or identifier for the remote party.
remoteDisplayNamestring/nullYesDisplay name for the remote party, or null when unavailable.

stt object

PropertyTypeRequiredDescription
stt.localbooleanYesIndicates whether speech-to-text is enabled or active for the local party.
stt.remotebooleanYesIndicates whether speech-to-text is enabled or active for the remote party.

phone.call.blindTransfer.started

Emitted when a blind transfer has been started for an active call.

{
  "eventId": "8bb8cce7-e3de-4b44-af91-3c7259c1f885",
  "createdAt": "2026-07-03T15:21:55.150Z",
  "eventType": "phone.call.blindTransfer.started",
  "direction": "incoming",
  "callRef": "e257a740-a93f-44f7-b727-e89e8e6f71bb",
  "connectionId": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "deviceRegistrationUUID": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "virtualDeviceRegistrationUUID": "e4971753-daca-4c9f-9717-53daca1c9f51",
  "phoneServiceUUID": "3e560df5-3792-4206-960d-f53792020693",
  "voxletInstanceUUID": "c5e8e1f6-50c5-48c0-a8e1-f650c5a8c08f",
  "state": "confirmed",
  "onHold": true,
  "stt": {
    "local": true,
    "remote": true
  },
  "localNumber": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "localDisplayName": "Voxtop Desktop",
  "remoteNumber": "0203XXXXXXX",
  "remoteDisplayName": "Max",
  "data": {
    "targetNumber": "07XXXXXXXX"
  }
}

Properties

PropertyTypeRequiredDescription
eventIdstringYesUnique identifier for this event message.
createdAtstringYesTime the event occurred, formatted as an ISO 8601 UTC timestamp.
eventTypestringYesName of the event. For this message, the value is phone.call.blindTransfer.started.
directionstringYesDirection of the call. Observed value is incoming.
callRefstringYesUnique reference for the call. This value can be used to correlate events for the same call.
connectionIdstringYesUnique identifier for the phone connection.
deviceRegistrationUUIDstringYesUnique identifier for the registered phone device.
virtualDeviceRegistrationUUIDstringYesUnique identifier for the virtual device registration associated with the call.
phoneServiceUUIDstringYesUnique identifier for the phone service.
voxletInstanceUUIDstringYesUnique identifier for the Voxlet instance.
statestringYesCurrent call state at the time the blind transfer is started. Observed value is confirmed.
onHoldbooleanYesIndicates whether the call is currently on hold. For this event, the value is true.
sttobjectYesSpeech-to-text status for the local and remote parties.
localNumberstringYesNumber or identifier for the local party.
localDisplayNamestringYesDisplay name for the local party.
remoteNumberstringYesNumber or identifier for the remote party.
remoteDisplayNamestring/nullYesDisplay name for the remote party, or null when unavailable.
dataobjectYesAdditional blind transfer information.

stt object

PropertyTypeRequiredDescription
stt.localbooleanYesIndicates whether speech-to-text is enabled or active for the local party.
stt.remotebooleanYesIndicates whether speech-to-text is enabled or active for the remote party.

data object

PropertyTypeRequiredDescription
data.targetNumberstringYesNumber that the call is being transferred to.

phone.call.blindTransfer.succeeded

Emitted when a blind transfer has completed successfully.

{
  "eventId": "c84db670-f5de-4ccc-9625-916af60d0820",
  "createdAt": "2026-07-03T15:21:55.211Z",
  "eventType": "phone.call.blindTransfer.succeeded",
  "direction": "incoming",
  "callRef": "e257a740-a93f-44f7-b727-e89e8e6f71bb",
  "connectionId": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "deviceRegistrationUUID": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "virtualDeviceRegistrationUUID": "e4971753-daca-4c9f-9717-53daca1c9f51",
  "phoneServiceUUID": "3e560df5-3792-4206-960d-f53792020693",
  "voxletInstanceUUID": "c5e8e1f6-50c5-48c0-a8e1-f650c5a8c08f",
  "state": "confirmed",
  "onHold": true,
  "stt": {
    "local": true,
    "remote": true
  },
  "localNumber": "8f1fa31a-2389-4412-9fa3-1a23892412ea",
  "localDisplayName": "Voxtop Desktop",
  "remoteNumber": "0203XXXXXXX",
  "remoteDisplayName": "Max",
  "data": {
    "targetNumber": "07XXXXXXXX",
    "statusCode": 202
  }
}

Properties

PropertyTypeRequiredDescription
eventIdstringYesUnique identifier for this event message.
createdAtstringYesTime the event occurred, formatted as an ISO 8601 UTC timestamp.
eventTypestringYesName of the event. For this message, the value is phone.call.blindTransfer.succeeded.
directionstringYesDirection of the call. Observed value is incoming.
callRefstringYesUnique reference for the call. This value can be used to correlate events for the same call.
connectionIdstringYesUnique identifier for the phone connection.
deviceRegistrationUUIDstringYesUnique identifier for the registered phone device.
virtualDeviceRegistrationUUIDstringYesUnique identifier for the virtual device registration associated with the call.
phoneServiceUUIDstringYesUnique identifier for the phone service.
voxletInstanceUUIDstringYesUnique identifier for the Voxlet instance.
statestringYesCurrent call state at the time the blind transfer succeeds. Observed value is confirmed.
onHoldbooleanYesIndicates whether the call is currently on hold. For this event, the value is true.
sttobjectYesSpeech-to-text status for the local and remote parties.
localNumberstringYesNumber or identifier for the local party.
localDisplayNamestringYesDisplay name for the local party.
remoteNumberstringYesNumber or identifier for the remote party.
remoteDisplayNamestring/nullYesDisplay name for the remote party, or null when unavailable.
dataobjectYesAdditional blind transfer result information.

stt object

PropertyTypeRequiredDescription
stt.localbooleanYesIndicates whether speech-to-text is enabled or active for the local party.
stt.remotebooleanYesIndicates whether speech-to-text is enabled or active for the remote party.

data object

PropertyTypeRequiredDescription
data.targetNumberstringYesNumber that the call was transferred to.
data.statusCodenumberYesStatus code returned for the blind transfer request. Example value is 202.

phone.call.blindTransfer.failed

Emitted when a blind transfer has failed.

© ServedUp 2026