المقدمة
يوضح هذا المستند كيفية أستكشاف أخطاء "المضيف غير الموجود" وإصلاحها في ميزة الدليل المؤسسي لهواتف IP.
معلومات أساسية
المعلومات المهمة ذات الصلة بهذا المستند هي:
- دليل الشركة عبارة عن خدمة هاتف IP افتراضية توفرها Cisco يتم تثبيتها تلقائيا مع مدير الاتصالات الموحدة (CUCM) من Cisco.
- تخزن المعلومات المتعلقة باشتراك الهاتف في مختلف الخدمات الهاتفية في قاعدة البيانات الموجودة في جداول TeleStarServiceService و TeleStarServiceParameter و TeleStarSubscribed و TeleStarSubscribed Service.
- على الهاتف، عند تحديد الخيار دليل الشركة، يرسل الهاتف إما طلب HTTP أو HTTPS إلى أحد خوادم CUCM ويعاد ككائن XML كاستجابة HTTP(s). إذا كان HTTPS، فإن ذلك يعتمد أيضا على الهاتف المتصل بخدمة TVS للتحقق من شهادة HTTPS. وفي الهواتف التي تدعم أدوات التحكم الصغيرة، يمكن تنفيذ ذلك في وحدة التحكم في الهاتف الأساسية، كما يمكن التأثير عليه من إعداد توفير الخدمات.
معلومات مهمة
- توضيح ما إذا كانت المشكلة تحدث عند الوصول إلى الدلائل أو دليل الشركة.
- ما هو الحقل UR للخدمة المعين تحت خدمة دليل الشركة؟
- إذا تم تعيين عنوان URL على التطبيق:Cisco/CorporateDirectory، ثم بناء على إصدار البرنامج الثابت للهاتف، يقوم الهاتف إما بتقديم طلب HTTP أو HTTPS.
- تقوم الهواتف التي تستخدم الإصدار 9.3.3 من البرنامج الثابت والإصدارات الأحدث بشكل افتراضي بإجراء طلب HTTPS.
- عند تعيين عنوان URL للخدمة على التطبيق:Cisco/CorporateDirectory، يرسل الهاتف طلب HTTP(S) إلى الخادم الذي يكون الأول في مجموعة CallManager (CM) الخاصة به.
- التعرف على مخطط الشبكة بين الهاتف والخادم الذي يتم إرسال طلب HTTP(s) إليه.
- انتبه إلى جدران الحماية ومحسنات شبكة WAN. وما إلى ذلك في المسار الذي يمكنه إسقاط/عرقلة حركة مرور HTTP(s).
- إذا كانت HTTPS قيد الاستخدام، فتأكد من الاتصال بين الهاتف وخادم أجهزة التلفزيون، ومن تشغيل أجهزة التلفزيون.
سيناريو العمل
في هذا السيناريو، يتم تعيين عنوان URL لخدمة الهاتف على التطبيق:Cisco/CorporateDirectory، ويستخدم الهاتف HTTPS.
يوضح هذا المثال ملف تكوين الهاتف بعنوان URL الصحيح.
<phoneService type="1" category="0">
<name>Corporate Directory</name>
<url>Application:Cisco/CorporateDirectory</url>
<vendor></vendor>
<version></version>
</phoneService>
من سجلات وحدة التحكم في الهاتف، يمكنك التحقق من هذه الخطوات.
- يستخدم الهاتف عنوان URL ل HTTPS.
7949 NOT 11:04:14.765155 CVM-appLaunchRequest: [thread=AWT-EventQueue-0]
[class=cip.app.G4ApplicationManager] Creating application module -
Corporate Directory
7950 ERR 11:04:14.825312 CVM-XsiAppData::getCdUrl:
[thread=appmgr MQThread]
[class=xxx.xxx.xx] Using HTTPS URL
- شهادة ويب Tomcat المقدمة إلى الهاتف من خادم الدلائل غير متوفرة على الهاتف. وبالتالي، يحاول الهاتف مصادقة الشهادة عبر خدمة التحقق من الثقة (TVS).
7989 ERR 11:04:15.038637 SECD: -HTTPS cert not in CTL, <10.106.111.100:8443>
7990 NOT 11:04:15.038714 SECD: -TVS service available, can attempt via TVS
- الهاتف يبحث في ذاكرة التخزين المؤقت للتليفزيون أولا، وإذا لم يعثر عليه، فإنه يتصل بخادم TVS.
7995 NOT 11:04:15.039286 SECD: -TVS Certificate Authentication request
7996 NOT 11:04:15.039394 SECD: -No matching entry found at cache
- ونظرا لأن الاتصال بالتلفاز آمن أيضا، يتم إكمال مصادقة الشهادة، وتتم طباعة هذه الرسالة إذا نجحت.
8096 NOT 11:04:15.173585 SECD: -Successfully obtained a TLS connection
to the TVS server
- يرسل الهاتف الآن طلبا لمصادقة الشهادة.
8159 NOT 11:04:15.219065 SECD: -Successfully sent the certificate Authentication
request to TVS server, bytes written : 962
8160 NOT 11:04:15.219141 SECD: -Done sending Certificate Validation request
8161 NOT 11:04:15.219218 SECD: -Authenticate Certificate : request sent to
TVS server - waiting for response
- تعني الاستجابة "0" من أجهزة التلفاز أن المصادقة كانت ناجحة.
8172 NOT 11:04:15.220060 SECD: -Authentication Response received, status : 0
- يتم عرض هذه الرسالة، ثم ترى الاستجابة.
8185 NOT 11:04:15.221043 SECD: -Authenticated the HTTPS conn via TVS
8198 NOT 11:04:15.296173 CVM-[truncated] Received
HTTP/1.1 200 OK^M
X-Frame-Options: SAMEORIGIN^M
Set-Cookie: JSESSIONID=660646D3655BB00734D3895606BCE76F;
Path=/ccmcip/; Secure; HttpOnly^M
Content-Type: text/xml;charset=utf-8^M
Content-Length: 966^M
Date: Tue, 30 Sep 2014 11:04:15 GMT^M
Server: ^M
^M
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><CiscoIPPhoneInput>
<Title>Directory Search</Title><Prompt>Enter search criteria</Prompt><SoftKeyItem>
<Name>Search</Name><Position>1</Position><URL>SoftKey:Submit</URL></SoftKeyItem>
<SoftKeyItem><Name><<</Name><Position>2</Position><URL>SoftKey:<<</URL>
</SoftKeyItem><SoftKeyItem><Name>Cancel</Name><Position>3</Position>
<URL>SoftKey:Cancel</URL></SoftKeyItem>
<URL>https://10.106.111.100:8443/ccmcip/xmldirectorylist.jsp</URL>
<InputItem><DisplayName>First Name</DisplayName>
<QueryStringParam>f</QueryStringParam><InputFlags>A</InputFlags>
<DefaultValue></DefaultValue></InputItem><InputItem>
<DisplayName>Last Name</DisplayName><QueryStringParam>l</QueryStringParam>
<InputFlags>A</InputFlags><DefaultValue></DefaultValue></InputItem><InputItem>
<DisplayName>
عملية مصادقة الشهادة مماثلة لما تتم مناقشته في خدمة التحقق من الثقة بجهات الاتصال الهاتفية للشهادة غير المعروفة.
من الربط على قبض (PCAPs) يجمع عند الهاتف نهاية، أنت يستطيع دققت ال TVS إتصال مع الإستعمالمن هذا مرشح - tcp.port==2445.
في سجلات أجهزة التلفاز المتزامنة:
- راجع الآثار فيما يتعلق بهز يد أمان طبقة النقل (TLS).
- بعد ذلك، راجع مكب السداسي العشري الوارد.
04:04:15.270 | debug ipAddrStr (Phone) 10.106.111.121
04:04:15.270 |<--debug
04:04:15.270 |-->debug
04:04:15.270 | debug 2:UNKNOWN:Incoming Phone Msg:
.
.
04:04:15.270 | debug
HEX_DUMP: Len = 960:
04:04:15.270 |<--debug
04:04:15.270 |-->debug
04:04:15.270 | debug 57 01 01 00 00 00 03 ea
.
<< o/p omitted >>
.
04:04:15.271 | debug MsgType : TVS_MSG_CERT_VERIFICATION_REQ
- ال "TVS" يسترجع تفاصيل المصدر.
04:04:15.272 |-->CDefaultCertificateReader::GetIssuerName
04:04:15.272 | CDefaultCertificateReader::GetIssuerName got issuer name
04:04:15.272 |<--CDefaultCertificateReader::GetIssuerName
04:04:15.272 |-->debug
04:04:15.272 | debug tvsGetIssuerNameFromX509 - issuerName :
CN=cucm10;OU=TAC;O=Cisco;L=Blore;ST=KN;C=IN and Length: 43
04:04:15.272 |<--debug
- أجهزة التلفزيون تتحقق من الشهادة.
04:04:15.272 | debug tvsGetSerialNumberFromX509 - serialNumber :
6F969D5B784D0448980F7557A90A6344 and Length: 16
04:04:15.272 | debug CertificateDBCache::getCertificateInformation -
Looking up the certificate cache using Unique MAP ID :
6F969D5B784D0448980F7557A90A6344CN=cucm10;OU=TAC;O=Cisco;L=Blore;ST=KN;C=IN
04:04:15.272 | debug CertificateDBCache::getCertificateInformation -
Certificate compare return =0
04:04:15.272 | debug CertificateDBCache::getCertificateInformation -
Certificate found and equal
- ترسل أجهزة التلفزيون الإستجابة إلى الهاتف.
04:04:15.272 | debug 2:UNKNOWN:Sending CERT_VERIF_RES msg
04:04:15.272 | debug MsgType : TVS_MSG_CERT_VERIFICATION_RES
تم تعيين عنوان URL لخدمة الهاتف على التطبيق:Cisco/CorporateDirectory والهاتف يستخدم HTTP
ملاحظة: بدلا من إستخدام إصدار سابق من البرنامج الثابت للهاتف، تم ترميز عنوان URL الخاص بالخدمة والخدمة الآمنة ترميزا ثابتا إلى عنوان URL ل HTTP. ومع ذلك، يتم مشاهدة نفس تسلسل الأحداث في البرامج الثابتة للهاتف التي تستخدم بروتوكول HTTP بشكل افتراضي.
يحتوي ملف تكوين الهاتف على عنوان URL الصحيح.
<phoneService type="1" category="0">
<name>Corporate Directory</name>
<url>Application:Cisco/CorporateDirectory</url>
<vendor></vendor>
<version></version>
</phoneService>
من سجلات وحدة التحكم في الهاتف، يمكنك التحقق من هذه الخطوات.
7250 NOT 11:44:49.981390 CVM-appLaunchRequest: [thread=AWT-EventQueue-0]
[class=cip.app.G4ApplicationManager] Creating application module -
Corporate Directory/-838075552
7254 NOT 11:44:50.061552 CVM-_HTTPMakeRequest1: Processing Non-HTTPS URL
7256 NOT 11:44:50.061812 CVM-_HTTPMakeRequest1() theHostname: 10.106.111.100:8080
7265 NOT 11:44:50.233788 CVM-[truncated] Received
HTTP/1.1 200 OK^M
X-Frame-Options: SAMEORIGIN^M
Set-Cookie: JSESSIONID=85078CC96EE59CA822CD607DDAB28C91;
Path=/ccmcip/; HttpOnly^M
Content-Type: text/xml;charset=utf-8^M
Content-Length: 965^M
Date: Tue, 30 Sep 2014 11:44:50 GMT^M
Server: ^M
^M
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><CiscoIPPhoneInput>
<Title>Directory Search</Title><Prompt>Enter search criteria</Prompt><SoftKeyItem>
<Name>Search</Name><Position>1</Position><URL>SoftKey:Submit</URL></SoftKeyItem>
<SoftKeyItem><Name><<</Name><Position>2</Position><URL>SoftKey:<<</URL>
</SoftKeyItem><SoftKeyItem><Name>Cancel</Name><Position>3</Position>
<URL>SoftKey:Cancel</URL></SoftKeyItem>
<URL>http://10.106.111.100:8080/ccmcip/xmldirectorylist.jsp</URL><InputItem>
<DisplayName>First Name</DisplayName><QueryStringParam>f</QueryStringParam>
<InputFlags>A</InputFlags><DefaultValue></DefaultValue></InputItem><InputItem>
<DisplayName>Last Name</DisplayName><QueryStringParam>l</QueryStringParam>
<InputFlags>A</InputFlags><DefaultValue></DefaultValue></InputItem><InputItem>
<DisplayName>Number</D
من التقاط الحزمة، ترى طلب HTTP GET، واستجابة ناجحة. هذه هي المقطوعة من CUCM:
استكشاف الأخطاء وإصلاحها
قبل أستكشاف الأخطاء وإصلاحها، قم بتجميع تفاصيل المشكلة المدرجة سابقا:
السجلات المطلوب تجميعها، إذا لزم الأمر
أتمت هذا steps in order to عزلت الإصدار:
الخطوة 1.
إنشاء خدمة إختبار مع هذه التفاصيل:
Service Name : <Any Name>
Service URL : http://<CUCM_IP_Address>:8080/ccmcip/xmldirectoryinput.jsp
Secure-Service URL : http://<CUCM_IP_Address>:8080/ccmcip/xmldirectoryinput.jsp
Service Category : XML Service
Service Type : Directories
Enable : CHECK
Enterprise Subscription : DO NOT CHECK
والآن اشترك في هذه الخدمة لأحد الهواتف المصابة:
- انتقل إلى صفحة تكوين الجهاز.
- أختر خدمات الاشتراك/إلغاء الاشتراك ضمن الروابط ذات الصلة.
- اشترك في خدمة الاختبار التي أنشأتها.
- قم بحفظ التكوين وتطبيقه وإعادة تعيين الهاتف.
- ما قمت به، بغض النظر عن إصدار FW للهاتف، والذي يحدد ما إذا كان سيتم إستخدام HTTP أو HTTPS URL، هو إرغامه على إستخدام HTTP URL.
- الوصول إلى خدمة دليل الشركة على الهاتف.
- إذا لم ينجح، قم بجمع السجلات المذكورة سابقا، ومقارنتها مع سيناريو العمل المذكور في قسم سيناريو العمل، وحدد مكان الانحراف.
- إذا كان يعمل، فقد قمت على الأقل بتأكيد أنه من منظور خدمة هاتف IP من CUCM لا توجد أي مشاكل.
- في هذه المرحلة، من المرجح أن تكون المشكلة متعلقة بالهواتف التي تستخدم عنوان HTTPS URL.
- الآن، أختر هاتفا لا يعمل، وانتقل إلى الخطوة التالية.
عندما تعمل مع هذا التغيير، يلزمك أن تقرر ما إذا كان من المسموح ترك التكوين مع طلب/إستجابة دليل الشركة التي تعمل عبر HTTP بدلا من HTTPS. لا يعمل اتصال HTTPS بسبب أحد الأسباب التي تمت مناقشتها بعد ذلك.
الخطوة 2.
جمع السجلات المذكوره سابقا ومقارنتها بسيناريو العمل المذكور في قسم سيناريو العمل وتحديد مكان الانحراف.
قد تكون واحدة من هذه القضايا:
- يتعذر على الهاتف الاتصال بخادم TVS.
- في PCAPS، دققت الاتصال على ميناء 2445.
- تأكد من عدم قيام أي من أجهزة الشبكة في المسار بحظر هذا المنفذ.
- يتصل الهاتف بخادم TVS، لكن تأكيد TLS يفشل.
يمكن طباعة هذه السطور في سجلات وحدة تحكم الهاتف:
5007: NOT 10:25:10.060663 SECD: clpSetupSsl: Trying to connect to IPV4,
IP: 192.168.136.6, Port : 2445
5008: NOT 10:25:10.062376 SECD: clpSetupSsl: TCP connect() waiting,
<192.168.136.6> c:14 s:15 port: 2445
5009: NOT 10:25:10.063483 SECD: clpSetupSsl: TCP connected,
<192.168.136.6> c:14 s:15
5010: NOT 10:25:10.064376 SECD: clpSetupSsl: start SSL/TLS handshake,
<192.168.136.6> c:14 s:15
5011: ERR 10:25:10.068387 SECD: EROR:clpState: SSL3 alert
read:fatal:handshake failure:<192.168.136.6>
5012: ERR 10:25:10.069449 SECD: EROR:clpState: SSL_connect:failed in SSLv3
read server hello A:<192.168.136.6>
5013: ERR 10:25:10.075656 SECD: EROR:clpSetupSsl: ** SSL handshake failed,
<192.168.136.6> c:14 s:15
5014: ERR 10:25:10.076664 SECD: EROR:clpSetupSsl: SSL/TLS handshake failed,
<192.168.136.6> c:14 s:15
5015: ERR 10:25:10.077808 SECD: EROR:clpSetupSsl: SSL/TLS setup failed,
<192.168.136.6> c:14 s:15
5016: ERR 10:25:10.078771 SECD: EROR:clpSndStatus: SSL CLNT ERR,
srvr<192.168.136.6>
راجع معرف تصحيح الأخطاء من Cisco CSCua65618 للحصول على مزيد من المعلومات.
- يتصل الهاتف بخوادم TVS، وينجح مصافحة TLS، ولكن يتعذر على أجهزة التلفزيون التحقق من موقع الشهادة التي طلب الهاتف مصادقتها.
يتم سرد القصاصات من سجلات التلفزيون هنا:
يتصل الهاتف بالتلفزيون.
05:54:47.779 | debug 7:UNKNOWN:Got a new ph conn 10.106.111.121 on 10, Total Acc = 6..
.
.
05:54:47.835 | debug MsgType : TVS_MSG_CERT_VERIFICATION_REQ
تلفزيونات حصلت على اسم المصدر.
05:54:47.836 |-->CDefaultCertificateReader::GetIssuerName
05:54:47.836 | CDefaultCertificateReader::GetIssuerName got issuer name
05:54:47.836 |<--CDefaultCertificateReader::GetIssuerName
05:54:47.836 |-->debug
05:54:47.836 | debug tvsGetIssuerNameFromX509 - issuerName :
CN=cucmpub9;OU=TAC;O=Cisco;L=Bangalore;ST=KN;C=IN and Length: 49
يقوم بالبحث عن الشهادة، ولكن لا يمكنه العثور عليها.
05:54:47.836 | debug CertificateCTLCache::getCertificateInformation
- Looking up the certificate cache using Unique MAP ID :
62E09123B09A61D20E77BE5BF5A82CD4CN=cucmpub9;OU=TAC;O=Cisco;L=Bangalore;ST=KN;C=IN
05:54:47.836 |<--debug
05:54:47.836 |-->debug
05:54:47.836 | debug ERROR:CertificateCTLCache::getCertificateInformation
- Cannot find the certificate in the cache
05:54:47.836 |<--debug
05:54:47.836 |-->debug
05:54:47.836 | debug getCertificateInformation(cert) : certificate not found
- تم حظر/إسقاط حركة مرور HTTPS في مكان ما في الشبكة.
احصل على PCAPs متزامنة من الهاتف وخادم CUCM للتحقق من الاتصال.
سيناريوهات أخرى عند حدوث المشكلة "المضيف غير موجود"
- يتم تعريف خادم CUCM بواسطة اسم المضيف مع المشاكل الموجودة في تحليل الاسم.
- قائمة خادم TVS فارغة على الهاتف عندما تقوم بتنزيل ملف xmldefault.cnf.xml. (في الإصدار 8.6.2 لا يحتوي ملف التكوين الافتراضي على إدخال TVS فيه بسبب معرف تصحيح الأخطاء من Cisco CSCti64589.)
- تعذر على الهاتف إستخدام إدخال TVS في ملف التكوين لأنه قام بتنزيل ملف xmldefault.cnf.xml. راجع معرف تصحيح الأخطاء من Cisco CSCuq33297 - هاتف لتحليل معلومات TVS من ملف التكوين الافتراضي.
- لا يعمل دليل الشركة بعد ترقية CUCM لأن البرامج الثابتة للهاتف ترقى إلى إصدار أحدث يؤدي في نهاية المطاف إلى تغيير سلوك إستخدام HTTPS بشكل افتراضي.