How to make ystdm8xx work on elastix

อันเนื่องมาจาก blog ก่อนหน้าที่ลอง patch x100p กันไปปรากฏว่า dahdi มองเห็น x100p อย่างสวยงาม
แต่

มันไม่ทำงาน

มันเจอ hardware แต่พอโทรเข้ามันไม่มีการตอบสนอง
อย่ากระนั้นเลย เราลองใช้การ์ดตัวอื่นดีกว่า

ystdm8xx เป็นการ์ดราคาไม่แพงอีกใบหนึ่งที่ค้นเจอในโกดัง
แต่ก็เหมือน x100p ที่ elastix ไม่รู้จัก
นั่นหมายความว่าต้อง patch อีกแล้ว – -*

วิธีทำ

กดโหลดไปอ่านเองนะ http://www.yeastar.com/download/ystdm8xx_linux.pdf

..

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

อยากได้วิธีง่ายๆ ขี้เกียจอ่าน ?

# cd /usr/src

# wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-2.2.0.2.tar.gz

# wget http://www.yeastar.com/download/ystdm-dahdi-2.2.0.2.patch.tar.gz

# tar xzf dahdi-linux-2.2.0.2.tar.gz

# tar xzf ystdm-dahdi-2.2.0.2.patch.tar.gz

# patch -p0 < ystdm-dahdi-2.2.0.2.patch

# cd dahdi-linux-2.2.0.2

# make uninstall

# make clean

# make

# make install

# reboot

จบ !

ปล. สูตรนี้ใช้ได้กับ ystdm16xx ด้วยนะ แค่เปลี่ยน file (หาอ่านดูใน credit นะ)

credit :
http://downloads.asterisk.org/pub/telephony/dahdi-linux/
http://www.yeastar.com/download/ystdm8xx_linux.pdf
http://www.yeastar.com/download/
http://bugs.elastix.org/print_bug_page.php?bug_id=55

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://www.mail-archive.com/[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