
บทความนี้ผมขอพูดถึงเรื่องการปรับแต่ Yeastar S-SeriesPBX เน้นยำนะครับ บน S-SeriesPBX เท่านั้น บน P-Series PBX จะมีความแตกต่างกันเล็กน้อย
ในบางสถานะการณ์อาจจะมีความต้องการ (Requirement) จากผู้ใช้ แต่ความต้องการนั้น หน้า WebUI ของเยสตาร์ไม่ได้รองรับการทำงาน หรือตรงกับความต้องการนั้นๆ
เรามีทางออก กรณีสิ่งที่เราต้องการนั้น มันไม่ได้รองรับโดยตรงผ่าน WebUI ของเยสตาร์ แต่เราก็สามารถทำการปรับแต่งได้เอง โดยเยสตาร์ได้อนุญาตให้เราทำการปรับแต่เพิ่มเติมในบางส่วนได้ ในตัวอย่างนี้ ผมจะพาท่านมาปรับแต่งกัน
เริ่มต้นด้วยความต้องการของลูกค้า (เป็นโรงพยาบาลแห่งหนึ่ง) มีเบอร์ภายในสองร้อยกว่าเบอร์ ซึ่งเบอร์เหล่านี้ เป็นเบอร์เจ้าหน้าที่ที่ทำงาน และเบอร์ตามห้องผู้ป่วย
มีโจทย์ว่า ไม่ต้องการให้เบอร์ที่อยู่ในห้องผู้ป่วย โทรหากันตรงๆ ได้ หากจะโทรหากันต้องโทรผ่านโอเปอร์เรเตอร์เท่านั้น ดังตัวอย่างภาพด้านล่างนี้

จากไดอะแกรมด้านบน จะเห็นว่ามีเบอร์ 2000 , 2001 ซึ่งเป็นเบอร์โทรที่อยู่ในห้องผู้ป่วย ซึ่งอยู่ชั้น 2 และชั้น 3 มีเบอร์ 3001 และ 3002
ซึ่งจากโจทย์เราไม่ต้องการให้เบอร์ที่อยู่ในชั้น 2 และ ชั้น 3 โทรหากันได้โดยตรง (เพื่อไม่ให้รบกวนกัน) โดยปกติแล้ว หากเราจะทำตรงๆ กับ เยสตาร์ ก็สามารถทำได้ผ่าน WebUI แต่ต้องทำ Black list ในทุกๆ เบอร์ ซึ่งหากมีเป็นร้อยๆ ห้อง ร้อยๆ เบอร์ อันนี้คงยากพอสมควร และการจะแก้ไขใดๆ เพิ่มเติม คงเป็นการยาก
ดังนั้นในโจทย์นี้เราจะทำการแก้ไขโดยการทำการปรับแต่งค่าในไฟล์ที่เยสตาร์กำหนดไว้ให้เราแล้ว ซึ่งก็คือไฟล์ชื่อว่า extensions_custom.conf ซึ่งไฟล์นี้นั้นจะอยู่ที่ /ysdisk/support/customcfg/ นั้นเอง
แต่ไฟล์นี้โดยค่า Default ที่มาจะไม่มีมาให้นะครับ ดังนั้นเราต้องสร้างมันขึ้นมาเองก่อน แล้วค่อยนำรายละเอียดที่ต้องการใส่ลงไป ดังนี้ครับ

ค้นหา Context ที่ชื่อว่า [Local_Default_CallingRules] จากนั้นทำการคัดลอกทั้งหมดใน Context นี้ไปวางไว้ในไฟล์ใหม่ที่เราจะทำการปรับแต่ง

ทำการสร้างไฟล์ใหม่ ขึ้นมา ดังนี้

จากนั้นให้วางข้อมูล ที่เราเปิดดูก่อนหน้าใน Context ชื่อ [ Local_Default_CallingRules ] วางไว้เลย

เมื่อแก้ไขเสร็จแล้ว ก็สั่งบันทึกไฟล์ แล้วรันคำสั่งต่อไปนี้ต่อได้เลย
รันคำสั่งต่อไปนี้
- astconfig
- asterisk -rvvvv
- dialplan reload
เสร็จแล้วลองโทรหากันครับ จะเห็นว่าจะไม่สามารถโทรข้ามหากันได้แล้ว
จากขั้นตอนทั้งหมดด้านบน เป็นการคอนฟิกบน S-Series PBX เท่านั้น
แต่หากท่านใช้ P-Series PBX จะมีสิ่งที่แตกต่างกันออกไปเล็กน้อย สองเรื่องที่ต่าง คือ 1. ใน P Series ไม่มี คำสั่ง astconf 2. ท่านต้องเรียงลำดับ Context ใหม่ ในส่วนอง [internal_calls_restrict] ให้นำไปไว้บนสุด ตัวอย่างดังภาพ

เมื่อทำการแก้ไขเรียบร้อยแล้ว ให้ท่านทำการ แก้ไขไฟล์ใดๆ ก็ได้ในหน้า WebUI เพื่อให้ปุ่ม Apply แสดงขึ้นมา แล้วกดปุ่ม apply หนึ่งครั้ง (เพื่อให้ระบบทำการ Reload ค่าที่เราทำการแก้ไข) โดยปกติใน S Series เราจะใช้คำสั่ง astconf เพื่อทำการ reload ค่าคอนฟิกใหม่ที่เราทำลงไป แต่ใน P Series ไม่มีคำสั่งนี้ จึงต้องอาศัยการ Reload หน้าเว็บแทนนั่นเอง (จริงๆ มีคำสั่ง แต่มันใช้ได้บน root เท่านั้นใน support รันคำสั่งไม่ได้) เพียงเท่านี้ เราจะสามารถใช้งานได้แล้ว ให้ทดสอบโทรหากันได้เลย จะเห็นว่ามันไม่สามารถโทรได้ครับ
ทริค. เล็กๆ ในการแก้ไขไฟล์ extensions_custom.conf นั้น เมื่อเราทำการ reload ด้วยคำสั่ง astconf แล้ว ระบบจะนำไฟล์ที่เราได้ทำการแก้ไข Context ที่เราทำการแก้ไข ไปวางไว้ในไฟล์ extensions.conf เองอัตโนมัติ นั่นทำให้ เราสามารถเข้าไปตรวจสอบได้ที่ไฟล์ vi /etc/asterisk/extensions.conf จะเห็นว่ามี Context ที่เราได้ทำการแก้ไขใน extensions_custom.conf ไปแสดงอยู่ในนั้นนั่นเอง
จบ หวังว่าจะมีประโยชน์กับท่านนะครับ
บทความนี้ผมอ้างอิงจากเว็บของ support ของเยสตาร์ และส่วนหนึ่งที่ไม่มีในเว็บนี้ เกิดจากการสนทนากับทางฝ่ายเทคนิคของเยสตาร์ตรงๆ ผ่าน Live Chat Support จึงได้วิธีที่ทำบน P-SeriesPBX มานั่นเองครับ
ขอบคุณที่ติดตามอ่านจนจบ
อำนวย ปิ่นทอง
โอติก เน็ตเวิร์ค จำกัด
อ้างอิงบทความต้นฉบับจากเยสตาร์ Block the Internal Calls between Different Number Ranges on S-Series PBX – Yeastar Support