Can we do automatic call distribution in asterisk(in built conf or something)?
Means as per consideration of
there is x,y,z are 3 call receivers & a,b,c are call dialer & all dialer dont know about x,y,z they always consider they are calling x only.
Now if x busy with a,& same time b try to call to x then its call should divert to y or z(any one who free).
So for achieve this should i use only call divert method which example in
http://www.voip-info.org/wiki/view/Asterisk+call+forwarding
Or should i go for as http://www.voip-info.org/wiki/view/Automatic+Call+Distributor
But for automatic call distribution or call forwarding can i use asterisk old version which currently i am using 1.6.2.6 or i have to upgrade it?
You can use queue application or ringgroup or create your own diaplan as you wish.
http://www.voip-info.org/wiki/view/Asterisk+call+forwarding
Also any asterisk-related book will help, for example
http://cdn.oreilly.com/books/9780596510480.pdf
If standard Asterisk ACD tools such as:
http://ofps.oreilly.com/titles/9781449332426/asterisk-ACD.html
http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/ACD_id288932.html
... then another alternative is to use an AGI to get the effect you are looking for. Instead of queuing the call via Asterisk, use call parking or dynamic meetme and have your AGI "do the right thing" to get the call to the agent.
Related
I am quit new in asterisk.
My problem is: I have to implement call hold and pick up in asterisk.
Let's say we have an incoming call called incomingCallA.
As an operator I want to hold incomingCallA for a while to deal with other works, then come back soon, If i am not come back, others operator will pick up my held call.
I have done some researches that told me:
Call hold is sip client function, dont need to changes at asterisk server.
I can use call parking to dial to others operator if i am not come back.
Please help me to about the solution to deal with above problem.
Many thanks.
Simplest for begginer is create 100 conference rooms using Meetme after that just send to first availible room and record room number.
You can forward call using Transfer AMI function.
Please, I want to implement billing in asterisk 13.
i want to be able monitor an active call of a particular extension ( say extension 0001) and Hangup call once the extension have used 10mins. How do I achieve this in dailplan ( i.e extensions.conf)
...appreciations for any input.
First of all i can recommend you use already created billings like a2billing.org or CCGrates.
If you have not much resources and experience, that will be just wast of time(alot of things can go not as you expect).
For see currently active calls you can use ForkCDR functions of CEL events(like some commercial billing systems use).
You also can use AMI events+dialplan for track that(like fop/fop2 use), but tat is not easy way.
Most easy way is CEL probably.
For hangup call you can use function TIMEOUT(absolute) or params of Dial command.
I am using Putty to simulate my phone's modem connected via serial. When my phone receives a call it outputs 'RING' into putty but when the caller cancel the call Putty doesn't out put any response or result.
How would the modem know that the caller disconnect/cancelled the call, but not output it in putty?
Thanks
To detect missed calls you can try three things.
Check if there is a suitable AT+CIND indicator you can turn on. I do not think call will do since I assume it only goes to 1 when the call is answered. If your phone supports callsetup or something similar that should be what you need (you will have to implement logic to detect when a call does not go to state active).
For an example of enabling AT+CIND indicators, see chapter "8.57 Informative examples" in 27.007 for more explanation, and pay close attention to The subparameter order in the command is defined by the query command order, e.g.
if AT+CIND=? returns
+CIND: ("abc",(0-1)),("xyz",(0,1)),("call",(0,1))
then call is index 3, and for
+CIND: ("abc",(0-1)),("call",(0,1)),("xyz",(0,1))
call is index 2. Do not hard code any assumptions here, this should be parsed and checked run-time (one check at the beginning is enough).
Alternatively you can upon RING start polling call status with AT+CLCC until the call is no longer listed.
Or you could poll the MC phonebook storage and detect changes.
Most modems show the incoming phone number and a RING when a call is received and an END when the call is cancelled. To view the missed calls, you may use the following AT Commands.
AT+CPBS="MC"
AT+CPBR=1,99
First command tells the modem to look in the missed call phone book and the second command loads entries from 1 to 99. Note that this behavior is not standard. I was able to replicate this on a GSM module but not on my 3G modem. Try it on your modem and check if this works. All the best.
I would like to have pre-emption calls in Asterisk. I think there is no Asterisk support for this feature so i'm trying to implement it following a simliar algorithm like the one showed in this thread: Asterisk - Pre-emption calls
So I'm having problems in this step:
check if B in call with lower priority caller( ASTDB or REALTIME or fastagi script).
I know how to check if B is in a call using for example DEVICE_STATE(device) cmd, but i can't achieve to know who is the other caller in order to see his priority.
So, How can I know if one users is in a call and who is the other caller inside this call?
Thanks a lot.
You can read variables of any channel using
SHARED(varname[,channel])
-= Info about function 'SHARED' =-
[Synopsis]
Gets or sets the shared variable specified.
[Description]
Implements a shared variable area, in which you may share variables between
channels.
The variables used in this space are separate from the general namespace
of the channel and thus ${SHARED(foo)} and ${foo} represent two completely
different variables, despite sharing the same name.
Finally, realize that there is an inherent race between channels operating
at the same time, fiddling with each others' internal variables, which is
why this special variable namespace exists; it is to remind you that variables
in the SHARED namespace may change at any time, without warning. You should
therefore take special care to ensure that when using the SHARED namespace,
you retrieve the variable and store it in a regular channel variable before
using it in a set of calculations (or you might be surprised by the
result).
Sure you have set variables first.
You can set in variables or in ASTDB name of current speaking channel using in-call macro
General complexity of any solution like you want is above average, need person with at least 1-2 year of extensive experience with *.
This is not a programming question per se. I am trying to build a system which consists of the following:
User calls system using regular land line
Some processing is done by asterisk
Call is forwarded to an external number (another landline/mobile phone)
Now I would like atleast 2 simultaneous lines on which the user can call. I would like to know the following:
Will the TDM410 work for what I am trying to achieve?
Since I want call forwarding, do I need an extra line for that? Or can I do it on the same line? e.g. for one user do I need one incoming line and one outgoing line or can I do both receiving and forwarding on the same line?
I have both asterisk books but am still unclear as to which card to purchase. Is the TDM410 with 4 FXO the right one? I am thinking of TDM410 because it has 4 lines so that I can use two for incoming and two for outgoing. Am I right? Can someone please point me to a link/online store?
Thank you very much for your time.
PS- I do not wish to use SIP. I want to use POTS for all my calls (incoming and outgoing)
The TDM400 with 4 FXO modules will work for what you need.
When you receive a call on one line, then that line is busy and you must use a different line to forward the call (Asterisk will bridge the calls but it needs 2 lines for that). You can buy them directly from Digium.
You need at least 3 landlines if you want to be able to receive calls from 2 lines; the third line will be the one you use to forward the calls, but only one call can be forwarded at at time and the other person will have to wait. If you don't want that then you need 4 landlines.