in asterisk, software, voip

Asterisk: DADHI module not working when using Xen

If you want to use any Asterisk module that needs a timer, like MeetMe, you have to use a module named dahdi (previously named zaptel). DAHDI has one module for each Digium supported card (B410P), and a dummy module (named dahdi_dummy) if you don’t have a hardware card, like me.

The problem appears when you have your Asterisk in a Xen environment. Xen does not allow the use of the RTC, so when using Dahdi/meetme, you get the following in you logs:

res_timing_dahdi.c: Asterisk has detected a problem with your DAHDI configuration and will shutdown for your protection.

So get the sources, and let’s patch it!

svn co http://svn.digium.com/svn/dahdi/linux-complete/trunk DAHDI

In dahdi_dummy.c, you’ll have to comment the two defines USE_RTC, as in a Xen, you can’t use it:

# diff -u dahdi_dummy.c.ori dahdi_dummy.c
--- dahdi_dummy.c.ori	2009-03-23 09:50:36.000000000 +0000
+++ dahdi_dummy.c	2009-03-23 08:55:38.000000000 +0000
@@ -59,11 +59,11 @@
 #if defined(CONFIG_HIGH_RES_TIMERS) && LINUX_VERSION_CODE >= VERSION_CODE(2,6,22)
 #define USE_HIGHRESTIMER
 #else
-#define USE_RTC
+//#define USE_RTC
 #endif
 #else
 #if 0
-#define USE_RTC
+//#define USE_RTC
 #endif
 #endif
 #endif

Then compile the module, as usual, with :

/etc/init.d/dahdi stop
make all
make install
make config

Verify that your module has been correctly installed:

ls -al ./2.6.24-19-xen/dahdi/dahdi_dummy.ko

Comment out all the defined modules in the /etc/dahdi/modules file.

/etc/init.d/dahdi start
# dmesg
1007539.576458] dahdi: Telephony Interface Registered on major 196
[1007539.576468] dahdi: Version: SVN-trunk-r6201M
[1007540.642839] dahdi: Registered tone zone 2 (France)
Facebooktwitterredditpinterestlinkedinmail
  1. So with your “patches”, asterisk is working well with in a xen environment? Im assuming your using full virtualization? What OS and asterisk version are you using? I noticed the kernel version is a bit high, so im assuming its not centos.

  2. It’s not really a patch, just commented lines :-). Anyway, I’m not using full virtualization, but it works fine. My configuration (Debian Lenny domU on an Ubuntu server as the dom0) is a little unconventional as the SIP conversion is not done by Asterisk but by a Patton router that connects as a client on the Asterisk. In our company we haven’t any problem (lag/latency/echo, or anything like that) and we’re around 10 people (3 or 4 simultaneous calls).

  3. Excellent post, really helped me out. Many thanks for taking the time to share this!

    Do you mind if I cross post this in the Citrix Xen Server forums (attributed to you, of course)?

    Thanks again.

Comments are closed.

Webmentions

  • Obstblog June 7, 2009

    Schmerzfreie Asterisk/DAHDI-Installation…

    Asterisk ab 1.4.20 oder so und die 1.6er Version sowieso wollen DAHDI anstelle von zaptel. Beide werden sowohl zum Ansteuern von Telefonie-Hardware als auch als Dummy-Timer (herst, was hab ich für nen Satzbau heute) für Telefonkonferenzen (MeetMe, zu…