Asterisk SIP - Dial in parallel - asterisk

I've searched the documentations of asterisk and could not find any info of the limit of parallel destinations when dialing in parallel.
exten => n,Dial(number1&number2&number3&...],other-options)
Does anyone know what is the limitation in the ideal case, when there are no other active call sessions etc?
Thanks in advance

There are no limits, except
1) Dialplan line is limited to something like 200chars.
2) load limited by your server max load. Usually limited by CPS, becuase it give alot of inivites and cpu spike. Something like 50/sec for modern servers, so near 50-100.
In general if you need call multiple people(like 30+) much better use queue, becuase they do redial in same session.

Related

Asterisk silence until agent answers

Interesting issue I have never run into before with Asterisk.
Using Asterisk 1.8.x (please don't tell me to upgrade, it's not possible at this time).
When someone dial direct into the system to any of the numbers, we Answer, then push them to a queue and either play MOH on Ring sound.
This has always worked fine and still does. Most people forward calls to our numbers from their business line/phone system.
For this one customer and only one customer, there is complete silence for the caller once their phone system initiates the forward to our number. Our Asterisk box answers the call, we have even tried playing sounds using Playback etc but nothing, complete silence until one of the agents answers from the queue.
Really bizarre. canreinvite=no is set so, there shouldn't be any issues with Asterisk getting optimized out.
Any ideas a really appreciated. I know it's on their end but, it would be great to find a way to make Asterisk, make the customer's phone system behave correctly LOL.
You would have to take a wireshark trace at Asterisk box and check INVITE offer and 200OK response from asterisk. Then make sure that media RTP are sent to IP address in connection information line c= and port specified on m= media line. You also should check if rtp payload (codec) match the request and answer. Asterisk probably will respond with one codec from INVITE offer. When media are sent but caller does not hear anything before an agent answer the issue is probably on caller side. Hope helped a bit to tracę the issue.
I had the same problem once, but the other way around. I was the client dialing into someone else's system using my asterisk system. I tried everything in my hand, including pestering my (E1) telephony provider to no avail.
To this day I still don't know the reason for this behaviour, but I've managed to get around by Answering the call originated from my system BEFORE dialing the PSTN, thou this is far from ideal.
Something like this:
Answer()
...
Dial(YADAYADAYADA)
I know this isn't exactly the answer to your problem, but I hope it helps in any way.
Very likly you have issues with codecs. I.e customer use some codec you have no translation module, but agent's customer have

What are some limitations of the Asterisk Manager Interface (AMI)?

It is my understanding that the Asterisk Manager Interface is single threaded.
Can someone please explain to me if this is true, and if so, explain what some of the limitations of this would be?
If calls to the AMI overload the single thread do requests get queued up? Can this cause issues on a system (phones losing registration, poor call quality, etc.)?
You can open 10 AMI sessions in 10 threads and create your own pool.
However very likly if you need more then one, you do something wrong. AMI response usually very fast.

Asterisk AMD detection issues with WombatDialer

we have been having issues with AMD detection when running outbound campaigns on Asterisk that seem to be load-related, but I'm not really sure.
What we do is to send outbound IVRs that are basically targeted at debt collection. We use WombatDialer as the dialing engine (so we get recalls and clustering for free, and still can program Asterisk directly) and routinely include app_AMD for machine detection. We run Asterisk 1.8.10, installed from source.
What we notice is that when we have more than 50-60 calls on one server, we get a lot of false positives - that is an abnormal rate or AMD recalls. We were able to instrument the dialplan and see that the issue seems to be with the AMD application. Servers are pretty much idle at 50-60 calls, so it does not seem to be a problem with CPU load.
Anybody has an idea where to go from here? or how to tune AMD / get debug info out? we could easily fan out to more servers, but.... does not seem like a great idea.
Most likly at 60 calls your provider start say something like "all lines are busy now".

Capacity of Asterisk Conference: max users per conference, max conference per server?

I am currently evaluating the Asterisk Conference feature: in an enterprise environment, simple internal VoIP set up with SIP phones, outside users can join to conference from PSTN/GSM etc. I know there are a couple of options, such as Meetme, Conference, Konference and ConfBridge.
Before delving into each option and try it out, I would like to know where can I find the capacity of these different conference options?
- How many users can join one conference at the same time?
- How many concurrent conference can run at the same time on a server?
I know this will also be determined by the CPU processor and the available bandwidth. But just assume we have enough CPU power and bandwidth, is there some max limitation enforced by the server code?
I'm not aware of any hard limit on the number of conference participants. As you said, the capacity will be determined by the hardware of your server and your inbound call capacity (either in bandwidth or ISDN channels).
Assuming a modern server with reasonable specs, you should be good for several hundred potential participants without breaking a sweat, provided that your processor is not tied up doing echo cancellation in software or transcoding.
You can set maximum number of participants in a conference bridge. Limitation will probably depend on bandwidth. I did come across on another site, while looking for something else, where the MeetMe Limit is set to 128. I am not 100% how accurate, but it does shed some light on the subject.
For sure, you can set your own maximum user access on a conference bridge. Within your extensions.conf file:
[fancybridge]
type=bridge
max_members=20
mixing_interval=10
internal_sample_rate=auto
record_conference=yes
Reference: https://www.voip-info.org/wiki/view/Asterisk+cmd+ConfBridge+10
https://supportforums.cisco.com/discussion/10878981/meetme-limits
Side Note: It may be wise to set max members to a bridge for security reasons. Just a thought!

How do I maximize HTTP network throughput?

I was running a benchmark on CouchDB when I noticed that even with large bulk inserts, running a few of them in parallel is almost twice as fast. I also know that web browsers use a number of parallel connections to speed up page loading.
What is the reason multiple connections are faster than one? They go over the same wire, or even to localhost.
How do I determine the ideal number of parallel requests? Is there a rule of thumb, like "threadpool size = # cores + 1"?
The gating factor is not the wire itself which, after all, runs pretty quick (ignoring router delays) but the software overhead at each end. Each physical transfer has to be set up, the data sent and stored, and then completely handled before anything can go the other way. So each connection is effectively synchronous, no matter what it claims to be at the socket level: one socket operating asynchronously is still moving data back and forth in a synchronous way because the software demands synchronicity.
A second connection can take advantage of the latency -- the dead time on the wire -- that arises from the software doing its thing for first connection. So, even though each connection is synchronous, multiple connections let things happen much faster. Things seem (but of course only seem) to happen in parallel.
You might want to take a look at RFC 2616, the HTTP spec. It will tell you about the interchanges that happen to get an HTTP connection going.
I can't say anything about optimal number of parallel requests, which is a matter between the browser and the server.
Each connection consume one own thread. Each thread, have a quantum for consume CPU, network and other resources. Mainly, CPU.
When you start a parallel call, thread will dispute CPU time and run things "at the same time".
It's a high level overview of the things. I suggest you to read about asynchronous calls and thread programming to understand it better.
[]'s,
And Past

Resources