[VoiceOps] Any subscribers from the UK?

Peter Beckman beckman at angryox.com
Tue Aug 4 15:03:40 EDT 2009

On Tue, 4 Aug 2009, Alex Balashov wrote a lot of things that Peter Beckman
cut, not because they are not worthwhile, but because his response is
significantly less verbose:

> I realize you don't disagree with me on most of this.  I just think that 
> these premises lead to the conclusion that there's no way something like PHP 
> can be the ticket, whereas you clearly don't.

  Honestly I agree with you on almost all points -- PHP isn't the best,
  greatest or most scalable solution to scripting Asterisk via AGI or
  FastAGI.  In my opinion PHP is a legitimate language that a FastAGI daemon
  can be written in and function, maybe even function well.  I think Bash
  would be a worse choice to write a FastAGI daemon in, but you could.  You
  might even be able to use a whole bunch of pipes (or socat) and some GNU
  tools to build one.

  PHP can and does work, and so does Perl, and so does C and C++.  I can
  write a FastAGI daemon in all of them.  I can likely build it with some
  extra work, a few extra tools, maybe a different method of compiling and
  actually make it scale well in all three languages.

  For customers who are not sophisticated, and who have limited budgets,
  they can hire limited programming resources who have less knowledge about
  the kinds of intricacies we have learned over the years.  This leads to
  the "exten => _X.,n,AGI(asterisk.php)" lines in the config that we see and
  immediately cringe at upon seeing.  We know that some languages are better
  at being long running processes than others, and when the programming
  resources are available, are able to choose the best one for the job.

  PHP is a choice, an option, one that I think is perfectly valid for some
  situations.  I've written a lot of cron jobs and command line scripts that
  work in PHP just fine.  Since there are resources on the servers to handle
  the bloat of using an interpreted language to run these scripts, there
  isn't any real problem with it.  There is a PHP CLI for this reason.

  Given the same resources, we'd probably both rule out PHP as the ideal
  solution for a FastAGI implementation.  It is, IMO, still a legit option.

> Good to know;  I had not considered the soft reload angle.  Thanks!

  No problem!  Just be sure that if your FastAGI is using HTTP API calls to
  your backend that you are able to manage DB changes gracefully.  Having an
  existing call make a call to an internal backend API that now requires an
  additional variable will fail unless that case is handled.  This is one of
  the reasons the FastAGI does not talk to the DB directly, but through HTTP
  API calls that are handled quickly by PHP.

Peter Beckman                                                  Internet Guy
beckman at angryox.com                                 http://www.angryox.com/

More information about the VoiceOps mailing list