Voice Messaging Services

Voice Mail Main Parameters

Display user’s voice mail settings

GET /api/v1/tenants/(string: tenant_id)/groups/(string: group_id)/users/(string: user_id)/services/voice_messaging/basic_config/

Retrieve the settings of the Voice Messaging service of the user.

Example request:

GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/voice_messaging/basic_config/ HTTP/1.1
Host: example.com

{}

Example response:

HTTP/1.1 200 OK
Content-Type: "application/json"

{
   "active": false,
   "processing": "Unified",
   "voiceMessageDeliveryEmailAddress": "",
   "usePhoneMessageWaitingIndicator": true,
   "alwaysRedirectToVoiceMail": false,
   "busyRedirectToVoiceMail": true,
   "noAnswerRedirectToVoiceMail": true,
   "outOfPrimaryZoneRedirectToVoiceMail": false,
   "sendVoiceMessageNotifyEmail": false,
   "voiceMessageNotifyEmailAddress": "",
   "sendCarbonCopyVoiceMessage": false,
   "voiceMessageCarbonCopyEmailAddress": "",
   "transferOnZeroToPhoneNumber": false,
   "transferPhoneNumber": ""
}
Response JSON Object:
Status Codes:

Update a user’s voice mail settings

PUT /api/v1/tenants/(string: tenant_id)/groups/(string: group_id)/users/(string: user_id)/services/voice_messaging/basic_config/

Update the settings of the Voice Messaging service of the user.

Example request:

PUT /api/v1/tenants/foo/groups/foogroup/users/foouser/services/voice_messaging/basic_config/ HTTP/1.1
Host: example.com
Content-Type: "application/json"

{
   "active": true,
   "processing": "Address Only",
   "voiceMessageDeliveryEmailAddress": "test_mail@test.netaxis.be",
   "usePhoneMessageWaitingIndicator": false,
   "alwaysRedirectToVoiceMail": true,
   "busyRedirectToVoiceMail": false,
   "noAnswerRedirectToVoiceMail": false,
   "outOfPrimaryZoneRedirectToVoiceMail": false
}
Request JSON Object:

Example response:

Response:

Similar to GET instance method response.

Status Codes:
  • 200 OK – no error

  • 404 Not Found – the service is not assigned to the user

  • 400 Bad Request

    error during the update. With among others:

    • 2: INVALID_PARAMETERS, on parameter “transcribe” and message “Transcribe feature is not enabled in your profile”, if transcribe is asked and no Transcribe Service Pack is assigned.

    • 2: INVALID_PARAMETERS, on parameter “transcribe” and message “Transcribe feature is not enabled at global level”, if transcribe is asked and Transcribe feature is not enabled in APIO.

Configuration Settings

The transcribe logic is controlled by the following Configuration Settings (the value presented are the default ones):

"VOICEMAIL_TRANSCRIBE_AVAILABLE": false,
"VOICEMAIL_TRANSCRIBE_SILENT_DISCARD": true,
"VOICEMAIL_TRANSCRIBE_LIST_SP": []
Explanation of the parameters:
  • VOICEMAIL_TRANSCRIBE_AVAILABLE: Global flag that enable or not the transcribe feature.

  • VOICEMAIL_TRANSCRIBE_SILENT_DISCARD: If false, when “transcribe” parameter is received but feature is not enabled or there is no transcribe_ne in the profile of the connected user an error will be returned, else the paramter is ignored (discarded)

  • VOICEMAIL_TRANSCRIBE_LIST_SP: In order to speed up some analysis, it is possible to alsio indicate here what are the Service Packs that have a transcribe feature. But be careful that if you add more transcribe SP in APIO DB but you do not dzfined them here, they could be ignored.

Voice Mail Account Configuration

Retrieve a user’s account configuration

GET /api/v1/tenants/(string: tenant_id)/groups/(string: group_id)/users/(string: user_id)/services/voice_messaging/advanced_config/

Retrieve the settings of the Voice Messaging service of the user.

GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/voice_messaging/advanced_config/ HTTP/1.1
Host: example.com

{}

Example response:

HTTP/1.1 200 OK
Content-Type: "application/json"

{
   "mailServerSelection": "Group",
   "groupMailServerEmailAddress": "test_mail@netaxis.be",
   "groupMailServerUserId": "apio_user",
   "mailboxLimit": 10
}

OR

{
   "mailServerSelection": "Personal",
   "personalMailServerNetAddress": "test_mail_server@netaxis.be",
   "personalMailServerProtocol": "POP3",
   "personalMailServerRealDeleteForImap": true,
   "personalMailServerEmailAddress": "test_mail@netaxis.be",
   "personalMailServerUserId": "apio_user"
}
Response JSON Object:
Status Codes:

Update a user’s account configuration

PUT /api/v1/tenants/(string: tenant_id)/groups/(string: group_id)/users/(string: user_id)/services/voice_messaging/advanced_config/

Update the settings of the Voice Messaging service of the user.

Example request:

PUT /api/v1/tenants/foo/groups/foogroup/users/foouser/services/voice_messaging/advanced_config/ HTTP/1.1
Host: example.com
Content-Type: "application/json"

{
   "mailServerSelection": "Group",
   "groupMailServerEmailAddress": "test_mail@netaxis.be",
   "groupMailServerUserId": "apio_user",
   "groupMailServerPassword": "passwd",
   "mailboxLimit": 10
}

OR

{
   "mailServerSelection": "Personal",
   "personalMailServerNetAddress": "test_mail_server@netaxis.be",
   "personalMailServerProtocol": "POP3",
   "personalMailServerRealDeleteForImap": true,
   "personalMailServerEmailAddress": "test_mail@netaxis.be",
   "personalMailServerUserId": "apio_user",
   "personalMailServerPassword": "passwd"
}
Request JSON Object:

Example response:

Response:

Similar to GET instance method response.

Status Codes:

Voice Mail Announcements Configuration

Display user’s voice messaging announcements

GET /api/v1/tenants/(string: tenant_id)/groups/(string: group_id)/users/(string: user_id)/services/voice_messaging/announcements_repo/

Retrieve the settings of the Voice Messaging Announcements service of the user.

Example request:

GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/voice_messaging/announcements_repo/ HTTP/1.1
Host: example.com

Example response:

HTTP/1.1 200 OK
Content-Type: "application/json"

{
   "disableMessageDeposit": true,
   "disableMessageDepositAction": "Disconnect",
   "greetingOnlyForwardDestination": "",
   "busyAnnouncementSelection": "Default",
   "busyPersonalAudioFile": "",
   "noAnswerNumberOfRings": 3,
   "extendedAwayEnabled": false,  # Means: No Answer Greeting = true
   "extendedAwayDisableMessageDeposit": true,
   "extendedAwayAudioFile": "",
   "noAnswerAnnouncementSelection": "Default",
   "noAnswerPersonalAudioFile": ""
}
Response JSON Object:
Status Codes:

Update a user’s voice messaging announcements

PUT /api/v1/tenants/(string: tenant_id)/groups/(string: group_id)/users/(string: user_id)/services/voice_messaging/announcements_repo/

Update the settings of the Voice Messaging Announcements service of the user.

Example request:

PUT /api/v1/tenants/foo/groups/foogroup/users/foouser/services/voice_messaging/announcements_repo/ HTTP/1.1
Host: example.com
Content-Type: "application/json"

{
   "disableMessageDeposit": false,
   "disableMessageDepositAction": "Forward",
   "greetingOnlyForwardDestination": "+3212345678"
   "busyAnnouncementSelection": "Personal",
   "busyPersonalAudioFile": {
      "name": "APIO Test Announcement"
   }
}

  OR

{
   "noAnswerNumberOfRings": 5,
   "extendedAwayEnabled": true,
   "extendedAwayDisableMessageDeposit": false,
   "extendedAwayAudioFile": {
      "name": "APIO Test Announcement"
   }
}

  OR

{
   "extendedAwayEnabled": false,
   "noAnswerAnnouncementSelection": "Personal",
   "noAnswerPersonalAudioFile": {
      "name": "APIO Test Announcement"
   }
}

  OR

{
   "extendedAwayEnabled": false,
   "noAnswerAnnouncementSelection": "Alternate01",
   "noAnswerAlternateGreeting01": {
      "name": "APIO Test Alternate Greeting",
      "audioFile": {
         "name": "APIO Test Announcement"
      }
   }
}
Request JSON Object:

Example response:

Response:

Similar to GET instance method response.

Status Codes:

Voice Mail Messages Access

List user’s voice mails

GET /api/v1/tenants/(string: tenant_id)/groups/(string: group_id)/users/(string: user_id)/services/voice_messaging/voice_mails/

Retrieve the list of voice mails of the user.

Example request:

GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/voice_messaging/voice_mails/ HTTP/1.1
Host: example.com

Example response:

HTTP/1.1 200 OK
Content-Type: "application/json"

{
   "messages": [
      {
         "messageId": "msg_123",
         "time": "2018-05-13 22:34",
         "duration": 4.5,
         "read": false,
         "urgent": true,
         "confidential": true,
         "video": false,
         "fax": false
      }
   ]
}
Response JSON Object:
Status Codes:

Update a user’s voice mails status

PUT /api/v1/tenants/(string: tenant_id)/groups/(string: group_id)/users/(string: user_id)/services/voice_messaging/voice_mails/

Update the status of several voice mails of the user.

Example request:

PUT /api/v1/tenants/foo/groups/foogroup/users/foouser/services/voice_messaging/voice_mails/ HTTP/1.1
Host: example.com
Content-Type: "application/json"

{
   "messages": [
      {
          "messageId": "msg233",
          "read": true
      }
   ]
}
Request JSON Object:

Example response:

Response:

Similar to GET method response.

Status Codes:

Retrieve a user’s voice mail instance

GET /api/v1/tenants/(string: tenant_id)/groups/(string: group_id)/users/(string: user_id)/services/voice_messaging/voice_mails/(string: instance_name)/

Retrieve a voice mail instance of the user.

Example request:

GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/voice_messaging/voice_mails/foovm/ HTTP/1.1
Host: example.com

or

GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/voice_messaging/voice_mails/foovm/ HTTP/1.1
Host: example.com

{
   "outputFormat": "mp3"
}

Example response:

HTTP/1.1 200 OK
Content-Type: "application/json"

{
   "messageInfo" : {
         "time": "2018-05-13 22:34",
         "duration": 4.5,
         "read": false,
         "urgent": true,
         "confidential": true,
         "video": false,
         "fax": false
   }
}
Request JSON Object:
  • outputFormat (string) – Specify the output format of the messageMediaContent’s content. Supported formats: ‘wav’ (default), ‘mp3’

Response JSON Object:
Status Codes:
  • 200 OK – no error

  • 404 Not Found – the service is not assigned to the user or the voice mail message does not exists

Update a user’s voice mail instance

PUT /api/v1/tenants/(string: tenant_id)/groups/(string: group_id)/users/(string: user_id)/services/voice_messaging/voice_mails/(string: instance_name)/

Update the properties of a voice mail message of the user.

Example request:

PUT /api/v1/tenants/foo/groups/foogroup/users/foouser/services/voice_messaging/voice_mails/foovm/ HTTP/1.1
Host: example.com
Content-Type: "application/json"

{
   "time": "2018-05-14 22:34",
   "duration": 4.5,
   "read": true,
   "urgent": false,
   "confidential": false,
}
Request JSON Object:

Example response:

Response:

Similar to GET instance method response.

Status Codes:

Delete a user’s voice message instance

DELETE /api/v1/tenants/(string: tenant_id)/groups/(string: group_id)/users/(string: user_id)/services/voice_messaging/voice_mails/(string: instance_name)/

Delete a voice mail instance of the user.

Example request:

DELETE /api/v1/tenants/foo/groups/foogroup/users/foouser/services/voice_messaging/voice_mails/foovm/ HTTP/1.1
Host: example.com
Content-Type: "application/json"

{}

Example response:

HTTP/1.1 200 OK
Status Codes:

Voice Messaging Message Info

Name

Type

Methods

Description

GET

PUT

messageId

String

A

A

The message ID.

time

String

A

O

The time.

duration

Float

A

O

The duration in seconds.

callingPartyInfo

Object

O

O

As defined as calling_party_info in Voice Messaging Calling Party Info.

read

Boolean

O

O

If set the message has been read.

urgent

Boolean

O

O

If set, the message is urgent.

confidential

Boolean

O

O

If set, the message is confidential.

video

Boolean

O

O

If set, the message is a video.

fax

Boolean

O

O

If set, the message is a fax.

faxPageCount

Integer

O

O

The page counter for the fax

Voice Messaging Calling Party Info

Name

Type

Methods

Description

GET

PUT

name

String

O

A

The name.

userId

String

O

O

The user ID.

address

String

O

O

The address of the calling party.

privacy

Boolean

O

O

Indicate if the contact info are private

Note: first fields are provided in case they are available. If privacy is not not present it is same as false

Voice Messaging Message Content

Name

Type

Methods

Description

GET

mediaType

String

A

The type of the media filefile

content

String

A

The message itself encoded in base64