No se puede conectar al servidor de comunicaciones de oficina a través de la API de comunicaciones unificadas

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

  •  20-09-2019
  •  | 
  •  

Pregunta

Estoy intentando conectar con Office Communication Server mediante las comunicaciones unificadas API administrada. He probado mi usuario y un usuario habilitado para OCS fresca. Tanto la cuenta puede iniciar sesión con éxito en el cliente de Office Communicator, pero no logran mediante la API. Al crear la credencial de red, si paso en el nombre de usuario con el formato dominio \ nombre de usuario, me sale este error:

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

Si dejo fuera del dominio en el nombre de usuario que este error:

ResponseCode=404 ResponseText=Not Found
DiagnosticInformation=ErrorCode=4005,Source=OCS.mydomain.com,Reason=Destination URI either not enabled for SIP or does not exist
¿Fue útil?

Solución

Resulta que este fue un descuido de mi parte. Nuestro dominio de AD y de dominio comunicador son diferentes, yo había asumido que eran los mismos.

La credencial de red es de dominio \ nombre de usuario y la dirección SIP debería haber sido sip: username@companyname.com, yo estaba usando SIP:. Username@domain.com

Otros consejos

Dos cosas a tener en cuenta:

  1. nombre de usuario no debe contener el dominio. Debe haber una separación de bienes de dominio de NetworkCredential que usted debe utilizar.
  2. También es necesario pasar en el usuario URI también - por ejemplo:

//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);

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top