Capture and play voice with Asterisk ARI - asterisk

There are Channel ARI Demo in wich we can control channel state: ring, answer, play silence, play some tone or audio-file (https://github.com/asterisk/ari-examples/tree/master/channel-state, https://wiki.asterisk.org/wiki/display/AST/ARI+and+Channels%3A+Manipulating+Channel+State)
Is it possible to receive some chunks (parts, buffers, etc.) of call voice (which are created by remote subscriber) or write chunks of voice, for example like a some array of bytes (not from file) in some audio format (alaw, ulow etc).

You can use asterisk EAGI interface to get voice data.
Other option is use Record or Mixmonitor app for record channel(channel have be put to Stasis to allow dialplan control by ARI)
"Write chunks of voice" can be done by application Playback
Also you can create your own application using c/c++, compile it into asterisk and get result you want.
No, you can't redirect voice directly using ARI.

Related

IVR call simulation on Asterisk 15 server

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"

Accept user input while two calls are patched with dial extension

I have an executive and incoming caller. I patched their call in Asterisk using the dial command, but how can I to receive the inputi.e DTMF from the caller?
You should look at features.conf. It contains examples for:
dynamic features
These dynamic features can be triggered by in-call DTMF.

Asterisk HOLD functionality workaround

I'm using asterisk with webrtc in chrome (SIPml5 client) and also using their webrtc2sip gateway.
My problem is that I can't send the hook-flash/flash signal to asterisk for some reason.
Is there a possibility to trigger hook flash by sending DTMF signals ? (which apparently work for me )
Example: I want to trigger the standard hold functionality by sending the following DTMF sequence: #123.
On the other hand as a workaround, could I hold a channel using AMI or AGI ?
Basically I want the other party to hear OnHoldMusic while the channels/call remain active. On the local side I can just mute the audio tag which is fine.
Thanks.
Yes, you can do hold using ami command hold or AGI exec command musiconhold
That info is availible in AMI/AGI documentation
You can handle dtmf by using features.conf

Asterisk MixMonitor not recording queue calls

In my Asterisk 1.8 setup, MixMonitor() in the dial plan successfully records calls without issue.
However for queue calls, while a recording file is generated and the log shows that MixMonitor() is recording, however the files are tiny and contain no audio.
This is my queue:
member => SIP/extension123
monitor-type=MixMonitor
monitor-format=wav49
I have also tried changing the monitor type to "Monitor" and the format to "wav", with the same result. I have also tried adding local channels as queue members and recording from the local channel in the dial plan instead of using the queue's recording and I get the same result (even though when dialing the local channel extension directly the recording works fine).
Any help would be appreciated.
Update: I am trying the same thing now on Asterisk 11.7 and experiencing the same issue
Figured it out: calls were being passed to the queue via a local channel. Apparently you need to add "/n" to the local channel call to keep it from being "optimized away".
For example:
Dial(local/7001#Queues/n)
Source: http://svnview.digium.com/svn/asterisk/branches/1.6.1/apps/app_mixmonitor.c?view=markup&pathrev=197897

Asterisk FastAGI sending command at the same time

I was using Asterisk.Net for my AGI and my asterisk server can accept a command which convert the voice to text (http://zaf.github.io/asterisk-speech-recog/). Now, I want to perform two commands at the same time which is the wait for digit and the voice to text so that it can accept key press and voice for authentication. How can I achieve this or it is possible to do?
For now only way is create record application with dtmf collect. Need c/c++ experience.

Resources