[asterisk-users] Experience with Vicidial

Alex Balashov abalashov at evaristesys.com
Thu Jul 17 00:50:26 CDT 2008


Ein Bielaczyc wrote:

> I have a small customer looking to update their aged telemarketing
> system. I ran across astGUIclient and Vicidial
> (http://astguiclient.sourceforge.net/) during a Google search and was
> wondering if anyone had any experiences to share, positive or
> negative.

Well, you do have to realise that you're putting almost anyone who may 
have had a negative experience with ViciDIAL in the difficult position 
of effectively slandering it, or at least earning the ire and distaste 
of many other list members, most certainly including the authors.

But, that's no reason for self-censorship.  So, with apologies to Matt 
Florell and others:

Personally, I've found that ViciDIAL generally works - in a practical, 
functional, utilitarian sort of sense in which programs work 
deterministically in accordance with their underlying instructions.
I think if you want it to do what most people want it to do more or less 
out of the box, it's probably a good choice.

The story is a bit different, however, in the unlikely event that you 
actually do care about what's under the hood. It proved to be 
impractical for my intended use because customisation was required, and 
the code is an absolute nightmare from a developer's perspective.  It is 
a hodge-podge of naive, inefficient PHP and Perl written with absolutely 
zero regard for maintainability.  It is impossible to read, has no 
discernable formatting characteristics, is often obfuscated, poorly 
spaced, arbitrarily indented, and follows no consistent or useful 
nomenclature or conventions. It's a lot of spaghetti code, and it does 
not leave one united with the impression that functional decomposition, 
abstraction or modularity is valued at all, let alone as a guiding value.

I suspect many -- although certainly not all -- of limitations to its 
scalability stem from resource consumption caused by extremely 
inefficient algorithms, flow control constructs, and serial database 
interactions that involve repeatedly swapping data in and out of the 
programmatic layer in high-volume transactions, transforming it, and 
sending it back to the database.  There also appears to be considerable 
reliance upon the database as a real-time IPC mechanism--another very 
deadly anti-pattern.

Additionally, it has far too many processes, many of whose essence is 
not clearly or easily understood by the naked eye.  If the code were 
readable, this wouldn't be so bad.  But as it stands, in addition to the 
ugly hack that results from retrofitting astguiclient in this fashion, 
there are plethoric, innumerable Perl / AGI scripts whose coherence can 
only be depicted with evocations of a Rube Goldberg device.

So, as long as you are interested only in the superficie, it seems to 
work pretty well, although I can't comment on the overall stability, 
bugs too much.  However, if you are interested in development or 
customisation, you need to run for the hills, because nothing short of a 
complete, categorical, wholesale from-scratch rewrite -- one with some 
evidence of method -- is going to untangle the catastrophe that boils 
under the deck.

-- Alex

-- 
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