Asterisk 20.1.0 Directory Application

Good Morning!

We use ODBC for voicemail on Asterisk 20.1.0.

When we create a mailbox programmatically and insert the greeting and unavailable message into the database, it works great for leaving voicemail, both the greeting and unavailable message are played where appropriate.

However, the Directory Application will not play the programmatically database inserted greeting until after the mailbox has been accessed using the VoiceMail Application at least once. Before you access the mailbox using VoiceMail Application it just reads the letters of the name instead of playing the greeting.

I’ve tried things like using the AMI Command “VoicemailRefresh” as well as simply using the cli to “voicemail reload” but cannot get Directory to play the greeting until the mailbox is accessed at least once with VoiceMail.

I also tried manually inserting a msg_id in the form of unix timestamp and adding ‘-0000000x’, no luck there.

Assuming that VoiceMail is updating something the first time to get the greeting to play in Directory, any clue how to force this or insights into what’s happening?

Thanks for any help :slight_smile:


I did poke around in app_directory.c and found where it plays the greeting but lost on how it checks for a greeting to determine whether to play it or play the letters.

I did notice that when we pragmatically create the database entry the msg_id is null, however, when you access the mailbox via VoiceMail for the first time the msg_id gets populated with what looks like just a unix timestamp and sequential number separated by a dash.

Just accessing VoiceMail seems to trigger this, you don’t even have to wait for the beep.

I tried just inserting a similar string to see if it would trigger the greeting being played, no luck.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.