opentok 2.2.4 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +44 -17
  3. data/doc/OpenTok.html +20 -13
  4. data/doc/OpenTok/Archive.html +350 -68
  5. data/doc/OpenTok/ArchiveList.html +3 -3
  6. data/doc/OpenTok/Archives.html +114 -42
  7. data/doc/OpenTok/HashExtensions.html +184 -0
  8. data/doc/OpenTok/OpenTok.html +89 -44
  9. data/doc/OpenTok/OpenTokArchiveError.html +3 -3
  10. data/doc/OpenTok/OpenTokAuthenticationError.html +3 -3
  11. data/doc/OpenTok/OpenTokError.html +3 -3
  12. data/doc/OpenTok/Session.html +116 -24
  13. data/doc/_index.html +22 -7
  14. data/doc/class_list.html +6 -2
  15. data/doc/file.README.html +3 -3
  16. data/doc/file_list.html +5 -1
  17. data/doc/frames.html +1 -1
  18. data/doc/index.html +3 -3
  19. data/doc/js/full_list.js +4 -1
  20. data/doc/method_list.html +45 -11
  21. data/doc/top-level-namespace.html +3 -3
  22. data/lib/extensions/hash.rb +12 -0
  23. data/lib/opentok/archive.rb +22 -2
  24. data/lib/opentok/archives.rb +33 -6
  25. data/lib/opentok/client.rb +21 -4
  26. data/lib/opentok/constants.rb +1 -0
  27. data/lib/opentok/opentok.rb +25 -13
  28. data/lib/opentok/session.rb +6 -3
  29. data/lib/opentok/version.rb +1 -1
  30. data/sample/Archiving/README.md +16 -10
  31. data/sample/Archiving/archiving_sample.rb +6 -3
  32. data/sample/Archiving/public/js/host.js +25 -12
  33. data/sample/Archiving/views/host.erb +24 -0
  34. data/sample/HelloWorld/README.md +1 -1
  35. data/spec/cassettes/OpenTok_Archives/should_create_archives.yml +1 -1
  36. data/spec/cassettes/OpenTok_Archives/should_create_audio_only_archives.yml +50 -0
  37. data/spec/cassettes/OpenTok_Archives/should_create_individual_archives.yml +51 -0
  38. data/spec/cassettes/OpenTok_Archives/should_find_paused_archives_by_id.yml +46 -0
  39. data/spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions.yml +39 -0
  40. data/spec/opentok/archives_spec.rb +32 -0
  41. data/spec/opentok/opentok_spec.rb +27 -3
  42. data/spec/spec_helper.rb +1 -0
  43. metadata +36 -26
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Class: OpenTok::OpenTok
8
8
 
9
- &mdash; Documentation by YARD 0.8.7.4
9
+ &mdash; Documentation by YARD 0.8.7.6
10
10
 
11
11
  </title>
12
12
 
@@ -153,7 +153,7 @@ constructor (only on your web server) to create OpenTok sessions.</p>
153
153
 
154
154
 
155
155
  <span class="summary_desc"><div class='inline'>
156
- <p>An Archives object, which lets you work with OpenTok 2.0 archives.</p>
156
+ <p>An Archives object, which lets you work with OpenTok archives.</p>
157
157
  </div></span>
158
158
 
159
159
  </li>
@@ -327,18 +327,18 @@ href="https://dashboard.tokbox.com">dashboard.tokbox.com</a>).</p>
327
327
  <pre class="lines">
328
328
 
329
329
 
330
- 67
331
330
  68
332
331
  69
333
332
  70
334
333
  71
335
334
  72
336
- 73</pre>
335
+ 73
336
+ 74</pre>
337
337
  </td>
338
338
  <td>
339
- <pre class="code"><span class="info file"># File 'lib/opentok/opentok.rb', line 67</span>
339
+ <pre class="code"><span class="info file"># File 'lib/opentok/opentok.rb', line 68</span>
340
340
 
341
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_api_key'>api_key</span><span class='comma'>,</span> <span class='id identifier rubyid_api_secret'>api_secret</span> <span class='comma'>,</span> <span class='id identifier rubyid_api_url'>api_url</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>OpenTok</span><span class='op'>::</span><span class='const'>API_URL</span><span class='rparen'>)</span>
341
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_api_key'>api_key</span><span class='comma'>,</span> <span class='id identifier rubyid_api_secret'>api_secret</span><span class='comma'>,</span> <span class='id identifier rubyid_api_url'>api_url</span><span class='op'>=</span><span class='op'>::</span><span class='const'>OpenTok</span><span class='op'>::</span><span class='const'>API_URL</span><span class='rparen'>)</span>
342
342
  <span class='ivar'>@api_key</span> <span class='op'>=</span> <span class='id identifier rubyid_api_key'>api_key</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='lparen'>(</span><span class='rparen'>)</span>
343
343
  <span class='ivar'>@api_secret</span> <span class='op'>=</span> <span class='id identifier rubyid_api_secret'>api_secret</span>
344
344
  <span class='comment'># TODO: do we really need a copy of this in the instance or should we overwrite the module
@@ -369,7 +369,7 @@ href="https://dashboard.tokbox.com">dashboard.tokbox.com</a>).</p>
369
369
  </h3><div class="docstring">
370
370
  <div class="discussion">
371
371
 
372
- <p>An Archives object, which lets you work with OpenTok 2.0 archives.</p>
372
+ <p>An Archives object, which lets you work with OpenTok archives.</p>
373
373
 
374
374
 
375
375
  </div>
@@ -383,12 +383,12 @@ href="https://dashboard.tokbox.com">dashboard.tokbox.com</a>).</p>
383
383
  <pre class="lines">
384
384
 
385
385
 
386
- 163
387
- 164
388
- 165</pre>
386
+ 171
387
+ 172
388
+ 173</pre>
389
389
  </td>
390
390
  <td>
391
- <pre class="code"><span class="info file"># File 'lib/opentok/opentok.rb', line 163</span>
391
+ <pre class="code"><span class="info file"># File 'lib/opentok/opentok.rb', line 171</span>
392
392
 
393
393
  <span class='kw'>def</span> <span class='id identifier rubyid_archives'>archives</span>
394
394
  <span class='ivar'>@archives</span> <span class='op'>||=</span> <span class='const'>Archives</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='id identifier rubyid_client'>client</span>
@@ -466,7 +466,7 @@ href="https://dashboard.tokbox.com/projects">dashboard.tokbox.com/projects</a>).
466
466
 
467
467
  <li>
468
468
  <span class="name">:media_mode</span>
469
- <span class="type">(<tt>String</tt>)</span>
469
+ <span class="type">(<tt>Symbol</tt>)</span>
470
470
  <span class="default">
471
471
 
472
472
  </span>
@@ -476,30 +476,30 @@ href="https://dashboard.tokbox.com/projects">dashboard.tokbox.com/projects</a>).
476
476
  Media Router (<tt>:routed</tt>) or not (<tt>:relayed</tt>). By default,
477
477
  this property is set to <tt>:relayed</tt>.</p>
478
478
 
479
- <p>With the <tt>mediaMode</tt> property set to <tt>:relayed</tt>, the session
479
+ <p>With the <tt>media_mode</tt> property set to <tt>:relayed</tt>, the session
480
480
  will attempt to transmit streams directly between clients. If clients
481
481
  cannot connect due to firewall restrictions, the session uses the OpenTok
482
482
  TURN server to relay audio-video streams.</p>
483
483
 
484
- <p>With the <tt>mediaMode</tt> property set to <tt>:routed</tt>, the session
485
- will use the <a href="http://tokbox.com/#multiparty" target="_parent" title="OpenTok Media Router">OpenTok Media Router</a>. The
486
- OpenTok Media Router provides the following benefits:</p>
484
+ <p>With the <tt>media_mode</tt> property set to <tt>:routed</tt>, the session
485
+ will use the
486
+ <a href="https://tokbox.com/opentok/tutorials/create-session/#media-mode" target="_parent" title="OpenTok Media Router">OpenTok Media Router</a>. The OpenTok Media Router provides the following benefits:</p>
487
487
  <ul><li>
488
488
  <p>The OpenTok Media Router can decrease bandwidth usage in multiparty
489
- sessions. (When the <tt>mediaMode</tt> property is set to
489
+ sessions. (When the <tt>media_mode</tt> property is set to
490
490
  <tt>:relayed</tt>, each client must send a separate audio-video stream to
491
491
  each client subscribing to it.)</p>
492
492
  </li><li>
493
493
  <p>The OpenTok Media Router can improve the quality of the user experience
494
- through <a href="http://tokbox.com/#iqc" target="_parent" title="Intelligent Quality Control">Intelligent Quality Control</a>. With
495
- Intelligent Quality Control, if a client’s connectivity degrades to a
494
+ through <a href="https://tokbox.com/platform/fallback" target="_parent" title="audio fallback and video recovery">audio fallback and video recovery</a>. With these features, if a client’s connectivity degrades to a
496
495
  degree that it does not support video for a stream it’s subscribing to, the
497
496
  video is dropped on that client (without affecting other clients), and the
498
497
  client receives audio only. If the client’s connectivity improves, the
499
498
  video returns.</p>
500
499
  </li><li>
501
- <p>The OpenTok Media Router supports the <a href="http://tokbox.com/platform/archiving" target="_parent" title="archiving">archiving</a> feature, which lets you record, save, and retrieve OpenTok
502
- sessions.</p>
500
+ <p>The OpenTok Media Router supports the
501
+ <a href="https://tokbox.com/opentok/tutorials/archiving" target="_parent" title="archiving">archiving</a> feature, which
502
+ lets you record, save, and retrieve OpenTok sessions.</p>
503
503
  </li></ul>
504
504
  </div>
505
505
 
@@ -516,6 +516,21 @@ sessions.</p>
516
516
  <p>An IP address that the OpenTok servers will use to situate the session in
517
517
  its global network. If you do not set a location hint, the OpenTok servers
518
518
  will be based on the first client connecting to the session.</p>
519
+ </div>
520
+
521
+ </li>
522
+
523
+ <li>
524
+ <span class="name">:archive_mode</span>
525
+ <span class="type">(<tt>Symbol</tt>)</span>
526
+ <span class="default">
527
+
528
+ </span>
529
+
530
+ &mdash; <div class='inline'>
531
+ <p>Determines whether the session will be archived automatically
532
+ (<tt>:always</tt>) or not (<tt>:manual</tt>). When using automatic
533
+ archiving, the session must use the <tt>:routed</tt> media mode.</p>
519
534
  </div>
520
535
 
521
536
  </li>
@@ -549,8 +564,6 @@ ID.</p>
549
564
  <pre class="lines">
550
565
 
551
566
 
552
- 130
553
- 131
554
567
  132
555
568
  133
556
569
  134
@@ -579,15 +592,23 @@ ID.</p>
579
592
  157
580
593
  158
581
594
  159
582
- 160</pre>
595
+ 160
596
+ 161
597
+ 162
598
+ 163
599
+ 164
600
+ 165
601
+ 166
602
+ 167
603
+ 168</pre>
583
604
  </td>
584
605
  <td>
585
- <pre class="code"><span class="info file"># File 'lib/opentok/opentok.rb', line 130</span>
606
+ <pre class="code"><span class="info file"># File 'lib/opentok/opentok.rb', line 132</span>
586
607
 
587
608
  <span class='kw'>def</span> <span class='id identifier rubyid_create_session'>create_session</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
588
609
 
589
610
  <span class='comment'># normalize opts so all keys are symbols and only include valid_opts
590
- </span> <span class='id identifier rubyid_valid_opts'>valid_opts</span> <span class='op'>=</span> <span class='lbracket'>[</span> <span class='symbol'>:media_mode</span><span class='comma'>,</span> <span class='symbol'>:location</span> <span class='rbracket'>]</span>
611
+ </span> <span class='id identifier rubyid_valid_opts'>valid_opts</span> <span class='op'>=</span> <span class='lbracket'>[</span> <span class='symbol'>:media_mode</span><span class='comma'>,</span> <span class='symbol'>:location</span><span class='comma'>,</span> <span class='symbol'>:archive_mode</span> <span class='rbracket'>]</span>
591
612
  <span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_inject'>inject</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_m'>m</span><span class='comma'>,</span><span class='lparen'>(</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span><span class='op'>|</span>
592
613
  <span class='kw'>if</span> <span class='id identifier rubyid_valid_opts'>valid_opts</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='id identifier rubyid_k'>k</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
593
614
  <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span>
@@ -611,6 +632,12 @@ ID.</p>
611
632
  </span> <span class='kw'>unless</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:location</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
612
633
  <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>location must be an IPv4 address</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:location</span><span class='rbracket'>]</span> <span class='op'>=~</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>IPv4</span><span class='op'>::</span><span class='const'>Regex</span>
613
634
  <span class='kw'>end</span>
635
+ <span class='comment'># archive mode is optional, but it has to be one of the valid values if present
636
+ </span> <span class='kw'>unless</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:archive_mode</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
637
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>archive mode must be either always or manual</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='const'>ARCHIVE_MODES</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:archive_mode</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
638
+ <span class='kw'>end</span>
639
+
640
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>A session with always archive mode must also have the routed media mode.</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:archive_mode</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='symbol'>:always</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:media_mode</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='symbol'>:relayed</span><span class='rparen'>)</span>
614
641
 
615
642
  <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_create_session'>create_session</span><span class='lparen'>(</span><span class='id identifier rubyid_params'>params</span><span class='rparen'>)</span>
616
643
  <span class='const'>Session</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='id identifier rubyid_api_key'>api_key</span><span class='comma'>,</span> <span class='id identifier rubyid_api_secret'>api_secret</span><span class='comma'>,</span> <span class='id identifier rubyid_response'>response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>sessions</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Session</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>session_id</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span>
@@ -643,7 +670,7 @@ ID.</p>
643
670
 
644
671
  <li>
645
672
 
646
- <span class='name'>sessioin_id</span>
673
+ <span class='name'>session_id</span>
647
674
 
648
675
 
649
676
  <span class='type'>(<tt>String</tt>)</span>
@@ -683,7 +710,7 @@ ID.</p>
683
710
 
684
711
  <li>
685
712
  <span class="name">:role</span>
686
- <span class="type">(<tt>String</tt>)</span>
713
+ <span class="type">(<tt>Symbol</tt>)</span>
687
714
  <span class="default">
688
715
 
689
716
  </span>
@@ -765,7 +792,6 @@ cannot be updated once it is set.</p>
765
792
  <pre class="lines">
766
793
 
767
794
 
768
- 47
769
795
  48
770
796
  49
771
797
  50
@@ -891,10 +917,18 @@ cannot be updated once it is set.</p>
891
917
  170
892
918
  171
893
919
  172
894
- 173</pre>
920
+ 173
921
+ 174
922
+ 175
923
+ 176
924
+ 177
925
+ 178
926
+ 179
927
+ 180
928
+ 181</pre>
895
929
  </td>
896
930
  <td>
897
- <pre class="code"><span class="info file"># File 'lib/opentok/opentok.rb', line 47</span>
931
+ <pre class="code"><span class="info file"># File 'lib/opentok/opentok.rb', line 48</span>
898
932
 
899
933
  <span class='kw'>class</span> <span class='const'>OpenTok</span>
900
934
 
@@ -916,7 +950,7 @@ cannot be updated once it is set.</p>
916
950
  </span> <span class='comment'># (https://dashboard.tokbox.com).
917
951
  </span> <span class='comment'># @param [String] api_secret Your OpenTok API key.
918
952
  </span> <span class='comment'># @param [String] api_url Do not set this parameter. It is for internal use by TokBox.
919
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_api_key'>api_key</span><span class='comma'>,</span> <span class='id identifier rubyid_api_secret'>api_secret</span> <span class='comma'>,</span> <span class='id identifier rubyid_api_url'>api_url</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>OpenTok</span><span class='op'>::</span><span class='const'>API_URL</span><span class='rparen'>)</span>
953
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_api_key'>api_key</span><span class='comma'>,</span> <span class='id identifier rubyid_api_secret'>api_secret</span><span class='comma'>,</span> <span class='id identifier rubyid_api_url'>api_url</span><span class='op'>=</span><span class='op'>::</span><span class='const'>OpenTok</span><span class='op'>::</span><span class='const'>API_URL</span><span class='rparen'>)</span>
920
954
  <span class='ivar'>@api_key</span> <span class='op'>=</span> <span class='id identifier rubyid_api_key'>api_key</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='lparen'>(</span><span class='rparen'>)</span>
921
955
  <span class='ivar'>@api_secret</span> <span class='op'>=</span> <span class='id identifier rubyid_api_secret'>api_secret</span>
922
956
  <span class='comment'># TODO: do we really need a copy of this in the instance or should we overwrite the module
@@ -944,41 +978,46 @@ cannot be updated once it is set.</p>
944
978
  </span> <span class='comment'>#
945
979
  </span> <span class='comment'># @param [Hash] opts (Optional) This hash defines options for the session.
946
980
  </span> <span class='comment'>#
947
- </span> <span class='comment'># @option opts [String] :media_mode Determines whether the session will transmit streams the
981
+ </span> <span class='comment'># @option opts [Symbol] :media_mode Determines whether the session will transmit streams the
948
982
  </span> <span class='comment'># using OpenTok Media Router (&lt;code&gt;:routed&lt;/code&gt;) or not (&lt;code&gt;:relayed&lt;/code&gt;).
949
983
  </span> <span class='comment'># By default, this property is set to &lt;code&gt;:relayed&lt;/code&gt;.
950
984
  </span> <span class='comment'>#
951
- </span> <span class='comment'># With the &lt;code&gt;mediaMode&lt;/code&gt; property set to &lt;code&gt;:relayed&lt;/code&gt;, the session
985
+ </span> <span class='comment'># With the &lt;code&gt;media_mode&lt;/code&gt; property set to &lt;code&gt;:relayed&lt;/code&gt;, the session
952
986
  </span> <span class='comment'># will attempt to transmit streams directly between clients. If clients cannot connect due to
953
987
  </span> <span class='comment'># firewall restrictions, the session uses the OpenTok TURN server to relay audio-video
954
988
  </span> <span class='comment'># streams.
955
989
  </span> <span class='comment'>#
956
- </span> <span class='comment'># With the &lt;code&gt;mediaMode&lt;/code&gt; property set to &lt;code&gt;:routed&lt;/code&gt;, the session
957
- </span> <span class='comment'># will use the {http://tokbox.com/#multiparty OpenTok Media Router}.
990
+ </span> <span class='comment'># With the &lt;code&gt;media_mode&lt;/code&gt; property set to &lt;code&gt;:routed&lt;/code&gt;, the session will use
991
+ </span> <span class='comment'># the {https://tokbox.com/opentok/tutorials/create-session/#media-mode OpenTok Media Router}.
958
992
  </span> <span class='comment'># The OpenTok Media Router provides the following benefits:
959
993
  </span> <span class='comment'>#
960
994
  </span> <span class='comment'># * The OpenTok Media Router can decrease bandwidth usage in multiparty sessions.
961
- </span> <span class='comment'># (When the &lt;code&gt;mediaMode&lt;/code&gt; property is set to &lt;code&gt;:relayed&lt;/code&gt;,
995
+ </span> <span class='comment'># (When the &lt;code&gt;media_mode&lt;/code&gt; property is set to &lt;code&gt;:relayed&lt;/code&gt;,
962
996
  </span> <span class='comment'># each client must send a separate audio-video stream to each client subscribing to
963
997
  </span> <span class='comment'># it.)
964
998
  </span> <span class='comment'># * The OpenTok Media Router can improve the quality of the user experience through
965
- </span> <span class='comment'># {http://tokbox.com/#iqc Intelligent Quality Control}. With
966
- </span> <span class='comment'># Intelligent Quality Control, if a client's connectivity degrades to a degree that
999
+ </span> <span class='comment'># {https://tokbox.com/platform/fallback audio fallback and video recovery}. With
1000
+ </span> <span class='comment'># these features, if a client's connectivity degrades to a degree that
967
1001
  </span> <span class='comment'># it does not support video for a stream it's subscribing to, the video is dropped on
968
1002
  </span> <span class='comment'># that client (without affecting other clients), and the client receives audio only.
969
1003
  </span> <span class='comment'># If the client's connectivity improves, the video returns.
970
- </span> <span class='comment'># * The OpenTok Media Router supports the {http://tokbox.com/platform/archiving archiving}
1004
+ </span> <span class='comment'># * The OpenTok Media Router supports the
1005
+ </span> <span class='comment'># {https://tokbox.com/opentok/tutorials/archiving archiving}
971
1006
  </span> <span class='comment'># feature, which lets you record, save, and retrieve OpenTok sessions.
972
1007
  </span> <span class='comment'>#
973
1008
  </span> <span class='comment'># @option opts [String] :location An IP address that the OpenTok servers will use to
974
1009
  </span> <span class='comment'># situate the session in its global network. If you do not set a location hint,
975
1010
  </span> <span class='comment'># the OpenTok servers will be based on the first client connecting to the session.
976
1011
  </span> <span class='comment'>#
1012
+ </span> <span class='comment'># @option opts [Symbol] :archive_mode Determines whether the session will be archived
1013
+ </span> <span class='comment'># automatically (&lt;code&gt;:always&lt;/code&gt;) or not (&lt;code&gt;:manual&lt;/code&gt;). When using automatic
1014
+ </span> <span class='comment'># archiving, the session must use the &lt;code&gt;:routed&lt;/code&gt; media mode.
1015
+ </span> <span class='comment'>#
977
1016
  </span> <span class='comment'># @return [Session] The Session object. The session_id property of the object is the session ID.
978
1017
  </span> <span class='kw'>def</span> <span class='id identifier rubyid_create_session'>create_session</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
979
1018
 
980
1019
  <span class='comment'># normalize opts so all keys are symbols and only include valid_opts
981
- </span> <span class='id identifier rubyid_valid_opts'>valid_opts</span> <span class='op'>=</span> <span class='lbracket'>[</span> <span class='symbol'>:media_mode</span><span class='comma'>,</span> <span class='symbol'>:location</span> <span class='rbracket'>]</span>
1020
+ </span> <span class='id identifier rubyid_valid_opts'>valid_opts</span> <span class='op'>=</span> <span class='lbracket'>[</span> <span class='symbol'>:media_mode</span><span class='comma'>,</span> <span class='symbol'>:location</span><span class='comma'>,</span> <span class='symbol'>:archive_mode</span> <span class='rbracket'>]</span>
982
1021
  <span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_inject'>inject</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_m'>m</span><span class='comma'>,</span><span class='lparen'>(</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span><span class='op'>|</span>
983
1022
  <span class='kw'>if</span> <span class='id identifier rubyid_valid_opts'>valid_opts</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='id identifier rubyid_k'>k</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
984
1023
  <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span>
@@ -1002,12 +1041,18 @@ cannot be updated once it is set.</p>
1002
1041
  </span> <span class='kw'>unless</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:location</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1003
1042
  <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>location must be an IPv4 address</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:location</span><span class='rbracket'>]</span> <span class='op'>=~</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>IPv4</span><span class='op'>::</span><span class='const'>Regex</span>
1004
1043
  <span class='kw'>end</span>
1044
+ <span class='comment'># archive mode is optional, but it has to be one of the valid values if present
1045
+ </span> <span class='kw'>unless</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:archive_mode</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1046
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>archive mode must be either always or manual</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='const'>ARCHIVE_MODES</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:archive_mode</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
1047
+ <span class='kw'>end</span>
1048
+
1049
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>A session with always archive mode must also have the routed media mode.</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:archive_mode</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='symbol'>:always</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:media_mode</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='symbol'>:relayed</span><span class='rparen'>)</span>
1005
1050
 
1006
1051
  <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_create_session'>create_session</span><span class='lparen'>(</span><span class='id identifier rubyid_params'>params</span><span class='rparen'>)</span>
1007
1052
  <span class='const'>Session</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='id identifier rubyid_api_key'>api_key</span><span class='comma'>,</span> <span class='id identifier rubyid_api_secret'>api_secret</span><span class='comma'>,</span> <span class='id identifier rubyid_response'>response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>sessions</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Session</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>session_id</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span>
1008
1053
  <span class='kw'>end</span>
1009
1054
 
1010
- <span class='comment'># An Archives object, which lets you work with OpenTok 2.0 archives.
1055
+ <span class='comment'># An Archives object, which lets you work with OpenTok archives.
1011
1056
  </span> <span class='kw'>def</span> <span class='id identifier rubyid_archives'>archives</span>
1012
1057
  <span class='ivar'>@archives</span> <span class='op'>||=</span> <span class='const'>Archives</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='id identifier rubyid_client'>client</span>
1013
1058
  <span class='kw'>end</span>
@@ -1029,9 +1074,9 @@ cannot be updated once it is set.</p>
1029
1074
  </div>
1030
1075
 
1031
1076
  <div id="footer">
1032
- Generated on Fri Jun 20 12:49:10 2014 by
1077
+ Generated on Mon May 25 15:52:46 2015 by
1033
1078
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1034
- 0.8.7.4 (ruby-1.9.3).
1079
+ 0.8.7.6 (ruby-1.9.3).
1035
1080
  </div>
1036
1081
 
1037
1082
  </body>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Exception: OpenTok::OpenTokArchiveError
8
8
 
9
- &mdash; Documentation by YARD 0.8.7.4
9
+ &mdash; Documentation by YARD 0.8.7.6
10
10
 
11
11
  </title>
12
12
 
@@ -133,9 +133,9 @@
133
133
  </div>
134
134
 
135
135
  <div id="footer">
136
- Generated on Fri Jun 20 12:49:10 2014 by
136
+ Generated on Mon May 25 15:52:46 2015 by
137
137
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
138
- 0.8.7.4 (ruby-1.9.3).
138
+ 0.8.7.6 (ruby-1.9.3).
139
139
  </div>
140
140
 
141
141
  </body>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Exception: OpenTok::OpenTokAuthenticationError
8
8
 
9
- &mdash; Documentation by YARD 0.8.7.4
9
+ &mdash; Documentation by YARD 0.8.7.6
10
10
 
11
11
  </title>
12
12
 
@@ -134,9 +134,9 @@ OpenTok API key or secret.</p>
134
134
  </div>
135
135
 
136
136
  <div id="footer">
137
- Generated on Fri Jun 20 12:49:10 2014 by
137
+ Generated on Mon May 25 15:52:46 2015 by
138
138
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
139
- 0.8.7.4 (ruby-1.9.3).
139
+ 0.8.7.6 (ruby-1.9.3).
140
140
  </div>
141
141
 
142
142
  </body>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Exception: OpenTok::OpenTokError
8
8
 
9
- &mdash; Documentation by YARD 0.8.7.4
9
+ &mdash; Documentation by YARD 0.8.7.6
10
10
 
11
11
  </title>
12
12
 
@@ -129,9 +129,9 @@
129
129
  </div>
130
130
 
131
131
  <div id="footer">
132
- Generated on Fri Jun 20 12:49:10 2014 by
132
+ Generated on Mon May 25 15:52:46 2015 by
133
133
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
134
- 0.8.7.4 (ruby-1.9.3).
134
+ 0.8.7.6 (ruby-1.9.3).
135
135
  </div>
136
136
 
137
137
  </body>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Class: OpenTok::Session
8
8
 
9
- &mdash; Documentation by YARD 0.8.7.4
9
+ &mdash; Documentation by YARD 0.8.7.6
10
10
 
11
11
  </title>
12
12
 
@@ -123,6 +123,36 @@ the session_id property of the Session object to get the session ID.</p>
123
123
  <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
124
124
  <ul class="summary">
125
125
 
126
+ <li class="public ">
127
+ <span class="summary_signature">
128
+
129
+ <a href="#archive_mode-instance_method" title="#archive_mode (instance method)">- (String) <strong>archive_mode</strong> </a>
130
+
131
+
132
+
133
+ </span>
134
+
135
+
136
+
137
+
138
+ <span class="note title readonly">readonly</span>
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+ <span class="summary_desc"><div class='inline'>
149
+ <p>Whether the session will be archived automatically (:always) or not
150
+ (:manual).</p>
151
+ </div></span>
152
+
153
+ </li>
154
+
155
+
126
156
  <li class="public ">
127
157
  <span class="summary_signature">
128
158
 
@@ -264,7 +294,69 @@ if the session attempts to transmit streams directly between clients.</p>
264
294
 
265
295
  <span id=""></span>
266
296
  <div class="method_details first">
267
- <h3 class="signature first" id="location-instance_method">
297
+ <h3 class="signature first" id="archive_mode-instance_method">
298
+
299
+ - (<tt>String</tt>) <strong>archive_mode</strong> <span class="extras">(readonly)</span>
300
+
301
+
302
+
303
+
304
+
305
+ </h3><div class="docstring">
306
+ <div class="discussion">
307
+
308
+ <p>Whether the session will be archived automatically (<tt>:always</tt>) or
309
+ not (<tt>:manual</tt>).</p>
310
+
311
+
312
+ </div>
313
+ </div>
314
+ <div class="tags">
315
+
316
+ <p class="tag_title">Returns:</p>
317
+ <ul class="return">
318
+
319
+ <li>
320
+
321
+
322
+ <span class='type'>(<tt>String</tt>)</span>
323
+
324
+
325
+
326
+ &mdash;
327
+ <div class='inline'>
328
+ <p>the current value of archive_mode</p>
329
+ </div>
330
+
331
+ </li>
332
+
333
+ </ul>
334
+
335
+ </div><table class="source_code">
336
+ <tr>
337
+ <td>
338
+ <pre class="lines">
339
+
340
+
341
+ 46
342
+ 47
343
+ 48</pre>
344
+ </td>
345
+ <td>
346
+ <pre class="code"><span class="info file"># File 'lib/opentok/session.rb', line 46</span>
347
+
348
+ <span class='kw'>def</span> <span class='id identifier rubyid_archive_mode'>archive_mode</span>
349
+ <span class='ivar'>@archive_mode</span>
350
+ <span class='kw'>end</span></pre>
351
+ </td>
352
+ </tr>
353
+ </table>
354
+ </div>
355
+
356
+
357
+ <span id=""></span>
358
+ <div class="method_details ">
359
+ <h3 class="signature " id="location-instance_method">
268
360
 
269
361
  - (<tt>String</tt>) <strong>location</strong> <span class="extras">(readonly)</span>
270
362
 
@@ -307,12 +399,12 @@ if the session attempts to transmit streams directly between clients.</p>
307
399
  <pre class="lines">
308
400
 
309
401
 
310
- 43
311
- 44
312
- 45</pre>
402
+ 46
403
+ 47
404
+ 48</pre>
313
405
  </td>
314
406
  <td>
315
- <pre class="code"><span class="info file"># File 'lib/opentok/session.rb', line 43</span>
407
+ <pre class="code"><span class="info file"># File 'lib/opentok/session.rb', line 46</span>
316
408
 
317
409
  <span class='kw'>def</span> <span class='id identifier rubyid_location'>location</span>
318
410
  <span class='ivar'>@location</span>
@@ -369,12 +461,12 @@ if the session attempts to transmit streams directly between clients.</p>
369
461
  <pre class="lines">
370
462
 
371
463
 
372
- 43
373
- 44
374
- 45</pre>
464
+ 46
465
+ 47
466
+ 48</pre>
375
467
  </td>
376
468
  <td>
377
- <pre class="code"><span class="info file"># File 'lib/opentok/session.rb', line 43</span>
469
+ <pre class="code"><span class="info file"># File 'lib/opentok/session.rb', line 46</span>
378
470
 
379
471
  <span class='kw'>def</span> <span class='id identifier rubyid_media_mode'>media_mode</span>
380
472
  <span class='ivar'>@media_mode</span>
@@ -430,12 +522,12 @@ if the session attempts to transmit streams directly between clients.</p>
430
522
  <pre class="lines">
431
523
 
432
524
 
433
- 43
434
- 44
435
- 45</pre>
525
+ 46
526
+ 47
527
+ 48</pre>
436
528
  </td>
437
529
  <td>
438
- <pre class="code"><span class="info file"># File 'lib/opentok/session.rb', line 43</span>
530
+ <pre class="code"><span class="info file"># File 'lib/opentok/session.rb', line 46</span>
439
531
 
440
532
  <span class='kw'>def</span> <span class='id identifier rubyid_session_id'>session_id</span>
441
533
  <span class='ivar'>@session_id</span>
@@ -494,7 +586,7 @@ if the session attempts to transmit streams directly between clients.</p>
494
586
 
495
587
  <li>
496
588
  <span class="name">:role</span>
497
- <span class="type">(<tt>String</tt>)</span>
589
+ <span class="type">(<tt>Symbol</tt>)</span>
498
590
  <span class="default">
499
591
 
500
592
  </span>
@@ -576,9 +668,6 @@ cannot be updated once it is set.</p>
576
668
  <pre class="lines">
577
669
 
578
670
 
579
- 43
580
- 44
581
- 45
582
671
  46
583
672
  47
584
673
  48
@@ -608,10 +697,13 @@ cannot be updated once it is set.</p>
608
697
  72
609
698
  73
610
699
  74
611
- 75</pre>
700
+ 75
701
+ 76
702
+ 77
703
+ 78</pre>
612
704
  </td>
613
705
  <td>
614
- <pre class="code"><span class="info file"># File 'lib/opentok/session.rb', line 43</span>
706
+ <pre class="code"><span class="info file"># File 'lib/opentok/session.rb', line 46</span>
615
707
 
616
708
  <span class='kw'>class</span> <span class='const'>Session</span>
617
709
 
@@ -622,7 +714,7 @@ cannot be updated once it is set.</p>
622
714
  <span class='symbol'>:session_id</span> <span class='op'>=&gt;</span> <span class='tlambda'>-&gt;</span><span class='lparen'>(</span><span class='id identifier rubyid_instance'>instance</span><span class='rparen'>)</span> <span class='tlambeg'>{</span> <span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_session_id'>session_id</span> <span class='rbrace'>}</span>
623
715
  <span class='rbrace'>}</span><span class='rparen'>)</span>
624
716
 
625
- <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:session_id</span><span class='comma'>,</span> <span class='symbol'>:media_mode</span><span class='comma'>,</span> <span class='symbol'>:location</span><span class='comma'>,</span> <span class='symbol'>:api_key</span><span class='comma'>,</span> <span class='symbol'>:api_secret</span>
717
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:session_id</span><span class='comma'>,</span> <span class='symbol'>:media_mode</span><span class='comma'>,</span> <span class='symbol'>:location</span><span class='comma'>,</span> <span class='symbol'>:archive_mode</span><span class='comma'>,</span> <span class='symbol'>:api_key</span><span class='comma'>,</span> <span class='symbol'>:api_secret</span>
626
718
 
627
719
  <span class='comment'># @private
628
720
  </span> <span class='comment'># this implementation doesn't completely understand the format of a Session ID
@@ -638,7 +730,7 @@ cannot be updated once it is set.</p>
638
730
  <span class='comment'># @private
639
731
  </span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_api_key'>api_key</span><span class='comma'>,</span> <span class='id identifier rubyid_api_secret'>api_secret</span><span class='comma'>,</span> <span class='id identifier rubyid_session_id'>session_id</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
640
732
  <span class='ivar'>@api_key</span><span class='comma'>,</span> <span class='ivar'>@api_secret</span><span class='comma'>,</span> <span class='ivar'>@session_id</span> <span class='op'>=</span> <span class='id identifier rubyid_api_key'>api_key</span><span class='comma'>,</span> <span class='id identifier rubyid_api_secret'>api_secret</span><span class='comma'>,</span> <span class='id identifier rubyid_session_id'>session_id</span>
641
- <span class='ivar'>@media_mode</span><span class='comma'>,</span> <span class='ivar'>@location</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='symbol'>:media_mode</span><span class='comma'>,</span> <span class='symbol'>:relayed</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:location</span><span class='rbracket'>]</span>
733
+ <span class='ivar'>@media_mode</span><span class='comma'>,</span> <span class='ivar'>@location</span><span class='comma'>,</span> <span class='ivar'>@archive_mode</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='symbol'>:media_mode</span><span class='comma'>,</span> <span class='symbol'>:relayed</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:location</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='symbol'>:archive_mode</span><span class='comma'>,</span> <span class='symbol'>:manual</span><span class='rparen'>)</span>
642
734
  <span class='kw'>end</span>
643
735
 
644
736
  <span class='comment'># @private
@@ -656,9 +748,9 @@ cannot be updated once it is set.</p>
656
748
  </div>
657
749
 
658
750
  <div id="footer">
659
- Generated on Fri Jun 20 12:49:10 2014 by
751
+ Generated on Mon May 25 15:52:46 2015 by
660
752
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
661
- 0.8.7.4 (ruby-1.9.3).
753
+ 0.8.7.6 (ruby-1.9.3).
662
754
  </div>
663
755
 
664
756
  </body>