2600Hz Voicemail
This library is for accessing and managing all voicemail messages in the system.
As of 2600Hz 4.0 all new voicemail messages and CDRs are store in acount’s MODB. If you’re using 2600Hz older than 4.0 (like 3.x) and want to upgrade to 2600Hz 5+, the correct path to upgrade is first upgrade to the latest 2600Hz 4.0, run migration for voicemails and CDRs then upgrade to 2600Hz 5.
Caution: 2600Hz 4.0 assumes you migrated all voicemail messages to MODB, and it’s only using MODBs for accessing and managing messages. If you did not do the migration users can not access to their messages.
Additionally, the voicemail Crossbar API will no longer returns the messages
array when fetching voicemail box settings.
Messages in MODB
Voicemails used to be stored in the same location as configuration settings. Accounts older than 12 months would often get too big, thus this became a design issue. Voicemails have now been redesigned so that the messages are stored in a monthly database that can be purged later.
All messages store in MODBs with their document id in the YYYYMM-{32_random_character}
format.
Migrate Messages to MODB Process
Simply moving all messages alongside their media recording to MODBs have huge impact on the system, especially if for bigger systems with thousands of messages in each account or mailbox.
For making this transition easy and without any side effect, 2600Hz voicemail is just making a new document with each message’s metadata and store them in the MODB of each account. The MODB is determined base on time stamp (when the message left) of the message.
All media recording attachments (documents with type private_media
) remain in account DB, and can be moved to message their counterpart documents in MODBs at later time. Each moved message documents contain necessary information for how to access their attachments from the account DB(soft attachment) if their attachment is not migrated.
2600Hz Data Manager would fetch the actual media attachment from account DB if the message attachment is a soft attachment. This process is seamless from users and are handled entirely by 2600Hz data layer.
System Config Settings
Key | Description | Type | Default | Required |
---|---|---|---|---|
voicemail.after_forward_action | Action to perform after forwarding a voicemail message | `string(‘prompt' | 'save’)` | save |
voicemail.delete_after_notify | Move the voicemail to delete folder after the notification has been sent | boolean() | false | false |
voicemail.extension | Default media file format for voicemail audio file | string() | mp3 | false |
voicemail.force_require_pin | If true, ignore the setting on the voicemail box and require all users to enter a pin | boolean() | false | false |
voicemail.max_box_number_length | Maximum length of voicemail box number | integer() | 15 | false |
voicemail.max_login_attempts | Maximum login attempts to voicemail box | integer() | 3 | false |
voicemail.max_message_count | Maximum number of voicemail messages a mailbox can hold | integer() | 100 | false |
voicemail.max_message_length | Maximum message length in seconds | integer() | 500 | false |
voicemail.max_pin_length | Maximum pin number length for mailbox | integer() | 6 | false |
voicemail.message_retention_duration | How many days back are searched when listing voicemails | integer() | 93 | false |
voicemail.min_message_size | Minimum message length in milliseconds a voicemail message must be to consider it to save in database | integer() | 500 | false |
voicemail.save_after_notify | Move the voicemail to save folder after the notification has been sent (This setting will override delete_after_notify) | boolean() | false | false |
voicemail.vm_message_forward_type | Enable or disable the ability to prepend a message when forwarding a voicemail message | string() | only_forward | false |
Retention Duration
There is a new configuration parameter, message_retention_duration
, that specifies how many days back are searched when listing voicemails, default value is 93
days (3 months). Messages older than this value will not accessible through API and mail box, but they are still exists in monthly databases and can be purged later by system administrator.