Установите UserEndpoint без учетных данных в UCMA 4

Как я могу установить UserEndpoint без учетных данных? Я где-то читал, что это должно быть возможно, если Lync Server доверяет Application / ApplicationServer. Это так, но, похоже, не работает. Я всегда получаю исключение

Не найдено соответствующих учетных данных для области.

4 ответа

Решение

Первая настройка CollaborationPlatform с использованием ProvisionedApplicationPlatformSettings:

ProvisionedApplicationPlatformSettings settings = new ProvisionedApplicationPlatformSettings("UCMA 4", _appID);
CollaborationPlatform  _collabPlatform = new CollaborationPlatform(settings);
_collabPlatform.RegisterForApplicationEndpointSettings(this.Platform_ApplicationEndpointOwnerDiscovered);
// Initialize and start-up the platform.
_collabPlatform.BeginStartup(EndPlatformStartup, _collabPlatform);

Затем настройте конечную точку приложения в Platform_ApplicationEndpointOwnerDiscovered метод обратного вызова. затем, как только все будет сделано, вы можете вызвать этот метод и настроить UserEndpoint без учетных данных:

Use this method to create UserEndpoint
private UserEndpoint CreateUserEndpoint(CollaborationPlatform  _collabPlatform, String _SIP)
{
    try
    {
        UserEndpointSettings _settings = new UserEndpointSettings(_SIP, _serverFqdn);
        _settings.SupportedMimePartContentTypes = new ContentType[] { new ContentType("text/html"), new ContentType("text/plain") };
        _settings.AutomaticPresencePublicationEnabled = true;
        UserEndpoint _userEndpoint = new UserEndpoint(_collabPlatform, _settings);
        _userEndpoint.EndEstablish(_userEndpoint.BeginEstablish(null, null));

        return _userEndpoint;
    }
    catch (Exception exx)
    {
        Console.WriteLine("\n" + _SIP + "CreateUserEndpoint : " + exx);
        return null;
    }
}       

Источник

   userEndpointSettings = new UserEndpointSettings(_userURI, _serverFqdn);

            if (!_useSuppliedCredentials)
            {
                _credential = new System.Net.NetworkCredential(_userName, _userPassword, _userDomain);
                userEndpointSettings.Credential = _credential;
            }
            else
            {
                userEndpointSettings.Credential = System.Net.CredentialCache.DefaultNetworkCredentials;
            }

_userURI должен соответствовать текущему вошедшему в систему пользователю sip:user@blabla.com

Если вы хотите выдать себя за другого, вам нужна конечная точка приложения.

Используйте конечную точку приложения для создания объекта беседы и...

Conversation conversation = new Conversation(_appEndpoint); conversation.Impersonate("sip:something@something.com", "phoneUri, "Display Name");

Вы не уверены в том, что можете создать конечную точку пользователя без учетных данных, но вы точно можете выдать себя за нее в установленном диалоге, если это поможет.

Просто проверьте метод Impersonate в классе разговора.

Другие вопросы по тегам