class Twilreapi::ActiveCallRouter::PinCambodia::CallRouter

Constants

DEFAULT_TRUNK_PREFIX

Attributes

caller_id[RW]
gateway[RW]

Private Class Methods

configuration(key) click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 111
def self.configuration(key)
  ENV["TWILREAPI_ACTIVE_CALL_ROUTER_PIN_CAMBODIA_#{key.to_s.upcase}"]
end

Public Instance Methods

normalize_from() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 8
def normalize_from
  if source && trunk_prefix_replacement
    source.sub(/\A((\+)?#{trunk_prefix})/, "\\2#{trunk_prefix_replacement}")
  else
    source
  end
end
routing_instructions() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 16
def routing_instructions
  @routing_instructions ||= generate_routing_instructions
end

Private Instance Methods

default_dial_string_format() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 131
def default_dial_string_format
  self.class.configuration("default_dial_string_format")
end
default_gateway() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 87
def default_gateway
  gateways["default"]
end
default_to_national_dial_string_format?() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 135
def default_to_national_dial_string_format?
  default_dial_string_format == "NATIONAL"
end
destination() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 34
def destination
  phone_call.to
end
destination_torasup_number() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 103
def destination_torasup_number
  @destination_torasup_number ||= Torasup::PhoneNumber.new(normalized_destination)
end
ews_caller_id() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 127
def ews_caller_id
  self.class.configuration("ews_caller_id")
end
ews_source_number() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 123
def ews_source_number
  self.class.configuration("ews_source_number")
end
from_host() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 26
def from_host
  phone_call.variables["sip_from_host"]
end
gateways() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 95
def gateways
  operator.gateways || {}
end
generate_routing_instructions() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 38
def generate_routing_instructions
  set_routing_variables
  gateway_configuration = gateway || {}
  gateway_name = gateway_configuration["name"]
  gateway_host = gateway_configuration["host"]
  gateway_caller_id = gateway_configuration["caller_id"]
  address = normalized_destination

  address = Phony.format(
    address,
    :format => :national,
    :spaces => ""
  ) if gateway_configuration["prefix"] == false || default_to_national_dial_string_format?

  if gateway_configuration["trunk"] == false
    address = address.sub(/^0/, "")
  end

  if gateway_name
    dial_string_path = "gateway/#{gateway_name}/#{address}"
  elsif gateway_host
    dial_string_path = "external/#{address}@#{gateway_host}"
  end

  routing_instructions = {
    "source" => gateway_caller_id || caller_id || source,
    "destination" => normalized_destination
  }

  if dial_string_path
    routing_instructions.merge!("dial_string_path" => dial_string_path)
  else
    routing_instructions.merge!("disable_originate" => "1")
  end

  routing_instructions
end
mhealth_caller_id() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 119
def mhealth_caller_id
  self.class.configuration("mhealth_caller_id")
end
mhealth_gateway() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 91
def mhealth_gateway
  gateways["mhealth"]
end
mhealth_source_number() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 115
def mhealth_source_number
  self.class.configuration("mhealth_source_number")
end
normalized_destination() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 107
def normalized_destination
  @normalized_destination ||= Phony.normalize(destination)
end
operator() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 99
def operator
  destination_torasup_number.operator
end
phone_call() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 22
def phone_call
  options[:phone_call]
end
set_routing_variables() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 76
def set_routing_variables
  case source
  when mhealth_source_number
    self.caller_id = mhealth_caller_id
    self.gateway = mhealth_gateway
  when ews_source_number
    self.caller_id = ews_caller_id
  end
  self.gateway ||= default_gateway
end
source() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 30
def source
  phone_call.from
end
trunk_prefix() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 139
def trunk_prefix
  self.class.configuration("trunk_prefix") || DEFAULT_TRUNK_PREFIX
end
trunk_prefix_replacement() click to toggle source
# File lib/twilreapi/active_call_router/pin_cambodia/call_router.rb, line 143
def trunk_prefix_replacement
  self.class.configuration("trunk_prefix_replacement")
end