这节来简单说明下自定义客户端的开发方法。

 

首先我们打开Lync SDK的以下Sample:

SignInUISuppressionMode

进入目录后,可以发现EnableUISuppressionMode.reg这个注册表文件。

Lync开发实例3—自定义客户端_lync

 

打开发现是往注册表导入以下信息。

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Lync]
"UISuppressionMode"=dword:00000001

这个其实就是Lync所谓UI抑制模式的开关。

什么是抑制模式?简单来说其实就是让Lync客户端服务在后台运行,但不显示在前端。

这样就可以按照我们自己的需要来进行自定义客户端了。

 

现在直接编译下这个sample

Lync开发实例3—自定义客户端_lync_02

这个其实就是个可供我们自定义的最朴素的Lync登录客户端,这里可以看到UI抑制模式已经开启。

 

输入测试账号后,点击初始化并登录。

Lync开发实例3—自定义客户端_lync_03

从状态中已经可以看到lynctest1已经登录完成。

 

也可以从其他客户端来验证登录情况。

Lync开发实例3—自定义客户端_lync_04

 

最后界面自定义就要靠Lync的SDK了。

Lync开发实例3—自定义客户端_lync_05

登录相关的几个关键函数

1lyncClient.BeginInitialize(InitializeCallback, null);

InitializeCallback:初始化回调函数,在此委托函数中我们要自定义lync的初始化事件。一般在此回调函数中都要包括LyncClient.EndInitialize(IAsyncResult asyncResult) 系统函数,来结束初始化。

2.  lyncClient.BeginSignIn(userUri,domainAndUsername, password, SignInCallback, null)

1userUriSIP,例如“sip:lynctest1@consoto.com”

2domainAndUsernameUPN,例如:lynctest1@consoto.com,一般情况下,userUridomainAndUsername除了前缀“sip”之外,其他的都是一致的。

3)password :登录密码。

4SignInCallback:异步回调委托函数,在此委托函数中我们要自定义用户登录成功后的处理事件。一般在此回调函数中都要包括LyncClient .EndSignIn (IAsyncResult asyncResult)系统函数,来处理登录后的状态。

3. lyncClient.StateChanged:登录状态改变事件句柄;

4. lyncClient.CredentialRequested:登录状态改变事件句柄;

5. lyncClient.SignInDelayed:当在登录及自动唤醒产生延迟时的处理事件句柄