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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1956c21f6f508a1106aed87e99dbdc17925f529dc2d799554e6080a3ece2a23d
4
- data.tar.gz: 0f2e9e1dbc906f5ed4fc92dd6cae377e1fd1e0d38866d66318258465832a9b54
3
+ metadata.gz: 135298241a7da04c8011bdc51fd903c62b04dbfb05de49cce7610544fee9f274
4
+ data.tar.gz: 25a7bede110b7b35b121baddb04c2da6588d6fb8de3d9914cc84f6fd79041ef2
5
5
  SHA512:
6
- metadata.gz: 3c23130f92a3209b265ffe553fde481ae9c70897b1b13c31514358bdbfc6ed2329455ec3826fa4e99627498cd2a820a05a1e18c1ce51e22f4bb54b60e0c729e0
7
- data.tar.gz: 5fa13a5dc0c8652625e1c1e14b740e816a8cdec36a2a32b50c688ffb8f642c4d92578a39a15da0d4e23a8dda6b152d669e65e5945fdd78fe862990a33f04fea6
6
+ metadata.gz: 273474a444d49d471180eb7051cd57dc34e1c8c21146429cb649fab1134c5b4c6f604c0762a3a97005c4f340c7c4d379e95a0e89935d7511a1f5c1654c7edbc6
7
+ data.tar.gz: 7aca0cdf36610f3f4db77864d215ec9b214acaebfcac25345e2f8042997614f62e44f47e8914f06717f0d1cb9186e62df391524a2ae5bcef7246f7c3adb278c4
data/.gitignore CHANGED
@@ -7,6 +7,7 @@
7
7
  Gemfile*.lock
8
8
  .bundle
9
9
  .config
10
+ .byebug_history
10
11
  coverage
11
12
  log
12
13
  InstalledFiles
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
- @sock.send request, 0
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
- response, = @sock.recvfrom RECVMAXLEN
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
@@ -1,5 +1,5 @@
1
1
  module Opensips
2
2
  module MI
3
- VERSION = "0.0.9"
3
+ VERSION = "0.0.10"
4
4
  end
5
5
  end
@@ -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 = ["stas@modulis.ca"]
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", "~> 1.16"
22
- spec.add_development_dependency "rake", "~> 10.0"
23
- spec.add_development_dependency "rspec", "~> 3.8"
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
@@ -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 "datagram" do
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.9
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: 2018-12-21 00:00:00.000000000 Z
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: '1.16'
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: '1.16'
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: '10.0'
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: '10.0'
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: '3.8'
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: '3.8'
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
- - stas@modulis.ca
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
- rubyforge_project:
132
- rubygems_version: 2.7.6
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: