提交 a5ef2801 authored 作者: Diego Viola's avatar Diego Viola

new stuff

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk/contrib@14867 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 85bbe7aa
# About
A FreeSWITCH Calling Card Application
# Requirements
* ruby (>= 1.9)
* freeswitch (w/ mod_nibblebill)
* freeswitcher (>= 0.4.2)
* sequel
# Installation
Checking for and Installing Ruby
$ ruby --version
If you see output similar to this, you are good to go:
ruby 1.9.1p243 (2009-07-16 revision 24175) [i686-linux]
Install FreeSWITCH (w/ mod_nibblebill)
http://wiki.freeswitch.org/wiki/Installation_Guide
http://wiki.freeswitch.org/wiki/Mod_nibblebill#Installation_and_configuration
Install FreeSWITCHeR
$ gem install freeswitcher
Install Sequel
$ gem install sequel
Create the database schema with:
$ ruby create_table.rb
Load the rates on the database:
$ ruby load_rates.rb
Start the server/daemon with:
$ ruby server.rb
Configure your dialplan and point it to the application/server.
<extension name="freeswitch-card">
<condition field="destination_number" expression="^8084$">
<action application="socket" data="127.0.0.1:8084 sync full"/>
</condition>
</extension>
# Usage
To add a card simply fill the cards table with some data.
#!/usr/bin/env ruby
require 'rubygems'
require 'database.rb'
DB.create_table :cards do
primary_key :id
String :card_number
String :prefix
String :balance
end
DB.create_table :rates do
primary_key :id
String :destination
String :prefix
String :first_increment
String :second_increment
Float :rate
end
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
require 'sequel' require 'sequel'
DB = Sequel.connect('mysql://root@localhost/callcard_development') DB = Sequel.connect('mysql://root@localhost/freeswitch-card')
#!/usr/bin/env ruby
require 'rubygems'
require 'database.rb'
DB.drop_table :cards
DB.drop_table :rates
DB.drop_table :cdr
#!/usr/bin/ruby #!/usr/bin/env ruby
require 'rubygems' require 'rubygems'
require 'csv' require 'csv'
require 'sequel' require 'database.rb'
DB = Sequel.connect('mysql://root@localhost/callcard')
CSV.foreach('outbound_rates.csv') do |row| CSV.foreach('outbound_rates.csv') do |row|
DB[:rates].insert(:destination => row[0], :prefix => row[1], :first_increment => row[2], :second_increment => row[3], :rate => row[4]) DB[:rates].insert(:destination => row[0], :prefix => row[1], :first_increment => row[2], :second_increment => row[3], :rate => row[4])
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论