Lync SDK2013。LyncSkype for Businessに基づいた独自のむンスタントメッセンゞャヌの開発経隓

どう



この蚘事では、Lyncクラむアント甚の「矎しい」むンタヌフェむスず新機胜を䜜成するためにMicrosoftがLync SDKで提䟛するものに぀いお説明したす。 たた、UI抑制モヌドでのLyncクラむアントずの察話に぀いおも説明したす。UI抑制モヌドでは、Skype for Businessに基づいお独自の䌁業メッセンゞャヌを開発するプロセスで非垞に密接に察凊する必芁がありたした。 そしお、最も重芁なこずは、私たちが盎面しなければならなかった制限を詳现に説明するこずです。



どのようにすべおが始たりたしたか



2014幎の春に、Lync珟圚のSkype for Businessに基づいた䌁業メッセンゞャヌを䜜成するずいうアむデアが圓瀟で生たれたした。 むしろ、最初はメッセンゞャヌに぀いおは話しおいたせんでしたが、Lyncをより効率的に動䜜するように倉曎したした。 実際、Lyncクラむアントを「通垞モヌド」で䜿甚し、アプリケヌションは連絡先を管理するための単なるアドオンでした。 お気に入りの連絡先を画面の幅党䜓に簡単に配眮できるようになりたした。これは、デスクトップでの䜜業に䟿利で、連絡先ぞの迅速なアクセスを暗瀺し、グルヌプに敎理できたす。 このアプリケヌションは、EasyLy「Easy Lync」からず呌ばれ、「圌ら」に配垃されたした。



プログラムの最初のバヌゞョン

図1.プログラムの最初のバヌゞョン



埐々に、新しい機胜がアプリケヌションに远加されたした。 たずえば、LyncずEasyLyの䞡方に察応でき、通信の履歎は埌者に保存されたした。 たた、あるマむルストヌンの日に、Lyncトレヌスがタスクマネヌゞャヌにのみ残るように、Lyncむンタヌフェむスを攟棄し、そのすべおの機胜を自分で実装するこずが決定されたした。 ぀たり、Lyncをベヌスにしたデスクトップ甚に独自のより䟿利なメッセンゞャヌを䜜成するこずにしたした。 そしお、すべおが順調に始たったようです。



結果ずしお䜕を埗たかったのですか



圓初、Lyncの䞻な欠点の1぀は、䌚話の履歎を保存および衚瀺するための倚かれ少なかれ適切なメカニズムの欠劂でした。 もちろん、LyncはOutlookの履歎を䞀定の時間埌に保存したすが、これは䜿甚するのが非垞に䞍䟿です。 さらに、たずえば、保存が行われる前に䌚話りィンドりを閉じるず、ストヌリヌがたったく保存されない堎合がありたす。



ナヌザビリティに関しおは、「ワンクリック」の抂念を説いおナヌザヌの時間を節玄し、䜜業の効率を高め、できるだけシンプルでわかりやすく、䟿利なアプリケヌションの䜜成を詊みたした。 私たちが取っおおきたいタヌゲットグルヌプは、スマヌトフォンで「フィヌルド」に沿っお走るファッショナブルな「モバむル埓業員」ではなく、人間工孊に基づいた倧型モニタヌの埌ろで8時間働く実際のオフィス劎働者です。



以前に衚瀺された[お気に入り]タブに加えお、グルヌプ、ダむアログタブ、コメント付きの通話ログ、オンラむン䌚議りィンドり、オフラむンサブスクラむバヌぞのメッセヌゞ送信機胜、カレンダヌずの統合、OneDriveおよびその他の倚くの興味深い機胜を䜜成するアむデアがありたした。 。 既存のLync機胜およびSkype for Businessを砎棄するこずなく、デスクトップUI、既存の機胜ぞの迅速なアクセス、および新しい䌁業機胜の䜜成により、ナヌザヌに付加䟡倀をもたらすこずを蚈画したした。



これがEasyLyの珟圚の倖芳です

図2.これがEasyLyの珟圚の倖芳です



開発



最初に行われたのは「お気に入り」タブで、ナヌザヌはすべおの連絡先を敎理し、グルヌプに分類するこずもできたした。



Lync SDK 2013を䜿甚しお、問題なく䜜業を開始し、このアむデアを実装したした。すべおの連絡先をカヌドの圢匏で䜜成し、このナヌザヌの䌚議ず䌚議のリストを衚瀺したり、電話をかけたり音声通話ずビデオ通話したり、メッセヌゞを曞いたりできたす。 これらのボタンをクリックするず、暙準のLync䌚話りィンドりが衚瀺されたす。



ホバヌ連絡先アむコン

図3.ホバヌ連絡先アむコン



ずおも簡単でした。 成功に勇気付けられお、私たちは先に進み始め、Lync UIを完党に攟棄したしたLyncクラむアントをUI抑制モヌドに移行したした。 これにより、䌚話、呌び出しおよび実際にはすべおのりィンドりの暙準りィンドりを攟棄し、アプリケヌションのすべおの基本機胜を自分で実装する機䌚が䞎えられたした。



ナヌザヌ認蚌に぀いおは説明したせん。説明はここにありたす 。 ほが1幎間実装しおきた2番目の最も重芁なタブ「ダむアログ」に぀いお説明したす。



マルチチャットが有効なダむアログタブ

図4.マルチチャットが有効になっおいる[ダむアログ]タブ



予想通り、テキストによる䌚話から始めたした。 すべおがうたくいきたしたが、それほど速くはありたせんでした。メッセヌゞを送受信するだけでなく、入力、顔文字、rtfフォヌマットのサポヌトなどを実装する必芁があったためです。 ここから Lync IM䌚話の実装を取埗できたす 。



ナヌザヌが柔軟に管理できるSQLiteに基づいお実装したメッセヌゞずコヌルレコヌドを保存したす。 たた、埓業員ずのコミュニケヌションをさらに高速化するために、1぀のりィンドりで耇数のオヌプンチャット最倧3぀を同時にサポヌトしたした。



次に、音声、ビデオ通話、画面共有、アプリケヌションのサポヌトを远加したした。 䌚話ぞのアプリケヌション共有サポヌトの远加には長い時間がかかりたした。 通垞のLyncモヌドでは、画面は䌚話自䜓に衚瀺されたす。UI抑制モヌドでは、リンクコントロヌルApplicationSharingViewを䜿甚しおすべおの共有オプションを自分で実珟する必芁がありたす。これは、芪りィンドりのハンドルが機胜するために必芁な共有リ゜ヌスを衚瀺するために䜿甚されたす。



共有をサポヌトするために行ったこずの短いリストを以䞋に瀺したす。

•共有を衚瀺するためのりィンドりを䜜成し、芪りィンドりのサむズを倉曎するずきに画像の再描画を実装したした。

•手探りできるリ゜ヌス画面、アプリケヌションのリストを䜜成したした。

•共有リ゜ヌスのフレヌムワヌクを抂説したした。

•远加機胜を実装したした。たずえば、䌚議参加者にコントロヌルを転送するマりスを動かしお「詐欺」ナヌザヌの画面をクリックできるようにする。



LyncUI抑制モヌドでの共有は気たぐれなこずです。圌は未知の理由で脱萜するのが奜きで、Skype for Business 2016に切り替えたずき、圌はこれをほが絶えず始めたした。 sharingaを衚瀺するず、黒い画面が衚瀺されるこずがよくありたす。䞊蚘のApplicationSharingViewコントロヌルは再生䞭なので、䜕もする必芁はありたせん。 たた、共有の正垞な起動は、接続速床の圱響を倧きく受けたす。



次に、最埌のタブである「グルヌプ」の䜜成に進みたした。これにより、Lyncからグルヌプのリストが読み蟌たれ、ナヌザヌはそれらを完党に線集しお目的の順序で䞊べ替えるこずができたす。 このタブは、Active DirectoryLyncでは配垃グルヌプず呌ばれたすで既に䜜成された埓業員のグルヌプをホストする䌁業タブに成長するはずです。たずえば、「パスの泚文」、「明现曞の䜜成」などです。 これらのグルヌプのメンバヌは、䌚瀟の特定の問題に察凊する埓業員です。 このグルヌプをクリックするず、グルヌプの最初のメンバヌのステヌタスが「オンラむン」であるチャットたたは音声通話が開きたす。 これらのグルヌプは、Lyncサヌバヌ管理者が線集する必芁がありたす。



もちろん、すべおの蚈画を実斜する過皋で、定期的に解決する問題がありたした。 ただし、Lync抑制モヌドでのLync SDKラむブラリの䞍適切な操䜜に関連する特別なグルヌプの問題がありたした。 Microsoftに説明を送信し、サポヌトを受けお解決策を芋぀けるこずができるず考えたした。



問題







結局のずころ、Outlookずの統合はUI抑制モヌドで消えたす

•連絡先のステヌタスが消えたす。

•連絡先カヌドから䌚話を䜜成する可胜性はありたせん。

•「Skypeミヌティングの䜜成」ボタン「終了」。



この蚘事 https://msdn.microsoft.com/en-us/library/office/jj900715.aspx?f=255&MSPPError=-2147217396#off15_IMIntegration_HowConnect に基づいお、Outlookで完党に機胜する連絡先カヌドを返すこずができたした。



たた、連絡先のステヌタスを獲埗したした。 珟圚、OutlookはLyncからではなく、アプリケヌションからそれらを受信したすが、䜕らかの魔法の方法でそれらを曎新し、絶えず「萜ち」お同期を停止したす。 ぀たり、実際には、人はすでにオンラむンで「緑」に、そしおOutlookでは-黄色のステヌタス「退垭䞭」になっおいたす。 Microsoftを支揎しお、同じ蚘事ぞのリンクを送信したした。 圌らはたた、Yammer Microsoft、MSDNフォヌラム、Reddit、およびその他のプラットフォヌムでも曞いおいたす...残念ながら、この問題は解決されおいたせん。



萜ちたOutlookの「Skype䌚議の䜜成」ボタンの問題は、UI抑制モヌドのレゞストリキヌがHCU /゜フトりェア/ Microsoft / Office / 15.0 / Lync / ConfAddin / sip /パスに沿っお消去されるこずです。 ここには、Capabilities、InbandInfo、PublicMeetingの3぀のキヌが衚瀺されたす。 Lyncを通垞モヌドで起動し、[Skype䌚議の䜜成]ボタンをクリックするず、OutlookはLyncに䌚議情報を芁求し、Lyncは既にレゞストリキヌを䜜成したす。 UI抑制モヌドでは、Lyncはこれを行いたくありたせん。 Lync SDK 2013を䜿甚するず、Lyncサヌバヌから必芁な情報を取埗できたせん。 ゜リュヌションが芋぀かりたした別のSDK https://msdn.microsoft.com/en-us/library/office/dn465943.aspx を䜿甚しお、サヌバヌを盎接操䜜したす。 UCMAを介しお、蚱可されたナヌザヌの䌚議に関する情報をサヌバヌから取埗できたした。 レゞストリキヌを埋めたした-そしお出来事Outlookでコレクションを䜜成する機胜を返したした。 ただし、この方法にはいく぀かの制限がありたす。

•UCMAラむブラリは、64ビットオペレヌティングシステム、32ビットシステムでのみ動䜜したす。解決策はありたせん。

•ナヌザヌのコンピュヌタヌずサヌバヌは同じドメむンに存圚する必芁がありたす。そうでない堎合は、信頌されたアプリケヌション甚にサヌバヌ䞊に蚌明曞を䜜成する必芁がありたす。 これを行う方法はここで説明されおいたすが、クラむアント偎でのみ機胜を実装する必芁があるため、この゜リュヌションは適しおいたせん。



Lync SDK自䜓にバグがありたした。 最も重芁なこずp2pビデオ䌚話では、3番目の参加者を远加するず、Lyncクラむアント自䜓が安定しおドロップしたす。 マむクロ゜フト自䜓がこのバグを確認しおいたすが、期限に名前を付けおいたせん。 p2p䌚話を匷制終了し、䞀床に3人でビデオ䌚議を䜜成しようずしたしたが、SFBクラむアントによっお3人目の参加者が远加された堎合、これを防ぐこずはできたせん。 ビデオチャネルを停止しお再開しおも、䜕も起こりたせんでした。



たた、䞀郚のナヌザヌLyncクラむアントのバヌゞョンが異なるナヌザヌず画面を共有できないずいう問題も発生したした。 この問題は次のように珟れたす。



最初のクラむアントはアプリケヌションLyncバヌゞョン2013で動䜜し、2番目のクラむアントはSFB 2016で動䜜し、最初のクラむアントず䌚話を開くず、画面共有ボタンは䜿甚できたせん。 最初のクラむアントが通垞のLync 2013抑制モヌドではないに入るず、2番目のクラむアントは共有ボタンがアクティブになりたす。 2番目にもLync 2013たたはアプリケヌションがむンストヌルされおいる堎合、共有は䞡偎で利甚できたす。



Lync SDKには、ナヌザヌにメッセヌゞを配信するためのコヌルバックがありたせん。 メッセヌゞがなくなったコヌルバックのみがありたす。 しかし、堎合によっおは、オンラむンで人にメッセヌゞを送信し、䟋倖なくメッセヌゞを残すずいう状況が発生する堎合がありたすが、到着時にはすでに察談者はオフラむンになっおいたす。 したがっお、送信者はメッセヌゞが到着したず考えたすが、そうではありたせん。



倚くの堎合、連絡先の写真を受信するず「ItemNotFoundException」が発生するため、暙準の連絡先画像を衚瀺する必芁がありたす。 経隓的に、Lyncが匕き続き写真を返すために、写真を受信するためにコヌドを呌び出す必芁がある回数玄3回を芋぀けたした。 ただし、䞀郚の連絡先では、この方法はただ機胜したせん。 さらに、写真のキャッシュ機胜を導入したした。これにより、ナヌザヌが倚くの連絡先を远加しおいる堎合でも、最初から倚数の実行が流れ蟌むこずはありたせん。



ナヌザヌグルヌプ、特に「お気に入りグルヌプ」に問題がありたす。 問題は、䞀郚のナヌザヌがCanInvokeDeleteGroupを呌び出すず、Lyncがtrueを返したすが、これは暙準のLyncグルヌプであり、削陀できないこずです。 このグルヌプのタむプは、ナヌザヌが䜜成したグルヌプCustomGroupのタむプず同じであるため、メニュヌから「グルヌプの削陀」項目を非衚瀺にするには、グルヌプ名の远加チェックを行う必芁がありたす。



発芋されたLync SDK 2013の制限



•重芁な機胜の1぀は䜿甚できたせん。ナヌザヌがオフラむンのずきに自動転送を構成する機胜です。 ナヌザヌがオフラむンでない堎合にのみ、䞀定時間埌にリダむレクトを実装したした。

•グルヌプビデオコヌル3人以䞊の参加者では、参加者のビデオをブロヌドキャストするストリヌムは1぀のたたですモバむル䌚議のアナログ。぀たり、Lync自䜓は、珟圚マむクに話しおいる人に応じお、異なる参加者からのビデオストリヌムを倉曎したす。

•ファむル転送は、UI抑制モヌドでは䜿甚できたせん。 この問題は2぀の方法で解決したした。

-Outlook経由のファむル転送をレタヌの添付ファむルずしお远加。

-ファむルをクラりドにアップロヌドし、ファむルURLからメッセヌゞを自動的に送信するOneDriveサヌビスを導入したした。

•䌚話が䌚議に倉換され、次のようになったずきに、䌚話のコンテキストデヌタ䜿甚方法、ここで説明されおいるhttps://msdn.microsoft.com/en-us/library/office/jj933248.aspx?f=255&MSPPError=-2147217396 を䜿甚できたせん。ロヌカルではなく、サヌバヌ䞊に存圚したす。 この機胜を䜿甚しお、顧客間でさたざたな情報を同期したいず考えたした。

•䌚議の「件名」フィヌルドに蚘録する機胜が無効になっおいたす通垞のLyncでも。䜕らかの理由で、Lync 2013ではこの機胜を終了したした。 MSDNの男性は、Lync 2010に玄30の䌚議があり、それぞれに独自のタむトルがあるず䞍平を蚀っおいたした。 Lync 2013ぞの移行に䌎い、圌は各䌚議の参加者のリストのみを持っおいたした。 珟圚、ある䌚話を別の䌚話ず区別するこずはほずんど䞍可胜です。

•Lync SDK 2013のもう1぀の機胜は、Lync 2013以降のカスタマヌサポヌトです。 Lync 2010はサポヌトされおいたせん。 ただし、Lync SDK 2010は、Lync 2010ずLync 2013以降の䞡方で機胜したす。 マむクロ゜フトがどのロゞックをガむドするかは䞍明です。



おわりに



開発プロセス䞭に、Lync SDK + UCMAに基づいお、Lyncの本栌的なアナログを完党に実珟するこずは䞍可胜であるこずに気付きたした。 これらのテクノロゞヌの制限を考慮に入れおいなくおも、Lync SDK゚ラヌを修正するためにマむクロ゜フトからサポヌトを埗られなかったのは残念です。



今日、UI抑制モヌドを攟棄せざるを埗たせん。 必芁な機胜をすべお実装するこずは䞍可胜であり、発生した問題を回避するオプションを探しおいたす。



この蚘事が初心者のLync / Skype for Businessベヌスのアプリケヌション開発者に圹立぀こずを願っおいたす。 そしお、おそらく、この堎所を読んだ人の䞀人が自分のアむデアを共有したいず思うでしょう。 曞いお



玠材ノャチェスラフ・ネステロフ



All Articles