Revision
14522
Author
diegoviola
Date
2009-08-14 16:10:31 -0500 (Fri, 14 Aug 2009)

Log Message

we can get the rate from the prefix/destination number now

Modified Paths

Diff

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"