Prompt playback failing

I have just upgraded to FreePBX/Asterisk 13 from a very stable and reliable Asterisk 1.8

Sometime you wonder why you bother… :slight_smile:

This is NOT the ‘distro’ but self installed from RPMs and devices and users manually transferred over.

The main issue is that prompt sounds seem to have disappeared.

Echo test to *43 from any extension can hear the prompt and you can talk back.

However, if you dial a non existent number you get a ringing tone but no other sound seems to work.

I did originally get errors like this:

-- <SIP/8100-000000a9> Playing 'cannot-complete-as-dialed.ulaw' (language 'en')

[2018-02-16 14:13:41] WARNING[22825][C-0000005e]: app_playback.c:493 playback_exec: Playback failed on SIP/8100-000000a9 for silence/1&cannot-complete-as-dialed&check-number-dial-again,noanswer
[2018-02-16 14:13:41] WARNING[22825][C-0000005e]: file.c:905 ast_readaudio_callback: Failed to write frame
– <SIP/8100-000000a9> Playing ‘check-number-dial-again.ulaw’ (language ‘en’)
[2018-02-16 14:13:41] WARNING[22825][C-0000005e]: app_playback.c:493 playback_exec: Playback failed on SIP/8100-000000a9 for silence/1&cannot-complete-as-dialed&check-number-dial-again,noanswer

I fixed that by installing the asterisk-resample package.

After installing it and restarting I lose the errors but still get no prompts - just this sort of thing in the logs when I dial a bad number eg 988755446#

== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
– Executing [988755446#@from-internal:1] ResetCDR(“SIP/8202-00000000”, “”) in new stack
– Executing [988755446#@from-internal:2] NoCDR(“SIP/8202-00000000”, “”) in new stack
– Executing [988755446#@from-internal:3] Progress(“SIP/8202-00000000”, “”) in new stack
– Executing [988755446#@from-internal:4] Wait(“SIP/8202-00000000”, “1”) in new stack
– Executing [988755446#@from-internal:5] Playback(“SIP/8202-00000000”, “silence/1&cannot-complete-as-dialed&check-number-dial-again,noanswer”) in new stack
– <SIP/8202-00000000> Playing ‘silence/1.ulaw’ (language ‘en’)
– <SIP/8202-00000000> Playing ‘cannot-complete-as-dialed.ulaw’ (language ‘en’)
– <SIP/8202-00000000> Playing ‘check-number-dial-again.ulaw’ (language ‘en’)
– Executing [988755446#@from-internal:6] Wait(“SIP/8202-00000000”, “1”) in new stack
– Executing [988755446#@from-internal:7] Congestion(“SIP/8202-00000000”, “20”) in new stack
== Spawn extension (from-internal, 988755446#, 7) exited non-zero on ‘SIP/8202-00000000’
– Executing [h@from-internal:1] Macro(“SIP/8202-00000000”, “hangupcall”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“SIP/8202-00000000”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,3)
– Executing [s@macro-hangupcall:3] ExecIf(“SIP/8202-00000000”, “0?Set(CDR(recordingfile)=)”) in new stack
– Executing [s@macro-hangupcall:4] Hangup(“SIP/8202-00000000”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘SIP/8202-00000000’ in macro ‘hangupcall’
== Spawn extension (from-internal, h, 1) exited non-zero on ‘SIP/8202-00000000’

Any ideas why ?

A few oddities. The system is in devices and users mode. I had codec settings in general SIP set to:

disallow all
all ulaw

Nothing set in any of the devices.

When I checked sip show channels I noticed that Format showed (nothing). I expected devices to default to the General SIP setting ?

I then set the same settings per device and then get this which seems to be OK:

asterisk*CLI> sip show channels
Peer User/ANR Call ID Format Hold Last Message Expiry Peer
192.168.10.138 8003 ebb90000-23f3e5 (ulaw) No Rx: ACK 8003
192.168.10.98 8202 1a1d94372a6025e (ulaw) No Tx: ACK 8202

(I also think that the User/ANR was not showing before)

I thought the General SIP settings should take precedence if there is nothing in devices ?

Still no sound prompts for anything. I am not sure how I can test further?

I also note that I have the following error in the Dashboard but not sure if that affects my issue.

The file format sln48 is not supported by Asterisk when it should be. Audio conversion quality will be limited to 16k instead of 48k. This is probably the result of the missing Asterisk resample package

As below, I have the resample package installed and loaded.

However, FreePBX still thinks that the package is missing :frowning:

Any help or advice appreciated.

B. Rgds
John

asterisk*CLI> module show like format_sl
Module Description Use Count Status Support Level
format_sln.so Raw Signed Linear Audio support (SLN) 8k 0 Running core

asterisk*CLI> file convert /var/spool/asterisk/tmp/macroform-cold_day.wav /var/spool/asterisk/tmp/macroform-cold_day.sln48
Converted /var/spool/asterisk/tmp/macroform-cold_day.wav to /var/spool/asterisk/tmp/macroform-cold_day.sln48 in 1114ms

asterisk*CLI> core show file formats
Format Name Extensions
slin48 sln48 sln48

asterisk*CLI> core show translation paths slin 48000
— Translation paths SRC Codec “slin” sample rate 48000 —
Blahhhhh…

asterisk*CLI> module load codec_resample.so
Loaded codec_resample.so
== Registered translator ‘slin 8000khz → 12000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 8000khz → 16000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 8000khz → 24000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 8000khz → 32000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 8000khz → 44100khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 8000khz → 48000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 8000khz → 96000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 8000khz → 192000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 12000khz → 8000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 12000khz → 16000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 12000khz → 24000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 12000khz → 32000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 12000khz → 44100khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 12000khz → 48000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 12000khz → 96000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 12000khz → 192000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 16000khz → 8000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 16000khz → 12000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 16000khz → 24000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 16000khz → 32000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 16000khz → 44100khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 16000khz → 48000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 16000khz → 96000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 16000khz → 192000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 24000khz → 8000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 24000khz → 12000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 24000khz → 16000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 24000khz → 32000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 24000khz → 44100khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 24000khz → 48000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 24000khz → 96000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 24000khz → 192000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 32000khz → 8000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 32000khz → 12000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 32000khz → 16000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 32000khz → 24000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 32000khz → 44100khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 32000khz → 48000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 32000khz → 96000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 32000khz → 192000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 44100khz → 8000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 44100khz → 12000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 44100khz → 16000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 44100khz → 24000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 44100khz → 32000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 44100khz → 48000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 44100khz → 96000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 44100khz → 192000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 48000khz → 8000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 48000khz → 12000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 48000khz → 16000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 48000khz → 24000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 48000khz → 32000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 48000khz → 44100khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 48000khz → 96000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 48000khz → 192000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 96000khz → 8000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 96000khz → 12000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 96000khz → 16000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 96000khz → 24000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 96000khz → 32000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 96000khz → 44100khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 96000khz → 48000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 96000khz → 192000khz’ from codec slin to slin, table cost, 800000, computational cost 999999
== Registered translator ‘slin 192000khz → 8000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 192000khz → 12000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 192000khz → 16000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 192000khz → 24000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 192000khz → 32000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 192000khz → 44100khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 192000khz → 48000khz’ from codec slin to slin, table cost, 850000, computational cost 999999
== Registered translator ‘slin 192000khz → 96000khz’ from codec slin to slin, table cost, 850000, computational cost 999999

Oops…
Asterisk 13.3.2
FreepBX installed from src 13.0-3 and updated to 13.0.194.2

You need to install outbound route congestion messages module.

Thanks - indeed that was missing. I added it but still no sounds…

Here are the installed modules. I must be missing something SOOOooooo simple here !

±------------------±-----------±--------±--------+
| Module | Version | Status | License |
±------------------±-----------±--------±--------+
| arimanager | 13.0.4 | Enabled | GPLv3+ |
| asteriskinfo | 13.0.7.1 | Enabled | GPLv3+ |
| backup | 13.0.27.16 | Enabled | GPLv3+ |
| builtin | | Enabled | |
| callback | 13.0.5.2 | Enabled | GPLv3+ |
| callforward | 13.0.4.2 | Enabled | AGPLv3+ |
| callrecording | 13.0.11.5 | Enabled | AGPLv3+ |
| callwaiting | 13.0.4.1 | Enabled | GPLv3+ |
| cdr | 13.0.31 | Enabled | GPLv3+ |
| cel | 13.0.26.2 | Enabled | GPLv3+ |
| conferences | 13.0.23.9 | Enabled | GPLv3+ |
| core | 13.0.122.1 | Enabled | GPLv3+ |
| customappsreg | 13.0.5.4 | Enabled | GPLv3+ |
| dashboard | 13.0.25.3 | Enabled | AGPLv3+ |
| donotdisturb | 13.0.3.1 | Enabled | GPLv3+ |
| extensionsettings | 13.0.4 | Enabled | GPLv3+ |
| featurecodeadmin | 13.0.6.4 | Enabled | GPLv3+ |
| framework | 13.0.194.2 | Enabled | GPLv2+ |
| infoservices | 13.0.1.2 | Enabled | GPLv2+ |
| logfiles | 13.0.10.4 | Enabled | GPLv3+ |
| manager | 13.0.2.5 | Enabled | GPLv2+ |
| music | 13.0.22.3 | Enabled | GPLv3+ |
| outroutemsg | 13.0.2.1 | Enabled | GPLv3+ |
| printextensions | 13.0.3.1 | Enabled | GPLv3+ |
| recordings | 13.0.30.12 | Enabled | GPLv3+ |
| restapi | 13.0.21.1 | Enabled | AGPLv3 |
| ringgroups | 13.0.23.2 | Enabled | GPLv3+ |
| sipsettings | 13.0.26.1 | Enabled | AGPLv3+ |
| soundlang | 13.0.24.5 | Enabled | GPLv3+ |
| ucp | 13.0.42.5 | Enabled | AGPLv3+ |
| userman | 13.0.76.35 | Enabled | AGPLv3+ |
| voicemail | 13.0.54.15 | Enabled | GPLv3+ |
±------------------±-----------±--------±--------+

It looks like it’s working fine. However you are in progress here and not answer. Which is normal. You don’t answer a channel to send an error message as that can result in fees. So progress is sent and then the audio is sent. Your endpoint has to accept progress however.

Thanks… but I am a somewhat confused !

Can you explain a little more please ?

If you dial a non existent number then you should correctly get cannot “complete as dialed”. What I don’t get is why the phone can hear the echo test prompt, but not this.

I don’t understand what exactly I am missing?

Your phone has to support progress for you to be able to hear these messages.

I have Grandstream GXP 2170 and Bria soft phones… not exactly old technology :slight_smile:

Worked perfectly well under Asterisk 1.8.x so what has changed that I have missed in the configs for the phones?

Do you have any suggestions on this as I am completely stumped?

Phones are pretty well brand new. The phone configs have not been changed between Asterisk versions. They worked fine on the previous Asterisk version - if I dialled a bad number etc I could always hear the “Cannot complete” messages, and now I can’t.

I’m not sure about ‘Progress messages’ - surely this is played AFTER the system has failed to dial ?

I can’t see any information on how to tell if a phone supports Progress or to test it?

Any pointers gratefully received.

OK, as a FYI for others I am starting to see what is happening but not sure yet how to fix it.
Seems ‘Progress’ may have been added to newer versions of Asterisk.
Can’t find any instance in my old 1.8 configs

Here’s the bad-number context

[bad-number]|

include => bad-number-custom|
exten => _X.,1,ResetCDR()|
exten => _X.,n,NoCDR()|
exten => _X.,n,Progress|
exten => _X.,n,Wait(1)|
exten => _X.,n,Progress|
exten => _X.,n,Playback(silence/1&cannot-complete-as-dialed&check-number-dial-again,noanswer)|
exten => _X.,n,Wait(1)|
exten => _X.,n,Congestion(20)|
exten => _X.,n,Hangup|

The Progress ‘app’ is called prior to playing the media.

OK, so how do we fix that?

First, what config settings are there in Asterisk to enable/disable it. Quite frankly this is completely buried and has been a nightmare to try and understand. The assumption is you want it, whether you do or not. Worse is there are no apparent setting I can so far see in FreePBX to allow you to configure it or tell you about it.

https://wiki.asterisk.org/wiki/display/AST/Early+Media+and+the+Progress+Application

I can see the following config options:

progressinband=yes|no|never

You can set progressinband to yes, no, or never, to configure whether or not to generate in-band ringing. Normally, Asterisk will send the progress of a call via a few methods, such as 183 Session Progress, 180 Ringing, 486 Busy, and so on. If you set progressinband=yes, Asterisk will indicate the call progress in band by generating tones:

For pjsip:

https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Configuration_res_pjsip#Asterisk13Configuration_res_pjsip-endpoint_inband_progress

inband_progress

If set to yes, chan_pjsip will send a 183 Session Progress when told to indicate ringing and will immediately start sending ringing as audio.

If set to no, chan_pjsip will send a 180 Ringing when told to indicate ringing and will NOT send it as audio.

There was another option in sip.conf but i am not sure if this is still in Asterisk

prematuremedia=

In older versions I believe the defaults were:

progressinband=never
prematuremedia=legacy

So it looks like Progress has been enabled by default in the new version and that is what has caused my problems.

Solutions.

OK, so we could potentially disable this in Asterisk/FreePBX.

I can’t find a setting anywhere. The only place I can see you could do that is adding a custom setting in Settings/Asterisk SIP Settings/ Chan SIP Settings but I think I must have missed something.

Here’s another possibility:

Or this:
http://thesipguide.com/pbx-trunking/asterisk/
Add progressinband=no to the trunk

What I don’t get is where in FreePBX you can disable Progress in extensions_additoinal.conf ?

Then there is the phone itself.

I noticed this in Settings/Advanced Settings:

“Use bad-number Context Yes/No
KEYWORD:AMPBADNUMBER
Generate the bad-number context which traps any bogus number or feature code and plays a message to the effect. If you use the Early Dial feature on some Grandstream phones, you will want to set this to false.”

Nope - Early Dial is disabled as far as I can see does not affect this issue

So I have no idea what Progess it is set to in my Grandstream phones (and a couple of old Mitel and Cisco phones that almost certainly won’t I guess). Neither do I know how to get them to check ‘Progress’ either - I’ve read all the docs and there is no mention that I can see and a search doesn’t reveal anything so far.

Sigh…

Tell me that’s a typo, please.

Yes it’s a typo :slight_smile: Sorry !

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