I am new to Asterisk and Voip. I wanted to accomplish a following small thing using Asterisk.
Description
Asterisk is used as server
Several Voip clients. (Two types of clients possible. One which can start a conference call, other can't call but can only hear.) Only caller client can start/end this call.
The call can't be longer then a particular time.
Is it possible through Asterisk. How does asterisk help to implement this scenario. What does I need to learn? Any web links will be very helpful.
Thanks
You can do all that with Asterisk and ConfBridge:
http://www.voip-info.org/wiki/view/Asterisk+cmd+ConfBridge
Use the following options to accomplish your objectives:
'A' — Set marked mode
'm' — Set initially muted.
'w' — Wait until the marked user enters the conference
You can use another dial plan function: TIMEOUT(absolute) to limit the conference duration.
To start I would look at the examples in the above link.
Related
I've got a basic twilio setup using studio for a simple IVR (like less than 20 minute setup kind of simple).
One thing I'm doing is using simulring to hit multiple parties and whoever answers. The issue I'm having is that if there is a voicemail to be hit, it appears to be ok with that and then plays the endpoints custom voicemail.
That's not really good with our setup.
Do you guys know how I can trigger the calls to multiple phones, detect a real person and then transfer the call, otherwise trigger a voicemail?
I can't imagine this is unique.
Twilio developer evangelist here.
There are two options you can use here, either call screening/human detection, in which you ask the person answering the phone to, for example, dial 1. A voicemail won't do this and you can leave a message or hang up, a human will dial the number and you can then take them on to the rest of the call. Or there is answering machine detection (AMD). When making an outbound call with AMD, once detected Twilio will make the webhook callback with a parameter that describes whether the call was answered by a human or a machine.
I recommend reading this article on both options, which should help you to understand what will work best for your use-case.
We receive international calls into an Asterisk server (13.20) where some of the calls are automated, meaning there is no person involved, sort of M2M.
It is important for us to know where those automated call are coming from. Since it is easy to generate a call with faked ID we want to strengthen the authentication by identifying the original network from where the call was made.
When looking at the Asterisk logs I can see that a call came from Twilio for example, but that's it, no more tracking information.
My question:
Is it possible to track a call backwards beyond the last PBX who transferred the call to my server?
Some operators send some tracking in sip headers
For see more info, check sip debug.
asterisk -r
sip set debug on
However most of operators not provide for clients info about path of calls, some even not store it for internal use.
I have an Asterisk server running where a lot of people will call on in the future.
Is it possible to configure the server that if the caller doesn't press a number (or * and #) on his phone for like 10 minutes it automatically hangs up?
Thanks for your help and best regards
I am not aware of any builtin functionality which would adresses your usecase.
There is the parameter L() of the Dial application which allows to limit the call duration and plays announcements before the limit is reached.
But that does not fit your usecase.
I expect you have to write a custom application which listens on the manager interface and track incoming calls and Events to hangup the channels by yourself...
You can use:
s,n,ResponseTimeout(600)
Or:
s,n,Set(TIMEOUT(response)=600)
Then add an extension to the dial plan to hang up the call:
t,1,Hangup()
You have two options.
1) use TIMEOUT(response). This one is exactly for your case, but not work for some dialplan.
2) Use TIMEOUT(absolute) and update it after any new input. This work for any dialplan, but it absolute(i.e will hangup even if you have input).
http://www.voip-info.org/wiki/view/Asterisk+func+timeout
I`m trying to build a script that will capture the credit card info like card number,cvc and expiration date using asterisk 11.x and asterisk-java library for AMI/AGI integration.
Right now I am able to build a script that will acquire that info if it is called via dialplan but i have a different scenario:
1. A call enters a queue.
2. An agent from the specific queue answer the call
3. The caller wants to input the card details
4. After the caller has entered the card details is redirected back to agent to continue the call.
My specific problem is related to step 3 as I do not know how to route the caller to my AGI and then back to the same agent. (eventually the agents has to be still involved in (some) call to guarantee that when the caller returns from agi it is still available)
Any idea how can I achieve that ? I know that this is a common practice so I think that there has to be a way.
When the call is delivered to the agent, use a macro to set a custom channel variable with the agent ID or extension in it.
Then, when your credit-card authentication function is done, read the variable and use an AGI command to transfer the call back to the agent.
Further Reading
http://www.voip-info.org/wiki/view/Asterisk+variables
http://www.voip-info.org/wiki/view/Asterisk+manager+Example:+Transfer
Note if this solution solves your problem, please 'accept' it to make it easier for others with the same issue to find it. thanks!
There are no any common practice for business process like you have. That depend of you and your client only.
You can use features conf or transfer. Can transfer to special extension or to conference room.
No way say what suite you better.
For sure you need understand how asterisk work before write any AGI/AMI or dialplan application. I can recommend ORelly's "Asterisk the future of telephony" book as start point.
I'm using asterisk 1.4
when my agent talks with customer , we need a option of putting their call in a IVR
in which agent and customer can listen those ivr menu at a same time , eventually customer should send some DTMF for IVR menus
Could any one pls tell me in what way we can achieve this
Consider dropping both calling and called parties (customer & agent, respective to how you're operating) into a conference call, and then!
...Go and originate another call (with AMI or a call file) that's operating from a new context/extension/proirity and also drop this originated call into the conference.
I haven't tested this with DTMF input into a call prompt -- But, I have played automated messages to both calling and called party in a conference using this technique.
The caveat may be that both calling and called parties will have control of the prompt. Which may or not be relevant to your use case.