短 観(概要)―2015年3月― - Bank of Japan短 観(概要)―2015年3月― 第164回 全国企業短期経済観測調査 2015年4月1日 ... 業務用機械 17 22 19
Lync Client 開発概観
-
Upload
manato-kameya -
Category
Documents
-
view
4.214 -
download
0
Transcript of Lync Client 開発概観
![Page 1: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/1.jpg)
Lync Client 開発概観2012/09/29 RIA アーキテクチャ研究会 #4
亀谷 学人 (@Grabacr07)
![Page 2: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/2.jpg)
Link ? LINQ ? いいえ、 Lync
ユニファイド コミュニケーション プラットフォーム
◦ Microsoft Lync 2010
◦ Microsoft Lync 2013 Preview
みなさん、 使っていますか?
Lync のお話です
2
![Page 3: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/3.jpg)
Agenda
Lync Client 開発概観
What’s Lync ? Lync Client SDK
Lync 2013 SDK Conclusion
3
![Page 4: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/4.jpg)
Microsoft Lync 2013 Preview
◦ プレビュー版に関する話題が含まれます
◦ 正式リリース時には変更される可能性があります
4
![Page 5: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/5.jpg)
亀谷 学人 ( かめや まなと )
某メーカー系 SIer 勤務
◦ C# / WPF クライアント アプリケーション開発
◦ Microsoft Lync 2010 連携ソリューション
◦ # 定時退社マン
Blog:http://grabacr.net/
Twitter: @Grabacr07
自己紹介
(23 時 )
5
![Page 6: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/6.jpg)
Agenda
Lync Client 開発概観
6
What’s Lync ? Lync Client SDK
Lync 2013 SDK Conclusion
![Page 7: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/7.jpg)
Lync = Link + Sync
いつでも、どこからでも、人と人をつなぐ新しい方法
◦ Microsoft Office Communicator 2007
◦ Microsoft Lync 2010
◦ Microsoft Lync 2013 Preview
What’s Lync ?
7
つなぐ 同期する
Microsoft
![Page 8: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/8.jpg)
プレゼンス情報
ユニファイド コミュニケーション
8
What’s Lync ?
IM ( チャット )音声 / ビデオ / 外線通話オンライン会議
Outlook 連絡先統合ユーザーの検索スキル検索 (SharePoint 連携 )
![Page 9: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/9.jpg)
Conversation Window
9
What’s Lync ?
Lync 2010 Lync 2013 Preview
![Page 10: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/10.jpg)
Conversation Window
10
What’s Lync ?
音声通話をしながらデスクトップやアプリケーションを共有
![Page 11: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/11.jpg)
インスタント メッセージング / プレゼンス
音声 / ビデオ / オンライン会議
エンタープライズ ボイス(PBX 連携 / 代替、 VoIP 外線通話 )
What’s Lync ?
11
![Page 12: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/12.jpg)
What’s Lync ?
12
Microsoft Lync 2013 Preview
Demonstration
![Page 13: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/13.jpg)
Agenda
Lync Client 開発概観
What’s Lync ? Lync Client SDK
Lync 2013 SDK Conclusion
13
![Page 14: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/14.jpg)
Lync 開発概観
14
Lync Client
Lync 2010 SDKLync 2013 SDK Preview
Lync ServerLync Server 2010 SDK
Lync Server 2013 Persistent Chat Server SDK (Preview)
UCMA ServerUnified Communications Managed API
3.0Unified Communications Managed API
4.0
![Page 15: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/15.jpg)
Microsoft Lync 2010 SDKhttp://www.microsoft.com/en-us/download/details.aspx?id=30350
◦ Visual Studio 2008 SP1 / 2010
◦ .NET Framework 3.5 / 4.0
◦ Silverlight 4.0 runtimeMicrosoft Silverlight 4 Tools for Visual Studio 2010
Lync 2010 SDK
15
![Page 16: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/16.jpg)
1. アプリケーションに Lync 連携機能を追加
2. Lync クライアントを自分で構築
3. Lync クライアント内にカスタム機能を追加
Lync クライアント 開発スタイル
16
![Page 17: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/17.jpg)
1. アプリケーションに Lync 連携機能を追加
2. Lync クライアントを自分で構築
3. Lync クライアント内にカスタム機能を追加
Lync クライアント 開発スタイル
17
![Page 18: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/18.jpg)
Lync Extensibility API
◦ Microsoft.Lync.Model.Extensibility 名前空間
◦ Automation クラス
Conversation の開始(Modality: IM, Audio, Video, File transfer, app sharing)
Conference への参加
Contact 追加ウィザード
◦ Lync Client の起動が前提
Lync クライアント 開発スタイル (1)
アプリケーションに Lync 連携機能
18
![Page 19: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/19.jpg)
Automation クラス
19
Automation classBeginStartConversation method
Demonstration
![Page 20: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/20.jpg)
Lync Controls
◦ Microsoft.Lync.Controls 名前空間
◦ WPF / Silverlight で使える Lync コントロール群
Lync クライアント 開発スタイル (1)
アプリケーションに Lync 連携機能
20
<lync:PresenceIndicator x:Name="Presence" Source="sip:[email protected]" HoverAction="ShowContactBrief" PhotoDisplayMode="Large" />
<TextBlock Text="{Binding DisplayName, ElementName=Presence}" Margin="4,0,0,0" VerticalAlignment="Center" />
xmlns:lync="clr-namespace:Microsoft.Lync.Controls;assembly=Microsoft.Lync.Controls"
![Page 21: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/21.jpg)
Lync Controls
21
Lync Controls Sample
Demonstration
![Page 22: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/22.jpg)
Lync クライアントに対する操作
◦ Lync へのサイン イン / サイン アウト
◦ ユーザーの検索
◦ ユーザーの ( コンタクト リストへの ) 追加 / 移動 / 削除
会議に対する操作
◦ メッセージの送受信
◦ 音声会議の保留 / 再開 / 転送 など
Lync クライアント 開発スタイル (1)
アプリケーションに Lync 連携機能
22
![Page 23: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/23.jpg)
23
Object Model
Conversation
IDictionary<ModalityTypes, Modality>
InstantMessageModality class
ModalityTypes.InstantMessage
ModalityTypes.AudioVideo
AVModality class
Modalitiesproperty
IList<Participant>Participantsproperty
e.g.
BeginSendMessage method
InstantMessageReceived event
IsTyping property
e.g.
AudioChannel property
VideoChannel property
![Page 24: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/24.jpg)
Instant message の場合
24
Object Model
var imModality = conversation.Modalities[ModalityTypes.InstantMessage] as InstantMessageModality;
imModality.BeginSendMessage( " 会話を開始しました! ", ar => { var modality = ar.AsyncState as InstantMessageModality; modality.EndSendMessage(r); }, imModality);
![Page 25: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/25.jpg)
1. アプリケーションに Lync 連携機能を追加
2. Lync クライアントを自分で構築
3. Lync クライアント内にカスタム機能を追加
Lync クライアント 開発スタイル
25
![Page 26: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/26.jpg)
独自のコミュニケーション クライアントを実装
◦ Lync をベースに、でも Lync の UI は使いたくない?
UI Suppression Mode
◦ Lync クライアントの UI が表示されなくなる( プロセスは実行される )
◦ 設定方法はレジストリ( またはインストール オプション )
Lync クライアント 開発スタイル (2)
Lync クライアントを自分で構築
26
![Page 27: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/27.jpg)
どういうときに使うべき?
◦ Lync 2010 はレジストリの HKLM で設定
◦ 例 1: 会議室の据え置き PC 上 + ホワイトボード
◦ 例 2: 会社の受付 ( 無人 ) … 担当呼び出し用クライアント
◦ Lync 2013 (Preview) は以下に変更
Lync クライアント 開発スタイル (2)
UI Suppression Mode
[HKEY_LOCAL_MACHINE\Software\Microsoft\Communicator]"UISuppressionMode"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Lync]"UISuppressionMode"=dword:00000001
27
ユーザー単位の使い分け不可
![Page 28: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/28.jpg)
アプリケーションの起動と終了
◦ [ スタート ] メニューからは Lync が起動できなくなる
LyncClient.BeginInitialize メソッド
Lync クライアント 開発スタイル (2)
UI Suppression Mode
28
var lyncClient = LyncClient.GetClient();if (lyncClient.State == ClientState.Uninitialized){ lyncClient.BeginInitialize(ar => { var client = ar.AsyncState as LyncClient; client.EndInitialize(ar); }, lyncClient);}
![Page 29: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/29.jpg)
アプリケーションの起動と終了
◦ サイン イン、 Lync のシャットダウン等も API から
Lync クライアント 開発スタイル (2)
UI Suppression Mode
29
if (lyncClient.State != ClientState.SignedIn){ lyncClient.BeginSignIn( @"sip:[email protected]", @"grabacr07.local\patchouli", "password", ar => { var client = ar.AsyncState as LyncClient; client.EndSignIn(ar); }, lyncClient);} ※ サイン イン / サイン アウトの制御は
UI Suppression Mode でなくとも可能
![Page 30: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/30.jpg)
注意点いろいろ
◦ Automation クラスは使えない
◦ Lync Controls も使えない
◦ Lync クライアント連携アプリは起動できなくすべき
LyncClient.InSuppressedMode プロパティ
Lync クライアント 開発スタイル (2)
UI Suppression Mode
30
if (LyncClient.GetClient().InSuppressedMode){ MessageBox.Show( "Lync is configured for full user interface suppression"); return;}
![Page 31: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/31.jpg)
Lync クライアント 開発スタイル (2)
UI Suppression Mode
31
UI Suppression Mode
Demonstration
![Page 32: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/32.jpg)
1. アプリケーションに Lync 連携機能を追加
2. Lync クライアントを自分で構築
3. Lync クライアント内にカスタム機能を追加
Lync クライアント 開発スタイル
32
![Page 33: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/33.jpg)
CWE (Conversation Window Extension)
Lync クライアント 開発スタイル (3)
Lync クライアント内にカスタム機能
会話ウィンドウの右ペインでカスタム アプリケーションを提供
Lync の会話ウィンドウ
HTML ベースでホスト可能
ex) ・ Web サーバー・ 共有
フォルダー・
Windows Azure
33
![Page 34: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/34.jpg)
登録方法 1 … Install Registration
◦ 利用する PC でレジストリ登録が必要
◦ レジストリ登録しておけば、いつでも呼び出せる
Lync クライアント 開発スタイル (3)
Conversation Window 拡張
34
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Communicator\ContextPackages\{12345678-9ABC-DEF0-1234-56789ABC}]"Name"="Sample CWE Application 1""ExtensibilityWindowSize"=dword:00000001"ExternalURL"="http://grabacr.net/CWESample.html""InternalURL"="http://grabacr.net/CWESample.html"
ExtensibilityWindowSize0: 300 x 200 px1: 600 x 400 px2: 800 x 600 px
拡張機能の URL※ IE の信頼済みサイトに登録する必要があります
適当な GUIDを割り当て
![Page 35: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/35.jpg)
Lync クライアント 開発スタイル (3)
Conversation Window 拡張
35
Conversation Window ExtensionsInstall Registration
Demonstration
![Page 36: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/36.jpg)
登録方法 2 … Run-Time Registration
◦ 実行時にプログラムから拡張機能を登録
◦ ユーザーが Lync にサイン インしている間のみ
Lync クライアント 開発スタイル (3)
Conversation Window 拡張
36
var registration = LyncClient.GetClient().CreateApplicationRegistration( "{12345678-9ABC-DEF0-1234-56789ABC}", "Run-Time Registration Test");
registration.SetExtensibilityWindowProperties( "http://grabacr.net/profile", "http://grabacr.net/profile", ConversationWindowExtensionSize.Medium);
registration.AddRegistration();
![Page 37: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/37.jpg)
登録方法 1 … Install Registration
◦ レジストリ登録が必要 / いつでも使える
登録方法 2 … Run-Time Registration
◦ レジストリ登録が不要 / サイン インしている間のみ
いずれの場合も
会話するユーザー同士が事前に登録しておく
Lync クライアント 開発スタイル (3)
Conversation Window 拡張
38
![Page 38: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/38.jpg)
Agenda
Lync Client 開発概観
39
What’s Lync ? Lync Client SDK
Lync 2013 SDK Conclusion
![Page 39: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/39.jpg)
Microsoft Lync 2013 SDK (Preview)http://www.microsoft.com/en-us/download/details.aspx?id=30350
◦ Visual Studio 2010
◦ .NET Framework 4.0
◦ Silverlight 5.0Microsoft Silverlight 5 Tools for Visual Studio 2010 SP1
◦ Visual Studio 2012 + .NET Framework 4.5 でも動きました
Lync 2013 SDK
40
![Page 40: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/40.jpg)
41
Resource sharing
![Page 41: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/41.jpg)
リソース共有機能そのものは Lync 2010 から
◦ デスクトップ
◦ モニター
プライマリ
セカンダリ
etc…
◦ アプリケーション
42
Resource sharing
![Page 42: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/42.jpg)
( 発表者 )( 聴講者 )
Lync 2010 SDK では API 提供されず
Lync 2013 SDK (Preview) に API が追加
◦ Microsoft.Lync.Model.Conversation.Sharing 名前空間
◦ リソース共有の開始 / 停止デスクトップ / モニター / アプリケーション
◦ 制御権の 要求 / 解放、許可 / 拒否、譲渡 / 取消
43
Resource sharing
![Page 43: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/43.jpg)
IDictionary<ModalityTypes, Modality>IDictionary<ModalityTypes, Modality>
44
Object Model
Conversation
InstantMessageModality class
ModalityTypes.InstantMessage
ModalityTypes.AudioVideo
AVModality class
Modalitiesproperty
ModalityTypes.ApplicationSharing
ApplicationSharingModality class
e.g.
SharableResources property
BeginShareResource method
BeginRequestControl method
ControllerChanged event
![Page 44: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/44.jpg)
ApplicationSharingModality クラス
45
Resource sharing
var sharingModality = conversation.Modalities[ModalityTypes.ApplicationSharing] as ApplicationSharingModality;
appSharingModality.BeginShareResources( appSharingModality.ShareableResources[index], ar => { var modality = ar.AsyncState as ApplicationSharingModality; modality.EndShareResources(ar); }, appSharingModality);
SharingResourceList
共有可能なリソースのコレクション
ModalityTypes.ApplicationSharing
( 新規追加 )
![Page 45: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/45.jpg)
46
Resource sharing
Resource Sharing
Demonstration
![Page 46: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/46.jpg)
Meeting content management
◦ ホワイトボード
◦ PowerPoint ドキュメント
◦ 添付ファイル
Lync 2010 からの機能
◦ Lync 2013 SDK (Preview) で API 追加
◦ Microsoft.Lync.Model.Conversation.Sharing 名前空間
47
Other additional API
![Page 47: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/47.jpg)
Conversation
通常の使い方
◦ ユーザーがユーザーを呼び出し
常設チャットルーム機能
◦ Persistent Chat API
Microsoft.Lync.Model.Room名前空間
48
Other additional API
Hello!Instant message
!
Room
・ What do you …・ I think …
![Page 48: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/48.jpg)
Lync Controls
◦ コントロールがすべて Lync 2010 のまま
ドキュメント
◦ “Microsoft Lync 15 SDK Help” が同梱 しかし…
中身は “ Microsoft Lync 2010 SDK Help” そのまま
Lync 2013 SDK (Preview) の注意点
49
![Page 49: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/49.jpg)
Agenda
Lync Client 開発概観
50
What’s Lync ? Lync Client SDK
Lync 2013 SDK Conclusion
![Page 50: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/50.jpg)
Lync = Link + Sync コミュニケーション手段を統合
( ユニファイド コミュニケーション )
◦ インスタント メッセージ
◦ 音声通話
◦ リソース共有 ( デスクトップ / モニター / アプリケーション )
51
Conclusion
![Page 51: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/51.jpg)
Lync Client 開発スタイル
◦ アプリケーションに Lync 連携機能を追加
Automation class, Lync Controls
◦ Lync クライアントを自分で構築
UI Suppression Mode
◦ Lync クライアント内にカスタム機能を追加
Conversation Window Extensions
52
Conclusion
![Page 52: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/52.jpg)
Lync 2013 SDK Preview
◦ Resource sharing
◦ Meeting content management
◦ Persistent Chat API
53
Conclusion
![Page 53: Lync Client 開発概観](https://reader033.fdocuments.net/reader033/viewer/2022061605/55518de0b4c90596028b5656/html5/thumbnails/53.jpg)
54