المحتويات

المقدمة

المتطلبات الأساسية

المتطلبات

المكونات المستخدمة

معلومات أساسية

فهم تنفيذ Finesse BOSH

فهم XMPP

مثال على رسالة XMPP

تنفيذ XMPP باستخدام Finesse

مثال طلب/إستجابة Finesse XMPP

فهم رسائل XMPP الدقيقة وعقد XMPP

مثال 1: إستخدام pidgin لعرض عقد Finesse XMPP

مثال 2: إستخدام علامة تبويب شبكة أدوات مطور المستعرض لعرض رسائل HTTP

أستكشاف أخطاء قطع اتصال BOSH وإصلاحها

تحليل السجل

سجلات خدمة إعلام تصحيح الأخطاء

سجلات خدمة إعلام المعلومات

سجلات خدمات الويب

الأسباب الشائعة لقطع اتصال BOSH

مشكلة - يتم قطع اتصال الوكلاء في أوقات مختلفة (مشكلة من جانب العميل)

الإجراءات الموصى بها

مشكلة - يتم قطع اتصال كافة الوكلاء في نفس الوقت (مشكلة من جانب الخادم)

الإجراءات الموصى بها

إستخدام عازف الكمان

قضية عازف الكمان الشائعة

مثال على خطوات التكوين

إستخدام Wireshark

عيوب ذات صلة

معلومات ذات صلة

المقدمة

يصف هذا المستند البنية الأساسية لاتصالات Finesse التي تستخدم بروتوكول BOSH وكيف يمكن تشخيص مشاكل اتصال BOSH.

المتطلبات الأساسية

المتطلبات

توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:

- Cisco Finesse

- Unified Contact Center Enterprise (UCCE)

- Unified Contact Center Express (UCCX)

- أدوات مطور متصفح الويب

- إدارة Windows و/أو Mac

المكونات المستخدمة

تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:

- Cisco Finesse 9.0(1) - 11.6(1)

- UCCX 10.0(1) - 11.6(2)

تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.

معلومات أساسية

تسمى الاتصالات التي تستخدم التدفقات ثنائية الإتجاه عبر HTTP المتزامنة BOSH.

فهم تنفيذ Finesse BOSH

فهم XMPP

بروتوكول التواجد والمراسلة القابل للتوسع (XMPP) (المعروف أيضا باسم Jabber) هو بروتوكول يحدد الحالة في نموذج العميل-الخادم. تسمح XMPP بالتسليم السريع لقطع صغيرة من بيانات لغة الترميز القابلة للتوسيع (XML) المركبة من كيان لآخر. يتم إستخدام XMPP/Jabber بشكل مكثف في تطبيق المراسلة الفورية (IM) وتطبيقات التواجد.

يتم تحديد جميع كيانات XMPP بواسطة معرف Jabber الخاص بها (JID).

نظام عنونة JID: user@domain/resource

مستعمل

اسم مستخدم العميل على خادم XMPP أو اسم غرفة الاجتماعات

مجال

اسم المجال المؤهل بالكامل لخادم XMPP (FQDN)

مورد

معرف الكيان/نقطة النهاية الخاصة بالمستخدم (على سبيل المثال، الكمبيوتر المحمول أو الهاتف الذكي أو ما إلى ذلك) أو معرف جلسة العمل أو اسم عقدة الخدمة الفرعية

ملاحظة: لا تستخدم مكونات JID الثلاثة في جميع الحالات. يتم تعريف الخادم بشكل نموذجي فقط بواسطة المجال وغرفة إجتماعات معرفة بواسطة user@domain والعميل بواسطة user@domain/مورد.

يطلق على رسائل XMPP اسم Stanzas. هناك ثلاثة فتحات أساسية في XMPP:

1. <message>: إتجاه واحد، مستلم واحد

2. <presence>: إتجاه واحد، نشر إلى العديد

3 - <iq>: معلومات/استعلام - طلب/إستجابة

يجب أن تحتوي كل المواضع على من وإلى العناوين ومعظم المواضع أيضا على سمات النوع والمعرف و xml:langattributes.

سمة ستانزا

الغرض

إلى

JID الوجهة

من

JID المصدر

النوع

غرض الرسالة

معرف

المعرف الفريد المستخدم لربط طلب باستجابة ل <iq>

xml:lang

يعرف اللغة الافتراضية لأي XML بشري يمكن قراءته في الفصيلة

مثال على رسالة XMPP

<message to='person1@example' from='person2@example' type='chat'>

<subject> Team meeting </subject>

<body>Hey, when is our meeting today? </body>

<thread>A4567423</thread>

</message>

تنفيذ XMPP باستخدام Finesse

إذا كان تطبيق ويب بحاجة إلى العمل مع XMPP، تنشأ مشاكل متعددة. لا تدعم المستعرضات XMPP عبر بروتوكول التحكم في الإرسال (TCP) بشكل طبيعي، لذلك يجب معالجة حركة مرور XMPP بالكامل بواسطة برنامج يعمل داخل المستعرض. تتصل خوادم ومستعرضات الويب عبر رسائل بروتوكول نقل النص التشعبي (HTTP)، لذا يقوم Finesse وتطبيقات الويب الأخرى بالتفاف رسائل XMPP داخل رسائل HTTP.

تتمثل الصعوبة الأولى في هذا النهج في أن بروتوكول HTTP هو بروتوكول عديم الجنسية. هذا يعني أن كل طلب HTTP غير مرتبط بأي طلب آخر. ومع ذلك، يمكن معالجة هذه المشكلة بالوسائل التطبيقية - على سبيل المثال من خلال إستخدام ملفات تعريف الارتباط/بيانات النشر.

تتمثل الصعوبة الثانية في السلوك أحادي الإتجاه ل HTTP. يرسل العميل فقط الطلبات، ولا يمكن للخادم الاستجابة إلا. عدم قدرة الخادم على دفع البيانات يجعل من غير الطبيعي تنفيذ XMPP عبر HTTP.

لا توجد هذه المشكلة في مواصفات XMPP الأساسية الأصلية (RFC 6120)، حيث XMPP مرتبط ب TCP. على أي حال، إذا كنت تريد معالجة المشكلة مع XMPP المرتبط ب HTTP، على سبيل المثال، لأن JavaScript يمكن أن يرسل طلبات HTTP، هناك حلان محتملان. كلاهما يتطلب جسرا بين HTTP و XMPP.

والحلول المقترحة هي:

1. الاقتراع (البروتوكول القديم): طلبات HTTP المتكررة التي تطلب بيانات جديدة معرفة في XEP-0025: إستطلاع Jabber HTTP

2. تعرف الاستطلاعات الطويلة أيضا ب BOSH: بروتوكول النقل الذي يحاكي دلالات اتصال TCP طويل المدى ثنائي الإتجاه بين كيانين باستخدام أزواج طلبات/استجابات HTTP متعددة المتزامنة دون الحاجة إلى إستخدام الاستفتاءات المتكررة المعرفة في XEP-0124: ربط HTTP وتمديد بواسطة XEP-0206: XMPP عبر BOSH

تقوم Finesse بتنفيذ بروتوكول BOSH حيث إنه فعال تماما من وجهة نظر تحميل الخادم وحركة مرور البيانات. يتمثل سبب إستخدام بروتوكول BOSH في تغطية حقيقة أن الخادم لا يحتاج إلى الاستجابة بمجرد وجود طلب. يتم تأخير الاستجابة حتى وقت محدد حتى يحتوي الخادم على بيانات للعميل، ثم يتم إرسالها كاستجابة. وبمجرد حصول العميل على الاستجابة، يقدم العميل طلبا جديدا وما إلى ذلك.

يقوم عميل Finesse لسطح المكتب (تطبيق ويب) بإنشاء اتصال BOSH قديم عبر منفذ TCP 7443 كل 30 ثانية. بعد 30 ثانية، إذا لم تكن هناك تحديثات من خدمة Finesse Notification، ترسل خدمة Notification رد HTTP يحتوي على 200 OK ونص إستجابة (تقريبا) فارغ. إذا كان لدى "خدمة الإعلامات" تحديث حول وجود حدث وكيل أو حدث حوار (مكالمة)، على سبيل المثال، يتم إرسال البيانات فورا إلى عميل ويب Finesse.

مثال طلب/إستجابة Finesse XMPP

يوضح هذا المثال إستجابة طلب رسالة XMPP الأولى المشتركة بين عميل Finesse وخادم Finesse لإعداد اتصال BOSH.

Finesse client request:

<body xmlns="http://jabber.org/protocol/httpbind" xml:lang="en-US" xmlns:xmpp="urn:xmpp:xbosh" hold="1" ver="1.9" to="fin1.ucce.local" wait="30" xmpp:version="1.0" from="47483648@fin1.ucce.local" rid="704654808"/>

Finesse server response:

<body xmlns="http://jabber.org/protocol/httpbind" xmlns:stream="http://etherx.jabber.org/streams" authid="26779701" sid="26779701" secure="true" requests="4" inactivity="60" polling="5" wait="30" hold="1" ack="704654808" maxpause="300" ver="1.6"><stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism></mechanisms><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features></body>

للتلخيص:

1. يحتوي عميل ويب Finesse على اتصال HTTP قديم (http-bind) تم إعداده إلى خادم Finesse عبر منفذ TCP 7443. وهذا ما يعرف باستطلاع بوش الطويل.

2. خدمة إعلامات Finesse هي خدمة حضور تقوم بنشر التحديثات المتعلقة بحالة العميل والاتصال وما إلى ذلك.

3. إذا كانت خدمة الإعلامات تحتوي على تحديث، فإنها ترد على طلب ربط http مع تحديث الحالة كرسالة XMPP في نص الاستجابة HTTP.

4. في حالة عدم وجود تحديثات حالة بعد 30 ثانية من تلقي طلب ربط http، تقوم "خدمة الإعلام" بالرد دون أي تحديثات حالة للسماح لعميل ويب Finesse بإرسال طلب ربط http آخر. تستخدم هذه الطريقة لكي تعرف خدمة الإعلامات أن عميل ويب Finesse ما يزال قادرا على الاتصال بخدمة الإعلامات وأن الوكيل لم يغلق المستعرض أو يضع الكمبيوتر في وضع السكون وما إلى ذلك.

فهم رسائل XMPP الدقيقة وعقد XMPP

كما تقوم Finesse بتنفيذ مواصفات XMPP XEP-0060: النشر-الاشتراك. الغرض من هذه المواصفات هو السماح لخادم XMPP (خدمة الإعلام) بنشر المعلومات إلى عقد XMPP (الموضوعات) ثم إرسال أحداث XMPP إلى الكيانات المشتركة في العقدة. في حالة Finesse، يرسل خادم دمج الاتصال الهاتفي بجهاز الكمبيوتر (CTI) رسائل CTI إلى خدمة Finesse على الويب لإطلاع Finesse على تحديثات التكوين مثل إنشاء قائمة انتظار خدمة العملاء أو جهات الاتصال (CSQ) أو معلومات حول مكالمة، ولكن لا يقتصر على ذلك. يتم بعد ذلك تحويل هذه المعلومات إلى رسالة XMPP تنشرها خدمة Finesse على ويب إلى خدمة Finesse Notification. تقوم خدمة إعلام Finesse بعد ذلك بإرسال XMPP عبر رسائل BOSH إلى الوكلاء الذين تم اشتراكهم في عقد XMPP معينة.

بعض كائنات Finesse API المحددة في دليل Finesse Web Services Developer هي عقد XMPP. يمكن لعملاء ويب العاملين والمشرفين Finesse الاشتراك في تحديثات الأحداث لبعض عقد XMPP هذه للحصول على معلومات حديثة حول الأحداث في الوقت الفعلي (مثل أحداث المكالمات وأحداث الحالة وما إلى ذلك). يعرض هذا الجدول عقد XMPP التي تم تمكين Pubsub بها.

كائن Finesse API

الغرض

إكتتاب

/finesse/api/user/<LoginID>

عرض تعيين الحالة والفريق للعامل

الوكلاء والمشرفين

/finesse/api/user/<LoginID>/Dialogs

إظهار المكالمة (المكالمات) التي تم معالجتها بواسطة الوكيل

الوكلاء والمشرفين

/finesse/api/user/<LoginID>/ClientLog

يستخدم لالتقاط سجلات العميل من الزر إرسال تقرير عن الخطأ

الوكلاء والمشرفين

/finesse/api/user/<LoginID>/Queue/<queueID>

إظهار بيانات إحصائيات قائمة الانتظار (إذا تم تمكينها)

الوكلاء والمشرفين

/finesse/api/Team/<TeamID>/Users

إظهار العملاء الذين ينتمون إلى فريق معين بما في ذلك معلومات الحالة

مشرفين

/finesse/api/SystemInfo

عرض حالة خادم Finesse. يستخدم لتحديد ما إذا كانت هناك حاجة إلى تجاوز الفشل

الوكلاء والمشرفين

مثال 1: إستخدام pidgin لعرض عقد Finesse XMPP

الخطوة 1. قم بتنزيل XMPP Client Pidgin وتثبيته.

الخطوة 2. انتقل إلى الحسابات > تعديل > أساسي وقم بتكوين خيارات تسجيل الدخول:

- البروتوكول: XMPP

- اسم المستخدم: LoginID لأي وكيل

- المجال: FQDN لخادم Finesse

- المورد: العنصر النائب - يمكن إستخدام أي قيمة، على سبيل المثال، الاختبار

- كلمة المرور: كلمة مرور الوكيل

- حدد خانة الاختيار تذكر كلمة المرور

الخطوة 3. انتقل إلى الحسابات > تعديل > متقدم وتكوينه:

- أمان الاتصال: إستخدام التشفير إذا كان متوفرا

- تحقق من السماح بمصادقة النص العادي للتدفقات غير المشفرة الأخرى.

- منفذ الاتصال: 5222. أستخدم المنفذ الافتراضي 5222. هذا المنفذ مطلوب لعملاء XMPP الخارجيين. يستخدم عملاء Finesse من أجهزة الكمبيوتر المكتبية الطراز 7443. لا تستخدم المنفذ 7443.

- خادم الاتصال: FindSE Server FQDN

ملاحظة: يتم إستخدام المنفذ 5222 فقط لأن عملاء ويب Finesse يمكنهم إستخدام المنفذ 7443 للاتصال بخدمة الإعلامات.

الخطوة 4. انتقل إلى أدوات > ملحقات وقم بتمكين وحدة تحكم XMPP.

الخطوة 5. انتقل إلى أدوات > وحدة تحكم XMPP > وحدة تحكم XMPP لفتح وحدة تحكم XMPP.

الخطوة 6. قم بتنفيذ هذه الرسالة <iq>للاطلاع على جميع عقد XMPP الموجودة.

على سبيل المثال:

في بيئة معملية مكونة من برنامجين وكاشفين CSQ، يتم تضمين هذا الإخراج في إستجابة Finesse:

مثال 2: إستخدام علامة تبويب شبكة أدوات مطور المستعرض لعرض رسائل HTTP

يحتوي كل مستعرض على مجموعة من أدوات المطور. تظهر علامة التبويب "شبكة" الخاصة بأدوات المطور رسائل HTTP التي تم إرسالها واستقبالها بواسطة عميل ويب Finesse (المستعرض). على سبيل المثال، توضح هذه الصورة كيفية قيام عميل ويب Finesse بإرسال طلب SystemInfo الذي يتحقق من حالة Finesse Tomcat كل دقيقة كتحقق من تجاوز الفشل. وبالإضافة إلى ذلك، يتم أيضا عرض رسائل ربط http من اتصال BOSH. يرسل خادم Finesse إستجابة في غضون 30 ثانية في حالة عدم وجود تحديثات لنشرها على عقد XMPP التي يتم الاشتراك فيها لعميل الويب.

أستكشاف أخطاء قطع اتصال BOSH وإصلاحها

عند حدوث قطع اتصال BOSH، فقد الخطأ الاتصال ب {Finesse Server FQDN}. الرجاء الانتظار حتى يتم العثور على خادم Finesse القابل للوصول إليه... يتم عرضه في شعار أحمر في أعلى سطح مكتب Finesse.

يتم عرض هذه الرسالة لأنه في هذا الوقت، لا يمكن تلقي أحداث اشتراك XMPP من خدمة إعلام Cisco Finesse. وبالتالي، لا يمكن عرض معلومات الحالة وتفاصيل المكالمة على سطح مكتب الوكيل.

بالنسبة ل UCCX، بعد 60 ثانية من قطع المستعرض، يتم وضع العامل في حالة تسجيل الخروج. يمكن أن يكون الوكيل في حالة الاستعداد أو عدم الجاهزية لحدوث تسجيل الخروج.

بالنسبة إلى UCCE، يستغرق Finesse ما يصل إلى 120 ثانية لاكتشاف الوقت الذي يقوم فيه عميل بإغلاق المستعرض أو أعطال المستعرض، بينما تنتظر Finesse 60 ثانية قبل إرسال طلب تسجيل الخروج الإجباري إلى خادم CTI الذي يتسبب في قيام خادم CTI بوضع العامل في حالة غير جاهزة. في ظل هذه الظروف، يمكن أن يستغرق Finesse ما يصل إلى 180 ثانية لتسجيل الخروج من العميل. بخلاف UCCX، ينتقل العامل إلى حالة غير جاهز بدلا من حالة تسجيل الخروج.

ملاحظة: يتم التحكم في قطع اتصال CTI غير جاهز مقابل سلوك حالة تسجيل الخروج في UCCE بواسطة المعلمة pg /load. وفقا لملاحظات الإصدار الخاصة ب Unified Contact Center Enterprise والإصدار 10.0(1)، يتم إهمال المعلمة /Load بدءا من UCCE 10.0.

لمزيد من المعلومات حول سلوك UCCE Finesse Desktop، ارجع إلى قسم سلوك سطح المكتب من فصل آليات Cisco Finesse لتجاوز الفشل في دليل إدارة Cisco Finesse.

ملاحظة: يمكن أن تتغير قيم المؤقت في المستقبل وفقا لمتطلبات المنتج.

تحليل السجل

يمكن تجميع سجلات خدمة إعلام Finesse و UCCX عبر RTMT أو عبر CLI (واجهة سطر الأوامر):

ضغط إعادة ضغط ActiveOg /سطح المكتب

سجلات خدمة إعلام تصحيح الأخطاء

ملاحظة: قم بتعيين سجلات مستوى تصحيح الأخطاء فقط أثناء قيامك بإعادة إنشاء مشكلة. قم بإيقاف تشغيل تصحيح الأخطاء بعد نسخ المشكلة.

ملاحظة: لا يحتوي Finesse 9.0(1) على تسجيل مستوى تصحيح الأخطاء. تم إدخال تسجيل مستوى تصحيح الأخطاء في Finesse 9.1(1). تختلف عملية تمكين التسجيل في 9.1(1) مقارنة ب Finesse 10.0(1) - 11.6(1). للحصول على هذه العملية، راجع دليل Finesse Management and ServiceAbility.

تمكين سجلات تصحيح أخطاء خدمة الإعلامات الخاصة ب Unified Contact Center Express (UCCX)، كما هو موضح:

admin:utils uccx notification-service log enable

WARNING! Enabling Cisco Unified CCX Notification Service logging can affect system performance

and should be disabled when logging is not required.

Do you want to proceed (yes/no)? yes

Cisco Unified CCX Notification Service logging enabled successfully.

NOTE: Logging can be disabled automatically if Cisco Unified CCX Notification Service is restarted.

تمكين سجلات تصحيح أخطاء خدمة الإعلامات الخاصة بمؤسسة مركز الاتصال الموحد (UCCE) (Finesse Standalone)، كما هو موضح:

admin:utils finesse notification logging enable

Checking that the Cisco Finesse Notification Service is started...

The Cisco Finesse Notification Service is started.

Cisco Finesse Notification Service logging is now enabled.

WARNING! Cisco Finesse Notification Service logging can affect system performance

and should be disabled when logging is not required.

Note: Logging can be disabled automatically if you restart the Cisco Finesse Notification Service

توجد هذه السجلات في المجلد /desktop/logs/openfire وتسمى debug.log.

كما هو موضح في الصورة، يظهر debug.log لخدمة الإعلامات (OpenFire) ربط http مع سطح المكتب مع عنوان IP ومنفذ جهاز الكمبيوتر الوكيل.

كما هو موضح في الصورة، تظهر آخر 0 مللي ثانية نشطة أن جلسة العمل لا تزال نشطة.

يشير إغلاق OpenFire لجلسة العمل الخاملة إلى أن تسجيل خروج الوكيل يمكن أن يتم تشغيله في 60 ثانية حيث يمكن ل Finesse إرسال تسجيل خروج إجباري برمز سبب يبلغ 255 إلى خادم CTI. يعتمد السلوك الفعلي لسطح المكتب في هذه الشروط على إعداد تسجيل الخروج على قطع اتصال العميل (LOAD) في UCCE. في UCCX، هذا هو التصرف دائما.

إذا لم يرسل العميل Finese رسائل http-bind إلى خادم Finesse، يمكن للسجلات إظهار وقت جلسة العمل وإظهار إغلاق جلسة العمل.

2017.06.17 00:14:34 Session (id=f382a015) was last active 0 ms ago: 1001003@xxxxx.xxxx.xxx.cisco.com/desktop

2017.06.17 00:15:04 Session (id=f382a015) was last active 13230 ms ago: 1001003@xxxxx.xxxx.xxx.cisco.com/desktop

2017.06.17 00:15:34 Session (id=f382a015) was last active 43230 ms ago: 1001003@xxxxx.xxxx.xxx.cisco.com/desktop

2017.06.17 00:16:04 Session (id=f382a015) was last active 63231 ms ago: 1001003@xxxxx.xxxx.xxx.cisco.com/desktop

2017.06.17 00:17:04 Unable to route packet. No session is available so store offline. <message from="pubsub. xxxxx.xxxx.xxx.cisco. com" to="1001003@xxxxx.xxxx.xxx.cisco.com.cisco.com" id="/finesse/api/User/1001003__1001003@xxxxx.xxxx.xxx.cisco.com__o5Aqb"><event xmlns="http://jabber.org/protocol/pubsub#event"><items node="/finesse/api/User/1001003"><item id="0d78a283-466d-4477-a07e-6e33a856fce388"><notification xmlns="http://jabber.org/protocol/pubsub">&lt;Update&gt

سجلات خدمة إعلام المعلومات

توجد هذه السجلات في المجلد /desktop/logs/openfire وهي مسماة info.log. إذا لم يرسل العميل Finese رسائل http-bind إلى خادم Finesse، يمكن أن تظهر السجلات الجلسة تصبح غير نشطة.

2017.06.17 00:16:04 Closing idle session (id=f382a015): 1001003@xxxxx.xxxx.xxx. cisco.com/desktop

after inactivity for more than threshold value of 60

2017.06.17 00:16:04 A session is closed for 1001003@xxxxx.xxxx.xxx. cisco.com/desktop

سجلات خدمات الويب

توجد هذه السجلات في المجلد /desktop/logs/webservices وتسمى Desktop-webservices.YYY-MM-DDTHH-MM-SS.sss.log. إذا لم يرسل العميل Finese رسائل http-bind إلى خادم Finesse خلال الفترة الزمنية المحددة، يمكن أن تظهر السجلات أن Agent Presance أصبح غير متوفر وبعد 60 ثانية، يمكن أن يحدث تسجيل الخروج الذي تم إستدعائه مسبقا.

0000001043: XX.XX.XX.XXX: Jun 17 2017 00:16:04.630 +0530: %CCBU_Smack Listener Processor (1)-6-PRESENCE_NOTIFICATION_RECIEVED: %[FROM JID=1001003@xxxxx.xxxx.xxx.cisco.com/desktop][PRESENCE_TYPE=unavailable]:Finesse received a presence notifcation

0000000417: XX.XX.XX.XXX: Jun 17 2017 00:16:04.631 +0530: %CCBU_Smack Listener Processor (1)-6-UNSUBSCRIBE_REQUEST_SUCCESS: %[NodeId=/finesse/api/User/1001003/ClientLog][user_id=1001003@xxxxx.xxxx.xxx.cisco.com]: Sucessfully unsubscribed from a node on the XMPP server

0000001044: XX.XX.XX.XXX:  Jun 17 2017 00:16:04.631 +0530: %CCBU_Smack Listener Processor (1)-6-AGENT_PRESENCE_MONITOR: %[message_string=Adding agent 1001003 into the expiry hash.]:

0000001051: XX.XX.XX.XXX:  Jun 17 2017 00:16:35.384 +0530: %CCBU_pool-8-thread-1-6-AGENT_PRESENCE_MONITOR: %[message_string=[Expired] Removed agent from cache 1001003]:

0000001060: XX.XX.XX.XXX:: Jun 17 2017 00:17:04.632 +0530: %CCBU_CoreImpl-worker12-6-PRESENCE DRIVEN LOGOUT: %[agent_id=1001003]: Performing CTI Logout on basis of the agents unavailable presence

0000001061: XX.XX.XX.XXX:: Jun 17 2017 00:17:04.633 +0530: %CCBU_CoreImpl-worker12-6-MESSAGE_TO_CTI_SERVER: %[cti_message=Invoke id :39 , agentstate :

1, workmode : 0, reason code: 255, forceflag :1, agentcapacity: 1, agentext: 1001003, agentid: 1001003, supervisorid: null, ssoFlag=false][cti_message_name=SetAgentStateReq]: Message going to the backend cti server

0000001066:  XX.XX.XX.XXX:: Jun 17 2017 00:17:04.643 +0530: %CCBU_CTIMessageEventExecutor-0-6-DECODED_MESSAGE_FROM_CTI_SERVER: %[cti_message=CTIAgentStateEvent [skillGroupState=1 (LOGOUT), stateDuration=0,

skillGroupNumber=-1, skillGroupPriority=0, agentState=1 (LOGOUT), eventReasonCode=255, numFltSkillGroups=0, CTIClientSignature=null, agentID=1001003, agentExtension=1001003, agentInstrument=null, agentID_Long=1001003,

duration=null, nextAgentState=null, fltSkillGroupNumberList=[], fltSkillGroupIDList=[], fltSkillGroupPriorityList=[], fltSkillGroupStateList=[], MRDId=1, agentMode=0]CTIMessageBean [invokeID=null, cti_sequence_id=105,

msgID=30, timeTracker={"id":"AgentStateEvent","CTI_MSG_RECEIVED":1497638824642,"CTI_MSG_DISPATCH":1497638824643}, msgName=AgentStateEvent, deploymentType=CCX]][cti_response_time=1][dispatch_phase=DnD-CHECKPOINT-3B]:

Decoded Message to Finesse from backend cti server

الأسباب الشائعة لقطع اتصال BOSH

يتم إعداد إتصالات BOSH بواسطة عميل الويب، ويحدد خادم Finesse ما إذا كان وجود الوكيل غير متوفر. وتكون هذه المشكلات دائما تقريبا من جانب العميل وتتعلق بالمستعرض أو عميل الكمبيوتر أو الشبكة حيث يقع عبء بدء الاتصال على العميل.

مشكلة - يتم قطع اتصال الوكلاء في أوقات مختلفة (مشكلة من جانب العميل)

الإجراءات الموصى بها

تحقق من هذه المشاكل:

1. مشكلة الشبكة:

- مراجعة قواعد جدار الحماية وسجلاته — يجب عدم حظر منفذ TCP 7443 أو تخنقه

- أستخدم sniffer لحركة مرور ويب HTTP مثل Fiddler® أو Wireshark® لتأكيد أن المستعرض يرسل طلبات http-bind عبر منفذ TCP 7443 ويستلم استجابات

- تحقق من جميع أجهزة/واجهات الشبكة بين كمبيوتر العميل وخادم Finesse بحثا عن تأخير مفرط أو عمليات إسقاط حزم

- يمكن أن يكون Traceroute مفيد لتحديد المسار وتحديد التأخيرات

- على كمبيوتر Microsoft® Windows®: tracert {Finesse Server IP | FindSE Server FQDN}

- على Mac®: traceroute {Finesse Server IP | FindSE Server FQDN}

- في برنامج Cisco IOS®، يمكن التحقق من إحصائيات الواجهة: show interfaces

- ارجع إلى أستكشاف أخطاء قوائم انتظار الإدخال وحالات إسقاط قائمة انتظار الإخراج وإصلاحها

- تجميع سجلات عميل Finesse لعامل إختبار. يمكن تجميع سجلات العملاء بثلاث طرق:

1. سجلات وحدة تحكم الويب للمستعرض

- وحدة تحكم الويب Firefox

- وحدة تحكم ويب ل Microsoft Edge

- وحدة تحكم Chrome Web

2. اضغط على الزر إرسال تقرير عن الخطأ" في صفحة Finesse وتجميع سجلات خادم Finesse. توجد السجلات في /desktop/log/clientLog.

3. قم بتسجيل الدخول عبر https://<Finesse-FQDN>/desktop/locallog وتجميع السجلات بعد حدوث المشكلة.

يتصل العميل كل دقيقة بخادم Finesse لحساب الانتقال وزمن وصول الشبكة:

<PC date-time with GMT offset>: : <Finesse FQDN>: <Finesse server date-time with offset>:

Header : Client: <date-time>, Server: <date-time>, Drift: <drift> ms, Network Latency (round trip): <RTT> ms

2019-01-11T12:24:14.586 -05:00: : fin1.ucce.local: Jan 11 2019 11:24:14.577 -0600: Header : Client: 2019-01-1

في حالة وجود أي مشاكل في مجموعة السجلات، ارجع إلى أستكشاف أخطاء التسجيل المستمر ل Cisco Finesse وإصلاحها

2. متصفح و/أو إصدار غير مدعوم:

إستخدام المستعرض/الإصدار والإعدادات المدعومة وفقا لمصفوفات التوافق:

مصفوفة توافق UCCE

مصفوفة توافق UCCX

3. حالة تعطيل المستعرض بسبب المحتوى/معالجة علامة التبويب/النافذة الأخرى:

تحقق من سير عمل الوكيل لمعرفة ما إذا كانوا:

- تتوفر بشكل عام علامات تبويب أو نوافذ أخرى تعمل بشكل دائم على تشغيل تطبيقات أخرى في الوقت الفعلي مثل نقل ملفات الموسيقى/الفيديو واتصالات WebSocket وعملاء الويب المعنيين بإدارة علاقات العملاء المخصصة (CRM)، وما إلى ذلك

- تحتوي على عدد كبير جدا من علامات التبويب أو النوافذ مفتوحة

- تم تعطيل التخزين المؤقت للمستعرض

- قد أبقوا المستعرض قيد التشغيل لمدة طويلة ولا يغلقون المستعرض في نهاية يوم العمل

4. وضع الكمبيوتر في وضع السكون:

تحقق لمعرفة ما إذا كان العميل قد وضع جهاز الكمبيوتر الخاص به في وضع السكون قبل تسجيل الخروج من Finesse أو إذا كان جهاز ضبط إعداد السكون الخاص به منخفضا جدا.

5. مشكلة في وحدة المعالجة المركزية (CPU) أو ذاكرة عالية على كمبيوتر العميل:

- إذا كان مستعرض الوكيل يعمل في بيئة مشتركة مثل Microsoft Windows Remote Desktop Services، فإن Citrix®XenApp® و Citrix XenDesktop® حدد ما إذا كان أداء المستعرض يعتمد على عدد المستخدمين الذين يقومون بتشغيل المستعرض في نفس الوقت

- تأكد من تكوين الذاكرة المناسبة وموارد وحدة المعالجة المركزية (CPU) استنادا إلى عدد المستخدمين

- فحص مشاكل إستخدام موارد الكمبيوتر:

- ويندوز:

- أمر Windows PowerShell Get-Counter الذي يتحقق من ٪ من وقت وحدة المعالجة المركزية (CPU)، و ميغابايت من الذاكرة المتوفرة، و ٪ من الذاكرة المستخدمة كل ثانيتين: Get-Counter -Counter "\Processor(_Total)\٪ وقت المعالج"،"\Memory\Available MBites"،"\Memory\٪ وحدات البايت المخصصة للاستخدام" -SampleInterval 2 -Continuous

- بدلا من إستخدام PowerShell لعرض عدادات أداء Windows، يمكن إستخدام Windows Performance Monitor

- يمكن إستخدام إدارة المهام لعرض إحصائيات وحدة المعالجة المركزية (CPU) والذاكرة المباشرة بشكل عام وعلى أساس كل عملية على حدة

- ماك:

- أمر terminal top الذي يتحقق من إجمالي وحدة المعالجة المركزية (CPU) والذاكرة: top

- فحص العمليات والفرز حسب إستخدام وحدة المعالجة المركزية: أعلى -o وحدة المعالجة المركزية

- فحص العمليات وفرز حسب إستخدام الذاكرة: أعلى -o MEM

- يمكن إستخدام Activity Monitor لعرض إحصائيات وحدة المعالجة المركزية (CPU) والذاكرة المباشرة بشكل عام وعلى أساس كل عملية على حدة

6. أدوات الطرف الثالث التي تؤدي نشاطا غير متوقع ومشككا في الخلفية:

اختبر سلوك Finesse لسطح المكتب مع إزالة كافة أدوات الطرف الثالث.

7. مشكلة NTP على الخادم أو العميل:

- تحقق من حالة بروتوكول وقت الشبكة (NTP) في خادم Finesse Publisher للتأكد من أن مستوى برنامج خادم NTP هو 4 أو أقل

- في سجلات العميل، تحقق من الانتقال وزمن وصول الشبكة

مشكلة - يتم قطع اتصال كافة الوكلاء في نفس الوقت (مشكلة من جانب الخادم)

الإجراءات الموصى بها

تحقق من هذه المشاكل:

1. قطع اتصال خدمة Cisco Unified Communications Manager. إذا تم إيقاف تشغيل جميع موفري UCCX ل UCCX أو تعطيلها، فسيرى عملاء UCCX خطأ الشعار الأحمر. لا يرى عملاء UCCE الشعار الأحمر إذا حدث ذلك، ولكن لا يمكن توجيه المكالمات بشكل صحيح إلى العملاء.

- تحقق لمعرفة ما إذا تم بدء تشغيل خدمة Cisco CTIManager على خوادم CUCM المستخدمة كموفري CTI

- تحقق لمعرفة ما إذا كانت خدمة Cisco Cisco CTIManager قد تحطمت عبر عارض الأحداث - سجلات التطبيقات على RTMT لمعرفة ما إذا كانت خدمة Cisco CTIManager قد تحطمت

- لتجميع سجلات عارض الأحداث على RTMT، انتقل إلى النظام > أدوات > تتبع وتسجيل مركزي > تجميع الملفات > تحديد خدمات/تطبيقات النظام > عارض الأحداث - سجل التطبيقات.

- لتجميع سجلات تطبيق عارض الأحداث على CLI: الحصول على ملف actionVelog /syslog/CiscoSyslog* Adapter hh:mm:MM/DD/YY hh:mm:MM/DD/YY

- لعرض المكبات الأساسية على واجهة سطر الأوامر: باستخدام القائمة النشطة الأساسية

ملاحظة: تستخدم أسماء ملفات الملمات الأساسية التنسيق: core.<ProcessID>.<SignalNumber>.<ProcessName>.<EpochTime>.

مثال: core.24587.6.CTIManager.1533441238

وهكذا يمكن تحديد وقت التحطم من الحقبة.

2. تم إيقاف خدمة الإعلامات Finesse/UCCX أو تعطيلها:

- تحقق من سجلات تطبيق عارض الأحداث لمعرفة أخطاء خدمة الإعلامات أو لمعرفة ما إذا تم إيقاف الخدمة أم لا

- التحقق لمعرفة ما إذا كانت خدمة الإعلامات قيد التشغيل: قائمة خدمة المستخدم

- تحقق من أوقات إيقاف تشغيل خدمة الإعلام: تم إيقاف عملية البحث في الملفات /desktop/logs/openfire "تم إيقاف تشغيل OpenFire"

- تحقق من أوقات بدء تشغيل خدمة الإعلام: تم بدء تشغيل خدمة ربط HTTP ل File Search FieldOg /desktop/log/openfire

- التحقق من وجود عمليات تبديد ذاكرة خدمة الإعلامات الناتجة عن عطل: قائمة الملفات activeLog /desktop/logs/openfire/*.hprof

- تحقق لمعرفة ما إذا كانت خدمة الإعلامات تقوم بالاستماع لحركة المرور على منفذ TCP 7443: إظهار المنافذ المفتوحة regexp 7443.*استمع

- تحقق لمعرفة ما إذا كانت هذه العيوب قابلة للتطبيق (قد تتسبب هذه العيوب في فشل تسجيل الدخول للوكلاء الذين يسجلون الدخول وللعملاء الذين سجلوا الدخول بالفعل، سيرى هؤلاء العملاء رسالة قطع اتصال Finesse الخاصة بالشعار الأحمر):

- معرف تصحيح الأخطاء من Cisco CSCva72280 - تحطم Finesse Tomcat و OpenFire لأحرف XML غير صالحة

- معرف تصحيح الأخطاء من Cisco CSCva72325 - UCCX: Finesse Tomcat و OpenFireCrash لأحرف XML غير صالحة

قم بإعادة تشغيل Cisco Finesse Tomcat وخدمة الإعلامات في حالة الاشتباه في حدوث عطل. لا يوصى بذلك إلا في حالة تعطل الشبكة، وإلا فإن هذه العمليات تعيد تشغيل عوامل قطع الاتصال من خادم Finesse.

خطوات UCCE:

- إنهاء خدمة Cisco Finesse Tomcat

- خدمة الإعلامات المؤقتة ل Cisco Finesse Notification Service

- بدء تشغيل خدمة UTILS Cisco Finesse Tomcat

- بدء خدمة Cisco Finesse Notification Service

خطوات UCCX:

- إنهاء خدمة Cisco Finesse Tomcat

- خدمة إيقاف خدمة Cisco Unified CCX Notification Service

- بدء تشغيل خدمة UTILS Cisco Finesse Tomcat

- بدء خدمة uTils خدمة الإعلامات الموحدة ل CCX من Cisco

إستخدام عازف الكمان

تكوين Fiddler يمكن أن يكون مهمة صعبة بعض الشيء بدون فهم الخطوات اللازمة وفهم كيفية عمل Fiddler. يعد Fiddler وكيل ويب متوسط الحجم بين عميل Finesse (مستعرض الويب) وخادم Finesse. بسبب الاتصالات الآمنة بين عميل Finesse وخادم Finesse، يؤدي ذلك إلى إضافة طبقة من التعقيد إلى تكوين Fiddler لعرض الرسائل المؤمنة.

قضية عازف الكمان الشائعة

بما أن Fiddler يقع بين عميل Finesse وخادم Finesse، يحتاج تطبيق Fiddler أن يخلق شهادات موقعة لكل منافذ Finesse TCP التي تتطلب شهادات:

شهادات خدمة Finesse Tomcat من Cisco

1. خادم Finesse Publisher TCP 8445 (و/أو 443 ل UCCE)

2. خادم مشترك Finesse TCP 8445 (و/أو 443 ل UCCE)

شهادات خدمة الإعلامات Finesse (Unified CCX) من Cisco

1. خادم Finesse Publisher TCP 7443

2. خادم المشترك Finesse TCP 7443

يجب تمكين فك تشفير HTTPS ل Fiddler لإنشاء الشهادات بشكل ديناميكي نيابة عن خادم Finesse. لا يتم تمكين هذا بشكل افتراضي.

إذا لم يتم تكوين فك تشفير HTTPS، سيتم عرض اتصال النفق الأولي بخدمة الإعلام، ولكن لا يتم عرض حركة مرور http-bind. يظهر عازف الكمان فقط:

Tunnel to <Finesse server FQDN>:7443

بعد ذلك، يجب أن تكون شهادات Finesse الموقعة من قبل Fiddler موثوق بها من قبل العميل. إذا لم تكن هذه الشهادات موثوق بها، فإن الانتقال إلى ما بعد مرحلة إنشاء اتصال مشفر... من تسجيل الدخول إلى Finesse غير ممكن.

في بعض الحالات، لا يعمل قبول إستثناءات الشهادة من تسجيل الدخول، ويجب أن تكون الشهادات موثوق بها بواسطة المستعرض يدويا.

مثال على خطوات التكوين

تحذير: يتم توفير مثال التكوين ل Fiddler v5.0.20182.28034 ل .NET 4.5 و Mozilla Firefox 64.0.2 (32 بت) على Windows 7 x64 في بيئة معملية. لا يمكن تعميم هذه الإجراءات على كافة إصدارات Fiddler، أو كافة المستعرضات، أو كافة أنظمة تشغيل الكمبيوتر.  إذا كانت شبكتك مباشرة، فتأكد من فهمك للتأثير المحتمل لأي تكوين. راجع وثائق Fiddler الرسمية للحصول على مزيد من المعلومات.

الخطوة 1. تنزيل عازف الكمان

الخطوة 2. تمكين فك تشفير HTTPS. انتقل إلى أدوات > خيارات > HTTPS وحدد خانة الاختيار فك تشفير حركة مرور HTTPS.

الخطوة 3. يفتح مربع رسالة تحذير لطلب الثقة في شهادة جذر Fiddler. حدد نعم.

الخطوة 4. يتم فتح مربع رسالة تحذير مع الرسالة "أنت على وشك تثبيت شهادة من مرجع مصدق (CA) يدعي تمثيل: DO_NOT_TRUST_FIDDLERroot.." هل تريد تثبيت هذه الشهادة؟. حدد نعم.

الخطوة 5. إضافة الناشر الفاضل وشهادات المشترك يدويا إلى مخزن شهادات الكمبيوتر أو المستعرض الموثوق به. تأكد من أن المنافذ 8445 و 7443 و(فقط ل UCCE) 443. على سبيل المثال، في Firefox، يمكن القيام بذلك ببساطة دون تنزيل شهادات من صفحة إدارة نظام التشغيل Finesse:

خيارات > بحث في الخيارات (بحث) > شهادات > خوادم > إضافة إستثناء > موقع > إدخال https://<خادم Finesse>:منفذ للمنافذ ذات الصلة لكل من خوادم Finesse.

الخطوة 6. قم بتسجيل الدخول إلى Finesse وراجع رسائل ربط http التي تترك عميل Finesse إلى خادم Finesse عبر Fiddler.

في المثال المتوفر، تظهر الرسائل الخمس الأولى رسائل http-bind التي تمت الاستجابة لها بواسطة خادم Finesse. تحتوي الرسالة الأولى على 1571 بايت من البيانات التي تم إرجاعها في نص الرسالة. يحتوي النص الأساسي على تحديث XMPP فيما يتعلق بحدث وكيل. تم إرسال رسالة ربط http النهائية بواسطة عميل Finesse، ولكن لم يتم الحصول على إستجابة من خادم Finesse. ويمكن تحديد ذلك عندما ترى أن نتيجة HTTP خالية (-) وأن عدد وحدات البايت في نص الاستجابة خال (-1).

نظرة أكثر قربا على البيانات:

نص الاستجابة لرسالة XMPP:

إستخدام Wireshark

Wireshark هي أداة التقاط حزم تستخدم بشكل شائع يمكن إستخدامها لتشفير حركة مرور HTTPS وفك ترميزها. حركة مرور HTTPS هي حركة مرور HTTP مؤمنة عبر أمان طبقة النقل (TLS). يوفر TLS التكامل والمصادقة والسرية بين الأجهزة المضيفة. ويتم إستخدامه بشكل شائع في تطبيقات الويب، ولكن يمكن إستخدامه مع أي بروتوكول يستخدم بروتوكول TCP كبروتوكول طبقة النقل. طبقة مآخذ التوصيل الآمنة (SSL) هي الإصدار السابق من بروتوكول TLS، والذي لم يعد مستخدما لأنه غير آمن. غالبا ما يتم إستخدام هذه الأسماء بالتبادل، ومرشح Wireshark المستخدم لحركة مرور SSL أو TLS هو SSL.

تحذير: فيما يتعلق بالتكوين المتوفر فهو خاص ب Wireshark 2.6.6 (الإصدار 2.6.6-0-GDF942CD8) و Mozilla Firefox 64.0.2 (إصدار 32 بت) على Windows7 x64 في بيئة معملية. لا يمكن تعميم هذه الإجراءات على كافة إصدارات Fiddler، أو كافة المستعرضات، أو كافة أنظمة تشغيل الكمبيوتر. إذا كانت شبكتك مباشرة، فتأكد من فهمك للتأثير المحتمل لأي تكوين. راجع وثائق Wireshark SSL الرسمية للحصول على مزيد من المعلومات. يلزم توفر Wireshark 1. 6 أو أكثر.

ملاحظة: هذه الطريقة تعمل فقط مع Firefox و Chrome. لا تعمل هذه الطريقة ل Microsoft Edge.

الخطوة 1. على البرنامج العميل Windows PC انتقل إلى لوحة التحكم > النظام والأمان > النظام > متغيرات النظام المتقدمة...

الخطوة 2. انتقل إلى متغيرات المستخدم للمستخدم <username> > جديد...

قم بإنشاء متغير باسم SSLKEYLOGFILE.

إنشاء ملف لتخزين سر مدير SSL الرئيسي في دليل خاص: SSLKEYLOGFILE=</path/to/private/directory/with/logfile>

ملاحظة: أنشئ متغير نظام بدلا من متغير مستخدم و/أو قم بتخزين الملف في دليل غير خاص، ولكن بعد ذلك يمكن لجميع المستخدمين على النظام الوصول إلى سر المدير الرئيسي، الذي يكون أقل أمانا.

الخطوة 3. إذا كان Firefox أو Chrome مفتوحا، أغلق التطبيقات. بعد إعادة فتحها، يمكن أن تبدأ الكتابة إلى ملف SSLKEYLOGFILE.

الخطوة 4. على Wireshark، انتقل إلى تحرير > تفضيلات...

انتقل إلى البروتوكولات > SSL.

الخطوة 5. أدخل موقع اسم ملف سجل سري للبادئة تم تكوينه في الخطوة 2.

الخطوة 6. أستخدم عامل تصفية Wireshark tcp.port==7443 & ssl، وتشاهد إتصالات HTTP الآمنة بين عميل Finesse وخادم Finesse (خدمة الإعلامات) مشفرة.

عيوب ذات صلة

- معرف تصحيح الأخطاء من Cisco CSCva72280 - تحطم Finesse Tomcat و OpenFire لأحرف XML غير صالحة

- معرف تصحيح الأخطاء من Cisco CSCva72325 - UCCX: Finesse Tomcat و OpenFireCrash لأحرف XML غير صالحة

معلومات ذات صلة

- مواصفات XMPP

- الطراز XEP-0124: بروتوكول BOSH

- XEP-0060: النشر والاشتراك

- وحدة تحكم الويب Firefox

- وحدة تحكم ويب ل Microsoft Edge

- وحدة تحكم Chrome Web

- ويندوز باور شل

- Windows Performance Monitor

- استكشاف أخطاء إسقاطات قائمة انتظار الإدخال وإسقاطات قائمة انتظار الإخراج وإصلاحهما

- إدارة مهام Windows

- محطة ماك الطرفية

- مراقب نشاط MAC

- تنزيل Fiddler

- تشكيل عازف الكمان

- تنزيل Wireshark

- فك تشفير Wireshark SSL

- الدعم التقني والمستندات - Cisco Systems