Revision
15075
Author
diegoviola
Date
2009-10-04 01:08:25 -0500 (Sun, 04 Oct 2009)

Log Message

cdr scripts

Added Paths

Diff

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')