[asterisk-users] Is Asterisk ready for Prime-Time?
Alex Balashov
abalashov at evaristesys.com
Wed Mar 19 23:59:08 CDT 2008
Very interesting thread!
My general sense, being both a person of heavy UNIX systems programming
and modest telco background, and as an Asterisk enthusiast, is that
Asterisk itself is quite production-worthy as such. Experience suggests
that what is controversial about it from a business standpoint, in terms
of total cost of ownership, support, and dependability, are many things
rather ancillary to it that contribute to the overall experience of an
Asterisk-based system as a product. Some of these pitfalls have already
been pointed out with regard to the shortcomings of consumer-grade PC
hardware, hard drives, power supplies, etc.
In other words, it seems to me that you can't just throw up an Asterisk
box as such and have it perform to your expectations. My experience
with the few Asterisk based IP PBX appliances that claim to be thusly
turn-key has been very poor, although, in their defense, it's been a
while and I'm sure those platforms have come a long way. But overall,
the domain of expertise required to make Asterisk work well in an
environment demanding of high availability is of a scope considerably
beyond Asterisk itself, and amounts to a fairly broad nexus of network
engineering, *nix systems administration, and so on. Most generalised
-- and, to some extent, highly specialised -- IT savvy is required, as
can be true with anything open-source and not packaged as part of some
immaculate, embedded black box culturally or technically.
Asterisk works well if deployed in a manner that brings quite an array
of skills to the table in a rather comprehensive way. In and of itself,
it assures little. This conclusion is supported by the differences in
my effort expended to support and (re)engineer third-party Asterisk
installations of varying quality and sophistication. And of course,
what I am saying here applies to most other things as well. It is
possible to set up Apache or MySQL or Linux itself naively, "from the
heart," as well, as many do, or to do it in a nuanced, refined manner
that is attentive to the specificity of tight production requirements
and capitalises upon considerable expertise.
All Asterisk setups in which I have been involved have generally
involved a from-scratch custom compile of Asterisk, zaptel (if
necessary), and very frequently - especially if the latter is required -
a hand-compiled kernel as well. I do not use Trixbox, any Asterisk
administration front-ends, IP PBX appliances, and so on. I can't really
comment on their respective merits, but even if I could, I feel strongly
compelled to point out that this would be more of a referendum on
particular vendors or integrators who have packaged Asterisk a certain
way than about Asterisk in principle, which is something several people
have already said. If all of the nuances of a hand-maintained Asterisk
configuration are observed, I think it's a pretty solid product in any
event, but it does increase total cost of ownership for my clients as
they have to find someone like myself or other Asterisk consultants on
this list with the knowledge and experience to do that sort of thing.
It's the same sort of dilemma that arises between investing a lot of
faith in a stock CentOS or Fedora install by someone who "kind of knows
a bit about Linux" vs. hiring a really knowledgeable Linux sysadmin,
where the limitations of the distribution don't really matter because
they're going to know what to do with it on a highly detailed level.
The latter obviously gets vastly superior results, but costs a lot more
money and time.
At the risk of inflaming a lot of passions, including those of
hard-working developers, I must say that where Asterisk may be
production-worthy, the entire constellation of things (like Zaptel) of
which its PSTN hardware interface capabilities comprise is absolutely
not, if my experience is at all telling. Of course, that's not all
Zaptel's or Digium's fault; much of it is just the buggy, flaky, and
very inconsistent nature of PC hardware, the kernel, ${insert true
culprit here}.
Nevertheless, my only truly solid experiences with Asterisk have come in
situations where it is used as a purely SIP agent. FXO interface
hardware, PRI cards (Sangoma, Digium, Rhino, etc.) all have bugs,
strange interop problems I've never seen before with big iron TDM
switches or newer telco softswitches that generate those circuits,
bizarre apparent interpretations of certain ISDN messages, and can cause
system instability, lockups, etc. (Whether they are the true cause of it
or whether that's just a consequence of their interoperation with the PC
is unknown to me, and somewhat beside the point.)
They've come a long way, I think. When I first used Digium T1 cards,
little, basic things like B channels not being hung up properly were
still a major and frequent theme. For low-capacity installs involving
at most one or two PRIs, I think one may be all right at this point.
But I still think it's experimental and avant garde from a production
standpoint; I find myself frequently stressing to my clients how much
better off they'd be just getting SIP termination and origination
elsewhere and breathe easier. Sangoma seems quite all right. Rhino is
OK, although as far as their multiport FXO interfaces go, it suffices to
say there is a difference between making it work and making it work
well. Their free support does go a long way toward that end. Your
mileage may vary. Caveat emptor.
In general, though, almost any installation with any TDM trunking of
nontrivial volume is something in which I've ended up deploying
dedicated ISDN VoIP gateways, most recently Cisco AS5300s and 5400s. In
general, this is what I would advise to anyone thinking about
terminating more than a handful of PRIs, let alone DS3s worth of
traffic. Get proven, reliable hardware (even if it is expensive) from
vendors for whom TDM and carrier-grade telephony is a core competency.
I've seen far too many people try to take the cheap way out with a bunch
of Asterisk-oriented TDM hardware and not get quite what they were
expecting. Don't do it. There's something gravely perturbing about
running T1s into a PC anyway, although I know it's been done in certain
esoteric commercial telephony applications for eons.
Other, similar considerations apply. In a nontrivial SMB environment,
it is critically important to take the time to properly implement QoS.
If your network sucks, so will your Asterisk experience. Build VLANs
and segregate your voice traffic. Don't use cheap routers and base
commodity unmanaged switches. If you're doing VoIP out over the
Internet or interoffice, make sure you understand that you need a real
Internet connection to a provider that is well-peered to have any hope
of delivering this type of service, and even then, you're at the mercy
of best-effort phenomena. Sure, you have to have enough bandwidth, but
that by itself is almost worthless; there needs to be good, consistent
latency, no/very low packet loss, and your users need a way of reaching
you over non-congested backbones, ideally ones that are voice affirming
in that they implement end-to-end QoS on their IP transit network.
In the end, it boils down to the same thing, really. Asterisk by itself
is just an element of the question. What you surround it with -- and
how -- is just as important in the final analysis. Get good PC
hardware. Administer the operating environment well. If you want to be
providing VoIP services, take the time to research and colocate in a
great data center with excellent upstream connectivity and fabulous
QoS--to the extent that this is even possible. If you are doing
extensive PSTN connectivity, make sure you get real hardware for it -
don't think you're going to get away with a bunch of PCs. Don't try to
use Asterisk where it doesn't belong; it is not a transit element for
carrier service, but rather an endpoint. It's a PBX, a
feature/voicemail/IVR destination, etc. It is not a switch, a proxy, or
anything else. That's what softswitches, OpenSER, media gateways, etc.
are for, so build your voice service platform on that.
If you're using it as an SMB PBX, make sure you've thought through your
phone question. Don't get cheap phones, as the SIP interop issues and
overall quality hit is simply not worth it. Think about how you're
going to do mass-provisioning and other ways the phones relate to
Asterisk (i.e. NAT).
It's pretty stable, except perhaps at the margins of some of its broad
features (I've run into a few bugs with queues, but they weren't
show-stoppers). What you get out of it is, much as with the sewer
system or with anything open-source that isn't commercially prebuilt and
packaged on proprietary, embedded hardware with all sorts of ASICs and
VLSI and solid-state goodness, mainly a question of what you put into
it. Do the right things - and for the right reasons - and Asterisk is
utterly awesome. Do things willy-nilly, and you'll get willy-nilly results.
--
Alex Balashov
Evariste Systems
Web : http://www.evaristesys.com/
Tel : (+1) (678) 954-0670
Direct : (+1) (678) 954-0671
Mobile : (+1) (706) 338-8599
More information about the asterisk-users
mailing list