Невозможно подключиться к Office Communication Server через API унифицированных коммуникаций.
Вопрос
Я пытаюсь подключиться к 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.
Другие советы
Две вещи, на которые следует обратить внимание:
- Имя пользователя не должно содержать домен.Должно быть отдельное свойство Domain NetworkCredential, которое вы должны использовать.
- Вам также необходимо передать 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);