我有一个 Rails 应用程序,我正在尝试通过 AMI 从我的星号获取实时事件。
我成功地创建了一个脚本来从 adhearsion 源代码发起调用,而无需创建新的 adhearsion 项目。
我创建了一个扩展 adhearsion 的 ManagerInterface 类并覆盖 event_message_received 方法的类。从 Rails CLI,如果有人打电话,我按 Enter 2 或 3 次,我得到了事件,但我必须干预才能得到它。
这是我的代码:
class Astercall < Adhearsion::VoIP::Asterisk::Manager::ManagerInterface
def initialize
super(:host => "host", :username => "username", :password => "password", :events => true)
connect!
end
def self.click_call(number, exten, name)
# asterisk = connect()
originate(:channel => "SIP/#{exten}",
:context => "from-internal",
:exten => number,
:priority => "1",
:caller_id => "Calling #{name}")
end
def event_message_received(event)
if(event.kind_of? Adhearsion::VoIP::Asterisk::Manager::ManagerInterfaceEvent )
puts event.inspect
end
end
end
我是否必须运行后台进程才能做到这一点。如果我这样做,我该怎么做????
提前致谢