IVR call simulation on Asterisk 15 server - asterisk

I am using Asterisk 15 server and wanted to configure IVR call simulation. My configuration scenario is
1. A subscriber will register to Asterisk server and start a call.
2. The IVR audio will come from the Asterisk sever to sbscriber.
3. Once the subscriber pressed the botton, the call will connect to a number based on DTMF digit pressed by subscriber. Then call will continue for 30 seconds.
I observered for normal call pjsip.conf file is used for configuration of a subscribers.
Could you please help me on below queries ?
1. Which file we need to configure for the IVR call simulation ?
2. Please suggest a good documentation for IVR simulation.

Files are extensions.conf and pjsip.conf/sip.conf
You have read book for beginner, for example "Asterisk the future of telephony".
After that write dialling core or reuse vicidial.org or other core and write dialplan in extensions.conf for you ivr.
What you tried to do usually called "press-1 outbound dialling campaign"

Related

Asterisk ringback tone recording

I made an outbound-call service application using Asterisk AMI interface.
Following is how my application works.
I generate an Originate request to internal channel using TCP/IP socket.
my dialplan accepts the request and run dial command. extension.conf file is
[from-internal]
exten => _X.,1,NoOP()
same => n,MixMonitor(${DialMonitorFile}.wav)
same => n,Dial(PJSIP/${EXTEN}#TRUNK_100-1234-5678,30)
What I want to do is record whole call process (from ringback tone sound until user hangup).
But, when dial started, only 44 byte size file is generated (maybe wav file header?) before user accepts the call. And, file increased after user accepts call.
Can someone help me how can I record ringback tone sound as well ?
Regards,
Brian
You should do Answer before MixMonitor if you want that
Please note, CDRs will be affected

Asterisk AMI - How to simulate a DTMF sending action over AMI

I am building an application in Asterisk , which has to simulate the phone keypress action i.e DTMF. For instance , if a caller calls a number and the IVR requires to press a digit , the application (say a webpage) should also be able to simulate the same key press. I tried the following:
- I have a web application that triggers PlayDTMF action over AMI to simulate the key press on the caller channel. Unfortunately this didn't work , as it played the DTMF digit on the channel (the keypress could be heard) but asterisk didn't receive the DTMF. It was just playing the DTMF, which is what the AMI action was designed for. I technically need to "send" the DTMF digit on the channel.
- the sendDTMF function in asterisk couldn't be used either,as it is a dialplan function and I need a AMI action to trigger DTMF from an external source.
A similar issue was reported sometime back: Asterisk AMI: DTMF not received on SIP channel
I am using Asterisk 11. Is there a way to implement the above using AMI/AGI? Or do i need to further upgrade my Asterisk to 12 to make use of ARI?
Appreciate your inputs.
I managed to simulate the DTMF action , by Dialing/Originating out to a local context and using the outgoing bridging channel id for DTMF input. So the flow is :
call lands on Asterisk -> Asterisk Dials out to a Local context -> The dialout creates a bridging event which has the outgoing channel id(store in some DB) -> The local context can have the IVR flow and using the stored channel and PLayDTMF action - dtmf digits can be inserted. Not sure if there is a more elegant solution to this!

Testing Asterisk SIP and DAHDI local calls

I am a real beginner in asterisk, so please tolerate my question :)
I tried to configure asterisk for realtime and it is working fine for local sip calls. Now, I am trying to make the following test with dahdi calls:
I connected an analog phone to an FXS channel of my Digium card and tried to call this phone (exten 124) from a sip softphone (X-lite).
I get the following error:
-- Executing [124#from-sip:1] Dial("SIP/2000-00000004", "SIP/124")
[May 31 10:24:22] WARNING[5457]: chan_sip.c:5667 create_addr: Purely numeric hostname (124), and not a peer--rejecting
my extensions.conf:
[from-sip]
switch =>Realtime
[from-pstn]
exten => 124,1,Dial(DAHDI/3)
It seems that the dial is done using from-sip context not from-pstn context as required.
Anyone to advise or correct my understanding?
Thanks million
Zak
In Asterisk realtime and not realtime you can configure where to send calls from particular extension, this should be configured in "context"(for realtime check context column), so I believe in your case it is "from-sip". This means all calls from that extension will hit this context, you can't send one call from same extension to one context and other to another, all calls will hit "from-sip" context.

Error: "Channel not in Stasis application" when adding channel to a bridge

I'm working with Asterisk ARI. When I create channels via ARI, I specify application name and I can add those channels to a bridge with no problem. But when I use other client (like Zoiper) to make calls, and try to add those channels to a bridge, I get an error "Channel not in Stasis application". I am not sure what is Stasis, I followed this article and put the following in extensions conf file, but it still doesn't work:
same => n,Stasis(myApp)
same => n,Hangup()
So, what is a stasis app and how can I be able to bridge channels which are created outside of ARI?
You can't bridge already bridged calls
You can bridge by AMI calls which are set to MOH or AsyncAGI applications.
You can't perform operations on channels that are not in a Stasis application. This is a safety mechanism: a Stasis application hands complete control of the channel over to your external application to control. Channels in dialplan are not in that state, and many operations on a channel that are possible through ARI would cause problems (read: crash) if they were performed on a channel in dialplan.
You'll need to place the channel into the Stasis dialplan application to control it using the /channels resource.

Asterisk: Outbound and Inbound call at the same time

I am looking this use case scenario for Asterisk. I am using v 1.8 running a Centos 6.4 Linux distribution.
1.An outbound call is initiated via Asterisk
2.Both the internal extension as well as the outbound call-phone starts to ring.
The first person to pick up (either the internal extension or outbound call-phone) will
hear the a pre recorded message to hold as the call is being connected to the other user
i.e: If outbound call-phone picks up first then he will be asked to hold the line while the call is being connected to internal-phone user.
Any inputs?
My suggestion is almost the same but a little different:
Setup a dynamic meetme room changing the only-person message to "please hold..."
Setup booth calls at same time to destination numbers and set the originate command application parameter as meetme
Create 2 calls
http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out
After connect use bridge command or conference room.
http://www.voip-info.org/wiki/view/Asterisk+cmd+MeetMe

Resources