class RouteNGNClient::Record
Public Class Methods
new(attributes = {})
click to toggle source
Calls superclass method
# File lib/routengn_client/models/record.rb, line 12 def initialize(attributes = {}) super end
values_to_hash(headers, values)
click to toggle source
# File lib/routengn_client/models/record.rb, line 183 def self.values_to_hash(headers, values) values.each_with_index {| v,i| headers[i] = [headers[i].to_sym, v] } Hash[headers] end
Public Instance Methods
add_response(r)
click to toggle source
# File lib/routengn_client/models/record.rb, line 131 def add_response(r) return unless r self.attributes.responses ||= [] self.attributes.responses << r self.append_log "Sending response code: #{(r.sip_response.blank? || r.sip_response.status_code.blank?) ? 'Unknown' : r.sip_response.status_code}" self.append_log "#{r.sip_response.data if r.sip_response}" end
add_route(route)
click to toggle source
# File lib/routengn_client/models/record.rb, line 109 def add_route(route) return unless route self.append_log "Added route:" self.append_log route.to_log, :append_timestamp => false self.attributes.routes ||= [] self.attributes.routes << route end
add_route_table(route_table)
click to toggle source
# File lib/routengn_client/models/record.rb, line 118 def add_route_table(route_table) return unless route_table self.append_log "Using route_table:" self.append_log route_table.to_log, :append_timestamp => false self.attributes.route_tables ||= [] self.attributes.route_tables << route_table end
append_log(s, options = {})
click to toggle source
# File lib/routengn_client/models/record.rb, line 46 def append_log(s, options = {}) append_timestamp = options.has_key?(:append_timestamp) ? options[:append_timestamp] : true self.attributes.logs ||= [] if append_timestamp age = self.attributes.request ? self.attributes.request.age.round(5) : nil self.attributes.logs << "#{age}: #{s}" else self.attributes.logs << "#{s}" end end
as_cdr(delimiter = ',')
click to toggle source
# File lib/routengn_client/models/record.rb, line 179 def as_cdr(delimiter = ',') CSV.generate_line self.to_comma, :force_quotes => true, :col_sep => delimiter, :row_sep => nil end
cache_prep!()
click to toggle source
# File lib/routengn_client/models/record.rb, line 168 def cache_prep! attrs = Hashie::Mash.new attrs.call_detail_record = self.call_detail_record_hash attrs.account_id = self.account_id || (self.account.id if self.account) attrs.inbound_end_point_group_id = self.inbound_end_point_group.id if self.inbound_end_point_group attrs.requested_at_float = self.requested_at_float || (self.request.requested_at_float if self.request) attrs.response_code = self.final_response.response_code if self.final_response attrs.logs = self.logs self.attributes = attrs end
call_detail_record()
click to toggle source
# File lib/routengn_client/models/record.rb, line 30 def call_detail_record self.attributes.call_detail_record end
call_detail_record_hash()
click to toggle source
# File lib/routengn_client/models/record.rb, line 34 def call_detail_record_hash self.class.values_to_hash(self.to_comma_headers, self.to_comma) end
create!(attributes = {}, options = {})
click to toggle source
# File lib/routengn_client/models/record.rb, line 16 def create!(attributes = {}, options = {}) options = options.merge({ :account_id => (self.account_id || (self.account.id if self.account)) }) attrs = attributes.merge({ :call_detail_record => (self.call_detail_record || self.call_detail_record_hash), :inbound_end_point_group_id => (self.inbound_end_point_group_id || (self.inbound_end_point_group.id if self.inbound_end_point_group)), :requested_at_float => (self.requested_at_float || (self.request.requested_at_float if self.request)), :response_code => (self.response_code || (self.final_response.response_code if self.final_response)), :logs => self.logs }) self.class.create!(attrs, options) end
destination_code()
click to toggle source
# File lib/routengn_client/models/record.rb, line 156 def destination_code self.attributes.destination_code end
final_response()
click to toggle source
# File lib/routengn_client/models/record.rb, line 140 def final_response self.attributes.responses.blank? ? nil : self.attributes.responses.last end
final_route_table()
click to toggle source
# File lib/routengn_client/models/record.rb, line 127 def final_route_table self.attributes.route_tables.blank? ? nil : self.attributes.route_tables.last end
inbound_rate()
click to toggle source
# File lib/routengn_client/models/record.rb, line 160 def inbound_rate self.attributes.inbound_rate end
origination_code()
click to toggle source
# File lib/routengn_client/models/record.rb, line 152 def origination_code self.attributes.origination_code end
request()
click to toggle source
# File lib/routengn_client/models/record.rb, line 144 def request self.attributes.request end
routes_csvs(delimiter = ';')
click to toggle source
# File lib/routengn_client/models/record.rb, line 38 def routes_csvs(delimiter = ';') (self.routes || []).map { |r| CSV.generate_line(r.to_comma, :force_quotes => true, :col_sep => delimiter, :quote_char => '\'').strip! } end
routes_string(delimiter = '|')
click to toggle source
# File lib/routengn_client/models/record.rb, line 42 def routes_string(delimiter = '|') self.routes_csvs.join(delimiter) end
set_destination_code(code)
click to toggle source
# File lib/routengn_client/models/record.rb, line 94 def set_destination_code(code) return unless code self.append_log "Using destination_code:" self.append_log code.to_log, :append_timestamp => false self.attributes.destination_code = code end
set_inbound_end_point_group(iepg)
click to toggle source
# File lib/routengn_client/models/record.rb, line 69 def set_inbound_end_point_group(iepg) return unless iepg self.append_log "Using inbound_end_point_group:" self.append_log iepg.to_log, :append_timestamp => false self.attributes.inbound_end_point_group = iepg self.attributes.account = iepg.account if iepg end
set_inbound_rate(rate)
click to toggle source
# File lib/routengn_client/models/record.rb, line 78 def set_inbound_rate(rate) return unless rate self.append_log "Using inbound_rate:" self.append_log rate.to_log, :append_timestamp => false self.attributes.inbound_rate = rate end
set_origination_code(code)
click to toggle source
# File lib/routengn_client/models/record.rb, line 86 def set_origination_code(code) return unless code self.append_log "Using origination_code:" self.append_log code.to_log, :append_timestamp => false self.attributes.origination_code = code end
set_rate_type(type)
click to toggle source
# File lib/routengn_client/models/record.rb, line 102 def set_rate_type(type) return unless type self.append_log "Using rate_type: #{type}" self.attributes.rate_type = type end
set_request(r)
click to toggle source
# File lib/routengn_client/models/record.rb, line 59 def set_request(r) return unless r self.attributes.request = r self.requested_at_float = r.requested_at_float self.attributes.sip_request = r.sip_request self.append_log "Processing request: #{(r.sip_request.blank? || r.sip_request.method.blank?) ? 'Unknown' : r.sip_request.method} from #{r.peer_ip.blank? ? 'Unknown' : r.peer_ip}" self.append_log "#{r.sip_request.data if r.sip_request}" end
sip_redirector_version()
click to toggle source
# File lib/routengn_client/models/record.rb, line 164 def sip_redirector_version self.attributes.sip_redirector_version end
sip_request()
click to toggle source
# File lib/routengn_client/models/record.rb, line 148 def sip_request self.attributes.sip_request end