Place multiple calls out and then play a message

So currently I am able to call my DID and have it play a recorded message, and I am able to place calls from my DID and play a recorded message when the person being called answers the phone. I want to be able to call multiple people (hundreds) at once to play a recorded message. I’ve looked into it and found autodial plans and agi scripts. Could anyone with more experience tell me the better method to do this? Also, if I use an agi script, would that make it easier to then integrate the Asterisk server into the server of the application we are working on?

Thank you in advance, I appreciate all the help.

Hi @basimkhan, As I remember we have used asterisk java AMI for the same type of requirements and we are pretty satisfy with AMI. You may look into.

Assuming you have a legal relationship with the recipients or you and the recipients are not covered by legal protections…

The 2 most popular ways are ‘call files’ and AMI.

Call files are easier – just create a text file with the correct bits and copy it to your ‘outgoing’ spool directory.

AMI is a bit more efficient, flexible, and has better error control.

AGI has no role here in originating the calls.

Hey thanks for the reply, can I ask how did you go about integrating it into an application once you had used the AMI to place a lot of calls at once?

@basimkhan I used Java AMI to connect with asterisk. For threading I used apache active mq. Using activeMQ I was able to create same number of concurrent thread as same as my number of PRI channels were available.
You may read @JMSListener and its property like concurrency= “dynamic value here as NUMBER OF CHANNELS IN PRI” .


Thanks for the reply, would you be able to help me with a connection issue? I can’t seem to figure out why I can use telnet to connect from the server Asterisk is running on, but I can’t use it to connect to Asterisk from the host machine. Is there something I need to do to enable outside connection? That is stopping my java code from authenticating into Asterisk.

@basimkhan You have to edit the manager.conf file in /etc/asterisk folder.
enabled =yes
port = 1313
bindaddr =

secret= StrongPassword
read = system,call,log,verbose,command,agent,user,originate,config,cdr,dtmf,reporting,dialplan
write = system,call,log,verbose,command,agent,user,originate,config,reporting,message

Use above config. it will enable you to connect Asterisk through java AMI API code.


I was able to connect using Java AMI to my Asterisk server. I can now place calls using the AMI, can you please let me know how you went about calling multiple numbers at once?

Thank you

@basimkhan To call multiple number concurrently, what approach you are trying with. We will help you out in that direction specifically.


I was able to place 2 concurrent calls by opening two different ManagerConnections on Java. I then had to add setAsync(Boolean.True), to make sure it called both at the same time. I am now trying to make a loop out of it so I can more than just 2 people, it would be very hectic to have to create a new connection for 100s of people when this goes live.

Thank you

No need to create connection again and again for each call. You should use singleton class for connection.

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