Voicemail external calls problem

Hello,

I have a strange problem that affect all my external inbound calls.

When I place a internal call to my extension number, the voicemail works correctly, but when I receive a call from outside the message that I leaved into my voicemail doesn’t play, insted is playing the default asterisk voicemail message and the person that is calling is unable to leave his message (the call is end just after the default asterisk voicemail message).

Here the output of the CLI when an external call is received:

Goto (macro-vm,s-NOANSWER,1)
– Executing [s-NOANSWER@macro-vm:1] Macro(“SIP/Messagenet-0000003b”, “get-vmcontext,200”) in new stack
– Executing [s@macro-get-vmcontext:1] Set(“SIP/Messagenet-0000003b”, “VMCONTEXT=default”) in new stack
– Executing [s@macro-get-vmcontext:2] GotoIf(“SIP/Messagenet-0000003b”, “0?200:300”) in new stack
– Goto (macro-get-vmcontext,s,300)
– Executing [s@macro-get-vmcontext:300] NoOp(“SIP/Messagenet-0000003b”, “”) in new stack
– Executing [s-NOANSWER@macro-vm:2] VoiceMail(“SIP/Messagenet-0000003b”, “200@default,u”) in new stack
[2016-01-16 13:21:22] WARNING[8237][C-00000025]: channel.c:5361 set_format: Unable to find a codec translation path from (g729) to (ulaw)
[2016-01-16 13:21:22] WARNING[8237][C-00000025]: channel.c:5361 set_format: Unable to find a codec translation path from (g729) to (ulaw)
[2016-01-16 13:21:22] WARNING[8237][C-00000025]: channel.c:5361 set_format: Unable to find a codec translation path from (g729) to (slin)
[2016-01-16 13:21:22] WARNING[8237][C-00000025]: file.c:1017 ast_streamfile: Unable to open /var/spool/asterisk/voicemail/default/200/unavail (format (g729)): No such file or directory
– <SIP/Messagenet-0000003b> Playing ‘vm-intro.g729’ (language ‘en’)
[2016-01-16 13:21:27] WARNING[8237][C-00000025]: channel.c:5361 set_format: Unable to find a codec translation path from (g729) to (ulaw)
[2016-01-16 13:21:27] WARNING[8237][C-00000025]: file.c:139 ast_stopstream: Unable to restore format back to ulaw
– <SIP/Messagenet-0000003b> Playing ‘beep.g729’ (language ‘en’)
– Recording the message
– x=0, open writing: /var/spool/asterisk/voicemail/default/200/tmp/bkIXkS format: wav, 0x257c6fc
[2016-01-16 13:21:28] WARNING[8237][C-00000025]: channel.c:5361 set_format: Unable to find a codec translation path from (g729) to (slin)
[2016-01-16 13:21:28] ERROR[8237][C-00000025]: channel.c:8824 ast_channel_start_silence_generator: Could not set write format to SLINEAR
[2016-01-16 13:21:28] WARNING[8237][C-00000025]: translate.c:427 ast_translator_build_path: No translator path: (starting codec is not valid)
[2016-01-16 13:21:28] WARNING[8237][C-00000025]: file.c:188 ast_writestream: Unable to translate to format wav, source format g729
[2016-01-16 13:21:28] WARNING[8237][C-00000025]: app.c:1280 __ast_play_and_record: Error writing frame
== Parsing ‘/var/spool/asterisk/voicemail/default/200/INBOX/msg0001.txt’: Found
== Spawn extension (macro-vm, s-NOANSWER, 2) exited non-zero on ‘SIP/Messagenet-0000003b’ in macro ‘vm’
== Spawn extension (ext-local, vmu200, 1) exited non-zero on ‘SIP/Messagenet-0000003b’
– Executing [h@ext-local:1] Macro(“SIP/Messagenet-0000003b”, “hangupcall,”) in new stack
– Executing [s@macro-hangupcall:1] ExecIf(“SIP/Messagenet-0000003b”, “0?Set(CDR(recordingfile)=.wav)”) in new stack
– Executing [s@macro-hangupcall:2] GotoIf(“SIP/Messagenet-0000003b”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,4)
– Executing [s@macro-hangupcall:4] Hangup(“SIP/Messagenet-0000003b”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘SIP/Messagenet-0000003b’ in macro ‘hangupcall’
== Spawn extension (ext-local, h, 1) exited non-zero on ‘SIP/Messagenet-0000003b’
[2016-01-16 13:21:43] NOTICE[8276]: manager.c:2638 authenticate: 204.232.82.14 tried to authenticate with nonexistent user ‘myusername’
[2016-01-16 13:21:43] NOTICE[8276]: manager.c:2675 authenticate: 204.232.82.14 failed to authenticate as ‘myusername’

Here the output of the CLI when the voicemail works correctly with an internal call:

Executing [vmx@macro-vm:14] GotoIf(“SIP/202-0000003f”, “1?s-NOANSWER,1”) in new stack
– Goto (macro-vm,s-NOANSWER,1)
– Executing [s-NOANSWER@macro-vm:1] Macro(“SIP/202-0000003f”, “get-vmcontext,200”) in new stack
– Executing [s@macro-get-vmcontext:1] Set(“SIP/202-0000003f”, “VMCONTEXT=default”) in new stack
– Executing [s@macro-get-vmcontext:2] GotoIf(“SIP/202-0000003f”, “0?200:300”) in new stack
– Goto (macro-get-vmcontext,s,300)
– Executing [s@macro-get-vmcontext:300] NoOp(“SIP/202-0000003f”, “”) in new stack
– Executing [s-NOANSWER@macro-vm:2] VoiceMail(“SIP/202-0000003f”, “200@default,u”) in new stack
– <SIP/202-0000003f> Playing ‘/var/spool/asterisk/voicemail/default/200/unavail.slin’ (language ‘en’)
– <SIP/202-0000003f> Playing ‘vm-intro.ulaw’ (language ‘en’)
– <SIP/202-0000003f> Playing ‘beep.ulaw’ (language ‘en’)
– Recording the message
– x=0, open writing: /var/spool/asterisk/voicemail/default/200/tmp/wBBh7s format: wav, 0x258fa3c
– User hung up
== Parsing ‘/var/spool/asterisk/voicemail/default/200/INBOX/msg0002.txt’: Found
== Spawn extension (macro-vm, s-NOANSWER, 2) exited non-zero on ‘SIP/202-0000003f’ in macro ‘vm’
== Spawn extension (ext-local, vmu200, 1) exited non-zero on ‘SIP/202-0000003f’
– Executing [h@ext-local:1] Macro(“SIP/202-0000003f”, “hangupcall,”) in new stack
– Executing [s@macro-hangupcall:1] ExecIf(“SIP/202-0000003f”, “0?Set(CDR(recordingfile)=.wav)”) in new stack
– Executing [s@macro-hangupcall:2] GotoIf(“SIP/202-0000003f”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,4)
– Executing [s@macro-hangupcall:4] Hangup(“SIP/202-0000003f”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘SIP/202-0000003f’ in macro ‘hangupcall’
== Spawn extension (ext-local, h, 1) exited non-zero on ‘SIP/202-0000003f’

Anybody can help me please?

Thank you
Best regards

Have you purchased sufficient G729 codecs from Digium ?

I didn’t buy any codec…

…buy with the internal call works well… The problem is about the codec? Which codec I must use? …it’s strange because the problem affect only the voicemail

Hi!

You indeed have codec errors in that log and if you absolutely must use G.729 you must buy licenses from Digium as there are still active patents on that codec…

Unless you reallllly need G.729 go with G.711 (ulaw, alaw) which no longer has any and is free…

Have a nice day!

Nick

Fix it! Thank you a lot!

You are welcome!

Have a nice day!

Nick

I got this very same problem. Normally I forward a range of ports in my router but, whilst I was doing a set up on the router, I inadvertently deselected the forwarding. I don’t have access to my router right now but I think the range is normally 8000 to 26000. You could give that a try and see if it works.