Re: Кто что использует для AGI
в качестве тренировки - озвучка баланса на Ruby (увидел чей-то на другом языке - спасибо автору - и на его примере переписал на Ruby - может кому пригодится).
баланс берется из текстового файла, в котором первым полем идет 8-значный номер абонента, через пробел значение баланса с копейками через точку.
#!/usr/bin/ruby
require 'agi'
agi = AGI.new
agi.answer
agi.verbose(agi.env['callerid'])
tn = agi.env['callerid']
found = false
rub = kop = '00'
a = {}
a = File.open('/var/lib/asterisk/sounds/transit-ivr/saldo.txt').each_line { |ln|
a = ln.split
if a[0] == tn[4..9] then
agi.verbose('found')
rub,kop = a[1].split('.')
agi.verbose(rub)
agi.verbose(kop)
found = true
end;
}
if !found then
agi.verbose('not_found')
agi.stream_file('/var/lib/asterisk/sounds/digits/ru/balno','#')
end;
if found then
agi.stream_file('/var/lib/asterisk/sounds/digits/ru/bal','#')
agi.say_number(rub,'#')
a='/var/lib/asterisk/sounds/digits/ru/'+rub[rub.size-1..rub.size-1]+'r'
agi.stream_file(a,'#')
agi.say_number(kop,'#')
a='/var/lib/asterisk/sounds/digits/ru/'+kop[kop.size-1..kop.size-1]+'k'
agi.stream_file(a,'#')
end;
|