libriciel 0.1.3 → 0.1.4

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: 25d59cf10cefb65f3ff969ac6d14543f9360a3e4226d8bfdb5f77648ef9b4033
4
- data.tar.gz: 9f6029ed8be0b7985ebfecd34f5187327192c0c4f809865333ae426218fec878
3
+ metadata.gz: 9d8579e1407573197fe75fbbbf76b522752e2fc0cca1614c62225b8fed00ffeb
4
+ data.tar.gz: 2bdfd897113a6028a07cab9881ab9ba79e770b2d3c8e5c6e6ab54fdfc62e34f2
5
5
  SHA512:
6
- metadata.gz: 7cc25a0c0dacd66878e8923474db829c59cc84838d5efe02b6f496c6f9f7036734a64c52b607972a7f8fd23a0da2067f3c8e08ece8292f7b053ea92779b3d643
7
- data.tar.gz: 425e7231941de2786b4cc5c8bb7951654af5b94bc9a092b9115751cf008ac38282180d294596da9a103918561e8f52224d98c0884b5a3059a1b63dd809fadf0b
6
+ metadata.gz: 887ba857081a67fdb3d9dd3d5e6bf9d9703f0951ec34029af5a36f31ae9f7c3b5c4e6cbe466095984320a13333296de9105ef8d70bc85e716f2f32557355a5ee
7
+ data.tar.gz: 414fbfaf22f2e41b30d502a8e4d70b8a2d6df503387ae432a2a2a4d3917d1a4d81b8b796397afac0442d019fa2be232e5cb453ff0c71e97650ce69f8400511b4
data/lib/libriciel.rb CHANGED
@@ -250,6 +250,11 @@ module Libriciel
250
250
  STDERR.puts("Line is not associated with Device")
251
251
  exit(36)
252
252
  end
253
+ sip_id_from_line = Libriciel::ApiXivo.get_sip_id_from_line(line_id, token)
254
+
255
+ options = Libriciel::ApiXivo.get_sip_options(sip_id_from_line, token)
256
+
257
+ sip_add_options = Libriciel::ApiXivo.add_webrtc_of_sip(sip_id_from_line, token, options)
253
258
 
254
259
  end
255
260
 
@@ -272,6 +277,11 @@ module Libriciel
272
277
  STDERR.puts("Line is already associated to a Device")
273
278
  exit(36)
274
279
  end
280
+ sip_id_from_line = Libriciel::ApiXivo.get_sip_id_from_line(line_id, token)
281
+
282
+ options = Libriciel::ApiXivo.get_sip_options(sip_id_from_line, token)
283
+
284
+ sip_del_options = Libriciel::ApiXivo.dell_webrtc_of_sip(sip_id_from_line, token, options)
275
285
 
276
286
  end
277
287
 
@@ -327,6 +337,102 @@ module Libriciel
327
337
  request["cache-control"] = 'no-cache'
328
338
  request.body = csv_entry
329
339
 
340
+ response = http.request(request)
341
+ end
342
+
343
+
344
+ ## Recherche du sip_id en fonction du numéro en entrée
345
+ def self.get_sip_id_from_line(line_id, token)
346
+ url = URI("https://xivo.libriciel.fr:9486/1.1/lines/#{line_id}/endpoints/sip")
347
+
348
+ http = Net::HTTP.new(url.host, url.port)
349
+ http.use_ssl = true
350
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
351
+
352
+ request = Net::HTTP::Get.new(url)
353
+ request["x-auth-token"] = "#{token}"
354
+ request["cache-control"] = 'no-cache'
355
+
356
+ response = http.request(request)
357
+ json = JSON.parse(response.read_body)
358
+
359
+ return json["endpoint_id"]
360
+ end
361
+
362
+ ## Recherche des options du numéro SIP (à faire : traitement pour ajout et enlevement webrtc)
363
+ def self.get_sip_options(sip_id, token)
364
+ options_line = "[\n "
365
+ url = URI("https://xivo.libriciel.fr:9486/1.1/endpoints/sip/#{sip_id}")
366
+
367
+ http = Net::HTTP.new(url.host, url.port)
368
+ http.use_ssl = true
369
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
370
+
371
+ request = Net::HTTP::Get.new(url)
372
+ request["x-auth-token"] = "#{token}"
373
+ request["cache-control"] = 'no-cache'
374
+
375
+ response = http.request(request)
376
+ json = JSON.parse(response.read_body)
377
+ json["options"].each do |options|
378
+ if options[0] == "callerid"
379
+ options[1] = options[1].gsub(/\"/, "\\\"")
380
+
381
+ options_line << "[\n \"#{options[0]}\",\n \"#{options[1]}\"\n ],\n "
382
+ else
383
+ options_line << "[\n \"#{options[0]}\",\n \"#{options[1]}\"\n ],\n "
384
+ end
385
+ end
386
+
387
+ return options_line.gsub(/,\n $/, "\n]\n")
388
+ end
389
+
390
+ def self.dell_webrtc_of_sip(sip_id, token)
391
+ options = Libriciel::ApiXivo.get_sip_options(sip_id, token)
392
+ if options.include?("webrtc")
393
+ options_less_webrtc = "{\n \"options\": #{options.gsub(/\,\n \[\n \"webrtc\"\,\n \"yes\"\n \]/, '')}}"
394
+
395
+ else
396
+ end
397
+
398
+ url = URI("https://xivo.libriciel.fr:9486/1.1/endpoints/sip/#{sip_id}")
399
+
400
+ http = Net::HTTP.new(url.host, url.port)
401
+ http.use_ssl = true
402
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
403
+
404
+ request = Net::HTTP::Put.new(url)
405
+ request["x-auth-token"] = "#{token}"
406
+ request["content-type"] = 'application/json'
407
+ request["cache-control"] = 'no-cache'
408
+ request.body = "#{options_less_webrtc}"
409
+
410
+ response = http.request(request)
411
+
412
+ end
413
+
414
+ def self.add_webrtc_of_sip(sip_id, token)
415
+ options = Libriciel::ApiXivo.get_sip_options(sip_id, token)
416
+ if !options.include?("webrtc")
417
+ options_plus_webrtc = "{\n \"options\": #{options.gsub(/\]\n\]$/, "],\n \[\n \"webrtc\",\n \"yes\"\n ]\n]")}}"
418
+
419
+ else
420
+ STDERR.puts("webrtc already configured")
421
+ exit 1
422
+ end
423
+
424
+ url = URI("https://xivo.libriciel.fr:9486/1.1/endpoints/sip/#{sip_id}")
425
+
426
+ http = Net::HTTP.new(url.host, url.port)
427
+ http.use_ssl = true
428
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
429
+
430
+ request = Net::HTTP::Put.new(url)
431
+ request["x-auth-token"] = "#{token}"
432
+ request["content-type"] = 'application/json'
433
+ request["cache-control"] = 'no-cache'
434
+ request.body = "#{options_plus_webrtc}"
435
+
330
436
  response = http.request(request)
331
437
 
332
438
  end
@@ -1,3 +1,3 @@
1
1
  module Libriciel
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libriciel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Axel CHEVRIER
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-22 00:00:00.000000000 Z
11
+ date: 2019-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler