วันอาทิตย์ที่ 7 กุมภาพันธ์ พ.ศ. 2559

Elastix โทรออกไปยัง SIP Trunk ของ MyPBX U300

ดูจากชื่อบทความแล้วก็ซับซ้อนเหมือนกัน ก่อนอื่นขอเขียนผังระหว่าง Elastix และ U300 ให้ชัดเจนก่อน





วันเสาร์ที่ 6 กุมภาพันธ์ พ.ศ. 2559

เชื่อมต่อ MyPBX U300 กับ Elastix

ช่วงนี้ปรับเปลี่ยนระบบโดยใหม่ แต่ยังใช้หมายเลขเดิมไปก่อนจะยกเลิกบริการอีก 2 เดือนข้าง ซึ่งต้องให้สายเก่าโอนไปยังระบบคอลเซ็นเตอร์ที่เป็นสาย E1 เส้นใหม่

เส้นเดิม 7921400 เชื่อมต่อผ่าน E1 ของ MyPBX U300 (ระบบ DID จะตัด 02 ออก)
เส้นใหม่ 020304900 เชื่อต่อผ่าน E1 ของ Elastix (E1 แบบใหม่ไม่ต้องตัด 02)

โดยระบบหลักจะอยู่ที่ Elastix

การโอนสายจะเริ่มจาก Inbound ของ MyPBX U300 เป็นหมายเลข U300 แล้ว U300 จะส่งผ่านหมาเลขไปยัง Elastix ผ่าน SIP Trunk

วันพุธที่ 20 มกราคม พ.ศ. 2559

แก้ไขให้ MyPBX เรียก MISC Application ผ่าน SIP Trunk

แก้ไขไฟล์ฝั่ง MyPBX

  • แก้ไข /etc/asterisk/extensions.conf
[DID_trunk_E1Trunk1] 
exten = _020304999,1,Macro(incoming_pstnin,1,3388)
*** ปกติจะเป็น {$EXTEN:} เปลี่ยนเป็นหมายเลขของ Misc Application

ต้องทำทุกครั้งหลังจากแก้ไขและ Apply จากหน้าเว็บของ MyPBX


แก้ไขฝั่ง Elastix

  • เพิ่ม Misc Application เพื่อตรวจสอบเวลาและทำตามเงื่อนไข





  • แก้ไข /etc/asterisk/extensions_additional.conf
[from-trunk-sip-U300Out]
include => from-trunk-sip-U300Out-custom
exten => _.,1,Set(GROUP()=OUT_4)
exten => _.,n,Goto(from-internal,${EXTEN},1)
*** ใน SIP Trunk อัตโนมัติจะเป็น from-trunk ต้องเปลี่ยนเป็น from-internal เพื่อเรียกใช้ dialplan จากฝั่ง internal (ยังหาวิธีแก้แบบอื่นไม่ได้)

อย่าลืมใช้คำสั่ง  asterisk -rx "dialplan reload" ทั้งสองฝั่งและถ้ามีการแก้ไขที่หน้าเว็บเพจต้องเข้ามาทำขั้นตอนตามบทความนี้เสมอ...

วันจันทร์ที่ 18 มกราคม พ.ศ. 2559

ติดตั้ง VPN ให้กับ Elastix Server

เริ่มจากติดตั้ง Yum Repository ด้วยคำสั่ง

#rpm -Uhv http://poptop.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm

ตามด้วยคำสั่ง

#yum -y install ppptpd

จากนั้นแก้ไขไฟล์ /etc/ppp/options.pptpd ดังนี้

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp 
novj
novjccomp
nologfd
ms-dns 8.8.8.8
ms-dns 8.8.4.4

และกำหนดรหัสผ่าน ใน /etc/ppp/chap-secrets

user1   *     P@$$w0rd   *
user2   *     P@$$w0rd2  *

แก้ไขไฟล์ /etc/pptpd.conf

option /etc/ppp/options.pptpd
logwtmp
localip 192.168.xx.1
remoteip 192.168.xx.101-200
*** กำหนดให้ xx ตามที่เราต้องการ หรือจะเปลี่ยนเป็นไอพีอื่นๆ ก็แล้วแต่ถนัด

แก้ไขไฟล์ /etc/sysctl.conf

net.ipv4.ip_forward = 1

ตามด้วยคำสั่ง

#sysctl -p

กำหนดคำสั่งใน iptables

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1723 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.xx.0/24 -j MASQUERADE
service iptables save
service iptables start

หรือจกำหนดโดยตรงจากไฟล์ iptables

#nano /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -s 0/0 -p udp -m udp --dport 1701 -j ACCEPT
-A INPUT -s 192.168.xx.0/24 -j ACCEPT


การกำหนดค่าใน Client

วันจันทร์ที่ 1 ตุลาคม พ.ศ. 2555

Opensource แนวทางการพัฒนาโปรแกรมอย่างยั่งยืน

ช่วงนี้กระแส Opensource ดูเหมือนจะซบเซาไปบ้าง เพราะไม่ใช่สิ่งใหม่ ความสดใสลดลง แต่ในอีกด้านหนึ่งก็ยังคงมีการพัฒนาต่อเนื่องไม่หยุดยั้งและไม่วันจบสิ้นเสียด้วย เพราะเป็นระบบที่ต่างฝ่ายต่างได้ผลตอบแทน เรียกกันได้ว่าเป็นระบบแบบ Win-Win ก่อให้เกิดพัฒนาหลาย ๆ ด้าน

ผู้เขียนกระโดดเข้ามาใช้ OpenSource ตั้งแต่ปี 2007 ที่เรียกว่าใช้แบบเต็มตัว แต่ถ้านับแบบเริ่มใช้ MySQL และ RedHat Server ก็เริ่มตั้งแต่ปี 2002 และถ้าย้อนลึกไปตั้งแต่ใช้ PHP เป็นครั้งแรกและมีใจที่คิดจะทิ้ง Microsoft ก็เมื่อปี 2000 นับมาถึงปีนี้ก็ 12 ปีแล้วที่ใช้ OpenSource มาตลอดจึงเห็นว่าเป็นระบบที่ดี มีแนวคิดที่ดี ของดีราคาถูก มีจริงเสมอ แต่นั่นหมายความว่าเราต้องเปิดใจยอมรับ และต้องยอมที่จะทุ่มเวลา เสียเวลาศึกษาหาความรู้เพิ่มเติม และยอมรับความเสี่ยงในการเปลี่ยนเวอร์ชัน เพราะมันอาจจะทำให้ระบบงานเดิมของเราใช้ไม่ได้เลย (หากไปเผลออัพเดทเวอร์ชันใหม่)

แต่ใช่ว่าจะเป็นเฉพาะ OpenSource เพราะเวลานี้ผู้เขียนใช้ iPad ไปอัพเดท iOS 6 แล้วทำให้โปรแกรม iPages ทำงานเพี้ยนไปเลย นี่ขนาดเสียเงินซื้อยังเป็นได้เพียงนี้ นับประสาอะไรกับของแจกฟรี

และโปรแกรมแจกฟรีดี ๆ ที่ใช้หลายปีแล้วก็คือ ระบบ IPBX จากค่าย Digium ที่หลายคนคุ้นเคยตั้งแต่เป็น Asterisk แบบ Command Line มาเป็น Elastix ค่ายสเปนกันล้วนแล้วแต่เป็น OpenSource ทั้งนั้น หลายคนถามว่าการเขียนโปรแกรมแบบ OpenSource แล้วจะได้อะไร

ก็หลากหลาย หลัก ๆ แล้วก็ขายความช่วยเหลือ ขายอุปกรณ์ต่อพ่วง ขายการฝึกอบรมต่าง ๆ บางแห่งก็ขายเอกสาร คือ แจกโปรแกรมไม่แจกเอกสาร ถ้าอยากได้ก็ต้องซื้อเอกสารต่าง ๆ ไม่งั้นต้องงมเข็มกันเอาเอง...

สิ่งที่อยากจะกล่าวถึงกันตอนนี้นอกเหนือจากข้อดีจากของฟรีแล้วทำให้ได้ศึกษาวิธีการ พัฒนาระบบงาน การปรับปรุงแก้ไขอย่างเป็นระบบ ทำให้เราสามารถนำมาศึกษาและปรับปรุงรูปแบบการเขียนโปรแกรมให้กับตัวเราได้

เช่นการเขียนโปรแกรมแบบแยกส่วน แยกแกนหลัก แยกส่วนเสริม เมื่อลงลึกไประดับเขียนโปรแกรมก็มีการแบ่งส่วนของโปรแกรมเป็นชิ้น ๆ หรือเป็นอ็อบเจ็กต์ ทำให้การรวมศูนย์เกิดประโยชน์ต่อการพัฒนาต่อไป ด้วยเหตุนี้จึงอยากให้หลาย ๆ คนหันมาสนใจวิธีการเขียนโปรแกรม และตัวอย่างที่ดีคือ โปรแกรมจาก OpenSource ซึ่งสามารถสอนให้เราได้เรียนรู้อีกหลายอย่าง

และสิ่งสำคัญประการหนึ่งที่บ้านเรายังขาดคือ พัฒนาระบบโปรแกรมแบบยั่งยืน เพราะหลายครั้งหลายโปรแกรมได้ล้มหายตายจากไปพร้อมกับผู้เขียนคนแรก หรือแต่ละบริษัทในบ้านเรามมีแนวโน้มไม่ใช้ซ้ำสินค้าจากซอฟท์แวร์เฮาท์เดิม เพราะอะไร... เพราะความไม่ประทับใจ ความไม่ไว้วางใจ หรือไม่ได้ดั่งใจนั่นแหละครับ...

หวังว่าในอนาคตจะเห็น Opensource จากฝั่งคนไทย จากประเทศไทยให้มากขึ้น... หรือได้เห็นโปรแกรมดี ๆ จากคนไทยบ้างครับ... อย่ากระนั้นเลยเริ่มลงมือกันดีกว่าครับ...


- Posted using BlogPress from my iPad

วันศุกร์ที่ 6 กรกฎาคม พ.ศ. 2555

วิธีการสร้างโมดูลบน Elastix

หลังจากทำระบบบน Elastix แล้วรู้สึกว่าเป็นระบบที่พัฒนาต่อยอดได้อีกเยอะแยะเลยทีเดียว โดยการเขียนระบบผ่าน โปรแกรมเสริมชุด Developer และสร้างโมดูลเพิ่มง่าย ๆ แต่หากต้องการลิงค์ไปยังระบบโทรศัพท์ด้วยก็ว่ากันอีกที ตอนนี้จะลองแนะนำวิธีการสร้างโมดูลแบบง่าย ๆ ก่อนแล้วกัน

วันจันทร์ที่ 2 กรกฎาคม พ.ศ. 2555

บันทึกการติดตั้งระบบ Call Center

บล็อกนี้ขอเขียนบันทึกไว้สำหรับการติดตั้งแบบเรียนรู้ลองถูกลองผิดไปเรื่อย ๆ เพราะเท่าที่หาข้อมูลในบ้านเราแล้วยังหาไม่พบ (อาจจะมีแต่หาไม่เจอหรือว่ามีแต่ปิดบังเป็นความรู้เฉพาะทางก็เป็นได้)

ระบบ Call Center เป็น Module ติดตั้งเพิ่ม และสามารถนำมาใช้งานได้เป็นอย่างดี แต่ผู้ใช้ต้องมีความเข้าใจพื้นฐานของระบบ Asterisk มาเป็นอย่างดี (แนะนำให้อ่านหนังสืออาจารย์กิตติพงษ์ สุวรรณราช ลองดูรายละเอียดได้ที่ หนังสือ Asterisk เบื้องต้น ) เพราะเนื้อหาบางตอนจะเขียนถึงการเข้าไปแก้ไขด้วยคำสั่งแบบ Command Line ซึ่งต้องเจ้าใจระบบ Linux มาบ้าง