การติดตั้ง Zaptel
จาก Asterisk DIY - VoIP Opensource WiKi, สารานุกรมฟรี
การติดตั้งการ์ดหรือกล่องสายใน/สายนอกนั้น มีขั่นตอนที่ค่อนข้างที่จะน้อยหากแต่ต้อง ทำการตั้งค่าให้ถูกต้องตรงกับอุปกรณ์ที่ติดตั้ง ไปในระบบ มิฉะนั้นจะไม่สามารถที่จะใช้ ZAP Channel บน asterisk ได้เลย
การติดตั้งมีขั่นตอนง่ายๆ ดังนี้
สารบัญ |
1. ติดตั้งการ์ดบนเครื่อง PC / เสียบสาย USB เข้ากับเครื่อง PC
การติดตั้ง การ์ดสายนอกเข้ากับเครื่อง PC นั้นจำเป็นต้องทราบว่า เครื่อง PC นั้นมี interface แบบไดบ้าง ซึ่งในปัจจุบัน inteface แบบ PCI เป็นที่นิยมในเครื่อง PC ทั่วไป และ PCIe เป็นที่นิยนในเครื่อง Server ซึ่งใน แต่ละแบบ นั้นยังมีข้อแตกต่างกันเล็กน้อย หากแต่ว่าได้ทำการซื้อการ์ด มาผิดชนิด ก็จะไม่สามารถ ใช้งานการ์ดนั้นได้เลย ฉะนั้นข้อสำคัญที่สุดคือการ Check ว่าในเครื่องของท่านนั้นเป็น interface แบบใด
ส่วนการติดตั้ง USB Interface นั้นทำได้ง่ายกว่ามาก คือไม่จำเป็นต้อง เปิดฝาเครื่อง หรือ check รูปแบบ ของ interface เลย ฉะนั้นหากเป็น External BOX แบบ USB ก็จะสามารถที่จะนำไปใช้กับเครื่อง ใดๆก็ได้ที่มี Port USB 2.0
ตัวอย่างภาพ inteface จาก www.digium.com0: AGP Pro slots 1: 64-bit 5.0 volt PCI slots 2: 64-bit 3.3 volt PCI slots 3: 32-bit 5.0 volt PCI slots 4: 32-bit 3.3 volt PCI slots 5: 32-bit 5.0 volt PCI slots
ตัวอย่างภาพ computer.howstuffworks.com/pci-express1.htm![]()
2. การติดตั้ง ZAPTEL
การติดตั้ง Zaptel ทำได้โดยการ Download zaptel source ทำการแตก file, compile แล้ว ติดตั้งในตำแหน่งที่ควรเป็น
ตัวอย่างแสดงถึงการติดตั้ง zaptel version 1.4.10.1
1. # cp zaptel-1.4.10.1.tar.gz /usr/src 2. # cd /usr/src 3. # tar zxf zaptel-1.4.10.1.tar.gz 4. # cd zaptel-1.4.10.1 5. # ./configure 6. # make 7. # make install 8. # make config
3. การตรวจสอบ ค่าต่างๆ บนเครื่องคอมพิวเตอร์
3.1 การตรวจสอบการ์ด PCI ในระบบ โดยใช้คำสั่ง lspci , ซึ่งสิ่งที่จะต้องสังเกตคือ การ์ด network controller ที่อยู่ในระบบซึ่งหากไม่พบ อาจหมายความว่าระบบ ไม่พบการ์ดที่เราใส่เข้าไป หรือ การ์ดนั้นๆ อาจมีปัญหาได้
Example:
# lspci
00:00.0 Host bridge: Intel Corporation E7230/3000/3010 Memory Controller Hub
00:01.0 PCI bridge: Intel Corporation E7230/3000/3010 PCI Express Root Port
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
....
....
05:02.0 Network controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface
05:07.0 VGA compatible controller: ATI Technologies Inc ES1000 (rev 02)
....
# lspci -v
....
05:02.0 Network controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface
Subsystem: Unknown device 2151:0001
Flags: bus master, medium devsel, latency 64, IRQ 201
I/O ports at d800 [size=256]
Memory at efaef000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 2
....
3.2 การตรวจสอบว่าเครื่อง หรือ slot pci นั้นๆ สามารถรองรับการทำงานหรือการส่งข้อมูล (I/O) ของ Zaptel ได้หรือไม่ ซึ่งในปัจจุบัน การ์ด ZAPTEL จำเป็นจะต้องส่งค่า interrupt เป็นจำนวนมาก (1000 interrupts / sec) เพื่อให้หน่วยประมวลผลมารับค่าจากการ์ดไปได้ อนึ่งในบางการ์ดไม่ได้มีหน่วยความจำสำรองหรือ Cache ไว้เพราะฉะนั้นหากหน่วยประมวลผลไม่สามารถที่จะมารับค่าจากการ์ดได้ท้ันเวลาก็จะเกิดปัญหาของระบบเสียงสะดุด หรือ ไม่สามารถใช้งานการ์ดนั้นๆได้เลย ฉะนั้นหากทำได้ควรไม่ให้การ์ดนั้นๆทำการ shared interrupt กับอุปกรณ์อื่นๆในระบบจะเป็นการดีที่สุด
ซึ่งการทดสอบ asterisk มี tool สำหรับใช้ในการทดสอบเครื่องคือ คำสั่ง zttest ค่าที่วัดได้ ที่จะไม่ทำให้เกิดปัญหาต้องไม่ต่ำกว่า 99.98%
Example: # zttest Opened pseudo zap interface, measuring accuracy... 99.998924% 99.995888% 99.999908% 99.999893% 99.999908% 99.999710% 99.999603% 99.999619% 99.999908% 99.999908% 99.999313% 99.999809% 99.999512% 99.999702% 99.999413% 100.000000% 99.999702% 99.999809% 99.999619% 99.999710% 99.999809% 99.999619% 99.999710% 99.999893% 99.999802% 99.999809% 99.999702% 99.999603% 99.999901% 99.999794% 99.999702% 99.999901% 99.999908% 99.999596% 99.999809% 99.999702% 99.999710% 99.999809% 99.999809% 99.999321% 99.999413% 99.999794% 99.999901% 99.999512% 99.999809% 99.999908% 99.999809% 100.000000% 99.999519% 99.999619% 99.999809% 99.999710% 99.999413% 99.999908% 99.999908% 99.999802% 99.999702% 99.999413% 99.999603% 99.999908% 99.999527% 100.000000% 99.999901% 99.999619% 99.999794% 99.999710% 99.999710% 99.999809% 99.999702% 99.999809% 99.999985% 99.999794% 100.000000% 99.999702% 99.999619% 99.999908% 99.999702% 99.999512% 99.999809% 99.999809% 99.999908% 99.999603% 99.999702% 99.999710% 99.999809% 99.999619% 99.999908% 99.999893% 99.999893% 99.999908% 100.000000% 99.999809% 99.999496% 99.999512% 99.999710% --- Results after 95 passes --- Best: 100.000 -- Worst: 99.996 -- Average: 99.999703, Difference: 100.000118
คำสั่งที่ในการตรวจสอบการ share interrupt บนระบบ คือ "more /proc/interrupt" ซึ่งการ์ดส่วนใหญ่จะมีคำว่า "tdm"อยู่ในชื่ออุปกรณ์ ในกรณีตัวอย่างจะเห็นว่ามีการ์ดอยู่ 1 ชุด (ystdm)โดยใช้ interrupt เบอร์ 201
# more /proc/interrupts
CPU0 CPU1
0: 153621859 0 IO-APIC-edge timer
4: 27142 0 IO-APIC-edge serial
8: 515 0 IO-APIC-edge rtc
9: 0 0 IO-APIC-level acpi
14: 14 0 IO-APIC-edge ide0
50: 759684 0 PCI-MSI eth0
185: 0 0 IO-APIC-level ehci_hcd, uhci_hcd
193: 0 0 IO-APIC-level uhci_hcd
201: 153567955 0 IO-APIC-level uhci_hcd, ystdm
209: 0 0 IO-APIC-level uhci_hcd
217: 322614 0 IO-APIC-level libata
NMI: 0 0
LOC: 153577027 153632362
ERR: 0
MIS: 0
การแก้ไขหากพบว่ามีการ share interrupt ทำได้หลายกรณี เช่น
1. พยายาม disable อุปกรณ์ที่ไม่ใช้งานทั้งหมดในระบบ โดยเข้าไปยัง BIOS ของการ์ดนั้นๆ 2. ติดตั้ง linux kernel แบบ SMP เพื่อที่จะให้รองรับระบบ APIC (Advanced Processor Interrupt Controller) ซึ่งจะทำให้ไม่มีข้อจำกัดในจำนวน interrupt ที่มีได้ในระบบ (16 irp limit) 3. ทำการติดตั้ง การ์ด video แทนที่แบบ build-in ที่มีอยู่ใน chipset ที่มีการ shared memory จะช่วยเรื่องความเสถียร ได้
3.3 zttool Command ใช้ในการตรวจเช็คว่ามีการ์ดอะไรที่ระบบพบ และ ยังสามารถตรวจเช็คได้ว่ามี interrupt miss จำนวนเท่าไร
4. การติดตั้งค่า zaptel.conf
ไฟล์ zaptel.conf จะอยู่ใน /etc/zaptel.conf ไฟล์นี้ทำหน้าที่ในการติดตั้งค่า สำหรับ software ZAPTEL ในระบบ ซึ่งการตั้งค่าทำได้โดยใส่ parameter ต่างๆที่ตรงกับ การ์ดที่ติดตั้งในตัวระบบ
Pararmeter ที่สำคัญ
loadzone=us เป็นค่าที่การ load indication tone (ถ้าเป็นประเทศไทยให้ใช้ th) defaultzone=us ให้ทำการเลือกค่าจาก zone นี้หากใน loadzone ไม่มีค่าบางค่า (ถ้าเป็นประเทศไทยให้ใช้ th)
ในกรณีที่เป็นการ์ด Analog
fxsks=1 , fxsks=1-2 เป็นการบอกว่าในระบบมี port FXO อยู่ 1 หรือ 2 ports fxoks=1 , fxoks=1-2 เป็นการบอกว่าในระบบมี port FXS อยู่ 1 หรือ 2 ports
Example: Card TDM400 with 2 FXS/ 2FXO fxoks=1-2 fxsks=3-4
ในกรณีที่เป็นการ์ด Digital (ISDN PRI/BRI)
span=(spannum),(timing),(LBO),(framing),(coding) โดย spannum = ตำแหน่งของ port ค่าเริ่มจาก 1,2,... timing = priority to sync with this port LBO = ความยาวของสายระหว่าง ZAPCARD กับ Modem framing = เป็นการกำหนด type ของ frame ที่จะทำการติดต่อกันกับอุปกรณ์ปลายทาง coding = อีก parameter ที่ใช้ในการติดต่อกันกับอุปกรณ์ปลายทาง ค่า LBO ที่นำมาใช้ได้ 0: 0 dB (CSU) / 0 - 133 feet (DSX-1) 1: 133 - 266 feet (DSX-1) 2: 266 - 399 feet (DSX-1) 3: 399 - 533 feet (DSX-1) 4: 533 - 655 feet (DSX-1) ค่า Framing ที่นำมาใช้ได้
Examples: span=1,1,0,ccs,hdb3,crc4



