วันเสาร์ที่ 15 พฤษภาคม พ.ศ. 2553

สร้างระบบคิว ด้วย asterisk

จริง ๆ แล้วถ้าหากไม่ต้องใช้ระบบคิวกับระบบบันทึกเสียงแล้ว ผู้เขียนอาจจะไม่ได้เข้ามาอยู่ในวงการ IP-PBX อย่างแน่นอน เพราะคงต้องใช้บริการตู้สาขาธรรมดา ๆ สักเครื่องหนึ่ง ราคาไม่กี่หมื่นบาท

แต่ความจำเป็นที่ต้องใช้ระบบคิวและการบันทึกเสียงนี่แหละจึงเกิดเป็น IPBX-System ขึ้นมา

ระบบ Call Center สิ่งที่ขาดไม่ได้คือการจัดลำดับการให้บริการหรือการจัดคิว (Queue Call) ไม่เช่นนั้นแล้ว คนที่อยู่สายแรกจะรับสายมากกว่าคนอื่น และคนอยู่ลำดับสุดท้ายก็สบายกว่าเพื่อ...

การสร้างระบบคิวใน Asterisk เป็นเรื่องง่าย เพราะใช้ไฟล์ queues.conf และ agents.conf เป็นตัวกำหนดรายละเอียดต่าง ๆ (sip.conf และ extensions.conf ละไว้ในฐานที่เข้าใจนะครับ เพราะเป็นพื้นฐานของระบบ)

ก่อน อื่นเราต้องกำหนดเสียก่อนว่าจะให้ระบบมีกี่ Agent และมีกี่คิว เพราะ Agent หนึ่งจะสามารถรับสายได้หลายคิวนี่เป็นข้อดีของ Asterisk สำหรับใช้ในกรณีที่ขาดแคลนบุคลากร แต่ยังต้องมีหลายคิว

กำหนด queues.conf

ให้ เพิ่มเซ็กชันชื่อคิวตามที่เราต้องการในตัวอย่างใช้คิว CallCenter ในรายละเอียดกำหนดให้ใช้เพลงรอสาย และที่สำคัญคือ strategy ในตัวอย่างกำหนดเป็น rrmemory เป็นการเข้าคิวแบบหมุนวนจนครบรอบ และ timeout=15 คือกำหนดให้รอสายในคิว 15 วินาทีถ้าไม่มีใครรับจะวิ่งไปยัง Agent ถัดไป และ member จะกำหนดรหัส Agent ที่จะให้บริการใน queue

[CallCenter]
music=default
strategy=rrmemory
timeout=15
retry=5
wrapuptime=0
maxlen = 0
announce-frequency = 0
announce-holdtime = no
member => Agent/901
member => Agent/902
member => Agent/903

กำหนด agents.conf

ให้เพิ่มรายชื่อผู้ที่จะเป็นผู้ให้บริการในระบบคิวต่อท้ายไฟล์ agents.conf เหมือนตัวอย่าง

agent => 901,901,Agent 1
agent => 902,902,Agent 2
agent => 903,903,Agent 3

รูปแบบในการกำหนดคือ

agent=>agent code, agent password, agent name

agent code คือ รหัสของ Agent จะกำหนดเหมือนหรือแตกต่างกับหมายเลขเครื่องหรือ SIP Number ก็ได้
agent password
คือ รหัสผ่านของ Agent ให้กำหนดเป็นตัวเลขเท่านั้น เพราะจะต้อง Login ผ่านเครื่องรับโทรศัพท์
agent name
คือ ชื่อของ Agent ให้กำหนดเป็นภาษาอังกฤษ

กำหนด Extension สำหรับ Login

การ ล็อกอินผ่านเครื่องโทรศัพท์เราต้องการกำหนดให้มี Extension สำหรับล็อกอินเพื่อเรียกใช้ฟังค์ชัน AgentCallbackLogin() วิธีการให้เพิมบรรทัดตามตัวอย่างด้านล่างไว้ในส่วน [default] ของไฟล์ extensions.conf

exten=>9876,1,AgentCallbackLogin(||${CALLERIDNUM}@default)

ตัวอย่าง นี้กำหนดให้กดปุ่ม 9876 เพื่อล็อกอินหรือล็อกเอ้าท์ โดยการใช้งานจะต้องกดปุ่ม # เพื่อเลือกการทำงาน ให้คิดง่าย ๆ # คือปุ่ม Enter นั่นเอง โดยมีขั้นตอนคือ

  1. กดปุ่ม 9876# แล้วจะมีเสียงตอบรับให้กดหมายเลขรหัส Agent ที่จะล็อกอิน
  2. กดรหัส Agent ที่จะล็อกอิน ตัวอย่างเช่น 901#
  3. กดรหัสผ่านของ Agent ตัวอย่างเช่น 901#
  4. กดหมายเลขเครื่องที่จะใช้งานปกติจะเป็นเครื่องที่ Agent นั่งทำงานนั่นแหละ ตัวอย่างเช่น 901#

ใน ขั้นตอนที่ 4 เราสามารถกำหนดให้ใช้หมายเลขเครื่องใดก็ได้ตราบที่ยังมีรหัสใน extensions.conf ซึ่งตรงนี้แหละมักจะเป็นปัญหาบางครั้งผู้ใช้ใส่หมายเลขเครื่องผิดทำให้ โทรศัพท์ไปโผล่อีกเครื่องหนึ่ง และการล็อกเอ้าท์ก็ไม่ต้องกำหนดหมายเลข เครื่องโดยให้กดปุ่ม # เพียงอย่างเดียวในขั้นตอนที่ 4

ทดสอบระบบคิว

วิธี การทดสอบระบบคิวที่สร้างขึ้นว่าจะสามารถใช้งานได้หรือไม่ให้สร้าง extension ใหม่ขึ้นมาเพื่อให้เราสามารถโทรเข้าไปตรวจสอบได้ เช่น

exten=> 500,1,Answer
exten=> 500,2,Ringing
exten=> 500,3,Wait(2)
exten=> 500,4,Queue(CallCenter)
exten=> 500,5,Hangup

หลังจากนั้นลองกดโทรไปหมายเลข 500 ระบบคิวจะทำงานตามที่เรากำหนดทั้งใน extensions.confและ queues.conf

กำหนดให้ตอบรับคิวเมื่อมีการโทรมาจากสายนอก

สุด ท้ายเราต้องกำหนดในไฟล์ extensions.conf ในส่วน [default] เพื่อกำหนดให้ระบบคิวทำงานทันทีที่มีสายเรียกเข้า ให้เพิ่ม extension s ไว้ใน [default] ตามตัวอย่าง

[default]
exten=>s,1,Answer()
exten=>s,n,Queue(CallCenter)
...

จาก ตัวอย่างนี้จะเป็นวิธีการแบบง่าย ๆ เมื่อมีการโทรเข้าระบบจะตัดเข้าคิวทันทีโดยไม่มีการทำรายการใด ๆ ถ้าต้องการให้มีเสียงทักทายเป็นระบบ IVR ก่อนก็สามารถเพิ่มก่อนคำสั่ง Queue ได้

บางบริษัทจะมีเสียงแจ้งให้ลูกค้ากดหมายเลขภายในที่ทราบ หรือถือสายรอสักครู่ ก็สามารถทำได้เหมือนตัวอย่างด้านล่างนี้

[default]
exten=>s,1,Answer()
exten=>s,n,Background(custom/00&custom/01)
exten=>s,n,WaitExten(5)
exten=>s,n,Queue(CallCenter)

exten=>_XXX,1,Dial(SIP/${EXTEN})
...

จาก ตัวอย่างมีรายการเพิ่ม 3 บรรทัดคือ Background เป็นการสั่งให้เปิดไฟล์เสียง ตัวอย่างให้เปิดไฟล์ /var/lib/asterisk/sounds/custom/00.gsm และ 01.gsm และบรรทัดต่อมา WaitExten(5) ให้หยุดรอลูกค้ากดหมายเลขภายใน 5 วินาที ถ้าไม่มีการกดปุ่มใด ๆ ภายในเวลาที่กำหนดก็จะเข้าคิว CallCenter ในบรรทัดต่อมาแต่ถ้ามีการกดปุ่ม ก็จะต่อโทรศัพท์ไปยังหมายเลขอื่น ๆ ที่กำหนดไว้ใน extensions.conf ซึ่งตัวอย่างใช้วิธีง่าย ๆ คือ _XXX กำหนดให้เมื่อผู้โทรกดหมายเลขอะไรก็ได้ 3 หลักจะต่อโทรศัพท์ไปตามเครื่องที่กำหนด เช่น กด 901 ก็จะต่อสายไป SIP/901

ป้ายกำกับ: ,

0 ความคิดเห็น:

แสดงความคิดเห็น

สมัครสมาชิก ส่งความคิดเห็น [Atom]

<< หน้าแรก