Voici des précisions sur les problèmes de publication via Apache des services Lync
Voir article précédent : https://unifiedit.wordpress.com/2013/10/18/lync-2013-apache-reverse-proxy/
Remerciement a J.Labalme et R.Pandaru pour leurs contributions
Les erreurs E2-2-5 et E2-3-33 que vous pouvez rencontrer ne sont pas strictement liées à cette problématique et elles peuvent apparaître aussi sous d’autres conditions.
Finalement, la solution proposée n’est possible qu’à partir de la version Apache 2.2.7 pour Apache. Apache rajoute l’en-tête Content-Type égal à text/plain seulement lorsqu’il ne voit pas d’en-tête Content-Type dans les messages qui n’ont pas de contenu (Content-Lenght 0). C’est le cas des messages 201, 204, 304 et peut être d’autres encore, cas où le client aurait enregistré l’information suivante dans son log : « Content-type not found in response from server. »
HttpHeader:Content-Length 0
Les messages qui incluent le content-type « application/vnd.microsoft.com.ucwa+xml » passent bien, donc ces lignes devront être modifiées :
the client is expecting an HTTP header to be returned with a Content-Type « application/vnd.microsoft.com.ucwa+xml » to be returned with the server response.
Since the UCWA MIME type is not a default registration on Apache the server instead reverts to its default behavior of sending text/plain for any content type it does not understand.
Voici quelques exemples d’erreurs associées à ce symptôme :
-
L’erreur E2-1-5 (0x22010005, E_ResponseUnknown) associées aux réponses qui un Content-Type text/plain inattendu par le client mobile.
INFO TRANSPORT TransportUtilityFunctions.cpp/925:<ReceivedResponse>
POST https://w15.contoso.com/ucwa/v1/applications/314048193589/communication/audioVideoSessions/14d68eaebcd749efb719bcc59a8f566a/renegotiations?operationId=3f79451c-1cf4-4eea-9580-b9b03bd6ac34
Request Id: 0x846a098
HttpHeader:Content-Length 0
HttpHeader:Content-Type text/plain
HttpHeader:Location /ucwa/v1/applications/314048193589/communication/audioVideoSessions/14d68eaebcd749efb719bcc59a8f566a/renegotiations/2
HttpHeader:Server Apache
HttpHeader:StatusCode 201
HttpHeader:X-Powered-By ASP.NET
</ReceivedResponse>
ERROR TRANSPORT TransportUtilityFunctions.cpp/1767:Accept-types (application/vnd.microsoft.com.ucwa+xml) not found in Content-Type response from server (text/plain). Not decoding.
ERROR APPLICATION CUcmpAudioVideoModality.cpp/9574:Received error = E_ResponseUnknown (E2-1-5) for request type = 3
ERROR APPLICATION CUcmpAudioVideoModality.cpp/9646:Recieved transport error = E_ResponseUnknown (E2-1-5) for renegotiation request, completing negotiation.
INFO UI CMUIUtil.mm/402:Mapping error code = 0x22010005, context = , type = 200
INFO UI CMUIUtil.mm/1680:Mapped error message is ‘Désolé… Nous ne parvenons pas à nous connecter au serveur. Si vous utilisez le Wi-Fi, ouvrez votre navigateur pour voir si vous avez une connexion. Autrement, désactivez toute connexion à un point d’accès ou à un autre appareil. Si le problème persiste, contactez votre fournisseur réseau.
L’erreur correspond à la copie d’écran suivante :

- L’erreur E2-2-5 (0x22020005, E_ConnectionTimeoutError) associée ici aux invitations A/V mais pouvant être rapportée aussi pour d’autres messages qui ne sont pas acceptés à cause de l’en-tête conflictuel.
ERROR UTILITIES CHttpConnection.cpp/517:Connection timedout for request (0x%u0x8490480) – notifying error E_ConnectionTimeoutError
INFO TRANSPORT CHttpRequestProcessor.cpp/173:Received response of request() with status = 0x22020005
INFO TRANSPORT CHttpRequestProcessor.cpp/201:Request resulted in E_ConnectionTimeoutError (E2-2-5). The retry counter is: 0
ERROR APPLICATION CUcmpAudioVideoModality.cpp/9574:Received error = E_ConnectionTimeoutError (E2-2-5) for request type = 3
ERROR APPLICATION CUcmpEntity.cpp/153:Suppressing alert for RequestType: 11, Server Url: https://w15.contoso.com/ucwa/v1/applications/314048193589/communication/audioVideoSessions/14d68eaebcd749efb719bcc59a8f566a/renegotiations/1/answer, Error: E_ConnectionTimeoutError (E2-2-5)
INFO APPLICATION CTransportRequestRetrialQueue.cpp/725:Response received for req. Generic-Request(0x846cca8): E_ConnectionTimeoutError (E2-2-5) (RemoteNetworkTemporaryError); Done with req.; Stopping resend timer
-
L’erreur E2-3-33 (0x22030033, E_ResourceConflict) associée à l’initiation des sessions, car les requêtes du client ne sont pas confirmées, conséquence des E2-2-5.
INFO APPLICATION CTransportRequestRetrialQueue.cpp/385:Submitting new req. POST-MakeMeAvailable(0x5a746a8)
POST https://w15.contoso.com/ucwa/v1/applications/314048193589/me/makeMeAvailable
INFO APPLICATION CTransportRequestRetrialQueue.cpp/725:Response received for req. POST-MakeMeAvailable(0x5a746a8): E_ConnectionTimeoutError (E2-2-5) (RemoteNetworkTemporaryError); (Re-)Queuing req.; Schedule retrial in 6sec.
INFO APPLICATION CTransportRequestRetrialQueue.cpp/581:Resubmitting req. POST-MakeMeAvailable(0x5a746a8)
INFO TRANSPORT TransportUtilityFunctions.cpp/925:<ReceivedResponse>
POST https://w15.contoso.com/ucwa/v1/applications/314048193589/me/makeMeAvailable
<?xml version= »1.0″ encoding= »utf-8″?>
<reason
xmlns:xsd = « http://www.w3.org/2001/XMLSchema«
xmlns:xsi = « http://www.w3.org/2001/XMLSchema-instance«
xmlns = « http://schemas.microsoft.com/rtc/2012/03/ucwa« >
<code>Conflict</code>
<subcode>AlreadyExists</subcode>
<message>Désolé… La ressource demandée existe déjà. Merci de patienter et de réessayer.</message>
<debugInfo/>
<parameters/>
</reason>
</ReceivedResponse>
INFO TRANSPORT CUcwaRequestBase.cpp/229:Got a failed status code in the http header. Error = E_ResourceConflict (E2-3-33), Request =
ERROR APPLICATION CUcwaAppSession.cpp/1845:Init-Session request failed with error E_ResourceConflict (E2-3-33)
INFO APPLICATION CAlertReporter.cpp/64:Alert received! Category 2, Type 300, level 0, error E_ResourceConflict (E2-3-33), context ‘handleUcwaAppSessionRequestError’, hasAction=false
INFO APPLICATION CTransportRequestRetrialQueue.cpp/725:Response received for req. POST-MakeMeAvailable(0x5a746a8): E_ResourceConflict (E2-3-33) (RemoteNetworkPermanentError); Done with req.; Stopping resend timer

