Added: freeswitch/trunk/contrib/diegoviola/ruby/cdr/cdr.rb (0 => 15075)
--- freeswitch/trunk/contrib/diegoviola/ruby/cdr/cdr.rb (rev 0)
+++ freeswitch/trunk/contrib/diegoviola/ruby/cdr/cdr.rb 2009-10-04 06:08:25 UTC (rev 15075)
@@ -0,0 +1,29 @@
+#!/usr/bin/env ruby
+
+require 'rubygems'
+require 'fsr'
+require 'fsr/listener/inbound'
+require 'database.rb'
+
+def custom_channel_hangup_handler(event)
+ DB[:cdr].insert(
+ :caller_caller_id_name => event.content[:caller_caller_id_name],
+ :caller_caller_id_number => event.content[:caller_caller_id_number],
+ :caller_destination_number => event.content[:caller_destination_number],
+ :caller_context => event.content[:caller_context],
+ :variable_start_stamp => event.content[:variable_start_stamp],
+ :variable_answer_stamp => event.content[:variable_answer_stamp],
+ :variable_end_stamp => event.content[:variable_end_stamp],
+ :variable_duration => event.content[:variable_duration],
+ :variable_billsec => event.content[:variable_billsec],
+ :variable_hangup_cause => event.content[:variable_hangup_cause],
+ :unique_id => event.content[:unique_id],
+ :core_uuid => event.content[:core_uuid],
+ :variable_accountcode => event.content[:variable_accountcode],
+ :channel_read_codec_name => event.content[:channel_read_codec_name],
+ :variable_write_codec => event.content[:variable_write_codec])
+end
+
+FSL::Inbound.add_event_hook(:CHANNEL_HANGUP_COMPLETE) {|event| custom_channel_hangup_handler(event) }
+
+FSR.start_ies!(FSL::Inbound, :host => "localhost", :port => 8021)
Added: freeswitch/trunk/contrib/diegoviola/ruby/cdr/create_table.rb (0 => 15075)
--- freeswitch/trunk/contrib/diegoviola/ruby/cdr/create_table.rb (rev 0)
+++ freeswitch/trunk/contrib/diegoviola/ruby/cdr/create_table.rb 2009-10-04 06:08:25 UTC (rev 15075)
@@ -0,0 +1,23 @@
+#!/usr/bin/env ruby
+
+require 'rubygems'
+require 'database.rb'
+
+DB.create_table :cdr do
+ primary_key :id
+ String :caller_caller_id_name
+ String :caller_caller_id_number
+ String :caller_destination_number
+ String :caller_context
+ String :variable_start_stamp
+ String :variable_answer_stamp
+ String :variable_end_stamp
+ String :variable_duration
+ String :variable_billsec
+ String :variable_hangup_cause
+ String :unique_id
+ String :core_uuid
+ String :variable_accountcode
+ String :channel_read_codec_name
+ String :variable_write_codec
+end
Added: freeswitch/trunk/contrib/diegoviola/ruby/cdr/database.rb (0 => 15075)
--- freeswitch/trunk/contrib/diegoviola/ruby/cdr/database.rb (rev 0)
+++ freeswitch/trunk/contrib/diegoviola/ruby/cdr/database.rb 2009-10-04 06:08:25 UTC (rev 15075)
@@ -0,0 +1,3 @@
+require 'sequel'
+
+DB = Sequel.connect('mysql://root@localhost/freeswitch')