Asterisk Capacity

Home » Asterisk Users » Asterisk Capacity
Asterisk Users 14 Comments

Hello,

We are currently working on a project where using .call file on asterisk
spool, outbound calls will be made from a pri line and a voice clip will be
played.

We know that pri has a capacity of handling only 30 channels at a time.
Therefore, my worry is what happens if we write 100 files at a time on the
spool. Will asterisk manage the queue or how exactly will it behave.

Regards,

Ashish

14 thoughts on - Asterisk Capacity

  • Hi Ashish

    Only write 30 or less files at a time. Asterisk will try and send them all and they will fail. Just count how many files are in the spool dir and how many calls are active and stay below your limit

    Cheers Duncan

  • In my experience the first 30 calls will go simulatenously, then the remainder will go as lines become available. You should use /g1 or /r1 to allow the call file to pick an open channel. Mitul is somewhat correct; all 100 calls will try to process at once, so the 70 “laggards” will have to re-process. The better solution would be to send the calls in chunks of 20 or 30, especially if you don’t specify async=yes and multiple tries.

    Sent: Thursday, May 03, 2012 10:50 AM

    The other 70 will result into failure with .call file approach.

    Regards,
    Mitul Limbani,
    Chief Architech & Founder,
    Enterux Solutions Pvt. Ltd.
    110 Reena Complex, Opp. Nathani Steel,
    Vidyavihar (W), Mumbai – 400 086. India
    http://www.enterux.com/
    http://www.entvoice.com/
    email: mitul@enterux.in
    DID: +91-22-61447605
    Cell: +91-9820332422

    Hello,

    We are currently working on a project where using .call file on asterisk spool, outbound calls will be made from a pri line and a voice clip will be played.

    We know that pri has a capacity of handling only 30 channels at a time. Therefore, my worry is what happens if we write 100 files at a time on the spool. Will asterisk manage the queue or how exactly will it behave.

    Regards,

    Ashish

  • The “best” approach to this would be to have a “sender” that uses AMI to
    monitor channels and release .call files as channels become available.
    About 100 lines in PERL.

    [mailto:asterisk-users-bounces@lists.digium.com] On Behalf Of Ashish Agarwal
    Sent: Thursday, May 03, 2012 10:53 AM

    So what is a better approach to achieve this

    The other 70 will result into failure with .call file approach.

    Regards,
    Mitul Limbani,
    Chief Architech & Founder,
    Enterux Solutions Pvt. Ltd.
    110 Reena Complex, Opp. Nathani Steel,
    Vidyavihar (W), Mumbai – 400 086. India
    http://www.enterux.com/
    http://www.entvoice.com/
    email: mitul@enterux.in
    DID: +91-22-61447605
    Cell: +91-9820332422

    Hello,

    We are currently working on a project where using .call file on asterisk
    spool, outbound calls will be made from a pri line and a voice clip will be
    played.

    We know that pri has a capacity of handling only 30 channels at a time.
    Therefore, my worry is what happens if we write 100 files at a time on the
    spool. Will asterisk manage the queue or how exactly will it behave.

    Regards,

    Ashish

  • If you set the ctime (or maybe mtime) of your spool file to a date in the future, then asterisk won’t process the .call file until that future time.

    I recommend creating your call files with a random ctime/mtime for 0 – 240 seconds in the future and make sure you have a random retry time in your .call file.

    Also NEVER create your .call files in the asterisk outgoing directory — asterisk might try processing the file before your script finishes writing the data. Create the file in a different directory on the same filesystem and move it to the outgoing directory.

    This is not a perfect solution, but it is “good enough” and worked well at the time.

  • “easiest” way is “service asterisk status” or asterisk -rx “core show
    channels verbose”

    [mailto:asterisk-users-bounces@lists.digium.com] On Behalf Of Ashish Agarwal
    Sent: Thursday, May 03, 2012 11:29 AM

    How can I check how many lines are currently being used?

    Hi Ashish

    Hello,

    We are currently working on a project where using .call file on asterisk
    spool, outbound calls will be made from a pri line and a voice clip will be
    played.

    We know that pri has a capacity of handling only 30 channels at a time.
    Therefore, my worry is what happens if we write 100 files at a time on the
    spool. Will asterisk manage the queue or how exactly will it behave.

    Only write 30 or less files at a time. Asterisk will try and send them all
    and they will fail. Just count how many files are in the spool dir and how
    many calls are active and stay below your limit

    Cheers Duncan

    Regards,

    Ashish

  • Ashish Agarwal писал 03.05.2012 18:53:

    approach to achieve this

    I’ve switched to AMI originate, call files did
    not satisfy me for some reasons.

    Besides, originating calls from
    script gives you full control on when does each call start ant stop,
    thus allowing you to manage your capacity instead of guessing if those
    30 call files were all executed successfully.

  • Or you could use a System call in the hangup dialplan and trigger a new
    call as soon as an old one just finished. Maybe a silly idea but it shpuld
    just work.
    Ioan

  • We are working on a project to create a general-purpose telecasting server
    – see http://wombatdialer.com – there is practically no documentation yet,
    but it’s easy to set up and we tested it originating hundreds of channels
    on multiple servers. It is alpha stage, but current versions are free and I
    expect them to basically work.

    If you want to give it a shot, you can install via RPM as described on the
    website.
    Thanks
    l.

    2012/5/3 Ashish Agarwal

  • Hi Ashsih,

    I have built an application similar to what you working on.

    Am not sure what language you are using but you can set the created time of
    the extra .call files minutes later.

    For Example
    The 1st batch of 30 call files can have a now timestamp
    The 2nd batch of 30 call files can have a now + 2 minutes
    timestamp
    The 3rd batch of 30 call files can have a now + 4 minutes
    timestamp

    Meaning after the first 30 calls are made the system gives a 2minutes lag
    before making the 2nd batch and its goes on
    Like that.

    In PHP I do it using the touch function.
    touch($callfilename,$time);

    Kind Regards

    Billy

  • At the moment it’s free as in beer, though closed-source.
    It is written in Java and uses MySQL as its back-end.
    l.

    2012/5/11 Arstan

  • Hi List,

    I am looking at configuring Asterisk as a SIP server fronted with SER SIP
    Registrar in a single hardware. If you look at the Asterisk, on one side it handles SIP clients and on the other side it connects to a PSTN gateway over SIP trunk/s. I have few questions.

    1. Can we consider this setup as a SIP B2BUA system?
    2. I am planning to use HP DL 380 | Dual Quad Core Processor of 2.5GHz |
    8GB RAM. What is the maximum number of concurrent calls and calls/sec achievable by this hardware configuration? Please assume that all the other factors are provided sufficiently.

    Thanks for your help.

    Cheers, Kannan.