ruby_rabbitmq_janus 1.1.12 → 1.2.0
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/README.md +127 -0
- data/Rakefile +1 -3
- data/config/default.md +14 -14
- data/config/default.yml +12 -18
- data/config/requests.md +80 -0
- data/config/requests/{channel → peer}/answer.json +1 -1
- data/config/requests/{channel → peer}/offer.json +0 -0
- data/lib/generators/ruby_rabbitmq_janus/install_generator.rb +1 -0
- data/lib/rrj/errors/config.rb +8 -1
- data/lib/rrj/errors/error.rb +18 -5
- data/lib/rrj/errors/janus.rb +4 -2
- data/lib/rrj/errors/janus_message.rb +19 -15
- data/lib/rrj/errors/janus_response.rb +13 -26
- data/lib/rrj/errors/janus_transaction.rb +7 -13
- data/lib/rrj/errors/rabbit.rb +3 -9
- data/lib/rrj/info.rb +1 -1
- data/lib/rrj/init.rb +118 -68
- data/lib/rrj/janus/processus/concurrency.rb +8 -22
- data/lib/rrj/janus/processus/event.rb +13 -15
- data/lib/rrj/janus/processus/keepalive.rb +20 -15
- data/lib/rrj/janus/responses/response.rb +0 -1
- data/lib/rrj/janus/transactions/admin.rb +14 -22
- data/lib/rrj/janus/transactions/handle.rb +19 -33
- data/lib/rrj/janus/transactions/session.rb +13 -6
- data/lib/rrj/janus/transactions/transaction.rb +16 -24
- data/lib/rrj/rabbit/connect.rb +3 -4
- data/lib/rrj/rabbit/propertie.rb +6 -9
- data/lib/rrj/rabbit/publish/admin.rb +1 -1
- data/lib/rrj/rabbit/publish/base_publisher.rb +5 -0
- data/lib/rrj/rabbit/publish/listener.rb +1 -1
- data/lib/rrj/rabbit/publish/non_exclusive.rb +1 -1
- data/lib/rrj/tools/config.rb +44 -18
- data/lib/rrj/tools/log.rb +30 -15
- data/lib/rrj/tools/replaces/admin.rb +1 -3
- data/lib/rrj/tools/replaces/replace.rb +1 -6
- data/lib/rrj/tools/requests.rb +8 -8
- data/lib/rrj/tools/tools.rb +0 -1
- data/lib/ruby_rabbitmq_janus.rb +1 -0
- data/spec/request/admin/request_handle_info_spec.rb +3 -3
- data/spec/request/base/request_attach_spec.rb +7 -10
- data/spec/request/base/request_detach_spec.rb +6 -9
- data/spec/request/peer/request_answer_spec.rb +66 -0
- data/spec/request/peer/request_offer_spec.rb +113 -0
- data/spec/request/peer/request_trickle_spec.rb +9 -11
- data/spec/rrj/rrj_log_spec.rb +1 -6
- data/spec/spec_helper.rb +0 -1
- data/spec/support/examples.rb +6 -9
- data/spec/support/schemas/config/config.json +20 -32
- data/spec/support/schemas/request/peer/answer.json +15 -0
- data/spec/support/schemas/request/peer/offer.json +15 -0
- data/spec/support/schemas/request/peer/trickle.json +4 -12
- metadata +10 -19
- data/config/requests/channel/README.md +0 -29
- data/config/requests/channel/create.json +0 -9
- data/config/requests/channel/describe.json +0 -10
- data/config/requests/channel/destroy.json +0 -10
- data/config/requests/channel/exists.json +0 -10
- data/config/requests/channel/join.json +0 -11
- data/config/requests/channel/leave.json +0 -11
- data/config/requests/channel/list.json +0 -9
- data/config/requests/channel/select.json +0 -11
- data/config/requests/channel/trickle.json +0 -10
- data/config/requests/videocast/join.json +0 -12
- data/config/requests/videocast/leave.json +0 -11
- data/config/ruby-rabbitmq-janus.yml +0 -27
- data/lib/rrj/errors/request.rb +0 -21
- data/lib/rrj/tools/env.rb +0 -22
| @@ -0,0 +1,66 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'spec_helper'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            describe 'RubyRabbitmqJanus::RRJ -- message type answer', broken: true do
         | 
| 6 | 
            +
              before(:example) do
         | 
| 7 | 
            +
                sdp = <<END
         | 
| 8 | 
            +
            v=0
         | 
| 9 | 
            +
            o=- 7041456084360858977 2 IN IP4 127.0.0.1
         | 
| 10 | 
            +
            s=-
         | 
| 11 | 
            +
            t=0 0
         | 
| 12 | 
            +
            a=group:BUNDLE audio video
         | 
| 13 | 
            +
            a=msid-semantic: WMS 2jKToeOlpzKTn7anwnHOJmzFyhvEYt1kpcMY
         | 
| 14 | 
            +
            m=audio 9 UDP/TLS/RTP/SAVPF 111
         | 
| 15 | 
            +
            c=IN IP4 0.0.0.0
         | 
| 16 | 
            +
            a=rtcp:9 IN IP4 0.0.0.0
         | 
| 17 | 
            +
            a=ice-ufrag:T9QI
         | 
| 18 | 
            +
            a=ice-pwd:s9YvfGuavTZN0Lqc53JNInEP
         | 
| 19 | 
            +
            a=fingerprint:sha-256 6D:ED:BC:93:AC:EC:C2:29:03:7D:6A:60:9F:D3:F5:A1:6D:1A:38:CE:F0:C0:EC:C8:5D:87:19:19:BE:0F:89:BB
         | 
| 20 | 
            +
            a=setup:actpass
         | 
| 21 | 
            +
            a=mid:audio
         | 
| 22 | 
            +
            a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
         | 
| 23 | 
            +
            a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
         | 
| 24 | 
            +
            a=sendonly
         | 
| 25 | 
            +
            a=rtcp-mux
         | 
| 26 | 
            +
            a=rtpmap:111 opus/48000/2
         | 
| 27 | 
            +
            a=rtcp-fb:111 transport-cc
         | 
| 28 | 
            +
            a=fmtp:111 minptime=10;useinbandfec=1
         | 
| 29 | 
            +
            m=video 9 UDP/TLS/RTP/SAVPF 100
         | 
| 30 | 
            +
            c=IN IP4 0.0.0.0
         | 
| 31 | 
            +
            a=rtcp:9 IN IP4 0.0.0.0
         | 
| 32 | 
            +
            a=ice-ufrag:T9QI
         | 
| 33 | 
            +
            a=ice-pwd:s9YvfGuavTZN0Lqc53JNInEP
         | 
| 34 | 
            +
            a=fingerprint:sha-256 6D:ED:BC:93:AC:EC:C2:29:03:7D:6A:60:9F:D3:F5:A1:6D:1A:38:CE:F0:C0:EC:C8:5D:87:19:19:BE:0F:89:BB
         | 
| 35 | 
            +
            a=setup:actpass
         | 
| 36 | 
            +
            a=mid:video
         | 
| 37 | 
            +
            a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
         | 
| 38 | 
            +
            a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
         | 
| 39 | 
            +
            a=extmap:4 urn:3gpp:video-orientation
         | 
| 40 | 
            +
            a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
         | 
| 41 | 
            +
            a=sendonly
         | 
| 42 | 
            +
            a=rtcp-mux
         | 
| 43 | 
            +
            a=rtcp-rsize
         | 
| 44 | 
            +
            a=rtpmap:100 VP8/90000
         | 
| 45 | 
            +
            a=rtcp-fb:100 ccm fir
         | 
| 46 | 
            +
            a=rtcp-fb:100 nack
         | 
| 47 | 
            +
            a=rtcp-fb:100 nack pli
         | 
| 48 | 
            +
            a=rtcp-fb:100 goog-remb
         | 
| 49 | 
            +
            a=rtcp-fb:100 transport-cc
         | 
| 50 | 
            +
            END
         | 
| 51 | 
            +
                @type = 'peer::answer'
         | 
| 52 | 
            +
                @options = { 'replace' => { 'sdp' => sdp }, 'add' => {} }
         | 
| 53 | 
            +
              end
         | 
| 54 | 
            +
             | 
| 55 | 
            +
              describe '#message_handle', type: :request, level: :peer, name: :answer do
         | 
| 56 | 
            +
                context 'when queue is exclusive' do
         | 
| 57 | 
            +
                  it_behaves_like 'message_handle should match json schema'
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                context 'when queue is not exclusive' do
         | 
| 61 | 
            +
                  it_behaves_like 'message_handle should match json empty'
         | 
| 62 | 
            +
                end
         | 
| 63 | 
            +
              end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
              after(:example) { @gateway.handle_message_simple('base::detach') }
         | 
| 66 | 
            +
            end
         | 
| @@ -0,0 +1,113 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'spec_helper'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            describe 'RubyRabbitmqJanus::RRJ -- message type offer', broken: true do
         | 
| 6 | 
            +
              before(:example) do
         | 
| 7 | 
            +
                sdp = <<END
         | 
| 8 | 
            +
            v=0
         | 
| 9 | 
            +
            o=- 7041456084360858977 2 IN IP4 127.0.0.1
         | 
| 10 | 
            +
            s=-
         | 
| 11 | 
            +
              t=0 0
         | 
| 12 | 
            +
            a=group:BUNDLE audio video
         | 
| 13 | 
            +
            a=msid-semantic: WMS 2jKToeOlpzKTn7anwnHOJmzFyhvEYt1kpcMY
         | 
| 14 | 
            +
            m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 126
         | 
| 15 | 
            +
            c=IN IP4 0.0.0.0
         | 
| 16 | 
            +
            a=rtcp:9 IN IP4 0.0.0.0
         | 
| 17 | 
            +
            a=ice-ufrag:T9QI
         | 
| 18 | 
            +
            a=ice-pwd:s9YvfGuavTZN0Lqc53JNInEP
         | 
| 19 | 
            +
            a=fingerprint:sha-256 6D:ED:BC:93:AC:EC:C2:29:03:7D:6A:60:9F:D3:F5:A1:6D:1A:38:CE:F0:C0:EC:C8:5D:87:19:19:BE:0F:89:BB
         | 
| 20 | 
            +
            a=setup:actpass
         | 
| 21 | 
            +
            a=mid:audio
         | 
| 22 | 
            +
            a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
         | 
| 23 | 
            +
            a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
         | 
| 24 | 
            +
            a=sendonly
         | 
| 25 | 
            +
            a=rtcp-mux
         | 
| 26 | 
            +
            a=rtpmap:111 opus/48000/2
         | 
| 27 | 
            +
            a=rtcp-fb:111 transport-cc
         | 
| 28 | 
            +
            a=fmtp:111 minptime=10;useinbandfec=1
         | 
| 29 | 
            +
            a=rtpmap:103 ISAC/16000
         | 
| 30 | 
            +
            a=rtpmap:104 ISAC/32000
         | 
| 31 | 
            +
            a=rtpmap:9 G722/8000
         | 
| 32 | 
            +
            a=rtpmap:0 PCMU/8000
         | 
| 33 | 
            +
            a=rtpmap:8 PCMA/8000
         | 
| 34 | 
            +
            a=rtpmap:106 CN/32000
         | 
| 35 | 
            +
            a=rtpmap:105 CN/16000
         | 
| 36 | 
            +
            a=rtpmap:13 CN/8000
         | 
| 37 | 
            +
            a=rtpmap:126 telephone-event/8000
         | 
| 38 | 
            +
            a=ssrc:2786155512 cname:/+YL75rdcn+UKbf9
         | 
| 39 | 
            +
            a=ssrc:2786155512 msid:2jKToeOlpzKTn7anwnHOJmzFyhvEYt1kpcMY e0f2490b-468a-4abc-9770-a5f99b13c152
         | 
| 40 | 
            +
            a=ssrc:2786155512 mslabel:2jKToeOlpzKTn7anwnHOJmzFyhvEYt1kpcMY
         | 
| 41 | 
            +
            a=ssrc:2786155512 label:e0f2490b-468a-4abc-9770-a5f99b13c152
         | 
| 42 | 
            +
            m=video 9 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98
         | 
| 43 | 
            +
            c=IN IP4 0.0.0.0
         | 
| 44 | 
            +
            a=rtcp:9 IN IP4 0.0.0.0
         | 
| 45 | 
            +
            a=ice-ufrag:T9QI
         | 
| 46 | 
            +
            a=ice-pwd:s9YvfGuavTZN0Lqc53JNInEP
         | 
| 47 | 
            +
            a=fingerprint:sha-256 6D:ED:BC:93:AC:EC:C2:29:03:7D:6A:60:9F:D3:F5:A1:6D:1A:38:CE:F0:C0:EC:C8:5D:87:19:19:BE:0F:89:BB
         | 
| 48 | 
            +
            a=setup:actpass
         | 
| 49 | 
            +
            a=mid:video
         | 
| 50 | 
            +
            a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
         | 
| 51 | 
            +
            a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
         | 
| 52 | 
            +
            a=extmap:4 urn:3gpp:video-orientation
         | 
| 53 | 
            +
            a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
         | 
| 54 | 
            +
            a=sendonly
         | 
| 55 | 
            +
            a=rtcp-mux
         | 
| 56 | 
            +
            a=rtcp-rsize
         | 
| 57 | 
            +
            a=rtpmap:100 VP8/90000
         | 
| 58 | 
            +
            a=rtcp-fb:100 ccm fir
         | 
| 59 | 
            +
            a=rtcp-fb:100 nack
         | 
| 60 | 
            +
            a=rtcp-fb:100 nack pli
         | 
| 61 | 
            +
            a=rtcp-fb:100 goog-remb
         | 
| 62 | 
            +
            a=rtcp-fb:100 transport-cc
         | 
| 63 | 
            +
            a=rtpmap:101 VP9/90000
         | 
| 64 | 
            +
            a=rtcp-fb:101 ccm fir
         | 
| 65 | 
            +
            a=rtcp-fb:101 nack
         | 
| 66 | 
            +
            a=rtcp-fb:101 nack pli
         | 
| 67 | 
            +
            a=rtcp-fb:101 goog-remb
         | 
| 68 | 
            +
            a=rtcp-fb:101 transport-cc
         | 
| 69 | 
            +
            a=rtpmap:107 H264/90000
         | 
| 70 | 
            +
            a=rtcp-fb:107 ccm fir
         | 
| 71 | 
            +
            a=rtcp-fb:107 nack
         | 
| 72 | 
            +
            a=rtcp-fb:107 nack pli
         | 
| 73 | 
            +
            a=rtcp-fb:107 goog-remb
         | 
| 74 | 
            +
            a=rtcp-fb:107 transport-cc
         | 
| 75 | 
            +
            a=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
         | 
| 76 | 
            +
            a=rtpmap:116 red/90000
         | 
| 77 | 
            +
            a=rtpmap:117 ulpfec/90000
         | 
| 78 | 
            +
            a=rtpmap:96 rtx/90000
         | 
| 79 | 
            +
            a=fmtp:96 apt=100
         | 
| 80 | 
            +
            a=rtpmap:97 rtx/90000
         | 
| 81 | 
            +
            a=fmtp:97 apt=101
         | 
| 82 | 
            +
            a=rtpmap:99 rtx/90000
         | 
| 83 | 
            +
            a=fmtp:99 apt=107
         | 
| 84 | 
            +
            a=rtpmap:98 rtx/90000
         | 
| 85 | 
            +
            a=fmtp:98 apt=116
         | 
| 86 | 
            +
            a=ssrc-group:FID 1022811670 258141567
         | 
| 87 | 
            +
            a=ssrc:1022811670 cname:/+YL75rdcn+UKbf9
         | 
| 88 | 
            +
            a=ssrc:1022811670 msid:2jKToeOlpzKTn7anwnHOJmzFyhvEYt1kpcMY 25d58816-114a-41d2-aa08-1039e09f942f
         | 
| 89 | 
            +
            a=ssrc:1022811670 mslabel:2jKToeOlpzKTn7anwnHOJmzFyhvEYt1kpcMY
         | 
| 90 | 
            +
            a=ssrc:1022811670 label:25d58816-114a-41d2-aa08-1039e09f942f
         | 
| 91 | 
            +
            a=ssrc:258141567 cname:/+YL75rdcn+UKbf9
         | 
| 92 | 
            +
            a=ssrc:258141567 msid:2jKToeOlpzKTn7anwnHOJmzFyhvEYt1kpcMY 25d58816-114a-41d2-aa08-1039e09f942f
         | 
| 93 | 
            +
            a=ssrc:258141567 mslabel:2jKToeOlpzKTn7anwnHOJmzFyhvEYt1kpcMY
         | 
| 94 | 
            +
            a=ssrc:258141567 label:25d58816-114a-41d2-aa08-1039e09f942f
         | 
| 95 | 
            +
            END
         | 
| 96 | 
            +
                @type = 'peer::offer'
         | 
| 97 | 
            +
                @options = { 'replace' => { 'sdp' => sdp }, 'add' => {} }
         | 
| 98 | 
            +
              end
         | 
| 99 | 
            +
             | 
| 100 | 
            +
              describe '#message_handle', type: :request, level: :peer, name: :offer do
         | 
| 101 | 
            +
                let(:sdp) { 'v=0\r\no=[..more sdp stuff..]' }
         | 
| 102 | 
            +
             | 
| 103 | 
            +
                context 'when queue is exclusive' do
         | 
| 104 | 
            +
                  it_behaves_like 'message_handle should match json schema'
         | 
| 105 | 
            +
                end
         | 
| 106 | 
            +
             | 
| 107 | 
            +
                context 'when queue is not exclusive' do
         | 
| 108 | 
            +
                  it_behaves_like 'message_handle should match json empty'
         | 
| 109 | 
            +
                end
         | 
| 110 | 
            +
              end
         | 
| 111 | 
            +
             | 
| 112 | 
            +
              after(:example) { @gateway.handle_message_simple('base::detach') }
         | 
| 113 | 
            +
            end
         | 
| @@ -2,9 +2,11 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            require 'spec_helper'
         | 
| 4 4 |  | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 5 | 
            +
            describe 'RubyRabbitmqJanus::RRJ -- message type trickle' do
         | 
| 6 | 
            +
              before(:example) do
         | 
| 7 | 
            +
                @type = 'peer::trickle'
         | 
| 8 | 
            +
                @options = { 'replace' => {}, 'add' => {} }
         | 
| 9 | 
            +
              end
         | 
| 8 10 |  | 
| 9 11 | 
             
              describe '#message_handle', type: :request, level: :peer, name: :trickle do
         | 
| 10 12 | 
             
                let(:cdd) do
         | 
| @@ -15,29 +17,25 @@ describe 'RubyRabbitmqJanus::RRJ -- message type trickle', broken: true do | |
| 15 17 |  | 
| 16 18 | 
             
                context 'when queue is exclusive and send 1 candidate' do
         | 
| 17 19 | 
             
                  it_behaves_like 'message_handle should match json schema' do
         | 
| 18 | 
            -
                    let(: | 
| 19 | 
            -
                    let(:add) { {} }
         | 
| 20 | 
            +
                    let(:options) { { replace: { candidates: candidate } } }
         | 
| 20 21 | 
             
                  end
         | 
| 21 22 | 
             
                end
         | 
| 22 23 |  | 
| 23 24 | 
             
                context 'when queue is not exclusive and send 1 candidate' do
         | 
| 24 25 | 
             
                  it_behaves_like 'message_handle should match json empty' do
         | 
| 25 | 
            -
                    let(: | 
| 26 | 
            -
                    let(:add) { {} }
         | 
| 26 | 
            +
                    let(:options) { { replace: { candidates: candidate } } }
         | 
| 27 27 | 
             
                  end
         | 
| 28 28 | 
             
                end
         | 
| 29 29 |  | 
| 30 30 | 
             
                context 'when queue is exclusive and send 1 candidate' do
         | 
| 31 31 | 
             
                  it_behaves_like 'message_handle should match json schema' do
         | 
| 32 | 
            -
                    let(: | 
| 33 | 
            -
                    let(:add) { {} }
         | 
| 32 | 
            +
                    let(:options) { { replace: { candidates: candidates } } }
         | 
| 34 33 | 
             
                  end
         | 
| 35 34 | 
             
                end
         | 
| 36 35 |  | 
| 37 36 | 
             
                context 'when queue is exclusive and send many candidates' do
         | 
| 38 37 | 
             
                  it_behaves_like 'message_handle should match json empty' do
         | 
| 39 | 
            -
                    let(: | 
| 40 | 
            -
                    let(:add) { {} }
         | 
| 38 | 
            +
                    let(:options) { { replace: { candidates: candidates } } }
         | 
| 41 39 | 
             
                  end
         | 
| 42 40 | 
             
                end
         | 
| 43 41 | 
             
              end
         | 
    
        data/spec/rrj/rrj_log_spec.rb
    CHANGED
    
    | @@ -7,15 +7,10 @@ describe 'RubyRabbitmqJanus::Log', type: :config, name: :log do | |
| 7 7 | 
             
                expect(RubyRabbitmqJanus::Tools::Log.instance).not_to be nil
         | 
| 8 8 | 
             
              end
         | 
| 9 9 |  | 
| 10 | 
            -
              it 'Default level log is  | 
| 10 | 
            +
              it 'Default level log is INFO' do
         | 
| 11 11 | 
             
                # 0 = debug
         | 
| 12 12 | 
             
                # ...
         | 
| 13 13 | 
             
                # 5 = unknown
         | 
| 14 14 | 
             
                expect(RubyRabbitmqJanus::Tools::Log.instance.level).to eq 1
         | 
| 15 15 | 
             
              end
         | 
| 16 | 
            -
             | 
| 17 | 
            -
              it 'Default progname is RubyRabbitmqJanus' do
         | 
| 18 | 
            -
                expect(RubyRabbitmqJanus::Tools::Log.instance.progname).to \
         | 
| 19 | 
            -
                  eq RubyRabbitmqJanus.name
         | 
| 20 | 
            -
              end
         | 
| 21 16 | 
             
            end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -40,7 +40,6 @@ RSpec.configure do |config| | |
| 40 40 |  | 
| 41 41 | 
             
              # Configure requests test before sending request
         | 
| 42 42 | 
             
              config.before(:example) do
         | 
| 43 | 
            -
                Singleton.__init__(RubyRabbitmqJanus::Tools::Env)
         | 
| 44 43 | 
             
                Singleton.__init__(RubyRabbitmqJanus::Tools::Log)
         | 
| 45 44 | 
             
                Singleton.__init__(RubyRabbitmqJanus::Tools::Config)
         | 
| 46 45 | 
             
                Singleton.__init__(RubyRabbitmqJanus::Tools::Requests)
         | 
    
        data/spec/support/examples.rb
    CHANGED
    
    | @@ -36,9 +36,7 @@ end | |
| 36 36 |  | 
| 37 37 | 
             
            # Handle request
         | 
| 38 38 | 
             
            shared_examples 'message_handle should match json schema' do
         | 
| 39 | 
            -
              let(: | 
| 40 | 
            -
              let(:add) { add }
         | 
| 41 | 
            -
              let(:message) { @gateway.message_handle(@type, replace, add) }
         | 
| 39 | 
            +
              let(:message) { @gateway.message_handle(@type, @options) }
         | 
| 42 40 |  | 
| 43 41 | 
             
              it do
         | 
| 44 42 | 
             
                @gateway.start_handle(true) do
         | 
| @@ -48,9 +46,10 @@ shared_examples 'message_handle should match json schema' do | |
| 48 46 | 
             
            end
         | 
| 49 47 |  | 
| 50 48 | 
             
            shared_examples 'message_handle should match json empty' do
         | 
| 51 | 
            -
              let(: | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 49 | 
            +
              let(:message) do
         | 
| 50 | 
            +
                options = options.nil? ? { replace: {}, add: {} } : options
         | 
| 51 | 
            +
                @gateway.message_handle(@type, options)
         | 
| 52 | 
            +
              end
         | 
| 54 53 |  | 
| 55 54 | 
             
              it do
         | 
| 56 55 | 
             
                @gateway.start_handle(false) do
         | 
| @@ -62,9 +61,7 @@ end | |
| 62 61 | 
             
            # Handle admin
         | 
| 63 62 | 
             
            shared_examples 'message_handle_admin should match json schema' do
         | 
| 64 63 | 
             
              let(:message) do
         | 
| 65 | 
            -
                @gateway. | 
| 66 | 
            -
                  @gateway.message_handle(@type)
         | 
| 67 | 
            -
                end
         | 
| 64 | 
            +
                @gateway.message_admin(@type)
         | 
| 68 65 | 
             
              end
         | 
| 69 66 |  | 
| 70 67 | 
             
              it do
         | 
| @@ -23,32 +23,42 @@ | |
| 23 23 | 
             
                "queues": {
         | 
| 24 24 | 
             
                  "type": "hash",
         | 
| 25 25 | 
             
                  "properties": {
         | 
| 26 | 
            -
                    " | 
| 27 | 
            -
             | 
| 26 | 
            +
                    "standard": {
         | 
| 27 | 
            +
                      "type": "hash",
         | 
| 28 | 
            +
                      "properties": {
         | 
| 29 | 
            +
                        "from": { "type": "string" },
         | 
| 30 | 
            +
                        "to": { "type": "string" }
         | 
| 31 | 
            +
                      },
         | 
| 32 | 
            +
                      "required": [
         | 
| 33 | 
            +
                        "from",
         | 
| 34 | 
            +
                        "to"
         | 
| 35 | 
            +
                      ]
         | 
| 36 | 
            +
                    },
         | 
| 28 37 | 
             
                    "admin": {
         | 
| 29 38 | 
             
                      "type": "hash",
         | 
| 30 39 | 
             
                      "properties": {
         | 
| 31 | 
            -
                        " | 
| 32 | 
            -
                        " | 
| 40 | 
            +
                        "from": { "type": "string" },
         | 
| 41 | 
            +
                        "to": { "type": "string" }
         | 
| 33 42 | 
             
                      },
         | 
| 34 43 | 
             
                      "required": [
         | 
| 35 | 
            -
                        " | 
| 36 | 
            -
                        " | 
| 44 | 
            +
                        "from",
         | 
| 45 | 
            +
                        "to"
         | 
| 37 46 | 
             
                      ]
         | 
| 38 47 | 
             
                    }
         | 
| 39 48 | 
             
                  },
         | 
| 40 49 | 
             
                  "required": [
         | 
| 41 | 
            -
                    " | 
| 42 | 
            -
                    "queue_to",
         | 
| 50 | 
            +
                    "standard",
         | 
| 43 51 | 
             
                    "admin"
         | 
| 44 52 | 
             
                  ]
         | 
| 45 53 | 
             
                },
         | 
| 46 54 | 
             
                "janus": {
         | 
| 47 55 | 
             
                  "type": "hash",
         | 
| 48 56 | 
             
                  "properties": {
         | 
| 49 | 
            -
                    "plugins": { "type": "hash" }
         | 
| 57 | 
            +
                    "plugins": { "type": "hash" },
         | 
| 58 | 
            +
                    "session": { "type": "hash" }
         | 
| 50 59 | 
             
                  },
         | 
| 51 60 | 
             
                  "required": [
         | 
| 61 | 
            +
                    "session",
         | 
| 52 62 | 
             
                    "plugins"
         | 
| 53 63 | 
             
                  ]
         | 
| 54 64 | 
             
                },
         | 
| @@ -63,32 +73,10 @@ | |
| 63 73 | 
             
                      "required": [
         | 
| 64 74 | 
             
                        "level"
         | 
| 65 75 | 
             
                      ]
         | 
| 66 | 
            -
                    },
         | 
| 67 | 
            -
                    "session": {
         | 
| 68 | 
            -
                      "type": "hash",
         | 
| 69 | 
            -
                      "properties": {
         | 
| 70 | 
            -
                        "keepalive": { "type": "integer" }
         | 
| 71 | 
            -
                      },
         | 
| 72 | 
            -
                      "required": [
         | 
| 73 | 
            -
                        "keepalive"
         | 
| 74 | 
            -
                      ]
         | 
| 75 | 
            -
                    },
         | 
| 76 | 
            -
                    "thread": {
         | 
| 77 | 
            -
                      "type": "hash",
         | 
| 78 | 
            -
                      "properties": {
         | 
| 79 | 
            -
                        "enable": { "type" : "boolean" },
         | 
| 80 | 
            -
                        "number": { "type": "integer" }
         | 
| 81 | 
            -
                      },
         | 
| 82 | 
            -
                      "required": [
         | 
| 83 | 
            -
                        "enable",
         | 
| 84 | 
            -
                        "number"
         | 
| 85 | 
            -
                      ]
         | 
| 86 76 | 
             
                    }
         | 
| 87 77 | 
             
                  },
         | 
| 88 78 | 
             
                  "required": [
         | 
| 89 | 
            -
                    "log" | 
| 90 | 
            -
                    "session",
         | 
| 91 | 
            -
                    "thread"
         | 
| 79 | 
            +
                    "log"
         | 
| 92 80 | 
             
                  ]
         | 
| 93 81 | 
             
                }
         | 
| 94 82 | 
             
              },
         | 
| @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            {
         | 
| 2 | 
            +
              "type": "object",
         | 
| 3 | 
            +
              "properties": {
         | 
| 4 | 
            +
                "janus": { "type": "string", "pattern": "ack" },
         | 
| 5 | 
            +
                "transaction": { "type": "string" },
         | 
| 6 | 
            +
                "session_id": { "type": "integer" },
         | 
| 7 | 
            +
                "handle_id": { "type": "integer" }
         | 
| 8 | 
            +
              },
         | 
| 9 | 
            +
              "required": [
         | 
| 10 | 
            +
                "janus",
         | 
| 11 | 
            +
                "transaction",
         | 
| 12 | 
            +
                "session_id",
         | 
| 13 | 
            +
                "handle_id"
         | 
| 14 | 
            +
              ]
         | 
| 15 | 
            +
            }
         | 
| @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            {
         | 
| 2 | 
            +
              "type": "object",
         | 
| 3 | 
            +
              "properties": {
         | 
| 4 | 
            +
                "janus": { "type": "string", "pattern": "ack" },
         | 
| 5 | 
            +
                "transaction": { "type": "string" },
         | 
| 6 | 
            +
                "session_id": { "type": "integer" },
         | 
| 7 | 
            +
                "handle_id": { "type": "integer" }
         | 
| 8 | 
            +
              },
         | 
| 9 | 
            +
              "required": [
         | 
| 10 | 
            +
                "janus",
         | 
| 11 | 
            +
                "transaction",
         | 
| 12 | 
            +
                "session_id",
         | 
| 13 | 
            +
                "handle_id"
         | 
| 14 | 
            +
              ]
         | 
| 15 | 
            +
            }
         | 
| @@ -1,21 +1,13 @@ | |
| 1 1 | 
             
            {
         | 
| 2 2 | 
             
              "type": "object",
         | 
| 3 3 | 
             
              "properties": {
         | 
| 4 | 
            -
                "janus": { "type": "string", "pattern": " | 
| 5 | 
            -
                "transaction": { "type": | 
| 6 | 
            -
                " | 
| 7 | 
            -
                  "type": "hash",
         | 
| 8 | 
            -
                  "properties": {
         | 
| 9 | 
            -
                    "completed": { "type": "boolean" }
         | 
| 10 | 
            -
                  },
         | 
| 11 | 
            -
                  "required": [
         | 
| 12 | 
            -
                    "completed"
         | 
| 13 | 
            -
                  ]
         | 
| 14 | 
            -
                }
         | 
| 4 | 
            +
                "janus": { "type": "string", "pattern": "ack" },
         | 
| 5 | 
            +
                "transaction": { "type": "string" },
         | 
| 6 | 
            +
                "session_id": { "type": "integer" }
         | 
| 15 7 | 
             
              },
         | 
| 16 8 | 
             
              "required": [
         | 
| 17 9 | 
             
                "janus",
         | 
| 18 10 | 
             
                "transaction",
         | 
| 19 | 
            -
                " | 
| 11 | 
            +
                "session_id"
         | 
| 20 12 | 
             
              ]
         | 
| 21 13 | 
             
            }
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ruby_rabbitmq_janus
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.2.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - VAILLANT Jeremy
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016-12- | 
| 11 | 
            +
            date: 2016-12-15 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -292,9 +292,11 @@ extra_rdoc_files: [] | |
| 292 292 | 
             
            files:
         | 
| 293 293 | 
             
            - Gemfile
         | 
| 294 294 | 
             
            - LICENSE
         | 
| 295 | 
            +
            - README.md
         | 
| 295 296 | 
             
            - Rakefile
         | 
| 296 297 | 
             
            - config/default.md
         | 
| 297 298 | 
             
            - config/default.yml
         | 
| 299 | 
            +
            - config/requests.md
         | 
| 298 300 | 
             
            - config/requests/admin/handle_info.json
         | 
| 299 301 | 
             
            - config/requests/admin/handles.json
         | 
| 300 302 | 
             
            - config/requests/admin/log_level.json
         | 
| @@ -305,22 +307,9 @@ files: | |
| 305 307 | 
             
            - config/requests/base/detach.json
         | 
| 306 308 | 
             
            - config/requests/base/info.json
         | 
| 307 309 | 
             
            - config/requests/base/keepalive.json
         | 
| 308 | 
            -
            - config/requests/ | 
| 309 | 
            -
            - config/requests/ | 
| 310 | 
            -
            - config/requests/channel/create.json
         | 
| 311 | 
            -
            - config/requests/channel/describe.json
         | 
| 312 | 
            -
            - config/requests/channel/destroy.json
         | 
| 313 | 
            -
            - config/requests/channel/exists.json
         | 
| 314 | 
            -
            - config/requests/channel/join.json
         | 
| 315 | 
            -
            - config/requests/channel/leave.json
         | 
| 316 | 
            -
            - config/requests/channel/list.json
         | 
| 317 | 
            -
            - config/requests/channel/offer.json
         | 
| 318 | 
            -
            - config/requests/channel/select.json
         | 
| 319 | 
            -
            - config/requests/channel/trickle.json
         | 
| 310 | 
            +
            - config/requests/peer/answer.json
         | 
| 311 | 
            +
            - config/requests/peer/offer.json
         | 
| 320 312 | 
             
            - config/requests/peer/trickle.json
         | 
| 321 | 
            -
            - config/requests/videocast/join.json
         | 
| 322 | 
            -
            - config/requests/videocast/leave.json
         | 
| 323 | 
            -
            - config/ruby-rabbitmq-janus.yml
         | 
| 324 313 | 
             
            - lib/generators/ruby_rabbitmq_janus/configuration_generator.rb
         | 
| 325 314 | 
             
            - lib/generators/ruby_rabbitmq_janus/create_request_generator.rb
         | 
| 326 315 | 
             
            - lib/generators/ruby_rabbitmq_janus/default_request_generator.rb
         | 
| @@ -333,7 +322,6 @@ files: | |
| 333 322 | 
             
            - lib/rrj/errors/janus_response.rb
         | 
| 334 323 | 
             
            - lib/rrj/errors/janus_transaction.rb
         | 
| 335 324 | 
             
            - lib/rrj/errors/rabbit.rb
         | 
| 336 | 
            -
            - lib/rrj/errors/request.rb
         | 
| 337 325 | 
             
            - lib/rrj/info.rb
         | 
| 338 326 | 
             
            - lib/rrj/init.rb
         | 
| 339 327 | 
             
            - lib/rrj/janus/janus.rb
         | 
| @@ -360,7 +348,6 @@ files: | |
| 360 348 | 
             
            - lib/rrj/rabbit/publish/publisher.rb
         | 
| 361 349 | 
             
            - lib/rrj/rabbit/rabbit.rb
         | 
| 362 350 | 
             
            - lib/rrj/tools/config.rb
         | 
| 363 | 
            -
            - lib/rrj/tools/env.rb
         | 
| 364 351 | 
             
            - lib/rrj/tools/log.rb
         | 
| 365 352 | 
             
            - lib/rrj/tools/replaces/admin.rb
         | 
| 366 353 | 
             
            - lib/rrj/tools/replaces/replace.rb
         | 
| @@ -377,6 +364,8 @@ files: | |
| 377 364 | 
             
            - spec/request/base/request_detach_spec.rb
         | 
| 378 365 | 
             
            - spec/request/base/request_info_spec.rb
         | 
| 379 366 | 
             
            - spec/request/base/request_keepalive_spec.rb
         | 
| 367 | 
            +
            - spec/request/peer/request_answer_spec.rb
         | 
| 368 | 
            +
            - spec/request/peer/request_offer_spec.rb
         | 
| 380 369 | 
             
            - spec/request/peer/request_trickle_spec.rb
         | 
| 381 370 | 
             
            - spec/rrj/rrj_config_spec.rb
         | 
| 382 371 | 
             
            - spec/rrj/rrj_log_spec.rb
         | 
| @@ -400,6 +389,8 @@ files: | |
| 400 389 | 
             
            - spec/support/schemas/request/channel/destroy.json
         | 
| 401 390 | 
             
            - spec/support/schemas/request/channel/exist.json
         | 
| 402 391 | 
             
            - spec/support/schemas/request/channel/list.json
         | 
| 392 | 
            +
            - spec/support/schemas/request/peer/answer.json
         | 
| 393 | 
            +
            - spec/support/schemas/request/peer/offer.json
         | 
| 403 394 | 
             
            - spec/support/schemas/request/peer/trickle.json
         | 
| 404 395 | 
             
            homepage: https://github.com/dazzl-tv/ruby-rabbitmq-janus
         | 
| 405 396 | 
             
            licenses:
         |