Kazoo Voicemail

This library is for accessing and managing all voicemail messages in the system.

As of Kazoo 4.0 all new voicemail messages and CDRs are store in acount’s MODB. If you’re using Kazoo older than 4.0 (like 3.x) and want to upgrade to Kazoo 5+, the correct path to upgrade is first upgrade to the latest Kazoo 4.0, run migration for voicemails and CDRs then upgrade to Kazoo 5.

Caution: Kazoo 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, Kazoo 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.

Kazoo 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 Kazoo data layer.

System Config Settings

KeyDescriptionTypeDefaultRequired
voicemail.after_forward_actionAction to perform after forwarding a voicemail message`string(‘prompt''save’)`save
voicemail.delete_after_notifyMove the voicemail to delete folder after the notification has been sentboolean()falsefalse
voicemail.extensionDefault media file format for voicemail audio filestring()mp3false
voicemail.force_require_pinIf true, ignore the setting on the voicemail box and require all users to enter a pinboolean()falsefalse
voicemail.max_box_number_lengthMaximum length of voicemail box numberinteger()15false
voicemail.max_login_attemptsMaximum login attempts to voicemail boxinteger()3false
voicemail.max_message_countMaximum number of voicemail messages a mailbox can holdinteger()100false
voicemail.max_message_lengthMaximum message length in secondsinteger()500false
voicemail.max_pin_lengthMaximum pin number length for mailboxinteger()6false
voicemail.message_retention_durationHow many days back are searched when listing voicemailsinteger()93false
voicemail.min_message_sizeMinimum message length in milliseconds a voicemail message must be to consider it to save in databaseinteger()500false
voicemail.save_after_notifyMove the voicemail to save folder after the notification has been sent (This setting will override delete_after_notify)boolean()falsefalse
voicemail.vm_message_forward_typeEnable or disable the ability to prepend a message when forwarding a voicemail messagestring()only_forwardfalse

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.

On this page