UserEndpoint在线显示给用户但无法调用 [英] UserEndpoint appears online to users but can't be called

查看:52
本文介绍了UserEndpoint在线显示给用户但无法调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个基于Lync 2013的应用程序:


  1. 连接到UserEndpoint(以下称为CallCenter)
  2. 重定向根据bla bla bla业务逻辑调用CallCenter。


有时,用户会在其标准Lync中看到CallCenter 2013客户端在线,但如果该用户尝试使用CallCenter启动IM呼叫,则用户会收到消息"我们无法发送此消息,因为呼叫中心不可用或已离线。"


我无法确定导致此问题的过程,但如果发生在一个用户身上,那么所有其他用户在尝试呼叫CallCenter时都会遇到同样的问题。我能够恢复CallCenter的唯一方法是重启我的应用程序
。然后,与CallCenter的定期互动会毫无问题地恢复。


如果CallCenter确实"不可用或离线",那么为什么它的状态显示为"在线"?是否需要经常更新/保持CallCenter的连接?



作为参考,我连接CallCenter,如下所示:

 UserEndpointSettings settings = new UserEndpointSettings(userURI,_ProxyHost,_ProxyPort); 
settings.AutomaticPresencePublicationEnabled = true;
settings.Presence.UserPresenceState = PresenceState.UserAvailable;

_userEndpoint = new UserEndpoint(_Platform.CollabPlatform,settings);
_userEndpoint.BeginEstablish(res =>
{
try
{
_userEndpoint.EndEstablish(res);
_userEndpoint.StateChanged + = new EventHandler< LocalEndpointStateChangedEventArgs>(_ userEndpoint_StateChanged);
}
catch(Exception ex)
{
LogError(ex,ErrorReference.EndpointEstablishFailed);
}
},null );

解决方案

用户端点容易受到导致Lync客户端断开连接的任何条件的影响,除非在端点转换为终止时处理重新连接逻辑,否则它不会自动重新连接。


不记录它的情况不可能说出确切的条件会触发它。


对于作为持久服务运行的东西,我强烈建议您作为受信任的应用程序端点的可信应用程序运行。


I have an Lync 2013-based application which:

  1. connects to a UserEndpoint (hereinafter CallCenter)
  2. redirects calls made to CallCenter according to bla bla bla business logic.

At times, a user will see CallCenter in their standard Lync 2013 Client as Online, but if that user attempts to start an IM call with CallCenter, the user receives the message "We couldn't send this message because CallCenter is unavailable or offline."

I haven't been able to identify the process that leads up to this, but if it's happened to one user, then all of the other users experience the same problem when attempting to call CallCenter. The only way I have been able to recover CallCenter has been to restart my application. Regular interaction with CallCenter then resumes without a problem.

If CallCenter is indeed "unavailable or offline", then why does it's Presence appear as "Online"? Is there a need to renew / keep CallCenter's connection alive every so often?

For reference, I connect CallCenter like so:

    UserEndpointSettings settings = new UserEndpointSettings(userURI, _ProxyHost, _ProxyPort);
    settings.AutomaticPresencePublicationEnabled = true;
    settings.Presence.UserPresenceState = PresenceState.UserAvailable;

    _userEndpoint = new UserEndpoint(_Platform.CollabPlatform, settings);
    _userEndpoint.BeginEstablish(res =>
    {
        try
        {
            _userEndpoint.EndEstablish(res);
            _userEndpoint.StateChanged += new EventHandler<LocalEndpointStateChangedEventArgs>(_userEndpoint_StateChanged);
        }
        catch (Exception ex)
        {
            LogError(ex, ErrorReference.EndpointEstablishFailed);
        }
    }, null);

解决方案

A user endpoint is susceptible to any kind of condition that would cause a Lync client to disconnect, except it won't automatically reconnect unless you handle reconnect logic when the endpoint transitions to terminated.

Without logging it's impossible to say what exact conditions trigger it.

For something running as a persistent service I highly recommend operating as a trusted application with trusted application endpoints.


这篇关于UserEndpoint在线显示给用户但无法调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆