1. SayAlpha is a dial plan application that spells the string passed as parameter to the application character by character.
NOTE: This application is valid for Asterisk version 1.0.9 and above.
Syntax:
SayAlpha(string) : the string that you want to be spelled by the application must be given as argument.
Purpose and usage
This dial plan application is to spell a given string. You can pass here some variable for example to be spelled. When the spelling of the string finishes the application with next priority is to be executed.
You can see some examples below.
Prerequisites
First of all you need to install Asterisk PBX. Afterwards you need to configure at least one user in iax.conf, sip.conf or mgcp.conf – the protocol you are going to use depends on you or of the phone you are using. After this you need to write some extensions in extensions.conf.
In this tutorial I will use Idefisk softphone that is an IAX client. You can download it by clicking here. Tutorial showing how it works and configuration support can be found here.
Asterisk PBX configurations
NOTE: This is just an example of what you can use this application for. Of course you can use it and for other purposes.
When you have installed and working Asterisk PBX you will need some user to test this application. If you do not have any registered in iax.conf you may add the following one. If you are not going to user Idefisk Softphone and iax.conf you have to register the user in the same way in sip.conf, h323.conf or mgcp.conf – depending on the protocol you are using.
Above I registered a user [ivan] with the properties:
type=friend (type might be user – just can call, peer – just can be called and friend – can call and can be called)
username=ivan – this is the user which must authenticate when connecting to the Asterisk PBX server
secret=ivan is the password with which the user must authenticate when connecting to the Asterisk server
context=test is the context from extensions.conf which the user can access (including any other context which is/are included in this one)
host=dynamic means that the host for this user is dynamic and he/she can connect to Asterisk PBX from different computers (host may be defined with static ip address)
Allow=all means that all audio codecs are allowed (You can allow certain codecs as well as disallow others)
We now have a user that can use the context test from extensions.conf. So now we need some dial plan application in [test] in extensions.conf.
Here is the application in extensions.conf:
exten => 123,1,Wait(1)
when number 123 is dialed you reach the wait dialplan application – wait a second just for fun
exten => 123,2,Answer()
the call is answered
exten => 123,3,Playback(welcome)
welcome message is played on playback
exten => 123,4,SayAlpha(This is only a test.)
the string “This is only a test is spelled char by char from asterisk”.
exten => 123,5,SayAlpha(${CONTEXT})
the context name is spelled in the same way - ${CONTEXT} is Asterisk variable.
exten => 123,6,SetVar(lang=${LANGUAGE})
above a varialbe lang is set to be equal ot ${LANGUAGE} also Asterisk varialbe
exten => 123,7,NoOp(${lang})
the new variable is displayed in the CLI
exten => 123,8,SayAlpha(${lang})
the ${lang} variable is spelled
exten => 123,9,wait(1)
wait one more second
exten => 123,10,Hangup()
hangup() closes the line
2.The application in CLI
3. Additional information
For more information about extensions.conf you can check here.
For more information about iax.conf you can check here.
This application is tested with our IAX softphone Idefisk. You can download it from here. For more information about this softphone please read our tutorial.
If you would like to test this application with the SIP channel you can read our tutorials about the SIP Softphones to learn how to configure them to work with Asterisk PBX