Impossibile connettersi a Office Communication Server tramite Unified Communications API

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

  •  20-09-2019
  •  | 
  •  

Domanda

sto provando a connettersi a Office Communication Server utilizzando le API di Unified Communications Managed. Ho fatto del mio utente e un utente fresco abilitato per OCS. Entrambi account può accedere con successo nel client Office Communicator, ma non riescono utilizzando l'API. Quando si crea le credenziali di rete, se mi passate il nome utente nella forma dominio \ nomeutente, ottengo questo errore:

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

Se lascio fuori dal dominio del nome utente ho questo errore:

ResponseCode=404 ResponseText=Not Found
DiagnosticInformation=ErrorCode=4005,Source=OCS.mydomain.com,Reason=Destination URI either not enabled for SIP or does not exist
È stato utile?

Soluzione

Si scopre che questa è stata una svista da parte mia. Il nostro dominio AD e il dominio comunicatore sono diverse, avevo ipotizzato fossero la stessa cosa.

La credenziale di rete è di dominio \ nome utente e l'indirizzo SIP avrebbe dovuto essere sip: username@companyname.com, stavo usando sip:. Username@domain.com

Altri suggerimenti

Due cose da notare:

  1. Nome utente non deve contenere il dominio. Ci dovrebbe essere una proprietà separata di dominio NetworkCredential che si dovrebbe usare.
  2. È inoltre necessario passare l'utente URI, come pure - per esempio:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top