Class: OverSIP::SIP::Uri
- Inherits:
-
Object
- Object
- OverSIP::SIP::Uri
- Defined in:
- lib/oversip/sip/uri.rb,
ext/sip_parser/sip_parser_ruby.c
Direct Known Subclasses
Instance Attribute Summary collapse
-
#headers ⇒ Object
Returns the value of attribute headers.
-
#host ⇒ Object
(also: #domain)
Returns the value of attribute host.
-
#host_type ⇒ Object
Returns the value of attribute host_type.
-
#ovid_param ⇒ Object
readonly
Returns the value of attribute ovid_param.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
-
#phone_context_param ⇒ Object
Returns the value of attribute phone_context_param.
-
#port ⇒ Object
Returns the value of attribute port.
-
#scheme ⇒ Object
Returns the value of attribute scheme.
-
#transport_param ⇒ Object
Returns the value of attribute transport_param.
-
#user ⇒ Object
(also: #number)
Returns the value of attribute user.
Instance Method Summary collapse
-
#aor ⇒ Object
Returns a String with the AoR of the URI: - SIP URI: sip:user@domain.
- #del_param(k) ⇒ Object
- #get_param(k) ⇒ Object
-
#initialize(scheme = :sip, user = nil, host = nil, port = nil) ⇒ Uri
constructor
A new instance of Uri.
- #lr_param? ⇒ Boolean
- #modified? ⇒ Boolean
- #ob_param? ⇒ Boolean
- #set_param(k, v) ⇒ Object
- #sip? ⇒ Boolean
- #tel? ⇒ Boolean
- #unknown_scheme? ⇒ Boolean
- #uri ⇒ Object (also: #to_s, #inspect)
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
#headers ⇒ Object
Returns the value of attribute headers.
4 5 6 |
# File 'lib/oversip/sip/uri.rb', line 4 def headers @headers end |
#host ⇒ Object 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_type ⇒ Object
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_param ⇒ Object (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 |
#params ⇒ Object (readonly)
Returns the value of attribute params.
4 5 6 |
# File 'lib/oversip/sip/uri.rb', line 4 def params @params end |
#phone_context_param ⇒ Object
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 |
#port ⇒ Object
Returns the value of attribute port.
4 5 6 |
# File 'lib/oversip/sip/uri.rb', line 4 def port @port end |
#scheme ⇒ Object
Returns the value of attribute scheme.
4 5 6 |
# File 'lib/oversip/sip/uri.rb', line 4 def scheme @scheme end |
#transport_param ⇒ Object
Returns the value of attribute transport_param.
4 5 6 |
# File 'lib/oversip/sip/uri.rb', line 4 def transport_param @transport_param end |
#user ⇒ Object 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
#aor ⇒ Object
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
109 110 111 |
# File 'lib/oversip/sip/uri.rb', line 109 def lr_param? @lr_param ? true : false end |
#modified? ⇒ Boolean
178 179 180 |
# File 'lib/oversip/sip/uri.rb', line 178 def modified? @uri_modified end |
#ob_param? ⇒ 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
16 17 18 |
# File 'lib/oversip/sip/uri.rb', line 16 def sip? @scheme == :sip or @scheme == :sips end |
#tel? ⇒ Boolean
20 21 22 |
# File 'lib/oversip/sip/uri.rb', line 20 def tel? @scheme == :tel end |
#unknown_scheme? ⇒ Boolean
30 31 32 |
# File 'lib/oversip/sip/uri.rb', line 30 def unknown_scheme? not @scheme.is_a? Symbol end |
#uri ⇒ Object 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 |