วันจันทร์ที่ 28 พฤศจิกายน พ.ศ. 2554

Asterisk เชื่อมต่อกับ MySQL

ข้อดีของระบบงาน Asterisk ประการหนึ่งคือ การเชื่อมต่อกับฐานข้อมูล โดยสามารถเขียนเป็น extension ง่าย ๆ ทดสอบกัน เช่น ต้องการค้นหาข้อมูลจำนวนสายโทรเข้าทั้งวันจากไฟล์ histories ซึ่งได้จากการสร้าง trigger ของ MySQL โดยระบุให้เขียนลงไฟล์ที่ชื่อ histories เพื่อเก็บเฉพาะสายที่โทรเข้าเท่านั้น ไม่นับรวมสายหรือการทำรายการอื่นๆ

exten => 888,1,MYSQL(Connect connid localhost dbuser dbpass dbname)
exten => 888,n,GotoIf($["${connid}" = ""]?error,1)
exten => 888,n,MYSQL(Query resultid ${connid} SELECT\ count(*)\ As\ \'cnt\' FROM\ `histories`\ WHERE\ date(`calldate`)=\'2011-11-27\' and\ length(`src`)>4\)
exten => 888,n(fetchrow),MYSQL(Fetch foundRow ${resultid} cnt) ; fetch row
exten => 888,n,GotoIf($["${foundRow}" = "1"]?done)
exten => 888,n(done),MYSQL(Clear ${resultid})
exten => 888,n,NoOp(${cnt})
exten => 888,n,SayDigits(${cnt})
exten => 888,n,MYSQL(Disconnect ${connid})

ตัวอย่างนี้เขียนเพื่อค้นหาข้อมูลจำนวนสายทั้งวันของวันที่ 27/11/2554 โดยระบุว่า src หรือต้นทางมีตัวเลขมากกว่า 4 หลัก (ไม่นับหมายเลขภายใน)

ไม่มีความคิดเห็น:

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