In this blog I’ll try to cover some of the frequently asked questions in Asterisk.
1) Can Asterisk handle multiple concurrent PSTN incoming calls.
Yes, Asterisk can handle multiple incoming PSTN calls. But to implement the scenario, you need to have have PRI(Primary Rate Interface) lines enabled by the PSTN service provider. Normally, if a caller is currently using the PSTN line, no other callers can use the same line. The new caller will be sent a busy tone or a call waiting tone as subscribed with the PSTN provider. So the first thing to do is to enable PRI lines with the PSTN provider, so that more than one callers can call the same PSTN line. Once PRI lines are subscribed, Asterisk can be configured accordingly to provide communication services. Almost all of the toll free numbers use PRI lines, making the number available for more than one customers at the same time.
2) Can Asterisk be configured for more than once PSTN connection.
Asterisk can be configured for any number of PSTN lines. But to implement this we need ATA’s that has multiple FXO ports. The FXO port is a port that is used to connect the PSTN line to the ATA. So if there is only one PSTN line, you can use an ATA that has a single FXO port. Example of an ATA that has single FXO port is Grandstream HT503 series. If you are having two PSTN connections, you need to have an ATA that has more than one FXO ports. All the lines connected to the FXO port can use the same Asterisk server for its communication needs.
3) Are IP phones required for Asterisk to Work?
Yes, IP phones are needed for Asterisk. Asterisk works based on IP network and IP packets, so all the devices connected to the Asterisk network should be reachable by the network. There are soft and hard IP phones available. You can choose any as per your requirements. I prefer Hard IP phones as they are more reliable and provide a higher call quality. But if you want to use your old analog phones to work with Asterisk you need to have an ATA, and thats an other FAQ.
4) Do I need an ATA for Asterisk to work.
For Asterisk to work you don’t need an ATA. It works with or without ATA’s. An ATA is used only when you want to connect an analog phone to work with Asterisk and if you have PSTN integration with the internal Asterisk PBX. If Asterisk PBX needs integration with existing PSTN connection an ATA with FXO port is required, and if you want to use an analog phone with Asterisk you need to have an ATA with FXS port.
5) Does Asterisk support CallerID from a user database?
Yes, Asterisk supports CallerID functions in many different ways. The most easiest method is using the inbuilt Asterisk database to store the names and numbers.
From the Asterisk CLI use the database command to store the numbers and names of the users. The command “database put cidname 12345 “John Smith”” puts in the details and “database show cidname” shows the list of users in the Asterisk database. Then you can invoke them using other dialplan commands such as CALLERID or LookupCIDName to look up CallerID Name from local database. There are PHP scripts that even takes the numbers from a MySQL database. So the integration depends on the requirement and the type of database used to retrieve the caller details. There are many ways in which Asterisk can retrieve the name and numbers from a given database.
6) Can you have different ring tones for different SIP accounts?
You can specify various ringtones for different call types via SIP Header. With this feature you can set custom ring tones for different accounts and calls. For this you will have to configure the phone using XML files to support different types of rings. For example Digium phones ring tone types are:
- Normal Ringing – normal
- One Ring followed by automated Answer – ring-answer
- Immediate Answer, No ringing – answer
- Visual only, No ringing sound – visual
All the different ring types are assigned as alerts. And the alerts are set using the alert_info variable. The in the Asterisk dial plan, add the header using the addheader as shown below:
========================================
exten => 100,1,Dial(SIP/myendpoint,,b(normal-ringer^addheader^1)) [normal-ringer] exten => addheader,1,Set(SIP_HEADER(add,Alert-Info)=<normal>)
==========================================
So the extension 100 in the example dialplan using SIP_header, the ring type is set as normal. Similarly you can modify the settings to meet your requirement for the available SIP accounts independently.