这节来简单说明下自定义客户端的开发方法。
首先我们打开Lync SDK的以下Sample:
SignInUISuppressionMode
进入目录后,可以发现EnableUISuppressionMode.reg这个注册表文件。
打开发现是往注册表导入以下信息。
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Lync] "UISuppressionMode"=dword:00000001
这个其实就是Lync所谓UI抑制模式的开关。
什么是抑制模式?简单来说其实就是让Lync客户端服务在后台运行,但不显示在前端。
这样就可以按照我们自己的需要来进行自定义客户端了。
现在直接编译下这个sample
这个其实就是个可供我们自定义的最朴素的Lync登录客户端,这里可以看到UI抑制模式已经开启。
输入测试账号后,点击初始化并登录。
从状态中已经可以看到lynctest1已经登录完成。
也可以从其他客户端来验证登录情况。
最后界面自定义就要靠Lync的SDK了。
登录相关的几个关键函数
1. lyncClient.BeginInitialize(InitializeCallback, null);
InitializeCallback:初始化回调函数,在此委托函数中我们要自定义lync的初始化事件。一般在此回调函数中都要包括LyncClient.EndInitialize(IAsyncResult asyncResult) 系统函数,来结束初始化。
2. lyncClient.BeginSignIn(userUri,domainAndUsername, password, SignInCallback, null)
1)userUri:SIP,例如“sip:lynctest1@consoto.com”
2)domainAndUsername:UPN,例如:“lynctest1@consoto.com”,一般情况下,userUri与domainAndUsername除了前缀“sip”之外,其他的都是一致的。
3)password :登录密码。
4)SignInCallback:异步回调委托函数,在此委托函数中我们要自定义用户登录成功后的处理事件。一般在此回调函数中都要包括LyncClient .EndSignIn (IAsyncResult asyncResult)系统函数,来处理登录后的状态。
3. lyncClient.StateChanged:登录状态改变事件句柄;
4. lyncClient.CredentialRequested:登录状态改变事件句柄;
5. lyncClient.SignInDelayed:当在登录及自动唤醒产生延迟时的处理事件句柄