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

การใช้งาน Caller ID Lookup Source บน Issabel - MySQL

โพสต์โพสต์แล้ว: 20 ต.ค. 2019 09:53
โดย nuiz
การใช้งาน Caller ID Lookup Source บน Issabel - Internal

ตามปกติเมื่อโทรเข้ามาจากภายนอก ไอพีโฟน (ซอฟท์โฟน) จะแสดงหมายเลขโทรเข้าแต่ไม่แสดงชื่อ เป็นเพราะผู้ให้บริการส่งแต่ Caller ID Number มา ถ้าเราต้องการให้แสดงชื่อ (Caller ID Name) ด้วย เราต้องทำเพิ่มบน Issabel เองครับ โดยก่อนที่ Issabel จะส่งไปริงเบอร์ Extension เราจะให้มันเอา Caller ID Number ไปค้นหาในฐานข้อมูลก่อน ถ้าพบก็ให้เพิ่มฟิลด์ Caller ID Name เข้าไปใน INVITE message ที่ส่งไปยัง Extension ด้วย บนหน้าจอก็จะแสดงชื่อ

แหล่ง (Sources) ที่ Issabel สามารถ Lookup ได้มีหลายแหล่งครับ ได้แก่
รูปภาพ

ผมขออธิบายเป็นบางอันนะครับ ดังนี้
- Internal (จาก Phonebook บนเครื่อง Issabel เอง - บทความครับ ผมทำไว้แล้ว)
- ค้นหาผ่าน URL http ครับ เราต้องเขียนสริปต์เพื่อให้ Issabel ส่งเบอร์ Caller ID Number ไปเพื่อ GET ชื่อมาครับ
- ค้นหาผ่าน URL https ครับ เราต้องเขียนสริปต์เพื่อให้ Issabel ส่งเบอร์ Caller ID Number ไปเพื่อ GET ชื่อมาครับ
- MySQL ส่งคำสั่ง MySQL ไปเลยครับ (บทความนี้ผมจะแนะนำวิธีนี้แหล่ะครับ โดยผมจะให้ Query จากดาต้าเบสของ Vtiger 7.1.0 ครับ)
ซึ่ง 3 วิธีหลังเหมาะกับกรณีที่เรามีฐานข้อมูลของ "เบอร์โทรศัพท์" และ "ชื่อ นามสกุล" ของคนโทรเข้ามาอยู่แล้ว เช่นบน CRM, ERP ครับ

วิธีการคอนฟิกให้ Issabel ส่งคำสั่ง MySQL ไป Query ดาต้าเบส Vtiger ดึงชื่อจากเบอร์โทรศัพท์มีดังต่อไปนี้

** บทความนี้จะให้ Issabel ดึงชื่อจาก Contacts บน Vtiger ไม่ได้ให้ดึงจาก Leads นะครับ ใช้ได้กับทั้ง Vtiger 7 และ 6 ครับ **

1. สร้าง Contacts บน Vtiger
ข้อมูล Firstname, Lastname, Phone, Mobile จะไปอยู่ในเทเบิล vtiger_contactdetatils บน Vtiger ครับ ผมติดตั้ง Vtiger อยู่ที่เครื่อง 192.168.100.52 ส่วน Issabel อยู่ที่ 192.168.100.54 ครับ คนละเครื่องกัน รายละเอียดดาต้าเบสของ Vtiger มีดังนี้ครับ
Database Name=vtigercrm
Database User=root
Database Password=123456
รูปนี้ผมแค๊ปมาจากดาต้าเบส ผมสร้างจากหน้าเว็บ Vtiger แหล่ะครับ
รูปภาพ

2. คอนฟิก MySQL บนเครื่อง Vtiger ให้รับคอนเน็คชั่นจากเครื่อง 192.168.100.54
โดยใช้ phpMyAdmin ก็ได้ เข้าไปที่ดาต้าเบส mysql เทเบิล user แล้วก๊อปปี้ข้อมูลของ root ครับ แล้วแก้ไข Host จาก localhost เป็น 192.168.100.% ครับ แล้วรันคำสั่งของ mysql คือ flush privileges ก็จะทำให้เราคอนเน็คเข้า MySQL บนเครื่อง Vtiger จากเครื่อง Issabel ได้ครับ
ฟิลด์ Host ผมใส่เป็น 192.168.100% หมายถึงทุกไอพีในเน็ตเวอร์คนี้
รูปภาพ

3. คอนฟิก Caller ID Lookup Sources บน Issabel
รูปภาพ

บรรทัด Query เป็นแบบนี้ครับ - คิวรี่ทั้งฟิลด์ mobile และ phone เผื่อว่าเราอาจจะใส่เบอร์ใน phone หรือใน mobile จะได้หาเจอ
โค้ด: เลือกทั้งหมด
SELECT firstname FROM vtiger_contactdetails WHERE (mobile LIKE '%[NUMBER]%') OR (phone LIKE '%[NUMBER]%')


4. คอนฟิก Inbound Routes บน Issabel
โทรเข้ามาทางเบอร์ DID ไหนก็คอนฟิกเบอร์นั้นครับ เบอร์ DID ต้องโชว์เบอร์ได้นะครับ ไม่งั้นจะไม่มี Caller ID Number มา

รูปภาพ

5. ทดสอบโทรเข้า
เอาเบอร์มือถือโทรเข้าเบอร์ DID นั้น แล้วดูเบอร์บนหน้าจอ IP Phone หรือ Softphone ครับ จะแสดงชื่อและเบอร์

รูปภาพ

คำถามที่อาจจะมีคนถามครับ ผมเตรียมคำถามและคำตอบไว้ให้แล้วดังนี้

1. โทรเข้าจะช้ากว่าเดิมมั๊ยกว่าจะมาดังที่เบอร์ Extension?
ช้ากว่าเดิมแน่นอนครับเพราะต้องส่งคำสั่งไป Query ดาต้าเบสด้วย แต่ช้าเพียงเสี้ยววินาทีครับ คนโทรเข้าจะไม่รู้สึกอะไรเลย

2. ถ้าติดต่อดาต้าเบส Vtiger ไม่ได้จะยังโทรเข้าได้อยู่มั๊ย?
ยังโทรเข้าได้อยู่เหมือนเดิมครับ แต่คราวนี้จะรู้สึกว่าช้าแล้วครับ เพราะ Issabel ต้องรอ Response กลับมาจาก Vtiger ซึ่งหาก Vtiger ดับไปก็จะไม่มี Response แน่นอน โดย Issabel จะรอจน Timeout กินเวลาประมาณ 5 วินาทีครับ จากนั้นจะดำเนินการต่อตามที่เราคอนฟิกใน Inbound Routes ครับ

กรณีเราคอนฟิก Host ผิด (หรือ Host นั้นไม่ใช่ MySQL) รอนานเท่ากับ Host ตายครับ

3. ตัวอย่างคำสั่งใน Query สามารถใช้กับดาต้าเบสอื่นได้มั๊ย?
ได้ครับ ขอให้เป็น MySQL ให้แก้ไขพารามิเตอร์ให้เหมาะสมกับดาต้าเบสครับ

4. คิวรี่ชื่อใน Leads ได้มั๊ย?
ได้ครับ แต่เราจะต้อง JOIN ตาราง vtiger_leadaddress และ vtiger_leaddetails เข้าด้วยกัน เพราะ phone/mobile อยู่เทเบิล vtiger_leadaddress ส่วน firtname/lastname อยู่เทเบิล vtiger_leaddetails ครับ

5. คิวรี่ใน Contacts ก่อน ถ้าไม่เจอให้คิวรี่ใน Leads ได้มั๊ย?
น่าจะได้นะครับ ถ้าไม่รู้จะทำยังไงบนคำสั่ง MySQL ผมว่าน่าจะเขียนสคริปต์ดีกว่าครับ แล้วเรียกใช้ Lookup Source แบบ http หรือ https แทนครับ

6. อยากให้โชว์ทั้งชื่อ (firstname) และนามสกุล (lastname) และชื่อองค์กร (organization) ทำได้หรือไม่
ทำได้ครับ แต่ต้องใช้ Lookup Sources แบบ http หรือ https โดยส่งเบอร์ Caller ID ไปรันสคริปต์ที่เราทำไว้

7. ถ้าคิวรี่แล้วไม่มีข้อมูล (ไม่พบ CallerID นั้นในดาต้าเบส) จะเป็นอย่างไร คนโทรจะรอนานมั๊ย?
ก็จะไม่แสดงชื่อครับ แสดงแต่เบอร์โทร เสียเวลาเท่ากับกรณีที่มีเบอร์ครับ

เทคนิคการใช้งานคำสั่ง NoCDR ใน Asterisk Dial Plan