Tony's ramblings on Open Source Software, Life and Photography

asterisk

Getting CallerID Working With Asterisk

As you may have guessed from yesterday's post, I've just finished a complete reinstall of our PBX system. The old system was running on Mandrake (yeah, Mandrake NOT Mandriva) and had done a great job. Unfortunately we were having a phone port lock up periodically that would require rebooting the server.

Since another "event" left me with a spare motherboard and rack mounted case I went ahead and ordered a Digium PCI-Express analog card to handle our four phone lines.

I've configured four Asterisk servers before and expected things to go smoothly. My first problem was that my last server was a version 1.2 and the newer version of Asterisk made several config file changes, causing very strange problems in my dialplan.

The next problem was that no matter what, caller-id service almost never reported the incoming number. After banging my head against the wall over and over trying to get the Ubuntu Hardy Asterisk packages to work with various configs, I finally took a stab in the dark and downloaded the latest zaptel sources from Digium and compiled them. A quick reboot and all the incoming caller-id worked beautifully.


Categories:

One of The (Few) Ways That OSS Sucks

I love open source software so much that nearly our entire enterprise is running on it. Our internally developed software is all either written for LAMP, or some recently in Mono.

I fully understand that open source projects will sometimes become inactive, in fact I have a few I've developed myself that have fallen by the wayside yet at one time had great potential.

What I don't understand is when a commercially backed open-source solution like Openfire from Ignite Realtime has a known issue for years that goes unresolved and requires a simple workaround. Then again, who here hasn't heard of Internet Explorer?

Integrating the Openfire instant messaging system with an Asterisk phone server is relatively easy, but when you first attempt to connect it to the Asterisk server, it just does nothing. It turns out the setup script for the Asterisk-IM plugin is wrong... and has been since 2007.

Here's the solution.

I will say though, I still love Openfire with it's LDAP directory integration and my (now working) Asterisk phone system integration. The ability to know the phone status of any user by glancing at my contact list is such a small thing, but it really does make a difference.


Instant Messaging in the Enterprise

Network users demand connectivity apps these days. One of today's "must-haves" is instant messaging. Personally I find I use IM very seldom, but the newest generation of employees have grown up with SMS and IM and grown to expect it. It makes me realize I'm getting old when I see these "kids" and their SMS and IM.

IM clients produce their own security issues, such as viruses, social engineering, exploits and eavesdropping. Opening your network to just any IM client can be a scary proposition, not to mention a huge productivity hole. Attempting to block IM clients can be a technical nightmare with your users staying just one step ahead of you in the "block" and "bypass" game.

I've taken another approach to solve this problem by providing an IM client to each workstation. Rather than just allowing everyone access to Yahoo! or MSN Messenger we've installed our own OpenFire server. In addition to providing instant messaging between employees in all of our offices, including remote offices, we've integrated it with our Asterisk phone system so that it can report the on phone / idle status of any contact. Adding the extra phone system integration seems to have been key to helping our users find a value-add with the system. It also reports incoming caller-id on a user's desktop as a little pop-up window making it invaluable.


Asterisk, Blackberry and eGroupware

This is a near perfect solution. I run an Asterisk Vo/IP system for my office, and eGroupware with Cyrus for our mail system. We migrated from Microsoft Exchange some time ago and I've never looked back.

With eGroupware, we were able to replace 99% of the functionality of our Microsoft Exchange server with open source software. With sieve filters users can set up an unlimited number of server-side mail filters, something you can't do with Exchange anymore, and the web interface works much better with Firefox than Microsoft's web access. Our Asterisk phone system integrates into the mix and will deliver voicemail to the user's e-mail box.

Now, with my Blackberry I can download and play those voicemails without ever having to dial into the phone system, because they are wav files attached to e-mail that is picked up by my Blackberry. I'm feeling so "connected" right now it's not even funny :-)


Overhead paging with Asterisk

I'd always known it was possible to do overhead paging with Asterisk. Now I've finally tackled it. I purchased a Bogen amp and speakers and installed 5 flushmount speakers and one bullhorn for the warehouse.

Configuring Asterisk was pretty easy. I had to add a sound card to the server, but that was easy enough.

What wasn't easy was the fact that my acpi settings were causing huge issues with the sound card. The audio would repeat the last 3 seconds of a page forever. It took me 3 days to figure out that it was caused by the acpi=ht setting in lilo.conf - I basically had an IRQ conflict. Things went much smoother after that.

I then added a second sound card to the system. I know what you're thinking 'What was he thinking?!?' but really there's a method to my madness. Configuring Alsa to work with both cards wasn't too awfully tough. I had to specify in the Asterisk alsa.conf for

input_device=hw:0,0
output_device=hw:0,0

That way it used sound card 1. I then installed a slimserver and configured a stream. I used mpg123 to connect to that stream and told it to use the second sound card with the option '-a hw:1,0 '


Categories: