Tuesday, April 28, 2009

Sangoma & Asterisk + SS7

This is in continuation to my earlier blog on Asterisk + SS7

Here I will jot down my experience on installing wanpipe drivers for new Sangoma A102 card. I bought this card for approximately 60000 INR which is approximately 1350 USD. Just FYI, if any of you guys planing to buy, not sure if its expensive?. I started with downloading Wanpipe drivers and downloaded the most recent 3.3.16 Beta version from http://wiki.sangoma.com/wanpipe-linux-drivers#beta.

Untar this to /usr/src directory

From /usr/src/wanpipe call 'sudo ./Setup dahdi' This will ask you few questions like where is your dahdi installation (point to directory of dahdi). If you have installed dahdi at default location it will automatically give you an option to select that. You will find info at wiki http://wiki.sangoma.com/wanpipe-linux-asterisk-dahdi. I really was looking for way to update this wiki with all the questions that I faced while installing and answers I provided, but unfortunately I didn't find a way to edit the wiki. Though there is an option to leave comment but didn't like that :( Sangoma people can you please make this more dynamic?

Once the compilation of drivers is successful, the Setup will ask you to configure the Channels. This is interesting part and one that kept failing at my end with error message

"No Sangoma voice compatible cards found/configured"

I was having hardware and could see the lights glowing so definitely there was no problem with hardware or PCI slot. I tried executing the command 'sudo wanrouter hwprobe' and would always get

wanrouter: Wanpipe Module: /lib/modules/2.6.24-23-generic/kernel/drivers/net/wan/sdladrv not found !!!!
WANPIPE drivers must be compiled as modules
Check kernel configuration in /usr/src/linux/.config:

I had to ping Sangoma support for this. You can find contact details for support at http://wiki.sangoma.com/SangomaTechSupport

Marc from Sangoma was really quick on this one to help me out. Thanks you Marc Celsie! As per support I had to edit /lib/modules/2.6.24-23-generic/build/Makefile and remove line "EXTRAVERSION = .6". Then change "SUBLEVEL = 24" to "SUBLEVEL = 24-23-generic". After this I had to re-execute the command 'sudo ./Setup dahdi' and it worked like a charm. I set-up the E1 lines and could see 62 channels getting created at /dev/dahdi/1 ... /dev/dahdi/62. The LED at both the port (A-102 has two ports) is now Red which means the drivers installation is good but there is no traffic.

I created a loop-back as shown in this image http://www.t1installers.com/wp-includes/images/loopback/clip_image002.jpg

Pin-outs for the loopback cable:

And inserted in one of the ports and LED turns Green!

Execute 'ifconfig' command number of times and you will see the tx and rx value increasing for port where you have loopback wire plugged. This is proof that everything is good so far.

After this comes the configuration files for Asterisk to talk to your hardware. I am doing this as of now and will post soon in my next blog.

Stay Tunned!

Sunday, April 26, 2009

Asterisk + SS7

From last few days I am trying to set up Asterisk + SS7 with Sangoma A102 card on my Ubuntu 8.04 machine. This being my first time with Asterisk I was bit skeptical of things and was wondering if it will be smooth? Well, it wasn't really out-of-box, but it wasn't tough either. Here I will try to explain step-by-step of what I did, challenges I faced and solution for same.

First of all keep in mind that Zaptel module is now renamed to Dahdi. It really took some time for me to understand this and I was wondering if I need Zaptel or Dahdi. This might be very trivial for people who are into Asterisk, but for some one like me who has just started, especially after reading 'Asterisk - The future of Telephony' book where they always talk about Zaptel, it wasn't easy to make out that Dahdi is latest version of Zaptel. Follow the announcement here http://blogs.digium.com/2008/05/19/zaptel-project-being-renamed-to-dahdi/

To have Asterisk + SS7 you need following modules

  1. LibSS7
  2. Dahdi
  3. Asterisk

Even before you start on installation of these modules, there are few linux specific modules that needs to be installed in your machine.

#sudo apt-get install build-essential
#sudo apt-get install linux-headers-`uname -r`
#sudo apt-get install libssl-dev
#sudo apt-get install ncurses-dev
#sudo apt-get install libnewt-dev
#sudo apt-get install zlib1g-dev
#sudo apt-get install bison

In addition I also followed the packages explained in book 'Asterisk - The future of Telephony'. look at Table 3.1

Next download the source code for libss7 (this is still not available as binary). Remember you need to download the Branch 1.0 and *not* Trunk. Follow the forum entry http://archives.free.net.ph/message/20090331.150153.564445b6.en.html

Check out src code to your /usr/src svn co http://svn.digium.com/svn/libss7/branches/1.0/

Next call 'make' and then 'sudo make install'. Thats it! libss7 is installed.

Check out dahdi linux trunk src (there is also dahdi-tools) to /usr/src

svn co http://svn.digium.com/svn/dahdi/linux/trunk/

I renamed /usr/src/trunk to /usr/src/dahdi-trunk. But really it doesn't matter. Go to this dir and call 'make' and 'sudo make install' and your dahdi is installed

Dahdi Tools
Check out dahdi-tools trunk src to /usr/src

svn co http://svn.digium.com/svn/dahdi/tools/trunk/

Go to this dir call './configure' and 'make menuselect'. This will open up UI where you can select modules that you want. I just called 'Save & Exit'. Next call 'make' and 'sudo make install' This will install the dahdi tools for you.

Download the Asterisk from http://downloads.digium.com/pub/asterisk/asterisk- to /usr/src. Un-tar it and go to parent dir. Call './configure' You should see in console output that libss7 is selected. Call 'make menuselect'. In this under 'Channel Drivers' header you should see 'chan_dahdi' selected (* against it) This means libss7 is good! Just call 'Save & Exit'. Next execute 'make' command and then 'sudo make install'. If everything is good, Asterisk is installed for you!

So far we just talked about Asterisk side of the world. But for Asterisk to talk to your Sangoma Hardware you need to install the wanpipe drivers. I downloaded the beta version from Sangoma site and trying it out now. Will blog about Sangoma experience in next blog!

I also tried chan_ss7 instead of Asterisk libSS7 for Asterisk support of SS7, but realized chan_ss7 is not compatible with Asterisk 1.6.x.

Found a very good article on this and worth reading http://www.cesnet.cz/doc/techzpravy/2006/asterisk-ss7/asterisk-ss7.pdf

Stay Tunned!