Hello dear Monks, i come upon you with the following question :

We're developing small client that controls one SIP locale via Asterisk Manager interface. However, the number of clients is somewhat large (around 500), and i'm not confident about AstMan's capability to handle such number of connections...it wasn't designed for that anyway. Issue number two would be AstMan's incapability to forward events for only one SIP channel. If the client connects directly to AstMan, it needs to parse all incoming data (about all channels), and take appropriate ones.

Therefore, i was given a task to program a small daemon that connects to AstMan on one side, and clients on another, relaying AstMan information to appropriate client. I went with Perl, and i want to use Net::Server package to handle all connections. However, i ran into a problem;

If i use Net::Server::(something)Fork personality, the server behaves in a way that it spawns a child process for each connection. That's great, but, the general idea is to have 500 connections to my daemon, and a single connection between the daemon and Asterisk Manager. Behaviour of the Net::Server::Fork personality implies that i'll again have one AstMan connection for each client connection, and that's not the point.

I've seen Net::Server::Multiplex personality, but i'm not confident about it's capabilities, especially when you take the ratio of incoming events for 500 SIP channels...the user client should be very responsive.

So i'm seeking your ultimate wisdom on this issue. I wanted to do this in Perl because of time...i didn't want to program the daemon from ground zero in C. However, if i'm forced to program a multithreaded daemon with critical sections i'm going to go with C (nothing against Perl, but i'm really more experienced with C).

Thank you in advance,
Zarko Bulatovic

In reply to Net::Server capabilities by zare

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.