Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'fsr'
- require 'fsr/listener/outbound'
- FSR.load_all_commands
- class CallCard < FSR::Listener::Outbound
- def session_initiated
- exten = @session.headers[:caller_caller_id_number]
- FSR::Log.info "*** Answering incoming call from #{exten}"
- answer do
- play_and_get_digits("/usr/local/freeswitch/sounds/en/us/callie/conference/8000/conf-pin.wav","/usr/local/freeswitch/sounds/en/us/callie/conference/8000/conf-bad-pin.wav",2,10,3,60000,["#"],"pin_number","\\d") do
- update_session do
- pin_number = @session.headers[:variable_pin_number]
- customer = Customer.find_by_card_number(@session.headers[:variable_pin_number])
- if customer then
- FSR::Log.info "*** Success, grabbed #{@session.headers[:variable_pin_number].to_s.strip} from #{exten}"
- play_and_get_digits("tone_stream://%(10000,0,350,440)","/usr/local/freeswitch/sounds/en/us/callie/conference/8000/conf-bad-pin.wav",2,20,3,7000,["#"],"destination_number","\\d") do
- update_session do
- FSR::Log.info "*** Success, grabbed #{@session.headers[:variable_destination_number].to_s.strip} from #{exten}"
- FSR::Log.info "*** Billing."
- send_data("api uuid_setvar #{@session.headers[:unique_id]} nibble_rate #{customer.rate}\n\n")
- send_data("api uuid_setvar #{@session.headers[:unique_id]} nibble_account #{customer.id}\n\n")
- FSR::Log.info "*** Bridging."
- transfer("#{@session.headers[:variable_destination_number]}", "XML", "default") { close_connection }
- #bridge("sofia/internal/#{@session.headers[:variable_destination_number].to_s.strip}@63.211.239.19")
- end
- end
- else
- FSR::Log.info "*** Failure, grabbed #{@session.headers[:variable_pin_number].to_s.strip} from #{exten}"
- FSR::Log.info "*** Hanging up the call."
- hangup
- end
- end
- end
- end
- end
- end
- FSR.start_oes! CallCard, :port => 8084, :host => "127.0.0.1"
Add Comment
Please, Sign In to add comment