Revision
14559
Author
diegoviola
Date
2009-08-18 19:12:48 -0500 (Tue, 18 Aug 2009)

Log Message

lets keep our event socket script only for database lookups and use the dialplan for call logic

Modified Paths

Added Paths

Diff

Modified: freeswitch/trunk/contrib/diegoviola/ruby/callcard/callcard.rb (14558 => 14559)


--- freeswitch/trunk/contrib/diegoviola/ruby/callcard/callcard.rb	2009-08-18 23:06:13 UTC (rev 14558)
+++ freeswitch/trunk/contrib/diegoviola/ruby/callcard/callcard.rb	2009-08-19 00:12:48 UTC (rev 14559)
@@ -28,35 +28,24 @@
     bad_pin_wav = "/usr/local/freeswitch/sounds/en/us/callie/conference/8000/conf-bad-pin.wav"
     dial_tone = "tone_stream://%(10000,0,350,440)"
     FSR::Log.info "*** Answering incoming call from #{exten}"
-    answer do
-      fs_sleep(2000) do
-        play_and_get_digits(pin_wav, bad_pin_wav, 2, 10, 3, 7000, ["#"], "pin_number", "\\d") do |pin_number|
-          @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, 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', @destination.rate) if @destination.respond_to?(:rate)
-              uuid_setvar(@session.headers[:unique_id], 'nibble_account', @card.id)
-              FSR::Log.info "*** Destination rate: #{@destination.rate}" if @destination.respond_to?(:rate)
-              FSR::Log.info "*** Card ID: #{@card.id}"
-              FSR::Log.info "*** Calling to: #{@destination.country}" if @destination.respond_to?(:country)
-              FSR::Log.info "*** Bridging."
-              FSR::Log.info "*** You have #{duration} minutes to talk."
-              speak("You have #{duration} minutes to talk.")
-              transfer(destination_number, "XML", "default") { close_connection }
-              #bridge("sofia/internal/#{destination_number}@0.0.0.0")
-            end
-          else
-            FSR::Log.info "*** Failure, grabbed #{pin_number} from #{exten}"
-            playback(bad_pin_wav)
-            FSR::Log.info "*** Hanging up the call."
-            hangup
-          end
-        end
+    play_and_get_digits(pin_wav, bad_pin_wav, 2, 10, 3, 7000, ["#"], "pin_number", "\\d") do |pin_number|
+      @card = Card.find_by_card_number(pin_number)
+      if @card
+	FSR::Log.info "*** Success, grabbed #{pin_number} from #{exten}"
+	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', @destination.rate) if @destination.respond_to?(:rate)
+	  uuid_setvar(@session.headers[:unique_id], 'nibble_account', @card.id)
+	  close_connection
+	end
+      else
+	FSR::Log.info "*** Failure, grabbed #{pin_number} from #{exten}"
+	playback(bad_pin_wav)
+	FSR::Log.info "*** Hanging up the call."
+	hangup
       end
     end
   end

Added: freeswitch/trunk/contrib/diegoviola/ruby/callcard/default.xml (0 => 14559)


--- freeswitch/trunk/contrib/diegoviola/ruby/callcard/default.xml	                        (rev 0)
+++ freeswitch/trunk/contrib/diegoviola/ruby/callcard/default.xml	2009-08-19 00:12:48 UTC (rev 14559)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<include>
+  <context name="default">
+
+    <extension name="callcard">
+      <condition field="destination_number" expression="^8084$">
+	<action application="answer"/>
+	<action application="sleep" data="2000"/>
+	<action application="socket" data="127.0.0.1:8084 sync full"/>
+	<!--<action application="speak" data="You have ${duration} minutes to talk."/>-->
+	<action application="transfer" data="${destination_number} XML default"/>
+	<!--<action application="bridge" data="sofia/internal/${destination_number}@0.0.0.0"/>-->
+      </condition>
+    </extension>
+
+  </context>
+</include>