Modified: freeswitch/trunk/contrib/diegoviola/ruby/callcard/callcard.rb (14521 => 14522)
--- freeswitch/trunk/contrib/diegoviola/ruby/callcard/callcard.rb 2009-08-14 21:00:02 UTC (rev 14521)
+++ freeswitch/trunk/contrib/diegoviola/ruby/callcard/callcard.rb 2009-08-14 21:10:31 UTC (rev 14522)
@@ -12,11 +12,21 @@
:adapter => "mysql",
:host => "localhost",
:username => "root",
- :password => "secret",
- :database => "callcard"
+ :password => "",
+ :database => "callcard_development"
)
end
+class Destination < ActiveRecord::Base
+ ActiveRecord::Base.establish_connection(
+ :adapter => "mysql",
+ :host => "localhost",
+ :username => "root",
+ :password => "",
+ :database => "callcard_development"
+ )
+end
+
class CallCard < FSR::Listener::Outbound
def session_initiated
exten = @session.headers[:caller_caller_id_number]
@@ -30,16 +40,19 @@
@card = Card.find_by_card_number(pin_number)
if @card then
FSR::Log.info "*** Success, grabbed #{pin_number} from #{exten}"
- play_and_get_digits(dial_tone, bad_pin_wav, 2, 10, 3, 7000, ["#"], "destination_number", "\\d") do |destination_number|
+ play_and_get_digits(dial_tone, bad_pin_wav, 2, 11, 3, 7000, ["#"], "destination_number", "\\d") do |destination_number|
+ prefix = destination_number[0,5]
+ @destination = Destination.find_by_prefix(prefix)
FSR::Log.info "*** Success, grabbed #{destination_number} from #{exten}"
FSR::Log.info "*** Setting up the billing variables."
- uuid_setvar(@session.headers[:unique_id], 'nibble_rate', @card.rate)
+ uuid_setvar(@session.headers[:unique_id], 'nibble_rate', @destination.rate)
uuid_setvar(@session.headers[:unique_id], 'nibble_account', @card.id)
+ destination_info
FSR::Log.info "*** Bridging."
FSR::Log.info "*** You have #{duration} minutes to talk."
speak("You have #{duration} minutes to talk.")
- #api("sched_api +#{(duration*60)-60} none uuid_displace #{@session.headers[:unique_id]} start tone_stream://%(500,0,500)")
transfer("#{destination_number}", "XML", "default") { close_connection }
+ #api("sched_api +#{(duration*60)-60} none uuid_displace #{@session.headers[:unique_id]} start tone_stream://%(500,0,500)")
#bridge("sofia/internal/#{destination_number}@0.0.0.0")
end
else
@@ -54,9 +67,17 @@
end
def duration
- @duration = @card.balance.to_i / @card.rate.to_i
+ @duration = @card.balance.to_i / @destination.rate.to_i
return @duration
end
+
+ def destination_info
+ FSR::Log.info "=================================================="
+ FSR::Log.info "*** Destination rate: #{@destination.rate}"
+ FSR::Log.info "*** Card ID: #{@card.id}"
+ FSR::Log.info "*** Destination: #{@destination.country}"
+ FSR::Log.info "=================================================="
+ end
end
FSR.start_oes! CallCard, :port => 8084, :host => "127.0.0.1"