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)