Inhalt

Einführung

Voraussetzungen

Anforderungen

Verwendete Komponenten

CTI-Messaging für Jabber Desktop-Steuerung

Zugehörige Informationen

Einführung

Dieses Dokument beschreibt den detaillierten Anrufablauf für die erfolgreiche CTI Manager-Authentifizierung für Jabber Desktop-Clients.

Voraussetzungen

Anforderungen

Cisco empfiehlt, über Kenntnisse in folgenden Bereichen zu verfügen:

- Lightweight Directory Access Protocol (LDAP)

- Integration von Computertelefonie (CTI)

Verwendete Komponenten

Die Informationen in diesem Dokument basieren auf den folgenden Softwareversionen:

- Cisco Jabber für Windows 11.5

- Cisco Unified Communications Manager (CUCM) 10.5(2) und höher

Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.

CTI-Messaging für Jabber Desktop-Steuerung

Stellen Sie sicher, dass die CTI Manager-Dienstprotokolle auf Debug-Ebene eingestellt sind, reproduzieren Sie das Problem und sammeln Sie anschließend Protokolle über die Befehlszeile oder das Real Time Monitoring Tool (RTMT). Befolgen Sie die Schritte hier, um die CTI-Authentifizierung zu überprüfen.

Schritt 1: Provider Open Request vom Jabber Client wird vom CTI Manager Service empfangen.

00895255.002 |08:59:16.944 |AppInfo |[CTI-APP] [CTIHandler::processIncomingMessage] CTI ProviderOpenRequest ( seq#=2 provider=UCProvider login=wwhite heartbeat=60 timer=10 priority=0 lightWeightProviderOpen=0 AuthType=0 RequestOldFetch=0 EncryptedSSODataSize=0)

00895256.000 |08:59:16.944 |SdlSig |CtiProviderOpenReq |init_complete_await_provopen |CTIHandler(1,200,22,7) |CTIHandler(1,200,22,7) |1,200,13,8.3^*^* |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0] Async Response=2 ProviderName=UCProvider ClientVersion=UCProvider LoginId=wwhite ApplName=Shibui ServerHeartbeat=60 CMAssignedAppId=1234 PluginName=Cisco JTAPI LightWeightProviderOpen=0 Auth Style=0 RequestOldFetch=0

00895256.001 |08:59:16.944 |AppInfo |SSOTOKEN =

00895256.002 |08:59:16.944 |AppInfo |CQBEBuilder::BuildQbeMessage(): objectID=2

00895256.003 |08:59:16.944 |AppInfo |CTIHandler::OutputQbeMessage: TcpHand=[1:200:13:8] QbePref={0x0xf74b346c,0x70} pQbeMsg=0x0xf74b3474 qbeMsgSize=0x70 tmpLen=0x78 msgSize_=0x78

Schritt 2: Provider Open Response wird an Jabber Client gesendet.

00895256.004 |08:59:16.944 |AppInfo |[CTI-APP] [CTIHandler::OutputCtiMessage ] CTI ProviderOpenResponse (seq#=2) provider id=16777223 FIPSMode = 0

Schritt 3: Der Prozess der Endbenutzerauthentifizierung wird gestartet.

00895260.000 |08:59:17.057 |SdlSig |CtiProceedWithAppLogin |init_complete_await_auth |CTIHandler(1,200,22,7) |CtiManager(1,200,21,1) |1,200,13,8.3^*^* |[R:L-H:0,N:0,L:0,V:0,Z:0,D:0]

00895261.000 |08:59:17.058 |SdlSig |CtiLoginCheckReq |ready |Directory(1,200,23,1) |CTIHandler(1,200,22,7) |1,200,13,8.3^*^* |[T:N-H:0,N:0,L:0,V:0,Z:0,D:0] Login=wwhite Seq#=2 Auth Style=0 3rd Party Certificate=0 mOcsp_url= mIssuerName= EncryptedSingleSignOnData Size=0

00895261.001 |08:59:17.058 |AppInfo |CtiLoginCheckReq::authenticateByUserName

Schritt 4: Die Entschlüsselung des Schlüssels erfolgt und muss vor dem Authentifizierungsversuch erfolgreich sein.

00895261.002 |08:59:17.058 |AppInfo |CCMAsymmetricEncryption::DecryptText Enter

00895261.003 |08:59:17.067 |AppInfo |CCMAsymmetricEncryption::DecryptText Exit

00895261.004 |08:59:17.067 |AppInfo |Decrypted Key Status success - [52]

00895261.005 |08:59:17.067 |AppInfo |Nonce =cc64fd13-d4e1-43bc-808f-f051f7c945d0

00895261.006 |08:59:17.067 |AppInfo |Nonce validation success

00895261.007 |08:59:17.067 |AppInfo |CCMSymmetricEncryption::DecryptText:enter

00895261.008 |08:59:17.067 |AppInfo |CCMEncryption::DecryptText (Exit) (Success))

00895261.009 |08:59:17.067 |AppInfo |Decrypted Password Status success - [8]

Schritt 5: Der Benutzername wird abgerufen und zusammen mit dem Kennwort für die Authentifizierung verwendet.

00895261.010 |08:59:17.067 |AppInfo |AuthenticationImpl::login:enter

00895261.011 |08:59:17.067 |AppInfo |AuthenticationImpl::retrieveCredential:enter

00895261.012 |08:59:17.067 |AppInfo |userid is wwhite

00895261.013 |08:59:17.067 |AppInfo |AuthenticationImpl::login - no encryptedpassword Credential, look for password

00895261.014 |08:59:17.067 |AppInfo |AuthenticationImpl::login (Auth with password. Calling authenticateUserWithPassword)

00895261.015 |08:59:17.067 |AppInfo |authenticationDB::authenticateUserWithPassword():enter

00895261.016 |08:59:17.067 |AppInfo |Credential Length is: 8

Schritt 6: CTI Manager überprüft die Richtlinien für Anmeldeinformationen des Benutzers.

00895261.021 |08:59:17.113 |AppInfo |userType is: 1

00895261.022 |08:59:17.113 |AppInfo |timeOfLockout is: 0

00895261.023 |08:59:17.113 |AppInfo |timeHackedLockout is: 0

00895261.024 |08:59:17.113 |AppInfo |hackCount is: 0

00895261.025 |08:59:17.113 |AppInfo |daysToExpiry is: 0

00895261.026 |08:59:17.113 |AppInfo |doesNotExpire is: 0

00895261.027 |08:59:17.113 |AppInfo |useExpiryWarning is: 0

00895261.028 |08:59:17.113 |AppInfo |isInactive is: 0

00895261.029 |08:59:17.113 |AppInfo |userMustChange is: 0

00895261.030 |08:59:17.113 |AppInfo |endUserStatus is: 1

00895261.031 |08:59:17.113 |AppInfo |imsInfo is: 1

00895261.032 |08:59:17.113 |AppInfo |lastSuccessfulLoginTime is: 1455049675

00895261.033 |08:59:17.148 |AppInfo |XXXXXX Check 1

Schritt 7: CTI-Authentifizierung für den Endbenutzer wird fortgesetzt.

00895261.034 |08:59:17.149 |AppInfo |authenticationDB::login (Authenticating using LDAP)

00895261.035 |08:59:17.149 |AppInfo |authenticationLDAP.cpp::authenticateUserWithPassword():enter

00895261.036 |08:59:17.149 |AppInfo |LDAP userid is 'wwhite'

00895261.037 |08:59:17.149 |AppInfo |authenticationUtils::escapeLDAPSpecialCharsForFilter():enter

00895261.038 |08:59:17.149 |AppInfo |

After Escaping for LDAP special Characters for Filter = wwhite

Schritt 8: Der CTI Manager-Dienst versucht nun, vor dem Authentifizierungsversuch eine Verbindung zu LDAP herzustellen.

00895261.040 |08:59:17.149 |AppInfo |LDAP not initialized...connecting...

00895261.041 |08:59:17.149 |AppInfo |authenticationLDAP::connect():enter

00895261.042 |08:59:17.149 |AppInfo |authenticationLDAP::Authenticate():enter

00895261.043 |08:59:17.149 |AppInfo |Authenticating with SSL not enabled (ldap://10.10.10.10:3268)

Schritt 9: Der Verbindungsversuch wurde mit dem in der LDAP-Authentifizierungskonfiguration konfigurierten Dienstkonto erfolgreich durchgeführt.

00895261.044 |08:59:17.149 |AppInfo |LDAP initialize non-SSL Return Code (0)

Schritt 10: Die Admin-Authentifizierung ist erfolgreich.

00895261.051 |08:59:17.158 |AppInfo |LDAP authentication bind SUCCESS for Administrator@joshlab.net

00895261.052 |08:59:17.158 |AppInfo |Connection # (0): sucessful

00895261.053 |08:59:17.158 |AppInfo |Details ::

00895261.054 |08:59:17.158 |AppInfo |10.10.10.10 3268

00895261.055 |08:59:17.158 |AppInfo |------------------------------------------------------------------------

00895261.056 |08:59:17.158 |AppInfo |Available Servers (1)

00895261.057 |08:59:17.158 |AppInfo |authenticationLDAP::Authenticate():exit(0)

00895261.058 |08:59:17.158 |AppInfo |Authentication of LDAP administrator successful.

Schritt 11: Der CTI Manager-Dienst ruft LDAP-Informationen ab und authentifiziert sich mit dem Endbenutzerkonto.

00895261.072 |08:59:17.164 |AppInfo |Retrieve the specified user entry: (&(&(objectclass=user)(!(objectclass=Computer))(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))(sAMAccountName=wwhite))

00895261.073 |08:59:17.164 |AppInfo |LDAP Search for User base: 'OU=Breaking Bad,DC=joshlab,DC=net'

00895261.074 |08:59:17.165 |AppInfo |LDAP Search complete. Code: 0

00895261.075 |08:59:17.165 |AppInfo |Get DN of entry.

00895261.076 |08:59:17.165 |AppInfo |Got DN: CN=Walter White,OU=Breaking Bad,DC=joshlab,DC=net

00895261.077 |08:59:17.165 |AppInfo |Attempt to authenticate DN: CN=Walter White,OU=Breaking Bad,DC=joshlab,DC=net

00895261.078 |08:59:17.165 |AppInfo |authenticationLDAP::Authenticate():enter

00895261.079 |08:59:17.165 |AppInfo |Authenticating with SSL not enabled (ldap://10.10.10.10:3268)

Schritt 12: Die LDAP-Authentifizierung für den Endbenutzer ist erfolgreich.

00895261.087 |08:59:17.171 |AppInfo |LDAP authentication bind SUCCESS for CN=Walter White,OU=Breaking Bad,DC=joshlab,DC=net

00895261.088 |08:59:17.171 |AppInfo |Connection # (0): sucessful

00895261.089 |08:59:17.171 |AppInfo |Details ::

00895261.090 |08:59:17.171 |AppInfo |10.10.10.10 3268

00895261.091 |08:59:17.171 |AppInfo |------------------------------------------------------------------------

00895261.092 |08:59:17.171 |AppInfo |Available Servers (1)

00895261.093 |08:59:17.171 |AppInfo |authenticationLDAP::Authenticate():exit(0)

00895261.094 |08:59:17.171 |AppInfo |authenticationLDAP::authenticateUserWithPassword():Exit(0)

00895261.095 |08:59:17.171 |AppInfo |Successfully authenticated user: wwhite

Schritt 13: Der CTI Manager überprüft die Datenbank, um sicherzustellen, dass der Endbenutzer über die richtigen Berechtigungen für den Zugriff auf das Telefon verfügt.

00895262.000 |08:59:17.171 |SdlSig |CtiLoginCheckRes |authenticating |CTIHandler(1,200,22,7) |Directory(1,200,23,1) |1,200,13,8.3^*^* |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0] Seq#=2 result=Success LoginUserID= Expire days=4294967295

00895263.000 |08:59:17.172 |SdlSig |CtiUserSettingsReq |ready |CTIDbAccess(1,200,26,1) |CTIHandler(1,200,22,7) |1,200,13,8.3^*^* |[T:H-H:0,N:0,L:0,V:0,Z:0,D:0] mUserId=wwhite

00895263.001 |08:59:17.172 |AppInfo |DbAccess::ReadCtiUserSettingsReq

Schritt 14: CTI-Benutzerberechtigungen sind bestätigt.

00895264.000 |08:59:17.172 |SdlSig |CtiUserSettingsRes |verifying |CTIHandler(1,200,22,7) |CTIDbAccess(1,200,26,1) |1,200,13,8.3^*^* |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0] SuperProvider = Disabled CallParkRetrievalAllowed = Disabled ModifyCallingNumber = Disabled CTI Enabled = Enabled CallMonitor=Disabled CallRecord=Disabled Userid = wwhite result=0

00895264.001 |08:59:17.172 |AppInfo |[CTI-INFO] [CTIHandler::verifying_CtiUserSettingsRes] mCtiUserSettings.mbSecurityEnabled=0

00895264.002 |08:59:17.172 |AppInfo |[CTI-INFO] [CTIHandler::verifying_CtiUserSettingsRes] mListenPort=2748

00895264.003 |08:59:17.172 |AppInfo |[CTI-INFO] [CTIHandler::verifying_CtiUserSettingsRes] sent providerSubscriptionRegNotify for user wwhite

Schritt 15: CTI sendet dann eine DeviceOpenRequest für das Telefon, das Jabber steuern wird.

00895326.002 |08:59:17.335 |AppInfo |[CTI-APP] [CTIHandler::processIncomingMessage] CTI DeviceOpenRequest ( seq#=4 device name=SEP001794625DE5 softkeys AppID=1234)

00895327.000 |08:59:17.335 |SdlSig |CtiDeviceOpenDeviceReq |ready |CTIHandler(1,200,22,7) |CTIHandler(1,200,22,7) |1,200,13,8.5^14.48.68.203^SEP001794625DE5 |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0] AsyncResponse=4 DH=0|0 Name=SEP001794625DE5 Type=0 RisClass=0 TerminateMedia=5 RequestType=0 RtpDestination1|1 ApplnIpAddrMode=3 Filter Bitmap=000100000000000000000100000001001 AppLoginUserId=wwhite AppIPAddr= ipAddrType=0 ipv4=10.10.10.100 ApplicationIDListCount = 1 ApplicationIds are 1234, mSoftKeyApplicationID = 1234 ProviderIDListCount = 1 ProviderIds are 16777223, IsCTIConnectionTLS = F

Schritt 16: Der CTI-Manager erlaubt die Verbindung und sendet die DeviceOpenRequest-Antwort.

00895329.000 |08:59:17.339 |SdlSig |CtiDeviceOpenDeviceRes |ready |CTIHandler(1,200,22,7) |CTIDeviceLineMgr(1,200,25,1) |1,200,13,8.5^10.10.10.100^SEP001794625DE5 |[R:N-H:0,N:3,L:0,V:0,Z:0,D:0] mAsyncResponse = 4 DH=1|38 Name=SEP001794625DE5 Type=7 StationPid=(0,0,0,0) mOpenResult=0x0 mEncodingType=3 mRequestType=0 mDSSDeviceState = 0

00895329.001 |08:59:17.339 |AppInfo |CQBEBuilder::BuildQbeMessage(): objectID=27

00895329.002 |08:59:17.340 |AppInfo |CTIHandler::OutputQbeMessage: TcpHand=[1:200:13:8] QbePref={0x0xf74b346c,0x98} pQbeMsg=0x0xf74b3474 qbeMsgSize=0x98 tmpLen=0xa0 msgSize_=0xa0

00895329.003 |08:59:17.340 |AppInfo |[CTI-APP] [CTIHandler::OutputCtiMessage ] CTI DeviceOpenResponse ( seq#=4 result=0 DH=1|38 deviceName=SEP001794625DE5 deviceType=7 deviceId=38 registrationAllowed=0 deviceLocale=1 protocol=1 deviceRestricted=0 altScript= Rollover=0 BIB=0 DNDOption=0 IpAddrMode=0 supportsFeat=0 Visiting=0)

00895330.000 |08:59:17.340 |AppInfo |-->RisCTIManagerAccess::DeviceOpenActivityy(...)

00895331.000 |08:59:17.340 |AppInfo |DeviceOpenActivity(): activity: 1, connID: 7, deviceName: SEP001794625DE5, appID: wwhite-10.10.10.100-58667, rtpaddr: , assocIpAddr: , mediaControl: 0, deviceType: 7, reason: 0

00895332.000 |08:59:17.340 |AppInfo |<--RisCTIManagerAccess::DeviceOpenActivityy(...)

Schritt 17: Schließlich gibt es noch die Meldung DeviceInService, die den erfolgreichen Abschluss der Anforderung zur Steuerung von Desktoptelefonen kennzeichnet.

00895336.003 |08:59:17.343 |AppInfo |[CTI-APP] [CTIHandler::OutputCtiMessage ] CTI DeviceInServiceEvent ( DH=1|38 ) Encoding Type=3 Device locale=1 Alt Script= DNDStatus=0 DNDOption=0)

00895337.000 |08:59:17.344 |SdlSig |SdlDataInd |ready |CtiManager(1,200,21,1) |SdlTCPConnection(1,200,13,8) |1,200,13,8.6^*^* |*TraceFlagOverrode

00895337.001 |08:59:17.344 |AppInfo |CtiManager::ready_SdlDataInd(): ConnHandle=[1:200:13:8] TCP message length=0x108

00895338.000 |08:59:17.344 |SdlSig |CtiQbeGenericMessage |ready |CTIHandler(1,200,22,7) |CtiManager(1,200,21,1) |1,200,13,8.6^*^* |*TraceFlagOverrode

00895338.001 |08:59:17.344 |AppInfo |CQBEParser::ParseQbeMessage: PDU#=37

An diesem Punkt ist der Jabber Client erfolgreich in der Lage, Desktoptelefon über CTI zu steuern. Häufige Probleme können bei der LDAP-Authentifizierung und dem Endbenutzer-Berechtigungsprozess der CTI-Protokolle auftreten.

Zugehörige Informationen

- Konfigurationsleitfaden für Jabber

- Technischer Support und Dokumentation - Cisco Systems