Contenu

Introduction

Conditions préalables

Conditions requises

Components Used

Problème

Cause première

Versions affectées

Requêtes CLI pour vérification

Solution

Introduction

Ce document décrit les effets des caractères de contrôle sur Cisco Unity Connection (CUC) lorsqu'ils sont présents dans la ligne d'objet d'un message vocal.

Conditions préalables

Conditions requises

Cisco vous recommande de connaître le CUC.

Components Used

Les informations de ce document sont basées sur les versions CUC 8.X et ultérieures.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.

Problème

La présence de caractères de contrôle dans la ligne d'objet ou l'en-tête Nom d'affichage de l'expéditeur d'un message interrompt les tentatives du CUC de synchroniser les messages avec Microsoft Exchange Server. Certains téléphones hérités envoient ^A comme premier caractère de l'en-tête Nom d'affichage de l'expéditeur au serveur CUC afin de créer une action de message vocal. Le serveur CUC brouille l'en-tête d'objet à partir de l'en-tête Nom d'affichage de l'expéditeur, de sorte qu'il contient également le caractère ^A. Cela casse le flux de messagerie unifiée.

Note: Ce problème est documenté dans l'ID de bogue Cisco CSCur53311.

Cause première

La réponse à la demande du service Web Exchange (EWS) est utilisée afin de synchroniser les messages vocaux entre votre boîte aux lettres CUC et Microsoft Exchange Server. Lorsque le CUC synchronise le message vocal qui contient le caractère ^A vers le serveur Exchange, il envoie une ligne d'objet avec le même caractère et le message est enregistré avec succès dans la boîte aux lettres Exchange. Le CUC utilise la demande CreateItem EWS afin de créer le message vocal sur le serveur Exchange.

Lorsque le CUC tente de rechercher des éléments via la demande FindItem EWS dans la boîte aux lettres Exchange pour n'importe quel utilisateur (dans ce cas, des éléments tels que les messages vocaux avec une ligne d'objet qui contient le caractère ^A), Exchange Server répond avec le début de l'en-tête (SOH) comme contenu d'objet (hexadécimal 01 &#x1 ; ).

CUC utilise l'analyseur SAX (Simple API for XML) afin d'analyser le XML de réponse EWS. L'analyseur SAX analyse XML avec la grammaire définie dans XML Version 1.0 (la version prise en charge par CUC). Le contenu SOH est un caractère XML 1.0 non valide. Lorsque l'analyseur SAX XML tente d'analyser les caractères de contrôle, il échoue avec une erreur irrécupérable et la tentative de synchronisation ne se poursuit pas pour le reste des messages de la boîte aux lettres.

Versions affectées

Toutes les versions CUC antérieures à la version 10.x n'ont pas de correctif pour l'ID de bogue Cisco CSCur53311.

Requêtes CLI pour vérification

Afin de rechercher des caractères de contrôle dans l'en-tête Nom d'affichage de l'expéditeur ou dans la ligne d'objet, vous pouvez utiliser ces requêtes CLI :

- Entrez cette commande dans la CLI afin d'obtenir le nombre total de messages affectés :

run cuc dbquery unitymbxdb1 select count(*) from vw_mailbox as mb, vw_message as m

where mb.mailboxobjectid = m.mailboxobjectid AND left(m.senderdisplayname,1)=CHR(1)
Cette requête recherche le premier caractère dans l'en-tête Nom d'affichage de l'expéditeur et vérifie s'il s'agit d'un caractère SOH.

- Entrez cette commande dans l'interface de ligne de commande afin de vérifier si le caractère SOH se trouve à n'importe quelle position de la ligne d'objet du message :

run cuc dbquery unitymbxdb1 select count(*) from vw_message where instr

(subject,CHR(1),1)!=0

Astuce : Vous pouvez modifier ces requêtes afin de rechercher d'autres caractères de contrôle ou des caractères standard. Remplacez la valeur dans CHR() par la valeur appropriée. Consultez la table des codes ASCII  pour plus d'informations.

Solution

Le défaut décrit dans l'ID de bogue Cisco CSCur53311 est corrigé dans CUC Version 10.5(2). Cette version peut être téléchargée à partir de la page Web de téléchargement de logiciels Cisco.

Effectuez les étapes suivantes pour une correction temporaire :

1. Assurez-vous qu'aucun message n'est envoyé au serveur CUC avec ^A dans la ligne d'objet.

2. Entrez cette commande dans la CLI afin d'obtenir une liste des utilisateurs concernés, puis désactivez la fonction Boîte de réception unique pour eux :

run cuc dbquery unitymbxdb1 Select description from vw_mailbox mb inner join

vw_message m on mb.mailboxobjectid = m.mailboxobjectid where instr(subject,

CHR(1),1)!=0

3. Supprimer manuellement les messages vocaux identifiés :

- Entrez cette commande dans l'interface de ligne de commande afin d'obtenir l'ID de l'objet de message et l'ID de l'objet de dossier des messages affectés :

run cuc dbquery unitymbxdb1 Select messageobjectid, folderobjectid from

vw_messagewithsynch where instr(subject,CHR(1),1)!=0

- Entrez cette commande dans l'interface de ligne de commande afin d'exécuter la procédure stockée csp_messagesdelete et de supprimer le message vocal sur le serveur CUC :

run cuc dbquery unitymbxdb1 execute procedure csp_messagesdelete

(pFolderObjectId='db252856-0c1a-4b19-a476-7ee4f7bc4298', pMessages=

'5d6cfc0e-17cb-4849-b193-e1435a816ad7', pNummessages=1)

4. Identifiez ces messages sur le serveur Exchange à l'aide d'un administrateur Exchange et supprimez-les. Entrez cette commande dans la CLI (avant que les messages ne soient supprimés dans le CUC) :

run cuc dbquery unitymbxdb1 Select sender, senderdisplayname, subject, creationtime,

rfc822messageid from vw_message where instr(subject,CHR(1),1)!=0

Note: La partie rfc822messageid est utilisée afin de mapper les messages affectés dans la boîte aux lettres CUC aux messages de la boîte aux lettres Exchange Server.

5. Activez Unified Messaging après la suppression de tous les messages affectés des serveurs CUC et Exchange.