i have some problems with this
tengo algunos problemas con esto
Launched AGI Script /var/lib/asterisk/agi-bin/comprobar-festivos.rb
/usr/lib/ruby/site_ruby/1.8/rubygems.rb:66:in active_gem_with_options': undefined method
activate’ for Gem:Module (NoMethodError)
from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:59:in require' from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:75 from /var/lib/asterisk/agi-bin/comprobar-festivos.rb:17:in
require’
from /var/lib/asterisk/agi-bin/comprobar-festivos.rb:17
– AGI Script comprobar-festivos.rb completed, returning 0
this is my script
este es mi script
#!/usr/bin/env ruby
AGI para consulta de festivos en un calendario ICalendar ubicado en
nuestro sistema de archivos.
Licencia GPL.
Por Iñaki Baz [email protected]
Irontec: http://www.irontec.com
Blog Voz-ip: http://blog.voz-ip.com
Variables:
categoria_festivo = “Festivo”
archivo_calendario = “/var/www/webdav/Spain32Holidays.ics”
require ‘rubygems’
require ‘icalendar’
require ‘date’
require_gem ‘ruby-agi’
Creamos un objeto AGI:
agi = AGI.new
Calendario ICS:
cal_file = File.open(archivo_calendario)
Parseamos el fichero:
cals = Icalendar.parse(cal_file)
“cals” es en realidad un array pues pueden haber varios calendarios en
un fichero ICS. Nos quedamos con el primero (que es el único):
cal = cals.first
Fecha de hoy:
hoy = Date.today
Para hacer pruebas podemos forzar la fecha de hoy:
#hoy = Date.new(2006,11,8)
Comprobamos si es sábado o domingo:
Sábado = 6
Domingo = 0
if hoy.wday == 6 || hoy.wday == 0
agi.noop(“Es fin de semana, colgamos”)
Reproducimos la grabación:
agi.stream_file(“hoy-es-fin-de-semana”)
agi.hangup()
exit
end
Comprobamos los eventos del dÃÂa de hoy:
cal.events.each do |event|
inicio = Date.new(event.dtstart.year, event.dtstart.month,
event.dtstart.day)
if event.dtend
fin = Date.new(event.dtend.year, event.dtend.month, event.dtend.day)
else
fin = inicio
end
Comparamos con “hoy + 1” porque si un evento dura un dÃÂa significa
que finaliza el dÃÂa siguiente:
if inicio <= hoy && fin >= hoy + 1
event.categories.each do |categoria|
if categoria == categoria_festivo
agi.noop(“Hoy es festivo, colgamos”)
# Reproducimos la grabación:
agi.stream_file(“hoy-es-festivo”)
agi.hangup()
exit
end
end
end
end
I don’t know what to do
no se que hacer…