Voice mail hangs up if play CID and play envelope is on

If play CID and Play envelope are on in the user’s profile the call will hang up before the message is played. I was just wondering if any other users have come across this.


There’s probably a missing sound file. Check the asterisk log (/var/log/asterisk/full) to see which one is missing. What language are you using?

I have the exact same problem. FreePBX Language is English. The logfile shows the following:

2418 [2022-09-26 18:53:50] VERBOSE[25757][C-0000000d] pbx.c: Executing [*[email protected]:118] VoiceMailMain(“PJSIP/7568-00000014”, “[email protected]”) in new stack
2419 [2022-09-26 18:53:50] VERBOSE[25757][C-0000000d] file.c: <PJSIP/7568-00000014> Playing ‘vm-password.ulaw’ (language ‘en’)
2420 [2022-09-26 18:53:55] VERBOSE[25757][C-0000000d] file.c: <PJSIP/7568-00000014> Playing ‘vm-youhave.ulaw’ (language ‘en’)
2421 [2022-09-26 18:53:56] VERBOSE[25757][C-0000000d] file.c: <PJSIP/7568-00000014> Playing ‘digits/1.ulaw’ (language ‘en’)
2422 [2022-09-26 18:53:57] VERBOSE[25757][C-0000000d] file.c: <PJSIP/7568-00000014> Playing ‘vm-INBOX.ulaw’ (language ‘en’)
2423 [2022-09-26 18:53:57] VERBOSE[25757][C-0000000d] file.c: <PJSIP/7568-00000014> Playing ‘vm-and.ulaw’ (language ‘en’)
2424 [2022-09-26 18:53:58] VERBOSE[25757][C-0000000d] file.c: <PJSIP/7568-00000014> Playing ‘digits/2.ulaw’ (language ‘en’)
2425 [2022-09-26 18:53:59] VERBOSE[25757][C-0000000d] file.c: <PJSIP/7568-00000014> Playing ‘vm-Old.ulaw’ (language ‘en’)
2426 [2022-09-26 18:54:00] VERBOSE[25757][C-0000000d] file.c: <PJSIP/7568-00000014> Playing ‘vm-messages.ulaw’ (language ‘en’)
2427 [2022-09-26 18:54:01] VERBOSE[25757][C-0000000d] file.c: <PJSIP/7568-00000014> Playing ‘vm-onefor.ulaw’ (language ‘en’)
2428 [2022-09-26 18:54:02] VERBOSE[25757][C-0000000d] file.c: <PJSIP/7568-00000014> Playing ‘vm-INBOX.ulaw’ (language ‘en’)
2429 [2022-09-26 18:54:02] VERBOSE[25757][C-0000000d] file.c: <PJSIP/7568-00000014> Playing ‘vm-first.ulaw’ (language ‘en’)
2430 [2022-09-26 18:54:03] VERBOSE[25757][C-0000000d] file.c: <PJSIP/7568-00000014> Playing ‘vm-message.ulaw’ (language ‘en’)
2431 [2022-09-26 18:54:04] VERBOSE[25757][C-0000000d] file.c: <PJSIP/7568-00000014> Playing ‘vm-from-phonenumber.ulaw’ (language ‘en’)
**2432 [2022-09-26 18:54:06] WARNING[25757][C-0000000d] file.c: File does not exist in any format **
2433 [2022-09-26 18:54:06] WARNING[25757][C-0000000d] file.c: Unable to open (format (ulaw)): No such file or directory
2434 [2022-09-26 18:54:06] VERBOSE[25757][C-0000000d] pbx.c: Spawn extension (from-internal, *97, 118) exited non-zero on ‘PJSIP/7568-00000014’
2435 [2022-09-26 18:54:06] VERBOSE[25757][C-0000000d] pbx.c: Executing [[email protected]:1] Macro(“PJSIP/7568-00000014”, “hangupcall”) in new stack
2436 [2022-09-26 18:54:06] VERBOSE[25757][C-0000000d] pbx.c: Executing [[email protected]:1] GotoIf(“PJSIP/7568-00000014”, “1?theend”) in new stack

It looks like it is missing a file trying to play back the phone number.

All digits should be in the /var/lib/asterisk/sounds/en/digits directory.

Is there anything peculiar about the caller ID that left the message?

Every voicemail fails, and there is nothing particular about this number that I can tell. All of the digits are in the digits directory.

Do you hear it say “message from phone number” before it hangs up?

If not, maybe that’s the file that is missing - but it looks from your log like it is playing it.

I just updated FreePBX to current and mine is working fine so I may not be able to offer any more help. I chimed in because it seems that in every case, the hangup is due to a sound file missing.

Yes, it says “Message from phone number” and then hangs up. Thank you for trying to help!

What version of Asterisk is in use?

The asterisk version is 16.28.0

There’s nothing recent in that area and I haven’t seen any issue reports. There was a bug fix in January, but that fix is in 16.28.0. Can you absolutely confirm the output of “core show version”?

I apologize; I do not understand what you mean by “Can you absolutely confirm the output of “core show version”?” I am a very novice freepbx user.

I was referring to going into the Asterisk console in SSH using “asterisk -r” and typing “core show version” to confirm the running version of Asterisk.

Thank you for the clarification. I ran the command, and this is the response:

Asterisk 16.28.0 built by mockbuild @ jenkins7 on a x86_64 running Linux on 2022-08-24 07:09:03 UTC

This probably only started on 9/12. We switched our extensions to be PJSIP instead of sip because of some other problems that we were having. Everything else works great now except for this voicemail issue. If I turn CID off, the voicemail works fine, but people like to hear the number on their vm.

Are there any characters other than + and digits (and possibly space and hyphen) in the caller ID, e.g. as the result of STIR/SHAKEN annotation?

Also, can you provide the exact form of this line (mark it up as preformatted text):

as there should be a file name between File and does, and whether that is a space or completely empty may be significant.

1703	[2022-09-27 14:55:08] VERBOSE[10543][C-00000027] file.c: <PJSIP/7568-0000003a> Playing 'vm-youhave.ulaw' (language 'en')	
1704	[2022-09-27 14:55:09] VERBOSE[10543][C-00000027] file.c: <PJSIP/7568-0000003a> Playing 'digits/1.ulaw' (language 'en')	
1705	[2022-09-27 14:55:10] VERBOSE[10543][C-00000027] file.c: <PJSIP/7568-0000003a> Playing 'vm-INBOX.ulaw' (language 'en')	
1706	[2022-09-27 14:55:11] VERBOSE[10543][C-00000027] file.c: <PJSIP/7568-0000003a> Playing 'vm-and.ulaw' (language 'en')	
1707	[2022-09-27 14:55:12] VERBOSE[10543][C-00000027] file.c: <PJSIP/7568-0000003a> Playing 'digits/2.ulaw' (language 'en')	
1708	[2022-09-27 14:55:12] VERBOSE[10543][C-00000027] file.c: <PJSIP/7568-0000003a> Playing 'vm-Old.ulaw' (language 'en')	
1709	[2022-09-27 14:55:13] VERBOSE[10543][C-00000027] file.c: <PJSIP/7568-0000003a> Playing 'vm-messages.ulaw' (language 'en')	
1710	[2022-09-27 14:55:14] VERBOSE[10543][C-00000027] file.c: <PJSIP/7568-0000003a> Playing 'vm-onefor.ulaw' (language 'en')	
1711	[2022-09-27 14:55:16] VERBOSE[10543][C-00000027] file.c: <PJSIP/7568-0000003a> Playing 'vm-INBOX.ulaw' (language 'en')	
1712	[2022-09-27 14:55:17] VERBOSE[10543][C-00000027] file.c: <PJSIP/7568-0000003a> Playing 'vm-messages.ulaw' (language 'en')	
1713	[2022-09-27 14:55:17] VERBOSE[10543][C-00000027] file.c: <PJSIP/7568-0000003a> Playing 'vm-first.ulaw' (language 'en')	
1714	[2022-09-27 14:55:18] VERBOSE[10543][C-00000027] file.c: <PJSIP/7568-0000003a> Playing 'vm-message.ulaw' (language 'en')	
1715	[2022-09-27 14:55:19] VERBOSE[10543][C-00000027] file.c: <PJSIP/7568-0000003a> Playing 'vm-from-phonenumber.ulaw' (language 'en')	
1716	[2022-09-27 14:55:20] WARNING[10543][C-00000027] file.c: File does not exist in any format	
1717	[2022-09-27 14:55:20] WARNING[10543][C-00000027] file.c: Unable to open (format (ulaw)): No such file or directory	
1718	[2022-09-27 14:55:20] VERBOSE[10543][C-00000027] pbx.c: Spawn extension (from-internal, *97, 118) exited non-zero on 'PJSIP/7568-0000003a'	
1719	[2022-09-27 14:55:20] VERBOSE[10543][C-00000027] pbx.c: Executing [[email protected]:1] Macro("PJSIP/7568-0000003a", "hangupcall") in new stack	
1720	[2022-09-27 14:55:20] VERBOSE[10543][C-00000027] pbx.c: Executing [[email protected]:1] GotoIf("PJSIP/7568-0000003a", "1?theend") in new stack	
1721	[2022-09-27 14:55:20] VERBOSE[10543][C-00000027] pbx_builtins.c: Goto (macro-hangupcall,s,3)	
1722	[2022-09-27 14:55:20] VERBOSE[10543][C-00000027] pbx.c: Executing [[email protected]:3] ExecIf("PJSIP/7568-0000003a", "0?Set(CDR(recordingfile)=)") in new stack	
1723	[2022-09-27 14:55:20] VERBOSE[10543][C-00000027] pbx.c: Executing [[email protected]:4] Hangup("PJSIP/7568-0000003a", "") in new stack	
1724	[2022-09-27 14:55:20] VERBOSE[10543][C-00000027] app_macro.c: Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'PJSIP/7568-0000003a' in macro 'hangupcall'	
1725	[2022-09-27 14:55:20] VERBOSE[10543][C-00000027] pbx.c: Spawn extension (from-internal, h, 1) exited non-zero on 'PJSIP/7568-0000003a'

Here is what the CID says in the User Control Panel: “SMITH,JOHN” <+12345678521> (I changed the name and number for privacy).

Unfortunately you have lost at least one space, as there can’t be less than two spaces between File and does.

However there does seem to be a problem with the code that processes numbers, if the first character is not considered a digit, or there is no sound file for that digit. The code maintains a count of characters processed, num, but actually uses it when it should be using a count of characters output, or a first character output flag. If the first character output is not the first one input, an & delimiter is inserted before it, when the delimiter should only be inserted between output characters. (Output characters are actually the names of the files for the audio name of the character.)

  • isn’t considered a valid digit. This problem still seems to exist in the github master version.

I think you need to raise this on issues.asterisk.org. This problem potentially affects other say routines.

Another way of doing this would be to make the format string a variable, initialised to the first variant, and then changed to the second one, when used.

If the bug has to do with the + sign in the caller ID, an expedient workaround (if acceptable to the users) would be to normalize the caller ID to eliminate the +.

@hhafemann setting the trunk’s context to from-pstn-e164-us should do this.

@billsimon, will that break anything else if I change the context? I can give that a try later today when everyone is done working for the day.

@billsimon I think it might be the plus sign. But we can’t eliminate the plus from the trunk or we won’t be able to make a call out. Do you think there is another way to fix this? I have turned off “Play CID” for each extension and it did resolve the problem for now. Should we open a ticket with asterisk?

Thanks in advance for all your help.

It only changes the format of the caller ID presented on inbound calls.