Televoip's Blog

Random thoughts

CudaTel Communications Server – Hands on

Cudatel Communications Server is a softswitch/PBX built on the Freeswitch platform.  It is developed and marketed by the good folks at Barracuda, the makers of the Barracuda spam and virus firewall.

The Cudatel appliance is a 1U rack mountable server.  It comes in four versions.  The 270 supports 10 concurrent calls and 2 conferences.  It can have an optional quad analog card installed or can be a stand alone SIP product.  The 370 supports 50 calls, 5 conferences, and has an optional T1 port.  The 470 ups the ante with 100 calls, 15 conferences, and and optional dual T1 card.  The 670 finishes the lineup with 250 concurrent calls, 50 conferences, and an optional quad T1 card.  Standard features include, Conferencing, Voicemail, Voicemail email integration, IVR, SIP voice and Video client support, SIP provider support, HD Audio, Active directory and LDAP integration, call recording, performance monitoring, and automatic phone provisioning.

CudaTel offers a free 30 day evaluation.  Getting started is very easy.  Rack it, plug it in, attach a keyboard, mouse, and monitor.  Log into the device using the default user and password.  Configure an IP address, gateway, DNS, and reboot the box.  The device is now ready to be configured via a web browser.  Open your favorite browser and go to the new IP address of the Cudatel.

I’ve been evaluating the Cudatel 370 for about 3 weeks.  The server has been specifically designed to be used by anyone with a small modicum of VoIP or PBX experience.  This makes the box very easy and quick to install.  However, if you have a lot of experience with the technology, you will find yourself frustrated by the lack of troubleshooting information or customization of the interface.  Of course, Barracuda Networks is willing and very able to provide troubleshooting capability, if you don’t need or care to know what is going on underneath the covers.

The first step I took was to configure a couple of phones.  The Cudatel is based on users, so I first had to create a user, and then assign the user an extension or a phone.  Here the Cudatel gets a little less than intuitive.  Choosing an extension is done via a pull down box.  In order to assign an extension to a user, you must first define all of your available extensions.  To create your extensions, you must go to the System Configuration and choose the Extensions tab.  There you define all of the ranges of extensions you have available for users.  Now back to adding users.  Now you can add your user, and choose an extension.  Click OK.  After the user is created, you get another pull down to add additional information to the user.  You can edit contact information (or have it filled in from Active Directory), set the Voice Mail pin, call recording policy, and add a phone to the user.  If you previously added all your phone MAC addresses, then all you have to do is choose the phone from the list.  Otherwise, just type in the MAC address in the space provided.  If your CudaTel and phones are all on the same network, all you do next is to plug in the phone.  CudaTel will find the phone, identify the type, upgrade the firmware if necessary, and then configure the phone.  If you are not on a flat network, you will need to give the phone the CudaTel http address where the phone configuration is kept, then let the phone go get it.  That’s it.  Your phone is configured.  If you have a DID for this phone extension, you have one more step.  This step is not documented well, or very intuitive, but once you understand how it works, it is very easy to setup.  The Cudatel uses a function it calls Secondary Numbers and Extension.  Any number or extension defined in this area will ring on the main extension.  In order to add a DID, you must add it as a secondary number.  Once this is done, the DID will be routed to the corresponding phone extension.  Cudatel supports Polycom, Aastra, Snom, and Cisco phones.

After I configured two phones, I was able to make some extension to extension calls.  As expected, calls route quickly and display caller information.  The system supports a wide selection of codecs, including wideband, so calls are dynamic and very clear.

Configuring SIP trunks and gateways is very easy.  Go to the Telephone Service Providers page and choose Setup a New Account.  CudaTel supports several of the most well know SIP providers as well as several Generic SIP settings for connecting to your own system or another SIP provider.  There is a bug in the interface that requires a username and password be entered even if the provider doesn’t require one.  Just put in any information in the fields, they will be ignored by the CudaTel.  The add the provider, just put in a host name or an IP, user name, password, and other required information.  Choose whether the trunk is inbound, outbound, or both; choose Music on Hold, and the codecs the service will support. Lastly, choose the outbound route plan, inbound numbers associated with the provider (more on those later), and click OK.  If the connection is successful, the status indicator will turn green and Active.

In order to make outbound calls, you must create outbound routes under your service providers.  This is done by opening the list of service providers.  Click the pulldown tab for the gateway you would like to add the outbound route.  Use the pulldown menu box to choose the outbound route.  The CudaTel comes preconfigured with International, NANPA, 11 digit, 10 digit, 7 digit, 911 and 411 dialing.  If you require additional rules, you can easily create them using CudaTel’s dialing rule syntax.  Create the rules for every gateway you wish to send outbound calls.  If you have several gateways to send the same type of calls (ie:long distance), you can prioritize which gateway sends the calls first.  There is no procedure for balancing outbound calls across several gateways.  Just as you add DID numbers to the extension, inbound numbers for IVR, conference calls, etc. are added as an inbound route on each service provider.  Once the number is added, it will be answered by the gateway and redirected to the IVR, main menu, or other feature you setup to process the call.  The CudaTel can only take an inbound number on one gateway, so if you have multiple circuits in a trunk group on several gateways, your out of luck.

In my environment, I have the CudaTel, and Asterisk server, and a Cisco Call Manager all with user sharing our DID ranges.  This can be a problematic for the CudaTel server.  I created a 4 digit dialing route for each of my gateways going to the Asterisk server and the Call Manager.  I created a priority so that the Asterisk server would be tried first.  If the call was rejected because the extension was not found, the call would be routed to the Call Manager.  Remember when we added every extension range for our phones into the CudaTel?  If the number is found in that range (as all my extensions are), the CudaTel will not send the call out the gateway route.  Even if the number is not setup as an extension.  In order to get around this problem, you must create a rules based router under the Auto Attendant tab of the CudaTels menu.  The rule must include every extension on the gateway you want to send the calls to.  You need to make a rules based router for every gateway on your system.  These are static rules, so if you move a phone extension from one gateway to the other, the rules must be deleted and recreated.  There is no mechanism for editing the rules.

The main menu IVR for our company caused me another problem.  The CudaTel only allows for one sound file for the Automated Attendant.  Our company uses two sound files.  In order to make this work, I had to create a List Based router for our main number.  In that list, I played the first sound file, then I forwarded the call to a second Automated Attendant with a fake number. In this menu, I played the second audio file and then redirected the call to each department depending on what number was pressed by the caller.

The CudaTel also supports, conferencing, call queues, and call parking.  I didn’t test any of these features, but they seem pretty straight forward, so I wouldn’t expect any problems.  The CudaTel also has built in voicemail and will send the callers recording to the users email as an attachment.  This worked well with no problems.  We use Microsoft Exchange Unified Messaging for our voicemail support.  Currently, CudaTel does not support external email, but Barracuda has agreed add the support.

CudaTels support is top notch.  In fact, when you purchase the CudaTel, your are required to purchase Energizer Updates for the first year.  This will provide you with support and system updates for the first year.  With every complaint or problem I discussed with them, they provided a work around for me.  Many of my problems have been sent engineering to make changes to the system.  CudaTel does have a new version of the software is Advanced User status.  I believe it may take care of some of my complaints and problems.  I’ve been promised the update twice, but so far, the update hasn’t been made available to my system.

In my testing, I’ve found the CudaTel to be a well constructed, well thought out server for a small business.  It is fast, efficient, and has most every feature a small business would require.  If the CudaTel is to be your only communications server, it will work well and without problems.  It is very easy to configure.  In fact, it is obvious to me that simplicity was the main focus when the system was designed.  If however, you are using it in a multiple server environment, with several different communications devices, and more than a few gateways, then the CudaTel has some shortcomings.  I believe as CudaTel grows and matures, it will overcome many of these obstacles.  This product will be worth watching.


February 3, 2010 Posted by | Blog Entries | , , , , | 13 Comments

New VoIP service, VoIPTrunk

I first met @overworkedtech, (TJ Stamm) and @kapilville, (Kapil Sachdev) on Twitter several months ago. Each was instrumental in solving problems I was working on. When I found out they were starting a new company that would provide low cost VoIP phone service, I jumped at the chance to beta test and evaluate the service.

VoIPTrunk is still in beta. They are currently providing outbound calling during their testing period. In the near future, they will also provide inbound calling with both DIDs and toll free numbers for most major cities in the US. They built the company from the ground up using their own money because, in the words of TJ Stamm, one of the principle owners, “We saw a need that wasn’t being fulfilled and decided to fill it ourselves. We built our service how we would want it even if, at times, it didn’t make a whole lot of business sense. We wanted to end up with the VoIP service we would want to use. We want to be the last VoIP company our customers will ever need or want.”

When I first looked at VoIPTrunk, I was a little worried about the pricing (I thought it was a little high). Before I could even ask them about the price, they let me know that all their pricing was going down. How’s that for service? The owners are very tech savy, know the market, and have relationships with all the major carriers. They realized the pricing was out of line and fixed it.

Inbound and Outbound calls are .015 per minute, DIDs are $1.00 per month. Inbound toll free are .02 per minute with toll free numbers costing $1.00 per month. They also have flat rate packages. $7.00 per month with unlimited inbound calls, and they also support channelized service, geared for small business, at $1 per month for DIDs and $15 per channel for unlimited inbound calls. Their international rates vary. If you already have a number you want to keep, VoIPTrunk supports porting numbers to and from their service. You will also find many features a lot of “trunk companies” do not support. VoIPTrunk will support full E911 service, CallerID, Fax, and both SIP and IAX trunks. You are in complete control of your service, their soon to be released portal, will allow you to make changes to your account, look up and search your CDR records, and if ever needed, get technical or customer support.

VoIP Trunk will not lock you in either. There are no term contracts, no locked devices. If your device supports SIP or IAX, you can use it with the service. If you don’t have a device, they are authorized partners with most major distributors, like Cisco, Adtran, Linksys, SNOM, Digium, Asterisk, and many others. They can sell or suggest the correct product for your needs. If you have problems connecting your device? Just call them. They are willing and able to help.

My own experience with VoIPTrunk has been very positive. After I registered for service on their website,, my username and password were immediately ready to use (the information is also mailed to the primary account holders email). I put the settings in my home Asterisk server and the SIP trunk came right up. I was making outbound calls within just a few minutes. The service was flawless. Calls were connected quickly and correctly and the sound quality was as good as any phone service I’ve used. VoIPTrunk is currently supporting both G711 and GSM for the RTP (voice audio) channel. DTMF worked correctly right out of the gate and the calls terminated cleanly regardless of which party hung up first. Then I tried VoIPTrunk at my office. My Asterisk server is behind two firewalls. The office Asterisk server connected and registered just like at home. My calls were nice and clear and but connected very slowly. I did notice one problem as my phone was dialing, I didn’t get any ringback (the ringing sound you get when you call someone). After my call I noticed if the person I called hung up first, my phone would never hang up. I contacted TJ and explained my problem. This is where VoIPTrunk stood out from many services I’ve used. He investigated the problem and within a few hours had duplicated my issue and discovered the problem. It turned out to be a problem with one of their backend carriers. Their solution, remove the carrier and replace them with another that didn’t have issues. How’s that for service!? VoIPTrunk really was here to serve its customers and to build a great service! I retested, and my slow connect time and ringback problem was solved! I am still having a problem with the remote hangup issue, but after really looking at the problem, both TJ and I believe the problem lies with my Asterisk server being behind two firewalls. I am working to resolve this issue. TJ never blamed my equipment or refused to help me. In fact, he assumed the issue was on his end and worked to find and fix it. The really nice part is, if I still have problems or I can’t find the solution, VoIPTrunk will help me diagnose, and fix the issue. I am still in the process of testing their IAX service at the office and expect to have the results in a few days. I expect it to work very well since it isn’t as fussy a protocol as SIP when behind a firewall. I’ll update this post after I review the IAX results and make some changes to our network to fix my SIP issue.

The bottom line is really, would I use their service? The answer is yes. Just as soon as they offer inbound calling and a DID in my area, I will be moving my traffic. I have tested a lot of VoIP services. I’ve found a lot of bad companies, some good companies, but VoIPTrunk is one of the first companies that is truly committed to creating an open service that is focused on the customer and their needs. Give them a try. I don’t think you will be disappointed. After you try them, let me know what you think.

Disclaimer: I don’t work for, or have any affiliation with VoIPTrunk. I am getting nothing for writing this blog entry. All these comments are my own and are based on my experiences with VoIPTrunk.

Kevin Bushong

@Televoip on twitter

May 20, 2009 Posted by | Blog Entries | , , , , , , | 1 Comment

Asterisk Advanced Training class – My thoughts

Many of you have asked me what I’ve thought of the Asterisk training class I’m taking this week at Digium.  Some of you have been thinking about taking this class and wanted to know if you would get any benefit out of the class.  Others wondered what kind of skills I’ve learned that I couldn’t have gotten just by working with Asterisk.  Since I can’t answer those questions in 140 characters, I decided to put all my thoughts here.

First, I should mention that I have no programming background at all.  I’ve never used variables, or expressions, except for writing some very simple macros.  All of my comments will be based on my need for the class.  Your experiences may be different, so your need for the class may be different.

The class is being taught by Jared Smith, one of the co-authors of “Asterisk: The future of Telephony”.  This is the O’Reilly book with the starfish on the front cover.  Jared really knows Asterisk inside and out and is able to give insights into the program, and why it works the way it does.  In  addition, he is a really good teacher.  He can take the subject, make it interesting, and give good examples of why you would use a feature, and how best to implement it.

The material is laid out very well.  The first day I was a little bored because we spent a lot of time on an intro to Asterisk and telecom in general.  This is necessary however, because a lot of people believe they are ready for the advanced class when in reality, they should be in a beginners class.  This approach on the first day insures that everyone was at the same level.  By the way, everyone in my class was well versed in Asterisk and used the first day as a review.  We did build basic dialplans, context, and got our first phones ringing.  Jared did talk about some CLI commands that I didn’t know existed, so even on the first day, I learned!

Day Two got a little more difficult for me.  We made the dial peers more complex, and began to talk about variables and expressions.  In order to balance the class, part of every day is spent in the dialplan learning the scripts, and the correct way to build the expressions, and then later in the day, we talked about other topics.  That afternoon, we learn about VoIP protocols, SIP and AIX.  Toward the end of the day, we made the dialplan a little more complicated, and added connectivity via SIP and AIX.

Day Three really made my brain hurt.  Today we built macros, complex expressions, and used variables to redesign the dialplan.  We used these features to route calls based on callerid, and other arguments,  sent callers to different IVR menus, and added complexity on how to handle calls in a macro. At the same time, we simplified the overall dialplan because we moved everything into a macro.  In the afternoon, we learned about traditional telecom circuits, analog, PRIs, and T1’s, and then built all of the them into the dialplan.

Tomorrow, Day Four, promises to be even more difficult.  But that is the nice thing about this class.  Everyday we build on what we learned the day before.  It gets more complicated but by the end of the class, I’m sure I will be able to implement every feature that Asterisk supports.  I don’t expect I’ll be able to do it from memory, but I’ve built a good foundation, and my training material will give me the exact information I need to build whatever it is I want Asterisk to do.

Has the class been perfect?  No it’s not.  Because of the large amount of information being taught, we really have to move fast through some parts.  They make sense while I look at them, but I’m not sure I’ll remember them well enough three weeks from now.  Also, because Asterisk does so much, there is no way we can touch on every single feature, but we are hitting all the major ones.

Is the class right for you?  I can’t answer that question for sure, but what I can tell you is that if you have used Asterisk and made it work, but your not quite sure why, this class can help make sense of what you have been doing.  If your very comfortable with scripts and writing code, then maybe you your can figure out Asterisk by just by looking at a sample dialplan.  But, if you write code, but don’t have a background in telecom, this class can fill in those missing pieces.  Unless you have a good understanding of writing code and a strong telecom background, then I believe you will get something out of this class.

As an added bonus, you will meet a lot of people at Digium and put real faces with some of the names you have heard, and if he is in the office, you will might even get to meet Mark Spencer.

For me, the class has been well worth it.  I’m looking forward to getting back to the office so I can use some of the skills I’ve learned.

I hope my little synopsis has helped, but if you still have questions, please feel free to DM me.  I’ll be happy to help in any way I can.

Kevin (Televoip) Bushong

March 25, 2009 Posted by | Blog Entries | , , , , | 5 Comments