หน้า 1 จากทั้งหมด 1

เทคนิคการจำกัด Concurrent Calls บน Asterisk

โพสต์โพสต์แล้ว: 06 ธ.ค. 2020 12:11
โดย nuiz
พอดีมีลูกค้าถามมาครับ มีวิธีที่จะจำกัดจำนวนคู่สายที่จะโทรได้พร้อมๆกันมั๊ย จำนวนคู่สายที่โทรได้พร้อมกัน ผมมักจะเรียกอีกชื่อหนึ่งว่า "Concurrent Calls" ครับ คำตอบคือ... มีครับ แบบนี้

Asterisk มีพารามิเตอร์อยู่ตัวหนึ่งคือ maxcalls ที่สามารถจำกัดจำนวนคู่สายที่จะโทรพร้อมกันได้ การโทรจาก A ไป B ไม่ว่าจะกำลัง Ring อยู่หรือกำลังสนทนาอยู่ จะนับเป็น 1 concurrent ครับ และการที่โทรเข้าระบบ เช่น ติด IVR ติด Voicemail ติดข้อความเสียง อย่างนี้ก็นับเป็น 1 concurrent ครับ

1. เปิดไฟล์ /etc/asterisk/asterisk.conf
2. เพิ่มบรรทัด maxcalls ไว้ในส่วน [options]
แบบนี้ครับ สมมติว่าต้องการจำกัดไว้ที่ 10 concurrents

[options]
...
maxcalls=10

3. เซฟไฟล์แล้วรีสตาร์ท amportal
โค้ด: เลือกทั้งหมด
amportal stop
amportal start


4. ทดสอบการทำงาน
ถ้ามีความพยายามโทรพร้อมกัน 10 concurrents ซึ่งยังไม่เกินขีดจำกัดก็จะโทรได้ครับ แต่ถ้ามีอีกคนยกสายกดโทรออก ไม่ว่าจะกดไปเบอร์ไหนก็ตาม จะโทรไม่ได้ครับ โดย Asterisk จะฟ้องออกมาทาง Console ว่า

Failed to start PBX (call limit reached)
หรือไม่ก็ (แล้วแต่สถานการณ์)
Maximum call limit of 10 calls exceeded by...

จำกัดแม้กระทั่งว่า 1 ใน 10 คู่สายที่กำลังโทรคุยกันอยู่นั้น ถ้ามีใครคนใดคนหนึ่งกดโอนสาย อย่างนี้ก็ไม่ได้นะครับเพราะ Asterisk จะมองว่ามีความพยายามในการใช้สายที่ 11

เปิดบริการ อบรม Issabel/FreePBX/Elastix ด้วยคอร์สพิเศษ ให้ติดตั้ง คอนฟิกคล่อง ใช้งานคล่อง ได้ใน 3 วัน
เทคนิคการคอนฟิก Firewall เมื่อเปลี่ยนพอร์ต Web (http/https)
เทคนิคการใช้งาน Firewall + GeoIP บน Issabel
เทคนิคการใช้งาน Issabel
เทคนิคการใช้งาน Elastix
เทคนิคการใช้งาน Asterisk
เทคนิคการใช้งาน FreePBX
ติดตั้งธีม Elastixwave บน Issabel
ตัวอย่างการใช้งาน Action URL บน Grandstream IP Phone