備考欄に感想を書くタイプのエンジニア

それで出世が遅れ(ry

Cisco Telepresence Endpoint で短縮ダイヤルのような機能をマクロで実装した

はじめに

2017 年 11 月に Cisco Telepresence Endpoint 用ファームウェア CE9.2.1 がリリースされ、新しくマクロ開発フレームワークが導入されました。このマクロフレームワークでは xAPI と呼ばれる API を利用して、通常テレビ会議専用端末には標準で実装されていない設定項目を追加したり、イベント駆動の動作を実装したり、一連の動作を自動化したりできるようになります。JavaScript での実装になるので、JavaScript が書ける人であれば xAPI のドキュメントをちょっと読めば簡単なマクロはすぐに書けてしまいます。

また、室内制御(In-room Control)と呼ばれる拡張機能と併せることで、GUI 上にボタンやウィジェットを追加し、そこから作成したマクロを実行することも可能になります。

xAPI についてはドキュメントが公開されているので、利用している端末のシリーズに合わせて参照してもらえればいいかと思います(端末によって若干利用できる API が異なります)。

実際に実装してみる

昨年末に Cicso Systems Japan Advent Calendar 2017 で「シスコビデオ会議システムのマクロ機能で音楽プレイヤーを作ってみた」という記事が公開されていたので、写経してもよかったんですが、せっかくなので独自に何か作ってみようということで考えたのが短縮ダイヤルのような機能です。

テレビ会議の世界(?)で全然知らない人からテレビ会議のコールがあったり、逆に全然知らない人にコールしたりというようなシーンは基本的にはなくて、だいたい決まった人や場所にコールすることが多いかと思います。

Ciscoテレビ会議端末には発着履歴からコールしたり、お気に入りに登録したりする機能はありますが、本体画面上または Touch 10 上で最低 3 タップする必要があります。リモコンだともう少しボタンを押す回数が増えます。そこで、この回数をもう少し減らせないかなと考えたわけです。

結果としてタップ操作の場合は 2 タップまで減らせました。一方でリモコンの場合、ホーム画面で発信ボタン押すことでいきなり発信ページが開くのですが、設置したマクロではそのような動作を実装できないので、実装したマクロを実行するボタンを選択するために余計にボタンを押さなければならず、発信までにボタンを押す必要がある回数が増えてしまいました…。リモコンを使う端末は今の製品ラインナップの中では少数派なので無視しましょう。そうしましょう。

コードを見てもらえばわかる通り、とりあえず実装してみるかというノリで書いたので、連絡先がべた書きになっているのですが、このアドレスが使われなくなったりした場合にマクロのせいでメンテナンスをする手間が増えるのは嫌なので、テレビ会議端末のローカルアドレス帳の情報を呼び出すような実装に変えようかなと思っています。あと、別の人や場所を短縮に登録しなおしたいという場合も想定して編集もできれば、結構いい感じのマクロになりそうです。

マクロの構成ファイルはこちらで公開しています。

まとめ

マクロや室内制御拡張機能テレビ会議端末の Web コンソール上での実装となりますが、それぞれ *.js ファイルと *.xml ファイルでインポート/エクスポートできるので、大規模展開みたいなシーンではちょっと力不足な感じは否めないものの、端末以外の場所で構成を保存したり、コードを編集したりする分には特に問題ないかなと思います(SSH から直接コミットできたりするともっといいですが)。

ここでその是非を論じるつもりはありませんが、Ciscoテレビ会議端末は端末もしくはリモコンや Touch 10 のようなデバイスからは直接詳細な設定をするよりも、UI/UX をシンプルにしつつテレビ会議で利用する機能の操作に絞っていく傾向にあるように思いますが、もしそこに何か不満や付け足したい機能があったとするとマクロは非常に便利なものだと思います。