[VoiceOps] Any subscribers from the UK?

Alex Balashov abalashov at evaristesys.com
Wed Aug 5 04:50:10 EDT 2009

Peter Beckman wrote:

>  I really think it has to do with the existing code-base and the existing
>  developers.  Each company is beholden to the geeks that build, maintain
>  and manage the mess of code that exists.  Those geeks either get to choose
>  what technologies are used, or do not have the resources to rewrite
>  working code and are forced to maintain the code already written, maybe
>  adding things on in different more familiar languages along the way, until
>  you're in a giant pile of spaghetti code in 9 languages, all tangled
>  loosely but functionally together by a very thin thread.

As far as I see, large, well-capitalised companies selling into the 
enterprise market generally have the resources to recruit, hire and 
integrate developers in whatever platform and/or software development 
ecosystem they please.  If they want to switch, they can switch.  If 
they want to rewrite or refactor large chunks of it, they can do that, 
although certainly not with any kind of speed, and that can lead to very 
valuable lost time to market.

Still, I think the real criteria there have to do with, in addition to 
leveraging existing code and/or licensed core technologies (such as 
commercial SIP stacks, for example) - as you say - also with issues that 
are fundamentally cultural and somewhat religious in nature.  The belief 
systems and experiential biases of CTOs and senior directors of this and 
that certainly play a major role.

>  What do Metaswitch or Broadsoft use?  C?  Perl?  Are they using Asterisk
>  or did they build their own telecom server stack?  How do you know they
>  are NOT using PHP internally or even externally?  Disabling the web
>  management server's tag (not returning "Apache/1.2.47 PHP/5.2.5" on
>  requests, even though that is exactly what it is running) is trivial and a
>  good security choice, assuming these devices are configured via a
>  web-based interface.

For all my talking smack about PHP, I don't actually have a detailed 
knowledge of what those two platforms use, although I know for a fact 
they don't use PHP.

Given the strangehold that Java has on big telecom, I would imagine it 
plays a dominant role.  As Peter Childs mentioned, BroadWorks seems to 
revolve primarily around Java, which also makes sense in many ways given 
the vertical integration possibilities it offers.  For example, a core 
management layer in Java can contain an embedded application server 
serving JSP that directly accesses runtime data from the former process, 
saving the need to implement costly and complicated APIs and/or 
middleware for those two components to communicate.  BroadWorks 
certainly appears to work on that principle.

On the other hand, I cannot imagine that every component of the system 
is written in Java;  for instance, I have a hard time believing that the 
high-capacity media relay and media generation portions of the Broadsoft 
assembly are done in Java.  That wouldn't make any sense.  Most likely, 
those are done in C.

I would hypothesise something similar about Metaswitch, although their 
stuff doesn't scream Java nearly so obviously apart from the switch EMS 
client itself.  Doing management front-end GUIs that provision the and 
monitor the switch via SNMP in Java seems to be fairly standard fare for 
almost everyone.

Also, most SIP stacks and signaling agents for other IP signaling 
protocols (H.323, H.248/MEGACO, MGCP, etc.) are written in C or C++, if 
for no other reason than performance, along with access to low-level 
system calls used to trigger various kernel-side APIs and subsystems[1].

And, of course, any sort of TDM hardware interfaces such as would be 
necessary on media gateway hardware (this is relevant to Metaswitch 
rather than Broadsoft) would of almost certain necessity have to be done 
in C or C++ - I just don't see the device driver access being plumbed up 
to the level of abstraction in which the JVM operates, with the VM and 
the sandbox and the security model aspects in mind alongside the more 
obvious restrictions and performance implications.

I do not know if there's anything ASIC-assisted in the Metaswitch aside 
from the TDM ports, but if so that would almost certainly call for C or 
C++ as well.

So, if I had to take a stab at it, it sounds like some combination of 
C/C++ on the low level, Java on the general level, and perhaps 
miscellaneous Perl throughout.

-- Alex

[1] Although, it is an interesting case in point that one of the most 
popular open-source media relays, AG Projects' MediaProxy 2.0, is 
written in Python but uses kernel APIs plumbed through C to Python that 
reach into the Linux kernel's IP forwarding subsystem to provide faster 
RTP relay than would be possible in pure userspace, let alone in an 
interpreted language like Python.  That's about as close to relay at 
wire speed as you're going to get.

Alex Balashov
Evariste Systems
Web    : http://www.evaristesys.com/
Tel    : (+1) (678) 954-0670
Direct : (+1) (678) 954-0671
Mobile : (+1) (678) 237-1775

More information about the VoiceOps mailing list