Callback คือการโทรกลับไปยังเบอร์ที่โทรเข้ามา
แนวคิดของ Callback เป็นแบบนี้นะครับ เราโทรเข้าไปที่เบอร์ๆหนึ่งที่กำหนดไว้ใน Elastix อาจจะได้ยินเสียงริงแป๊บนึง จากนั้น Elastix จะโทรกลับมาที่เบอร์ของเราแล้วเราก็รับสาย ต่อจากนั้นก็ขึ้นอยู่กับว่าเราเซ็ตบน Elastix ให้ทำอะไรต่อหลังจากที่เรารับสายแล้ว เช่น เรียก DISA ขึ้นมาทำงานจ่ายไดอัลโทนให้เรากดไปเบอร์ Extension อื่น (รายละเอียดของ DISA กระทู้นี้ครับ การใช้งาน DISA)
นอกจากนั้นถ้าเราอยู่ข้างนอกออฟฟิศและต้องการโทรไปหาเบอร์ Extension บน Elastix แบบไม่ต้องเสียเงินค่าโทรศัพท์ เราก็ใช้ฟีเจอร์ Callback นี้ช่วยได้นะครับ คือเราก็ต่อเบอร์โทรศัพท์เข้าไปที่ Elastix (ดูรายละเอียดวิธีการต่อเบอร์โทรศัพท์เข้า Elastix ที่กระทู้นี้ครับ การเชื่อมต่อ Elastix กับเบอร์โทรศัพท์) จากนั้นก็เซ็ต Callback ขึ้นมาแล้วก็กำหนดว่าถ้ามีคนโทรเข้ามาที่เบอร์ๆนี้ก็ให้ทำงานตามที่กำหนดไว้ ที่ผมบอกว่าไม่เสียค่าโทรเข้าก็เพราะว่าเมื่อโทรเข้ามา Elastix จะไม่รับสาย (แต่ก็รู้ว่าโทรมาจากเบอร์ไหน) จากนั้นจะตัดสายและโทรกลับไปยังเบอร์ที่โทรเข้ามา
เบอร์ Callback ส่วนมากแล้วจะใช้เป็นเบอร์โทรศัพท์ครับ ไม่ใช่เบอร์ Extension ทั้งนี้ก็เพราะว่าเราโทรหาระหว่าง Extension ได้อยู่แล้ว และฟีเจอร์ Callback นี้ต่างจาก IVR ตรงที่เมื่อเราโทรเข้าเบอร์โทรศัพท์ IVR ระบบจะรับสายเราเลย (เราก็เริ่มเสียเงินค่าโทร) แล้วจะมีเสียงให้เรากดเลือกตัวเลือกต่างๆที่มีให้เลือก ในขณะที่ Callback เมื่อเราโทรเข้าไปมันจะตัดสายแล้วโทรกลับมาหาเรา จากนั้นก็แล้วแต่ว่าเราเซ็ตไว้ให้ทำอะไรต่อ แม้กระทั่งเรียก IVR ขึ้นมาทำงานก็ทำได้ด้วยนะครับ
สร้าง Callback มีวิธีการดังต่อไปนี้
1. เข้าเว็บอินเตอร์เฟสของ Elastix แล้วคลิ๊กที่ "PBX" -> "PBX Configuration" -> "Callback"
2. ป้อนข้อมูลดังตัวอย่าง
Callback Description ตั้งชื่อ
Callback Number ใส่เบอร์โทรศัพท์ที่จะใช้เป็นเบอร์ Callback
Delay Before Callback หน่วงเวลาไว้ ... วินาทีจึงโทรกลับ
Destination after Callback เลือกว่าจะให้ Elastix ทำอะไรเมื่อโทรกลับไปหาและรับสายแล้ว ในตัวอย่างให้เรียก DISA ที่ชื่อ For Callback ให้ทำงาน
จากรูปอธิบายได้ว่า เมื่อมีคนโทรเข้ามาที่เบอร์ 021000001 Elastix จะรู้ว่ามีคนต้องการใช้ฟีเจอร์ Callback มันก็จะบันทึกเบอร์คนโทรเข้า (Caller ID) ไว้ จากนั้นรอ 5 วินาทีก็จะโทรกลับไปยังเบอร์ที่โทรเข้ามา เมื่อมีคนรับสายก็จะส่งไดอัลโทนไปให้ (ตามการทำงานของฟีเจอร์ DISA) รอให้เขากดเบอร์ที่ต้องการจะโทรไป
3. คลิ๊ก "Submit Changes" และ "Apply Configuration Changes Here"
4. ทดสอบ
จุดที่ควรระวัง
เมื่อใช้งาน Callback ผมขอแนะนำจุดที่ต้องสนใจเป็นพิเศษ ซึ่งถ้าพลาดไปก็จะเป็นสาเหตุที่ทำให้ "ไม่เวอร์ค" หรือ "Call (ไม่) back" ก็คือ
1. เบอร์โทรศัพท์ที่ใส่เข้าไปในช่อง "Callback number" นั้น ต้องชัวร์นะครับว่ามันจะเป็นเบอร์นั้นจริงๆ (ดูที่กระทู้นี้ครับ การรับเบอร์ DID เข้ามาทาง SIP Trunk) เพราะว่าเวลาผู้ให้บริการส่งเบอร์ DID มา เขาอาจส่งมาแค่ 21000001 หรือเพิ่มรหัสประเทศเข้าไปด้วยเช่น 6621000001 ซึ่งถือว่าเป็นคนละเบอร์กันนะครับ
2. เบอร์คนโทรเข้า (Caller ID) ต้องดูด้วยครับว่าฟอร์แม๊ตเบอร์มันเป็นยังไง และสัมพันธ์กับใน Outbound Route หรือไม่ (รายละเอียดที่กระทู้นี้ครับ การใช้งาน Outbound Routes ใน Elastix) และ Trunks (รายละเอียดที่กระทู้นี้ ทำความเข้าใจเรื่อง Trunks ใน Elastix) หรือไม่ ผมขออธิบายให้ละเอียดๆเลยนะครับ ดังนี้
เรามีวิธีเช็คเบอร์โทรเข้า Caller ID ได้นะครับ โดยโทรถามผู้ให้บริการหรือไม่ก็มอนิเตอร์เอา เช่น ดูจาก Asterisk Console (ดูที่กระทู้นี้ การใช้งาน Asterisk Console) ซึ่งเมื่อโทรเข้ามามันก็จะแสดง Caller ID บนหน้าจอด้วย ลองสังเกตุดูครับ เช่นสมมติว่าเบอร์ Caller ID ที่แสดงคือ 021000100
ทีนี้ก็นึกถึงตอนที่ Elastix จะโทรกลับครับ มันก็จะใช้ Outbound Route ซึ่งใน Outbound Route เรากำหนดว่า Dial Patterns = 9|. แสดงว่าเราก็จะต้องแปลง 021000100 ให้เป็น 9021000100 ก่อนไม่อย่างนั้นมันจะโทรไม่ออก แต่เราอาจจะสร้าง Dial Patterns ขึ้นมาอีกบรรทัดนึงก็ได้ เพื่อรองรับเคสนี้โดยเฉพาะ โดยเพิ่มบรรทัด 0. เข้าไป
แล้ว Trunk (Outbound Trunk) มันเกี่ยวตรงไหน เกี่ยวตรงที่เมื่อหลุดมาจาก Outbound Route แล้วมันก็จะมาที่ Trunk ไงครับ ทีนี้ตอนที่ส่งเบอร์ไปยังผู้ให้บริการเราก็ต้องส่งไปให้มีรูปแบบที่ถูกต้องด้วย เช่นสมมติว่าเขาต้องการให้ส่ง 021000100 ไปเลย หรือส่ง 6621000100 หรือส่ง 0016621001000 ต้องเช็คด้วยครับแล้วมาแก้ไข Dial Rules ของ Trunk ให้ถูกต้อง
บทความที่เกี่ยวข้อง
เทคนิคการใช้งาน Callback กับคู่สายโทรศัพท์ที่ไม่โชว์เบอร์