class RouteNGNClient::Contact

Public Instance Methods

aor() click to toggle source
# File lib/routengn_client/models/contact.rb, line 24
def aor
  @attributes.aor
end
build_aor(sip_request, inbound_end_point_group, options = {}) click to toggle source
# File lib/routengn_client/models/contact.rb, line 28
def build_aor(sip_request, inbound_end_point_group, options = {})
  options = options.with_indifferent_access

  uri = self.build_uri(sip_request)

  template = Template.new(inbound_end_point_group.attributes.contact_template)
  template.sub!(self, uri, :inbound_end_point_host => options[:inbound_end_point_host], :inbound_end_point_port => options[:inbound_end_point_port])

  @attributes.aor = template.contact_template
end
build_uri(sip_request, options = {}) click to toggle source
# File lib/routengn_client/models/contact.rb, line 39
def build_uri(sip_request, options = {})
  options = options.with_indifferent_access

  request_uri = sip_request.request_uri
  sip_uri = request_uri.clone
  oepg = self.outbound_end_point_group
  oepg_parts = oepg ? oepg.build_uri_parts : {}
  oep_parts = self.end_point ? self.end_point.build_uri_parts : {}

  dialcode = oepg && oepg.attributes.dialcode_expression ? sip_uri.user.dialcode(oepg.dialcode_regexp) : sip_uri.user.user
  dialcode = oepg.attributes.dialcode_template.gsub("${dialcode_match}", dialcode) if dialcode && oepg && oepg.attributes.dialcode_template

  blacklisted_user_params = oepg.attributes.uri_user_params_blacklist || [] if oepg
  blacklisted_params = oepg.attributes.uri_params_blacklist || [] if oepg
  merge_user_params, merge_params = {}, {}

  merge_user_params['rn'] = sip_request.rn if sip_request.rn && !sip_request.request_uri.params.keys.include?('rn') && !sip_request.request_uri.params.keys.include?('rn')
  merge_user_params['npdi'] = sip_request.npdi if sip_request.npdi && !sip_request.request_uri.params.keys.include?('npdi') && !sip_request.request_uri.params.keys.include?('npdi')
  merge_user_params.merge! oepg_parts[:uri_user_params]
  merge_params['rn'] = sip_request.rn if sip_request.rn && !merge_user_params.has_key?('rn')
  merge_params['npdi'] = sip_request.npdi if sip_request.npdi && !merge_user_params.has_key?('npdi')
  merge_params.merge! oepg_parts[:uri_params]

  sip_uri.regenerate(:user => {
                               :user => dialcode,
                               :merge_params => merge_user_params,
                               :blacklisted_params => blacklisted_user_params
                              },
                     :host => oep_parts[:host],
                     :port => oep_parts[:port],
                     :merge_params => merge_params,
                     :blacklisted_params => blacklisted_params)
end
end_point() click to toggle source
# File lib/routengn_client/models/contact.rb, line 8
def end_point
  @attributes.end_point
end
inbound_rate() click to toggle source
# File lib/routengn_client/models/contact.rb, line 12
def inbound_rate
  self.route ? self.route.inbound_rate : nil
end
outbound_end_point_group() click to toggle source
# File lib/routengn_client/models/contact.rb, line 20
def outbound_end_point_group
  self.route.outbound_end_point_group if self.route
end
outbound_rate() click to toggle source
# File lib/routengn_client/models/contact.rb, line 16
def outbound_rate
  self.route ? self.route.outbound_rate : nil
end
route() click to toggle source
# File lib/routengn_client/models/contact.rb, line 4
def route
  @attributes.route
end