Kann nicht zu Office Communication Server durch Unified Communications API verbinden
Frage
Ich versuche, Office Communication Server mit dem Unified Communications Managed API zu verbinden. Ich habe meine Benutzer und einen neuen Benutzer für OCS aktiviert versucht. Beiden Konten können in das Office Communicator Client erfolgreich anmelden, aber nicht die API. Wenn die Netzwerk-Anmeldeinformationen erstellen, wenn ich in den Benutzernamen in der Form Domäne \ Benutzername übergeben, ich diesen Fehler:
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
Wenn ich die Domäne im Benutzernamen ich diesen Fehler lassen sich aus:
ResponseCode=404 ResponseText=Not Found
DiagnosticInformation=ErrorCode=4005,Source=OCS.mydomain.com,Reason=Destination URI either not enabled for SIP or does not exist
Lösung
Stellt sich heraus, das war ein Versehen meinerseits. Unser AD-Domäne und Kommunikator Domain unterschiedlich sind, hatte ich angenommen, sie waren die gleichen.
Das Netzwerk Credential ist Domäne \ Benutzername und die SIP-Adresse sollte sip gewesen: username@companyname.com, ich war mit sip:. Username@domain.com
Andere Tipps
Zwei Dinge zu beachten:
- Benutzername sollte nicht die Domäne enthält. Es sollte eine separate Domain Eigenschaft NetworkCredential sein, dass Sie verwenden sollen.
- Sie müssen sich auch in den Benutzer-URI passieren - zum Beispiel:
//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);