I've finally sorted out Asterisk in a Xen domU with ztdummy and figured I should share.
ztdummy is required as a timing source for MeetMe (conference calls) and is also involved in moh (music on hold) and a few other things.
The problem with ztdummy under Xen is that it expects to have access to the rtc (real time clock) on x86/x86_64 systems, but that is not the case in a Xen domU. The fix is to comment out the #define USE_RTC statements in ztdummy.c so that ztdummy uses the kernel timer.
While googling I saw references to checking the HZ setting in the kernel (mine claims 250HZ in the kernel .config) and adjusting the #define ZAPTEL_RATE 1000 in ztdummy.c accordingly, however when I changed it to 250 asterisk's menu audio played back four times too quickly. Switching ZAPTEL_RATE back to 1000 solved this problem and the interactive voice menus played at the correct speed.
I wasn't quite finished. With ztdummy loaded my moh became very garbled whereas before it had played properly. Switching asterisk moh from mpg123 to files (in /etc/asterisk/musiconhold.conf) and my mp3s to 8kHz 8bit mono wav files fixed moh.
I now have Asterisk with MeetMe and moh working properly in my Xen domU.