Class: OverSIP::SIP::Uri

Inherits:
Object
  • Object
show all
Defined in:
lib/oversip/sip/uri.rb,
ext/sip_parser/sip_parser_ruby.c

Direct Known Subclasses

NameAddr

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(scheme = :sip, user = nil, host = nil, port = nil) ⇒ Uri

Returns a new instance of Uri.



6
7
8
9
10
11
12
13
14
# File 'lib/oversip/sip/uri.rb', line 6

def initialize scheme=:sip, user=nil, host=nil, port=nil
  @scheme = scheme.to_sym
  @user = user
  @host = host
  @host_type = ::OverSIP::Utils.ip_type(host) || :domain  if host
  @port = port

  @uri_modified = true
end

Instance Attribute Details

#headersObject

Returns the value of attribute headers.



4
5
6
# File 'lib/oversip/sip/uri.rb', line 4

def headers
  @headers
end

#hostObject Also known as: domain

Returns the value of attribute host.



4
5
6
# File 'lib/oversip/sip/uri.rb', line 4

def host
  @host
end

#host_typeObject

Returns the value of attribute host_type.



4
5
6
# File 'lib/oversip/sip/uri.rb', line 4

def host_type
  @host_type
end

#ovid_paramObject (readonly)

Returns the value of attribute ovid_param.



4
5
6
# File 'lib/oversip/sip/uri.rb', line 4

def ovid_param
  @ovid_param
end

#paramsObject (readonly)

Returns the value of attribute params.



4
5
6
# File 'lib/oversip/sip/uri.rb', line 4

def params
  @params
end

#phone_context_paramObject

Returns the value of attribute phone_context_param.



4
5
6
# File 'lib/oversip/sip/uri.rb', line 4

def phone_context_param
  @phone_context_param
end

#portObject

Returns the value of attribute port.



4
5
6
# File 'lib/oversip/sip/uri.rb', line 4

def port
  @port
end

#schemeObject

Returns the value of attribute scheme.



4
5
6
# File 'lib/oversip/sip/uri.rb', line 4

def scheme
  @scheme
end

#transport_paramObject

Returns the value of attribute transport_param.



4
5
6
# File 'lib/oversip/sip/uri.rb', line 4

def transport_param
  @transport_param
end

#userObject Also known as: number

Returns the value of attribute user.



4
5
6
# File 'lib/oversip/sip/uri.rb', line 4

def user
  @user
end

Instance Method Details

#aorObject

Returns a String with the AoR of the URI:

  • SIP URI: sip:user@domain.

  • TEL URI: tel:number

  • Others: nil



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
# File 'lib/oversip/sip/uri.rb', line 162

def aor
  case @scheme
    when :sip, :sips
      aor = "sip:"
      ( aor << ::EscapeUtils.escape_uri(@user) << "@" )  if @user
      aor << @host

    when :tel
      aor = "tel:"
      aor << @user

    end

  aor
end

#del_param(k) ⇒ Object



77
78
79
80
81
82
83
84
85
# File 'lib/oversip/sip/uri.rb', line 77

def del_param k
  return nil  if unknown_scheme?
  return false  unless @params
  if @params.include?(k=k.downcase)
    @uri_modified = true
    return @params.delete(k)
  end
  false
end

#get_param(k) ⇒ Object



66
67
68
# File 'lib/oversip/sip/uri.rb', line 66

def get_param k
  params[k.to_s.downcase]
end

#lr_param?Boolean

Returns:

  • (Boolean)


109
110
111
# File 'lib/oversip/sip/uri.rb', line 109

def lr_param?
  @lr_param ? true : false
end

#modified?Boolean

Returns:

  • (Boolean)


178
179
180
# File 'lib/oversip/sip/uri.rb', line 178

def modified?
  @uri_modified
end

#ob_param?Boolean

Returns:

  • (Boolean)


113
114
115
# File 'lib/oversip/sip/uri.rb', line 113

def ob_param?
  @ob_param ? true : false
end

#set_param(k, v) ⇒ Object



70
71
72
73
74
75
# File 'lib/oversip/sip/uri.rb', line 70

def set_param k, v
  return nil  if unknown_scheme?
  @params ||= {}
  @params[k.downcase] = v
  @uri_modified = true
end

#sip?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/oversip/sip/uri.rb', line 16

def sip?
  @scheme == :sip or @scheme == :sips
end

#tel?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/oversip/sip/uri.rb', line 20

def tel?
  @scheme == :tel
end

#unknown_scheme?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/oversip/sip/uri.rb', line 30

def unknown_scheme?
  not @scheme.is_a? Symbol
end

#uriObject Also known as: to_s, inspect



123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# File 'lib/oversip/sip/uri.rb', line 123

def uri
  return @uri  unless @uri_modified

  case @scheme
    when :sip, :sips
      @uri = @scheme.to_s << ":"
      ( @uri << ::EscapeUtils.escape_uri(@user) << "@" )  if @user
      @uri << @host
      ( @uri << ":" << @port.to_s )  if @port

      @params.each do |k,v|
        @uri << ";" << k
        ( @uri << "=" << v.to_s )  if v
      end  if @params

      @uri << @headers  if @headers

    when :tel
      @uri = "tel:"
      @uri << @user

      @params.each do |k,v|
        @uri << ";" << k
        ( @uri << "=" << v.to_s )  if v
      end  if @params

    end

  @uri_modified = false
  @uri
end