Silence when calling to echo and others

I set up Asterisk Certified and basically configured it according to this german how to:

I set up an echo in extensions.conf like this

exten => 80,1,answer
exten => 80,2,wait,2
exten => 80,3,Playback(demo-echotest)
exten => 80,4,echo
exten => 80,5,Playback(demo-echodone)
exten => 80,6,hangup

and set up the 80 as a phone number to call in sip.conf

callerid=echotest <80>
secret= ; ************

If I now call 80 through another configured phone number (i use phonerlite software) the call can be established according to phonerlite (every call can be esablished, even to phones not configured in sip.conf) - but theres silence at the other end, it should be at least the demo-echotest soundfile…

I get

ERROR[8321]: ari/config.c:296 process_config: No configured users for ARI

in the CLI after issuing a reload of the configuration… But I don’t know if that has anything to do with working calls…

If you need more, I can add some “asterisk -rvvv” -> “reload” output or some other config files, if that helps.

For now I run Asterisk as a VM inside VMware Player, does the server need to have a sound card installed to play that sounds even through sip calls?

Edit: Reordered extensions.conf, It seems that I can call my Echo now, but I get the classic sound when the other place is busy…
in asterisk verbose 10 I get:

WARNING[1426][C-00000019]: pbx.c:4912 pbx_extension_helper: No application ‘wait,1’ for extension (default, 80, 2)
== Spawn extension (default, 80, 2) exited non-zero on ‘SIP/30-0000000a’

Your dialplan appears to be misconfigured. What is the actual current configuration of it?

The use of , is not valid. It should be (). Examples:


As well the use of | for argument separation is VERY old. “,” should now be used. Example:


so how do I get the extensions.conf to know that dialing 80 will result in the echo?

exten => 80,1,answer
exten => 80,2,wait(1)
exten => 80,3,Playback(demo-echotest)
exten => 80,4,echo
exten => 80,5,Playback(demo-echodone)
exten => 80,6,hangup

as far as I now its: exten => phone number from sip.conf,order of execution,what to execute. If I have to eliminate all “,” from it - how do I do that for the first two?

As well as:

; calling internal, 30 to 39
exten => _3X,1,NoCDR()
exten => _3X,n,Dial(SIP/${EXTEN},55,Ttr)

and how do I reconfigure that for every phone from 1 to 999 can call each other? -> exten => _XXX. … (aso.)

You don’t have to eliminate all ,. Only for the application. What you’ve posted is fine. I’d also suggest using the resources on asteriskdocs[1] to learn more about the dialplan.


Delete from your sip.conf file the 80 extensions it is not needed.


exten => _[1-9]X,1,NoCDR()
exten => _[1-9]X,n,Dial(SIP/${EXTEN},55,Ttr)

This is for extensions from 10 to 99, don’t use one digit extensions. Also you have commented out the context from each extension. You should use a context and in your dialplan you should include the other contextes that you want under the one that you are using for the extensions.

thanks for the description - does this mean that exten => _[1-99]X, …aso. will allow calling within 10-999?

I recognized that softphones like phonerlite shows sip:extension@local host ip (ex. sip:30@ next to the status indicator for the connection. Shouldn’t there be the servers address?
Echo works fine, so I think the server and the connection works.

When calling internal extensions I get the following error:

WARNING[1709][C-00000008]: app_dial.c:2411 dial_exec_full: Unable to create channel of type ‘SIP’ (cause 20 - Subscriber absent)

Could that be because both clients show the local IP address as described above? I don’t think this could be the problem because the echo test itself runs on the server and the clients get the sound from the echo and hear themselves while the echo runs…

Solved: Phonerlite only needs to have MWI as first setup, after entry of all credentials “registration” needs to be checked and saved in order to work with that config

Thanks for the help, our basic setup is now working and I can proceed reading about mailboxes and callback features and that stuff

Learn dialplan basics - it will save you time in the future.
Do you really need to use extensions with variable length?
To match dialed number against the range [100-999], you should use the pattern _[1-9]XX - the one you posted will not work, read the article provided.

thanks for the links. I read through nearly all of them and - I think understanding dialplans is hard for me because they’re new…
So, according to the definitive guide:

exten => _XXX,1,NoCDR()
exten => _XXX,n,Dial(SIP/${EXTEN},55,Ttr)

should allow dialing from any number up to 3 digits to any number up to 3 digits (meaning 0 to 999) so I could call 31 from 30 within that rule.
But, the PhonerLite software directly builds a phone call without any dialing or subscriber absent log as expected from above rules.

I don’t completely understand yet why _[1-9] is important in order to make at least calls to 31, 32 aso possible, as this only means that the first digit has to be from 1 to 9 (i guess).

asterisk on verbose 10 logs the building of the numbers 700 to 720 backwards… which should be _7XX instead of _XXX - but it’s logging that to parkedcalls…

_[1-9]. is possible, but that wouldn’t limit to 3 digit internal calls as the dot should be any following amount of numbers, which isn’t really the goal - and everywhere is said that we have to be very careful with using . and !

_XXX means that you can make call between three digit extensions, not every extension up to three digits.

[1-9] is important because you don’t want your users to press 023 and execute the same dialplan. Well it will fail but keep it clean.

You should have two dialplans one for two digits and one for three.