oversip 1.3.3 → 1.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/oversip +5 -5
- data/ext/utils/ip_utils.h +2 -1
- data/lib/oversip/sip/constants.rb +2 -2
- data/lib/oversip/sip/core.rb +0 -2
- data/lib/oversip/sip/name_addr.rb +1 -0
- data/lib/oversip/sip/request.rb +1 -1
- data/lib/oversip/sip/uac_request.rb +2 -1
- data/lib/oversip/version.rb +1 -1
- data/lib/oversip/websocket/constants.rb +2 -2
- data/lib/oversip/websocket/http_request.rb +1 -1
- data/lib/oversip.rb +2 -1
- data/test/test_name_addr.rb +27 -0
- metadata +22 -4
data/bin/oversip
CHANGED
@@ -82,10 +82,10 @@ module OverSIP
|
|
82
82
|
::POSIX_MQ.unlink value
|
83
83
|
rescue ::Errno::ENOENT
|
84
84
|
rescue ::Errno::EACCES => e
|
85
|
-
fatal "cannot remove '#{value}' posix message queue due file permissions"
|
85
|
+
::OverSIP::Launcher.fatal "cannot remove '#{value}' posix message queue due file permissions"
|
86
86
|
exit 1
|
87
87
|
rescue ::Errno::EINVAL => e
|
88
|
-
fatal "cannot remove '#{value}' posix message queue, invalid name"
|
88
|
+
::OverSIP::Launcher.fatal "cannot remove '#{value}' posix message queue, invalid name"
|
89
89
|
exit 1
|
90
90
|
ensure
|
91
91
|
exit
|
@@ -143,7 +143,7 @@ module OverSIP
|
|
143
143
|
|
144
144
|
# PID file is required.
|
145
145
|
unless options[:pid_file]
|
146
|
-
fatal "PID file is required (use -P or --pid option)"
|
146
|
+
::OverSIP::Launcher.fatal "PID file is required (use -P or --pid option)"
|
147
147
|
end
|
148
148
|
|
149
149
|
# Ignore user/group if the launcher is not being running as root.
|
@@ -157,14 +157,14 @@ module OverSIP
|
|
157
157
|
begin
|
158
158
|
::Etc.getpwnam options[:user]
|
159
159
|
rescue ::ArgumentError
|
160
|
-
fatal "user '#{options[:user]}' does not exist in the system"
|
160
|
+
::OverSIP::Launcher.fatal "user '#{options[:user]}' does not exist in the system"
|
161
161
|
end
|
162
162
|
end
|
163
163
|
if options[:group]
|
164
164
|
begin
|
165
165
|
::Etc.getgrnam options[:group]
|
166
166
|
rescue ::ArgumentError
|
167
|
-
fatal "group '#{options[:group]}' does not exist in the system"
|
167
|
+
::OverSIP::Launcher.fatal "group '#{options[:group]}' does not exist in the system"
|
168
168
|
end
|
169
169
|
end
|
170
170
|
end
|
data/ext/utils/ip_utils.h
CHANGED
@@ -4,7 +4,7 @@ module OverSIP::SIP
|
|
4
4
|
DOUBLE_CRLF = "\r\n\r\n"
|
5
5
|
|
6
6
|
# DOC: http://www.iana.org/assignments/sip-parameters
|
7
|
-
|
7
|
+
REASON_PHRASE = {
|
8
8
|
100 => "Trying",
|
9
9
|
180 => "Ringing",
|
10
10
|
181 => "Call Is Being Forwarded",
|
@@ -78,7 +78,7 @@ module OverSIP::SIP
|
|
78
78
|
606 => "Not Acceptable"
|
79
79
|
}
|
80
80
|
|
81
|
-
|
81
|
+
REASON_PHRASE_NOT_SET = "Reason Phrase Not Set"
|
82
82
|
|
83
83
|
HDR_SERVER = "Server: #{::OverSIP::PROGRAM_NAME}/#{::OverSIP::VERSION}".freeze
|
84
84
|
HDR_USER_AGENT = "User-Agent: #{::OverSIP::PROGRAM_NAME}/#{::OverSIP::VERSION}".freeze
|
data/lib/oversip/sip/core.rb
CHANGED
@@ -139,10 +139,8 @@ module OverSIP::SIP
|
|
139
139
|
return false if @destination_myself == false
|
140
140
|
|
141
141
|
if local_uri? @ruri
|
142
|
-
log_system_debug "RURI destination is myself" if $oversip_debug
|
143
142
|
return @destination_myself = true
|
144
143
|
else
|
145
|
-
log_system_debug "RURI destination is not myself" if $oversip_debug
|
146
144
|
return @destination_myself = false
|
147
145
|
end
|
148
146
|
end
|
data/lib/oversip/sip/request.rb
CHANGED
@@ -44,7 +44,7 @@ module OverSIP::SIP
|
|
44
44
|
end
|
45
45
|
return false unless @server_transaction.receive_response(status_code) if @server_transaction
|
46
46
|
|
47
|
-
reason_phrase ||=
|
47
|
+
reason_phrase ||= REASON_PHRASE[status_code] || REASON_PHRASE_NOT_SET
|
48
48
|
|
49
49
|
if status_code > 100
|
50
50
|
@internal_to_tag ||= @to_tag || ( @server_transaction ? ::SecureRandom.hex(6) : ::OverSIP::SIP::Tags.totag_for_sl_reply )
|
@@ -6,7 +6,7 @@ module OverSIP::SIP
|
|
6
6
|
DEFAULT_FROM = "\"OverSIP #{::OverSIP::VERSION}\" <sip:uac@oversip.net>"
|
7
7
|
|
8
8
|
attr_reader :sip_method, :ruri, :from, :from_tag, :to, :body, :call_id, :cseq
|
9
|
-
attr_reader :antiloop_id
|
9
|
+
attr_reader :antiloop_id, :via_branch_id
|
10
10
|
attr_reader :routes # Always nil (needed for OverSIP::SIP::Tags.create_antiloop_id().
|
11
11
|
attr_accessor :tvars # Transaction variables (a hash).
|
12
12
|
|
@@ -32,6 +32,7 @@ module OverSIP::SIP
|
|
32
32
|
@body = body
|
33
33
|
|
34
34
|
@antiloop_id = ::OverSIP::SIP::Tags.create_antiloop_id(self)
|
35
|
+
@via_branch_id = ::SecureRandom.hex(4)
|
35
36
|
end
|
36
37
|
|
37
38
|
|
data/lib/oversip/version.rb
CHANGED
@@ -2,7 +2,7 @@ module OverSIP::WebSocket
|
|
2
2
|
|
3
3
|
CRLF = "\r\n"
|
4
4
|
|
5
|
-
|
5
|
+
REASON_PHRASE = {
|
6
6
|
100 => "Continue",
|
7
7
|
101 => "Switching Protocols",
|
8
8
|
200 => "OK",
|
@@ -46,7 +46,7 @@ module OverSIP::WebSocket
|
|
46
46
|
505 => "HTTP Version Not Supported"
|
47
47
|
}
|
48
48
|
|
49
|
-
|
49
|
+
REASON_PHRASE_NOT_SET = "Reason Phrase Not Set"
|
50
50
|
|
51
51
|
HDR_SERVER = "Server: #{::OverSIP::PROGRAM_NAME}/#{::OverSIP::VERSION}".freeze
|
52
52
|
|
@@ -34,7 +34,7 @@ module OverSIP::WebSocket
|
|
34
34
|
|
35
35
|
|
36
36
|
def reply status_code, reason_phrase=nil, extra_headers={}
|
37
|
-
reason_phrase ||=
|
37
|
+
reason_phrase ||= REASON_PHRASE[status_code] || REASON_PHRASE_NOT_SET
|
38
38
|
extra_headers ||= {}
|
39
39
|
|
40
40
|
response = "#{@http_version} #{status_code} #{reason_phrase}\r\n"
|
data/lib/oversip.rb
CHANGED
@@ -11,11 +11,12 @@ require "tempfile"
|
|
11
11
|
# Ruby external gems.
|
12
12
|
|
13
13
|
require "term/ansicolor"
|
14
|
+
gem "posix_mq", ">= 2.0.0"
|
14
15
|
require "posix_mq"
|
15
16
|
require "syslog"
|
16
17
|
# Load EventMachine-LE here to avoid som EM based gem in server.rb to be loaded first
|
17
18
|
# (and load eventmachine instead of eventmachine-le).
|
18
|
-
gem "eventmachine-le", ">= 1.1.
|
19
|
+
gem "eventmachine-le", ">= 1.1.4"
|
19
20
|
require "eventmachine-le"
|
20
21
|
|
21
22
|
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require "oversip_test_helper"
|
4
|
+
|
5
|
+
|
6
|
+
class TestNameAddr < OverSIPTest
|
7
|
+
|
8
|
+
def test_name_addr
|
9
|
+
full_name_addr = '"Iñaki Baz Castillo" <sips:i%C3%B1aki@aliax.net:5060;transport=tcp;foo=123;baz?X-Header-1=qwe&X-Header-2=asd>'
|
10
|
+
aor = "sip:i%C3%B1aki@aliax.net"
|
11
|
+
|
12
|
+
name_addr = ::OverSIP::SIP::NameAddr.new "Iñaki Baz Castillo", :sips, "iñaki", "aliax.net", 5060
|
13
|
+
name_addr.transport_param = :tcp
|
14
|
+
name_addr.set_param "FOO", "123"
|
15
|
+
name_addr.set_param "baz", nil
|
16
|
+
name_addr.headers = "?X-Header-1=qwe&X-Header-2=asd"
|
17
|
+
|
18
|
+
assert_true name_addr.sip?
|
19
|
+
assert_false name_addr.tel?
|
20
|
+
assert_false name_addr.unknown_scheme?
|
21
|
+
assert_equal "iñaki", name_addr.user
|
22
|
+
assert_equal "123", name_addr.get_param("Foo")
|
23
|
+
assert_equal aor, name_addr.aor
|
24
|
+
assert_equal full_name_addr, name_addr.to_s
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oversip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: eventmachine-le
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.1.
|
21
|
+
version: 1.1.4
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.1.
|
29
|
+
version: 1.1.4
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: iobuffer
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -43,6 +43,22 @@ dependencies:
|
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: 1.1.2
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: posix_mq
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 2.0.0
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.0.0
|
46
62
|
- !ruby/object:Gem::Dependency
|
47
63
|
name: em-posixmq
|
48
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -318,6 +334,7 @@ files:
|
|
318
334
|
- test/oversip_test_helper.rb
|
319
335
|
- test/test_sip_parser.rb
|
320
336
|
- test/test_http_parser.rb
|
337
|
+
- test/test_name_addr.rb
|
321
338
|
- test/test_uri.rb
|
322
339
|
- bin/oversip
|
323
340
|
homepage: http://www.oversip.net
|
@@ -348,5 +365,6 @@ test_files:
|
|
348
365
|
- test/oversip_test_helper.rb
|
349
366
|
- test/test_sip_parser.rb
|
350
367
|
- test/test_http_parser.rb
|
368
|
+
- test/test_name_addr.rb
|
351
369
|
- test/test_uri.rb
|
352
370
|
has_rdoc: false
|