opensips-mi 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
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: