Thursday, May 15, 2014

My Latest Project - Guerrilla Tools Sneak Peak

I came into 2014 with a goal to blog more frequently than I did in 2013. While I didn't have as lofty a goal as Tom over at, I was, shall we say, inspired. I planned on trolling through my "blog ideas" list to churn out some content.  Well, clearly the universe (or fate or whatever) had different plans and I had to adjust priorities. Free time was at a premium and I opted to work on a side project more often than adding content to the blog. Both would have been nice but coding has a calming affect. 

Yeah, I am that breed of nerd that finds solace tinkering with things like coding to center myself. We all need hobbies. Anyway, the side project I have been working on is starting to evolve into the real boy I hope it to be some day. I think it is far enough along to share with readers.

Right now, I am just calling the project "Guerrilla Tools". I'll probably rename it but that is a decision for later. The initial version is focused on functionality that complements one of the prominent series in this blog: the SQL Query Series.


Those who have known me the longest, probably know that I started out doing some software development. In retrospect, it was a pretty short lived stint. I got into protocol analysis and then routing/switching for several years. I still kept my programming tools in the ol' tool belt. I just stepped sideways into scripting languages and building small automation tools. I carried that "skill" (if I may be so bold) into Cisco voice.

I have several tools that I have built for process automation with Cisco Unified Communications Manager (CUCM). They are functional but they are definitely hacks and not something I would share with the broader community. Shortly after starting this blog, I grabbed onto the idea of taking those tools and porting them to something a little more consumable. 

The "alpha" version of that idea is taking shape and I have recently crossed several development milestones. There is still a lot to get through but the cool thing about this road is that it is long and twisted.


Currently, the project is focused on providing functionality for writing and testing SQL queries. It has the ability to load, merge, and save libraries of SQL queries. Syntax highlighting is built in today and I may add a schema browser function later (yeah, definitely later).

Basic functions like running an ad-hoc query, creating new queries for the library, copy, delete, etc. are present today. 

Another tool I built years ago had similar functionality but with a very limited UI. One of the "features" of that tool was that I dumped the raw XML data structures (sent and received) to the user interface. I found that useful and add it to this new project.

Since I am a consultant by day, current and future functionality will be built around the idea of supporting multiple UC environments / clusters. Accounts are created and can be attached to SQL entries in the library for sorting/filtering. 

Presently, I am developing the application for OS X because that is my platform of choice and that's just how these things go. However, I did pick a development environment that is reasonably positioned for cross-platform builds. So, the intention is to have a Windows flavor as well. 

What's Next?

Over time, this project will evolve to incorporate a good portion of the independent scripts and tools I previously built. I am sure I will also add other functionality that I have been wanting to tackle. As I am a one-man show, that will take time. 

But that is "later". The "next" step is working on some UI tweaks for the current version and beefing up the error routines. Then I want to move  to a "Beta" test. Hopefully, I will get some of my colleagues and contemporaries to be willing victims.

From there? Well, feedback I receive during Beta will determine whether I go with a more broadly available app or if I take it out into a field and shoot it (Doubtful).

Thanks for reading. If you have time, post a comment!


  1. If you need a beta tester, I'm up for it.

  2. Very cool Project.."abstracting" the SQL Statement is where it's at..those can be pretty mind twisting..

  3. Very impressive project! Let me know if I can help with some windows testing in the future.

  4. Looks incredibly interesting! We're doing tons of work in CUCM and other Cisco apps via SQL queries here as well, and the CLI or AXL toolkit simply don't have the flair and elegance your interface has! We're definitely up for beta testing your tool, if you're looking for guinea pigs... Thanks!

  5. Hi Will,
    Can I ask which programming language you use for that app?


    1. Ewido,

      Right now I am using Xojo. Which is the same dev platform used to build TranslatorX.

      I got a little side-tracked because I started playing with python, too. But I am back in full swing on the Xojo project. Working out some kinks and building in a more robust logger/debug routine.


  6. Hello,

    What tool are you using to do the querys in the database?


    1. Queries are actually delivered using the AXL API "executeSQLQuery" command right now. The application is developed in Xojo but I have used C#, Java, JavaScript, and Perl to interact with the API. Methodologies and logic is pretty portable. Even if the nuances between languages are different.


  7. Im new with SQl and I have a cucm in my lab, what application can I install to run the querys to the cucm?

    Thanks again!.

    1. There are various options. I expect some free ones to be floating around but I haven't sought them out (I am using my own tool).

      Fortunately, there are some options right "out of the box". You can run SQL queries directly on the CLI of the UCM. You can also use the AXL toolkit that Cisco ships with CUCM (downloadable plugin).



  8. Hi Bill,

    Have been following your posts for a while now, just wondering what are the plans for a release of the toolkit you were working on?

    Best Regards,


    1. Sam,

      Thanks for the query. Unfortunately, life got in the way this past year. On the upside, the dust has mostly settled on that and I have started to work on the tool again. Of course, spinning back up on a project like this isn't as smooth as, say, riding a bike. Lol.

      Presently, the project has full functionality for running queries, storing/saving query libraries (exporting/importing/merging/etc.). I am working on interface elements to clean things up and prep for adding modules such as bulk queries (running multiple queries and writing to a report), querying device registration status, and SQL updates.

      I have all of the code / logic working in other tools. I am just working on incorporating everything into one tool. I hope to have a beta version distributed to my local team this summer. If that goes well then I plan to extend it to some select beta testers.

      I'll keep you posted. Thanks again for the interest and follow up.

      -Bill (@ucguerrilla)

  9. Hi Bill,

    Your SQL posts have been extremely helpful and I too was wondering if you still plan to release Guerrilla Tools.



    1. Dale,

      Thanks for the kind words and follow up. I appreciate it. Unfortunately, dev on Guerrilla Tools was put on hold (along with other extra curricular activities, like blogging and such) for personal reasons. You could classify it under "Life Happens".

      Things have turned a corner as of late. So, maybe I will be able to resume those activities. Too soon to commit to anything.

      -Bill (@ucguerrilla)

  10. Hey Bill,
    I love this SQL series & this has helped me a lot to fetch details over all the UCM clusters that I manage. One of the things I'm still not understood is changing the IPCC extensions on the enduser page to "None". Currently there are lot of rogue agents that I'd like to remove, haven't found an easeir way. Using the dnusage=2 helped me get the IPCC users, but not sure how to update the list to