内容

概要

前提条件

要件

使用するコンポーネント

問題

根本原因

該当するバージョン

検証のための CLI のクエリー

解決方法

概要

このドキュメントでは、ボイス メッセージに件名行がある場合、制御文字が Cisco Unity Connection（CUC）に及ぼす影響について説明します。

前提条件

要件

CUC に関する基本的な知識があることが推奨されます。

使用するコンポーネント

このドキュメントの情報は、CUC バージョン 8.x 以降に基づくものです。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。

問題

メッセージの件名行または送信者表示名ヘッダーに制御文字が存在すると、CUCはメッセージをMicrosoft Exchange Serverと同期させようとします。従来の電話機では、ボイスメッセージアクションを作成するために、CUCサーバーに最初の文字として^Aを送信しますsender Display Nameヘッダーを使用します。このヘッダーには^A文字も含まれます。これにより、ユニファイド メッセージング フローが中断されます。

注：この問題は、Cisco Bug ID CSCur53311 に記載されています。

根本原因

CUC メールボックスと Microsoft Exchange Server の間でのボイス メッセージ同期には、Exchange Web Service（EWS）リクエスト/レスポンスが使用されます。^A 文字が含まれるボイス メッセージを Microsoft Exchange Server と同期する際に、CUC が件名行の文字を変えずに送信すると、メッセージは Exchange メールボックスに正常に保存されます。CUC が Exchange Server 上でボイス メッセージを作成するために使用するのは、CreateItem EWS リクエストです。

CUC が FindItem EWS リクエストを使用して、任意のユーザの Exchange メールボックスに保存されているアイテム（この例では、件名行に ^A 文字が含まれるボイス メッセージなどのアイテム）を検索すると、Exchange Server は件名の内容として Start of Heading（SOH）を返して応答します（16 進数 01, &#x1;）。

返された EWS レスポンス XML を、CUC は、Simple API for XML（SAX）パーサーを使用して解析します。SAX パーサーは XML バージョン 1.0（CUC ではサポートしていないバージョン）で定義された文法を使用して XML を解析します。 SOH には無効な XML 1.0 文字が含まれています。XML SAX パーサーが制御文字を解析しようとすると、致命的エラーで失敗します。その後は、メールボックス内の残りのメッセージに対して同期が試行されません。

該当するバージョン

バージョン 10.x より前のすべての CUC バージョンには、Cisco Bug ID CSCur53311 に対する修正は用意されていません。

検証のための CLI のクエリー

送信者表示名ヘッダーまたは件名行に制御文字が含まれているかどうかを確認するには、次の CLI クエリーを使用できます。

- 該当するメッセージの総数を取得するには、次のコマンドを CLI に入力します:

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)
このクエリーは、送信者表示名ヘッダーの最初の文字を調べて、それが SOH 文字であるかどうかを確認します。

- メッセージの件名行の任意の位置に SOH 文字があるかどうかを確認するには、次のコマンドを CLI に入力します。

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

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

ヒント：これらのクエリーに変更を加えることで、他の制御文字や標準の文字の有無を確認できます。それには、CHR() を該当する値で置き換えます。詳細については、「ASCII Codes Table」を参照してください。

解決方法

Cisco Bug ID CSCur53311 に記載されているバグは、CUC バージョン 10.5(2) で修正されています。 このバージョンは、シスコのソフトウェア ダウンロード Web ページからダウンロードできます。

一時的に修正するには、次の手順を実行します。

1. 件名行に ^A が含まれるメッセージが CUC サーバに送信されないことを確認します。

2. 次のコマンドを CLI に入力して該当するユーザのリストを取得し、それらのユーザのシングル インボックス機能を無効にします。

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. 特定されたボイス メッセージを手動で削除します。

- 該当するメッセージのメッセージ オブジェクト ID とフォルダ オブジェクト ID を取得するには、次のコマンドを CLI に入力します。

run cuc dbquery unitymbxdb1 Select messageobjectid, folderobjectid from

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

- csp_messagesdelete ストアド プロシージャを実行して CUC サーバから該当するボイス メッセージを削除するには、次のコマンドを CLI に入力します。

run cuc dbquery unitymbxdb1 execute procedure csp_messagesdelete

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

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

4. Exchange 管理者と協力して Exchange Server 上の該当するメッセージを識別し、それらのメッセージを削除します。（CLI でメッセージを削除する前に）次のコマンドを CLI に入力します。

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

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

注：rfc822messageid の部分は、CUC メールボックス内の該当するメッセージと Exchange Server メールボックス内の対応するメッセージをマッピングするために使用されます。

5. 該当するすべてのメッセージが CUC および Exchange Server から削除された後、ユニファイド メッセージングを有効にします。