Link to home
Start Free TrialLog in
Avatar of ssapkota
ssapkotaFlag for Nepal

asked on

Suggestion for implementing IVR

I am trying to develop a IVR solution on top of asterisk. I noticed asterisk provides different interface: AGI, Manager Interface, call files..
I am confused. How should i move ahead? My requirements are:
- Receive calls
- Callback (on the basis of external events)
- Reading DTMF and Authentication in both case: inbound and outbound.
- Performance
- Scalable
Avatar of DrDamnit
DrDamnit
Flag of United States of America image

Are you a programmer?

If so, PHP / AGI is probably the best way to go. It allows you to drop in and out of dial-plan at will to enter information into a database.

Perhaps if you gave more details about what your IVR solution would do and how you need to interact with it (use cases) then I (we) can better help direct you.
Avatar of ssapkota

ASKER

Yes. I am a programmer, and I prefer to do it in java/python.
I want to have full control over outbound and inbound calls.
Can you please guide me how should i move ahead?
What should I focus on to enhance performance and to make it scalable?
Avatar of asternic
asternic

Take a look at asterisk-java, it provides an interface to fastagi and the asterisk manager. Fastagi is more scalable than AGI. Depending on your needs you might need to use agi or the manager.

http://asterisk-java.org/development/tutorial.html

@asternic, I have already googled and read about those stuffs like dialplan, agi, fastagi, manager api.
What I am really concerned with is Scalability and Performance, which I couldn't find anywhere.

I want some suggestion from (asterisk-)experts, on what development environment should i choose?
What should I, keep in mind to achieve high performance and scalability?

I want to develop a IVR system which calls user (or receive call) and does basic authentication (keys are stored in database) and interacts with user (on the basis of DTMF keys).
How many users?
@DrDamnit, Expecting to keep a T1 line full busy.
SOLUTION
Avatar of asternic
asternic

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
@asternic,
How can I originate using fastagi?
Shouldn't I use Manager Interface for it?
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
I am trying this out. It will take few more days. So just bear with me.
Thanks to all who answered to my query,

I used asterisk-java for this purpose:
1. Used fastagi for call handling.
2. Used manager api just to originate the call. I didn't use call file, as I want to be aware of each stage during the call.

Any comment on this, before I close this question?
You are doing it fine, and you won't face scalability or performance issues.