Sunday, April 30, 2006

เมื่อ Rails พบ Asterisk

Ruby Asterisk Gateway Interface (RAGI)
คือ Library ที่ทำให้ Ruby code สามารถทำงานร่วมกับ Asterisk server ได้
ซึ่งแน่นอนว่า เมื่อ ruby คุยกับ Asterisk ได้
rails ก็ย่อยได้อานิสงค์ไปด้วย

RAGI เป็น opensource ของ SNAPVINE, Inc
มี license เป็น BSD

Tutorial ของ RAGI เขาทดลองทำ Application ที่ใช้ track UPS package
ที่มี use case อย่างนี้ดู
  • user ลงทะเบียนการใช้งานผ่านทาง web application
  • user ระบุ UPS package id ที่ต้องการ track
  • หลังจากลงทะเบียนและระบุ package id แล้ว user ก็สามารถ
    โทรเข้ามาสอบถาม สถานะของ package ได้


ลองดูตัวอย่าง code ในส่วนของ rails ที่ทำหน้าที่ตอบรับโทรศัพท์
class DeliveryStatusHandler < RAGI::CallHandler 
def dialup
answer()

# read the caller id from the connection
user_phone_number = @params[RAGI::CALLERID]

user = User.find_by_phone_number(user_phone_number)
if (user == nil)
speak_text("We could not locate any accounts. Please try again later")
hangUp()
return
end

deliverylist = user.deliveries

speak_text("You have #{deliverylist.size} deliveries to track")

if deliverylist.size > 0
updateAll(deliverylist)
readDeliveryStatus(deliverylist)
else
speak_text("Please go to the website and register some deliveries.")
end

speak_text("Goodbye!")
hangUp()

end
end


อ่านเพิ่มเติม

Related link from Roti

No comments: