opensips-mi 0.0.9 → 0.0.10
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +3 -1
- data/lib/opensips/mi/transport/datagram.rb +14 -2
- data/lib/opensips/mi/version.rb +1 -1
- data/opensips-mi.gemspec +5 -5
- data/spec/transport_spec.rb +18 -1
- metadata +15 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 135298241a7da04c8011bdc51fd903c62b04dbfb05de49cce7610544fee9f274
|
4
|
+
data.tar.gz: 25a7bede110b7b35b121baddb04c2da6588d6fb8de3d9914cc84f6fd79041ef2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 273474a444d49d471180eb7051cd57dc34e1c8c21146429cb649fab1134c5b4c6f604c0762a3a97005c4f340c7c4d379e95a0e89935d7511a1f5c1654c7edbc6
|
7
|
+
data.tar.gz: 7aca0cdf36610f3f4db77864d215ec9b214acaebfcac25345e2f8042997614f62e44f47e8914f06717f0d1cb9186e62df391524a2ae5bcef7246f7c3adb278c4
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -73,12 +73,14 @@ opensips = Opensips::MI.connect :fifo,
|
|
73
73
|
require 'opensips/mi'
|
74
74
|
opensips = Opensips::MI.connect :datagram,
|
75
75
|
:host => "sipproxy.com",
|
76
|
-
:port => 8809
|
76
|
+
:port => 8809,
|
77
|
+
:timeout => 5
|
77
78
|
```
|
78
79
|
**Parameters hash:**
|
79
80
|
|
80
81
|
* host: Hostname or IP address of OpenSIPs server
|
81
82
|
* port: Datagram port. See mi_datagram module configuration parameter: `modparam("mi_datagram", "socket_name", "udp:192.168.2.133:8080")`
|
83
|
+
* timeout: Timeout in seconds to wait send/recv commands. Optional. Default 3 seconds.
|
82
84
|
|
83
85
|
### XMLRPC
|
84
86
|
```ruby
|
@@ -1,8 +1,11 @@
|
|
1
|
+
require 'timeout'
|
2
|
+
|
1
3
|
module Opensips
|
2
4
|
module MI
|
3
5
|
module Transport
|
4
6
|
class Datagram < Opensips::MI::Command
|
5
7
|
RECVMAXLEN = 2**16 - 1
|
8
|
+
TIMEOUT = 3
|
6
9
|
|
7
10
|
class << self
|
8
11
|
def init(params)
|
@@ -14,6 +17,7 @@ module Opensips
|
|
14
17
|
host_valid? params
|
15
18
|
@sock = UDPSocket.new
|
16
19
|
@sock.connect params[:host], params[:port]
|
20
|
+
@timeout = params[:timeout].to_i
|
17
21
|
end
|
18
22
|
|
19
23
|
def command(cmd, params = [])
|
@@ -21,12 +25,20 @@ module Opensips
|
|
21
25
|
params.each do |c|
|
22
26
|
request << "#{c}\n"
|
23
27
|
end
|
24
|
-
|
28
|
+
Timeout::timeout(tout, nil, "Timeout send request to datagram MI") {
|
29
|
+
@sock.send request, 0
|
30
|
+
}
|
25
31
|
# will raise Errno::ECONNREFUSED if failed to connect
|
26
|
-
|
32
|
+
Timeout::timeout(tout,nil,"Timeout receive respond from datagram MI") {
|
33
|
+
response, = @sock.recvfrom RECVMAXLEN
|
34
|
+
}
|
27
35
|
Opensips::MI::Response.new response.split(?\n)
|
28
36
|
end
|
29
37
|
|
38
|
+
def tout
|
39
|
+
@timeout > 0 ? @timeout : TIMEOUT
|
40
|
+
end
|
41
|
+
|
30
42
|
end
|
31
43
|
end
|
32
44
|
end
|
data/lib/opensips/mi/version.rb
CHANGED
data/opensips-mi.gemspec
CHANGED
@@ -6,8 +6,9 @@ require 'opensips/mi/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "opensips-mi"
|
8
8
|
spec.version = Opensips::MI::VERSION
|
9
|
+
spec.licenses = ['MIT']
|
9
10
|
spec.authors = ["Stas Kobzar"]
|
10
|
-
spec.email = ["
|
11
|
+
spec.email = ["staskobzar@gmail.com"]
|
11
12
|
spec.description = %q{Ruby module for interacting with OpenSIPs management interface}
|
12
13
|
spec.summary = %q{OpenSIPs management interface}
|
13
14
|
spec.homepage = "http://github.com/staskobzar/opensips-mi"
|
@@ -18,8 +19,7 @@ Gem::Specification.new do |spec|
|
|
18
19
|
|
19
20
|
spec.add_dependency "xmlrpc", "~> 0.3"
|
20
21
|
|
21
|
-
spec.add_development_dependency "bundler", "~>
|
22
|
-
spec.add_development_dependency "rake", "~>
|
23
|
-
spec.add_development_dependency "rspec", "~>
|
24
|
-
spec.add_development_dependency('rdoc')
|
22
|
+
spec.add_development_dependency "bundler", "~>2.2.5"
|
23
|
+
spec.add_development_dependency "rake", "~>13.0.3"
|
24
|
+
spec.add_development_dependency "rspec", "~>3.10.0"
|
25
25
|
end
|
data/spec/transport_spec.rb
CHANGED
@@ -67,9 +67,26 @@ describe Transport do
|
|
67
67
|
Opensips::MI.connect :datagram, {:host => "10.0.0.1", :port => 0}
|
68
68
|
}.to raise_error SocketError
|
69
69
|
end
|
70
|
+
|
71
|
+
it "default timeout is 3 sec" do
|
72
|
+
mi=Opensips::MI.connect :datagram, {:host => "10.0.0.1", :port => 8088}
|
73
|
+
expect(mi.tout).to be(3)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "must set timeout from params" do
|
77
|
+
mi=Opensips::MI.connect :datagram, {:host => "10.0.0.1", :port => 8088, :timeout => 15}
|
78
|
+
expect(mi.tout).to be(15)
|
79
|
+
end
|
80
|
+
|
81
|
+
it "must foo" do
|
82
|
+
mi=Opensips::MI.connect :datagram, {:host => "10.0.0.1", :port => 8088, :timeout => 1}
|
83
|
+
expect {
|
84
|
+
mi.uptime
|
85
|
+
}.to raise_error Timeout::Error
|
86
|
+
end
|
70
87
|
end
|
71
88
|
|
72
|
-
context "
|
89
|
+
context "xmlrpc" do
|
73
90
|
it "must raise if empty host" do
|
74
91
|
expect {
|
75
92
|
Opensips::MI.connect :xmlrpc, {}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opensips-mi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stas Kobzar
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xmlrpc
|
@@ -30,59 +30,45 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.2.5
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.2.5
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 13.0.3
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 13.0.3
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 3.10.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rdoc
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
68
|
+
version: 3.10.0
|
83
69
|
description: Ruby module for interacting with OpenSIPs management interface
|
84
70
|
email:
|
85
|
-
-
|
71
|
+
- staskobzar@gmail.com
|
86
72
|
executables: []
|
87
73
|
extensions: []
|
88
74
|
extra_rdoc_files: []
|
@@ -111,9 +97,10 @@ files:
|
|
111
97
|
- spec/spec_helper.rb
|
112
98
|
- spec/transport_spec.rb
|
113
99
|
homepage: http://github.com/staskobzar/opensips-mi
|
114
|
-
licenses:
|
100
|
+
licenses:
|
101
|
+
- MIT
|
115
102
|
metadata: {}
|
116
|
-
post_install_message:
|
103
|
+
post_install_message:
|
117
104
|
rdoc_options: []
|
118
105
|
require_paths:
|
119
106
|
- lib
|
@@ -128,9 +115,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
128
115
|
- !ruby/object:Gem::Version
|
129
116
|
version: '0'
|
130
117
|
requirements: []
|
131
|
-
|
132
|
-
|
133
|
-
signing_key:
|
118
|
+
rubygems_version: 3.0.3
|
119
|
+
signing_key:
|
134
120
|
specification_version: 4
|
135
121
|
summary: OpenSIPs management interface
|
136
122
|
test_files:
|