Невозможно подключиться к Office Communication Server через API унифицированных коммуникаций.

StackOverflow https://stackoverflow.com/questions/1941786

  •  20-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь подключиться к Office Communication Server с помощью управляемого API унифицированных коммуникаций.Я попробовал своего пользователя и нового пользователя, включенного для OCS.Обе учетные записи могут успешно войти в клиент Office Communicator, но не могут использовать API.Если при создании сетевых учетных данных я передаю имя пользователя в форме домен\имя пользователя, я получаю эту ошибку:

SupportedAuthenticationProtocols=Ntlm, Kerberos
Realm=SIP Communications Service
FailureReason=InvalidCredentials
ErrorCode=-2146893044
Microsoft.Rtc.Signaling.AuthenticationException: The log on was denied. Check that the proper credentials are being used and the account is active. ---> Microsoft.Rtc.Internal.Sip.AuthException: NegotiateSecurityAssociation failed, error: - 2146893044

Если я оставлю домен в имени пользователя, возникнет ошибка:

ResponseCode=404 ResponseText=Not Found
DiagnosticInformation=ErrorCode=4005,Source=OCS.mydomain.com,Reason=Destination URI either not enabled for SIP or does not exist
Это было полезно?

Решение

Оказывается, это была моя оплошность.Наш домен AD и домен коммуникатора разные, я предполагал, что они одинаковы.

Сетевые учетные данные — домен\имя пользователя, а sip-адрес должен был быть sip:username@companyname.com, я использовал sip:username@domain.com.

Другие советы

Две вещи, на которые следует обратить внимание:

  1. Имя пользователя не должно содержать домен.Должно быть отдельное свойство Domain NetworkCredential, которое вы должны использовать.
  2. Вам также необходимо передать URI пользователя, например:

//Initialize and register the endpoint, using the credentials of the user the application will be acting as.
        UserEndpointSettings userEndpointSettings = new UserEndpointSettings(_userURI, _userServer);
        userEndpointSettings.Credential = _credential;
        _userEndpoint = new UserEndpoint(_collabPlatform, userEndpointSettings);
        _userEndpoint.BeginEstablish(EndEndpointEstablish, _userEndpoint);

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top