How to make wcfxo (X100P) work on elastix

สำหรับใครที่ใช้ x100p ทำ asterisk บน elastix ท่านจะเจอปัญหา elastix ไม่สามารถ detect hardware ได้ทั้งๆ ที่เสียบอยู่ – -!
เมื่อลอง

# tail -f /var/log/messages

จะพบกับ error  ประมาณนี้

[    7.600941] FXO PCI Master abort

[    7.620308] NOTICE-wcfxo: WCFXO/0: Unknown DAA chip revision: REVB=0

[    7.620311] Failed to initailize DAA, giving up…

[    7.620343] wcfxo: probe of 0000:03:00.0 failed with error -5

วิธีแก้

# cd /usr/src
#  wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/releases/dahdi-linux-2.2.0.2.tar.gz
# tar xzf  dahdi-linux-2.2.0.2.tar.gz
# cd dahdi-linux-2.2.0/drivers/dahdi
# vi  wcfxo.patch

--- wcfxo.c	(revision 4616)
+++ wcfxo.c	(working copy)
@@ -696,6 +696,16 @@
 	/* Hardware stuff */
 	/* Reset PCI Interface chip and registers */
 	outb(0x0e, wc->ioaddr + WC_CNTL);
+
+	/* Set all to outputs except AUX 4, which is an input */
+	outb(0xef, wc->ioaddr + WC_AUXC);
+
+	/* Reset the DAA (DAA uses AUX5 for reset) */
+	outb(0x00, wc->ioaddr + WC_AUXD);
+	set_current_state(TASK_INTERRUPTIBLE);
+	schedule_timeout(1 + HZ / 800);
+
+	/* Set hook state to on hook & un-reset the DAA */
 	if (wc->flags & FLAG_RESET_ON_AUX5) {
 		/* Set hook state to on hook for when we switch.
 		   Make sure reset is high */
@@ -704,9 +714,7 @@
 		/* Set hook state to on hook for when we switch */
 		outb(0x24, wc->ioaddr + WC_AUXD);
 	}
-	/* Set all to outputs except AUX 4, which is an input */
-	outb(0xef, wc->ioaddr + WC_AUXC);
-
+
 	/* Back to normal, with automatic DMA wrap around */
 	outb(0x01, wc->ioaddr + WC_CNTL);

# patch –p0 < wcfxo.patch

# cd /usr/src/dahdi-linux-2.2.0

# make uninstall

# make clean

# make

# make install

# reboot

จบ !

ปล. สูตรนี้ใช้ได้ผลกับการ์ดทุกยี่ห้อที่เป็น x100p , asterisk ทุก version , dahdi ทุก version , elastix ทุก version ที่มี error ใน /var/log/messages แบบข้างบน
สรุปก็คือ ถ้ามันมี error แบบข้างบน ใช้สูตรนี้ได้ทั้งหมด

credit :
http://downloads.asterisk.org/pub/telephony/dahdi-linux/
http://www.fredshack.com/docs/asterisk.html
http:[email protected]/msg35317.html
http://www.asteriskguru.com/board/image-vp8271.html
http://www.lefinnois.net/wp/index.php/2009/06/16/carte-fxo-x100p-zaptel-dahdi-failed-to-initailize-daa-giving-up/
http://www.voip-info.org/wiki/view/X100P+clone
http://www.asteriskguide.com/index.php/tutorials/14-tutorials/311-asterisk-patch-for-the-x100p-card
https://issues.asterisk.org/file_download.php?file_id=21202&type=bug

One response to “How to make wcfxo (X100P) work on elastix”

  1. admin says:

    dahdi-linux-complete-2.4.0+2.4.0 ใช้สูตรนี้ไม่ได้ละ กำลังหาทางแก้นะครับ