目錄

簡介

需要日誌

氣泡聊天流

日誌分析

步驟1.客戶端控制檯日誌：按一下以聊天。

步驟2. SM ccppublicapps:DB dip to mmca_webhook

步驟3. UCCX MADM:接收構件配置的請求。

步驟4. SM Publicapps:200 OK on the Widget Config。

步驟5.客戶端控制檯日誌：對客戶端瀏覽器的響應（以JSON顯示詳細資訊）。

步驟6. SM Publicapps:傳入聊天請求。

步驟7. SM運行時：已建立社交聯絡人。

步驟8. SM Publicapps:將建立的SocialContact更新到公共API。

步驟9. SM運行時：將通知傳送到MADM上的CCX Webservice API。

步驟10. UCCX MADM:Webservices顯示傳入的聊天請求。

步驟11. UCCX MADM:將JMS消息傳送到CCX引擎。

步驟12. UCCX MIVR:

步驟13. SM Publicapps:代理加入和聊天會話已啟動。

步驟14.客戶端控制檯日誌：座席加入聊天室。

步驟15. SM Publicapps：使用者離開聊天室。

步驟16.客戶端控制檯日誌：使用者瀏覽器顯示聊天評級成功。

步驟17. SM Publicapps:ccppublicapps從瀏覽器接收「聊天後」評級。

步驟18. UCCX MIVR:從SM接收的XMPP更新。

步驟19. UCCX MIVR:將聊天評分寫入資料庫。

簡介

本檔案介紹Bubble聊天流程以及針對正在工作的氣泡聊天記錄的端到端日誌分析，可作為排除問題的工作參考。

發佈UCCX和SocialMiner(SM)11.6(2)的Unified Contact Center Express(UCCX)解決方案新增了新氣泡聊天功能。

Bubble Chat（或Chat Bubble）功能使您能夠使用隨網頁移動（滾動）的干擾最小、浮動的聊天網路表單與業務聯絡，該表單完全可自定義，並且還可以立即更新任何自定義設定，而無需在網站上重新部署該網路表單。

作者：Jayant Suneja、Arunabh Bhattacharjee，Cisco Engineering。

需要日誌

為了跟蹤整個流程，日誌將聊天啟動器（客戶）記錄到UCCX。

- 客戶端控制檯日誌：這些是終端使用者發起聊天時使用的瀏覽器控制檯日誌。

- SM日誌：ccppublicapps日志、運行時日誌、tomcat日誌。

- UCCX日誌：MIVR日誌(帶SS_CHAT和SS_ROUTEANDQUEUE調試的引擎日誌)、MADM日誌(帶UCCX_WEBSERVICES的CCX管理日誌)。

其餘分析（加入聊天室後）與傳統聊天流（即Finesse上的SocialMiner Agent小工具與通過XMPP隧道連線的最終客戶之間的簡單XMPP事件）相同

氣泡聊天流

該流程可通過本圖中所示的19個步驟進行總結。

日誌中概述了每個步驟。

日誌分析

當客戶按一下「按一下以聊天」按鈕時，會使用聊天構件中的JavaScript代碼顯示Bubble聊天表單。

Bubble聊天表單執行伺服器端呈現 — 它獲取聊天配置以載入UI，以便終端使用者開始聊天。

如果您開啟聊天小部件，將會看到以下格式配置的URL:

https://<SOCIALMINER>/ccp/ui/BubbleChat.html?host=<SOCIALMINER>&wid=<WIDGET_ID>&secure=true

<SOCIALMINER>和<WIDGET_ID>分別是SocialMiner FQDN和小部件ID。

此處收到的配置為JSON形式。

步驟1.客戶端控制檯日誌：按一下以聊天。

1. 最終客戶在網頁上按下「Click to chat（點選聊天）」後，即可通過這三個網址訪問SM。

2. 請注意，構件ID將在第三個請求中傳送。

3. 所有這些OK都應該成功返回，以便載入氣泡聊天視窗。

1) GET https://sm-fqdn/ccp/ui/BubbleChat.html?host=sm-fqdn&wid=1&secure=true

[HTTP/1.1 200 OK 0ms]

2) GET https://sm-fqdn/ccp/ui/js/ccp/bubblechat/ccp-chat-components.js

[HTTP/1.1 200 OK 0ms]

3) GET https://sm-fqdn/ccp/bubblechat?wid=1

[HTTP/1.1 200 OK 289ms]

步驟2. SM ccppublicapps:DB dip to mmca_webhook

1. SM對SM Informix資料庫上的mmca_webhook表執行資料庫讀取操作，並藉助構件ID獲取此傳入聊天請求的Webhook URL。在本例中，它是widegetid=1。

2. 然後，SM使用此webhook URL從UCCX獲取構件配置。

0000000323: 10.78.91.166: Aug 06 2018 09:24:09.538 +0530: %CCBU_________CCPAPI-6-REST_API_INFO:

Fetching bubble chat config from hook url:

https://uccx-fqdn/uccx-webservices/chat/config/1

0000000324: 10.78.91.166: Aug 06 2018 09:24:09.538 +0530: %CCBU_________CCPAPI-6-REST_API_INFO:

Fetching bubble chat config from hook url:

https://uccx-fqdn/uccx-webservices/chat/config/1

步驟3. UCCX MADM:接收構件配置的請求。

1. 作為MADM一部分的UCCX Web服務收到此請求以獲取構件配置。

2. 小部件配置包含字型字型、顏色、聊天小部件的樣式、表單資訊等。

3. 然後，UCCX執行資料庫讀取並從UCCX Informix(db_cra)上的chatbubble表提取構件配置。

4. 此配置通過ccppublicapps API返回給使用者的瀏覽器，作為JSON響應。

7199526: Aug 06 09:31:21.235 IST %MADM-UCCX_WEBSERVICES-7-UNK:[http-bio-443-exec-14] ServiceLogger:

Request Url: https://uccx-fqdn/uccx-webservices/chat/config/1

7199527: Aug 06 09:31:21.235 IST %MADM-UCCX_WEBSERVICES-7-UNK:[http-bio-443-exec-14] ServiceLogger:

Match Found for https://uccx-fqdn/uccx-webservices/chat/config/1

7199528: Aug 06 09:31:21.235 IST %MADM-UCCX_WEBSERVICES-7-UNK:[http-bio-443-exec-14] ServiceLogger:

ChatResource: Received a chat config GET request for chat widget id : 1

步驟4. SM Publicapps:200 OK on the Widget Config。

SM收到200 OK的GET請求，該請求被傳送到CCX以提取聊天構件配置。

10.78.91.166: Aug 06 2018 09:31:21.297 +0530: %CCBU_________CCPAPI-6-REST_API_INFO:

Received success response within 100 milliseconds

10.78.91.166: Aug 06 2018 09:32:38.684 +0530: %CCBU__CCPPUBLICAPPS-6-PUBLICAPPS_SESSION_CREATED:

%[session.id=3F8B8C08D7E8144C7B1AD7AF144A4C1E][session_timeout=300]: ccppublicapps: new publicapps

session

步驟5.客戶端控制檯日誌：對客戶端瀏覽器的響應（以JSON顯示詳細資訊）。

1. 以下是上述所有操作中客戶端接收到的JSON響應示例。

2. 此JSON用於在收到時通過配置的字型、問題語句、顏色等載入氣泡聊天視窗。

附註：完成上述所有操作是為了載入氣泡聊天視窗，以便客戶現在可以填寫其詳細資訊以開始與聯絡中心聊天。客戶提交聊天詳細資訊後的其他流程與傳統/傳統聊天流程中的流程相同。

GET https://sm-fqdn/ccp/bubblechat?wid=1[HTTP/1.1 200 OK 289ms]

Response:

{"feedId":"100000","postChatRatingEnabled":true,"messages":{"agentJoinTimeoutMsg":"All our customer care representatives are busy. You may wait or try again later.","transcriptPopupPositiveMsg":"Yes","transcriptPopupMsg":"Chat has ended. Do you want to download the chat transcript?","transcriptPopupNegativeMsg":"No","connectivityErrorMsg":"Chat disconnected due to inactivity timeout or connection failure.","agentLeftMsg":" ${agent_alias} has left the chat","ratingButtonText":"Submit","offHourMessage":"Sorry, we are not available at the moment.","textForTypingMsg":"Type your message and press Enter","agentJoinedMsg":" ${agent_alias} has joined","closeChatPopupMsg":"Do you want to close the chat?","closeChatPopupNegativeMsg":"No","ratingLabel":"Rate your chat experience","chatErrorMsg":"Chat service is currently unavailable. Try later.","closeChatPopupPositiveMsg":"Yes","welcomeMessage":"Thank you for contacting us. A customer care representative would assist you soon."},"contextServiceFieldSets":"","chatForm":{"bubbleStyle":{"titleText":"CCBU Care Startup","titleTextColor":"#0AB7D7","buttonText":"Start Chat","buttonTextColor":"#FFFFFF","buttonBackgroundColor":"#0AB7D7","problemStmtCaption":"Choose a problem statement","afterResumeNewChatMsg":"New Message","agentMessageTextColor":"#FFFFFF","agentMessageBackgroundColor":"#0AC391","fontFace":"Helvetica"},"formFields":["Title","Name","Details","Email","PhoneNumber","AddressLine1","AddressLine2","Anything important to note","Teléfono","Cédula"],"problemStatements":{"caption":"Choose a problem statement","statements":[{"statement":"Insuarance","csqTag":"Chat_Csq1"},{"statement":"Debit","csqTag":"Chat_Csq1"},{"statement":"Credit","csqTag":"Chat_Csq1"},{"statement":"Account","csqTag":"Chat_Csq1"}]}},"proactiveChat":false,"name":"Bubble1162","id":1}

步驟6. SM Publicapps:傳入聊天請求。

SM接收傳入的聊天請求並建立社交聯絡人：

0000001136: 10.78.91.166: Aug 06 2018 09:32:38.692 +0530: %CCBU__CCPPUBLICAPPS-6-CHAT_ROOM_DETAILS: %[Nickname=Jayant Suneja][RoomJid=socialminer_chat.16@conference.127.0.0.1][RoomSubject=Chat with Jayant Suneja][social_contact_id=null]: Create chat room with the following details

步驟7. SM運行時：已建立社交聯絡人。

社交聯絡人由SocialMiner引擎（運行時服務）建立。

0000399687: 10.78.91.166: Aug 06 2018 09:32:38.764 +0530: %CCBU__________FEEDS-6-SOCIAL_CONTACT_CREATED: %[SOCIAL_CONTACT_ID=0D66B2241000016500235A740A4E5BA6][SOCIAL_CONTACT_LINK=https://sm-fqdn/ccp/socialcontact/0D66B2241000016500235A740A4E5BA6]: A new social contact was created

步驟8. SM Publicapps:將建立的SocialContact更新到公共API。

已建立社交聯絡人的更新，可在ccppublicapps日誌中看到。

0000000337: 10.78.91.166: Aug 06 2018 09:32:38.767 +0530: %CCBU_________CCPAPI-6-CREATE_SOCIAL_CONTACT: SocialContact successfully created with requestId: y3xQxE

0000001142: 10.78.91.166: Aug 06 2018 09:32:38.768 +0530: %CCBU__CCPPUBLICAPPS-6-CHAT_CREATED: %[Contact=https://sm-fqdn/ccp-webapp/ccp/socialcontact/0D66B2241000016500235A740A4E5BA6][Room=socialminer_chat.16@conference.127.0.0.1][Session=3F8B8C08D7E8144C7B1AD7AF144A4C1E][social_contact_id=null]: Chat created

步驟9. SM運行時：將通知傳送到MADM上的CCX Webservice API。

從SM向CCX Web服務傳送通知，通知CCX有新的傳入聊天。

0008541000: 10.78.91.166: Aug 06 2018 09:32:38.940 +0530: %CCBU___NOTIFICATION-6-NOTIFICATION_SUCCEEDED: %[Notification=com.cisco.ccbu.ccp.notification.Notification@1beea47[enqueueTime=1533528158834,rule=com.cisco.ccbu.oamp.omgr.transfer.HttpNotificationRule@15a2eb1[httpUrl=https://uccx-fqdn/uccx-webservices/contact,httpUsername=

,httpPassword=

,sslVerifyCertificates=false,campaignId=100001,tags=[ccx_chat_req],id=100006,name=CCX

Chat Notification for HA - Backup,description=Created by CCX application as part of CCX chat configuration.,changeStamp=1,lastUpdated=1527579740301,ouId=4],screenPopUrl=http://sm-fqdn/results.jsp?scID=0D66B2241000016500235A740A4E5BA6&campaignID=CCX_Chat_Campaign,body=

version="1.0" encoding="UTF-8" standalone="yes"?>

<SocialContact>

<author>Jayant Suneja</author>

<description></description>

<extensionFields>

<extensionField>

<name>AddressLine1</name>

<value>1900</value>

</extensionField>

<extensionField>

<name>AddressLine2</name>

<value>9th street</value>

步驟10. UCCX MADM:Webservices顯示傳入的聊天請求。

CCX在MADM上接收傳入聊天聯絡人，並啟用UCCX_WEBSERVICES進行調試。

7199571: Aug 06 09:32:39.079 IST %MADM-UCCX_WEBSERVICES-7-UNK:[http-bio-443-exec-7] ServiceLogger: New incoming contact : <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<contactXML>

<author>Jayant Suneja</author>

<id>0D66B2241000016500235A740A4E5BA6</id>

<integrationAuthTokenGUID>d64fe6ac-9687-4ecd-9f00-0e6ec02c6945</integrationAuthTokenGUID>

<notificationTag>ccx_chat_req</notificationTag>

<publishedDate>1533528158684</publishedDate>

<refURL>http://sm-fqdn/ccp-webapp/ccp/socialcontact/0D66B2241000016500235A740A4E5BA6>

<replyTemplateURL>http://sm-fqdn/multisession/ui/templates/reply/cisco_agent_ms_chat.jsp>

<sourceType>chat</sourceType>

<status>unread</status>

<statusReason>unknown</statusReason>

<statusTimestamp>1533528158756</statusTimestamp>

<tags>

步驟11. UCCX MADM:將JMS消息傳送到CCX引擎。

引擎現在通過JMS消息匯流排通知新聯絡人，即UCCX MADM（管理Web服務API）通知MIVR（引擎）對此聯絡人進行排隊。

7199573: Aug 06 09:32:39.080 IST %MADM-UCCX_WEBSERVICES-7-UNK:[http-bio-443-exec-7] ServiceLogger: Sending JMS message to Contact Topic: ContactEvent [operation=ADD, contactXML=ContactXML [author=Jayant Suneja, id=0D66B2241000016500235A740A4E5BA6, replyType=chat, notificationTag=ccx_chat_req, refURL=http://sm-fqdn/ccp-webapp/ccp/socialcontact/0D66B2241000016500235A740A4E5BA6, replyTemplateURL=http://sm-fqdn/multisession/ui/templates/reply/cisco_agent_ms_chat.jsp, integrationAuthTokenGUID=d64fe6ac-9687-4ecd-9f00-0e6ec02c6945, userExtensionFields=[UserExtensionField [name=AddressLine1, value=1900], UserExtensionField [name=AddressLine2, value=9th street], UserExtensionField [name=Anything important to note, value=Bill Issue], UserExtensionField [name=Cédula, value=Bill Issue], UserExtensionField [name=Details, value=Test Bubble Chat], UserExtensionField [name=Email, value=xxxx@gmail.com], UserExtensionField [name=Name, value=Jayant Suneja], UserExtensionField [name=PhoneNumber, value=97xxxxxxxx], UserExtensionField [name=Teléfono, value=Bill Issue], UserExtensionField [name=Title, value=Mr.], UserExtensionField [name=ccxqueuetag, value=Chat_Csq1], UserExtensionField [name=h_chatOrigin, value=CISCO_BUBBLE], UserExtensionField [name=h_chatRoom, value=socialminer_chat.16@conference.127.0.0.1], UserExtensionField [name=h_widgetName, value=Bubble1162]], tags=[ccx_chat_req], sourceType=chat, status=unread, statusReason=unknown, publishedDate=1533528158684, title=CCX_Chat, campaignPublicId=null, statusTimestamp=1533528158756]]

步驟12. UCCX MIVR:

聊天子系統(SS_CHAT)將聊天聯絡人排隊，路由和隊列子系統(SS_ROUTEANDQUEUE)將聊天分配給座席。在啟用SS_CHAT和SS_ROUTEANDQUEUE以進行調試的UCCX引擎日誌(MIVR)中可看到這種情況。

3722751: Aug 06 09:32:39.144 IST %MIVR-SS_CHAT-7-UNK:[pool-8-thread-15] ChatSubsystemLogger: com.cisco.wf.subsystems.chat.observer.ContactNotificationObserver : Contact Notification received - ContactNotification [requestId=, contactId=0D66B2241000016500235A740A4E5BA6, contactState=QUEUED, handlerQueue=-1, startTime=1533528159105, endTime=-1, queueWaitDuration=0, handlingDuration=-1, terminalStateContact=ChatContact(Contact[id=0D66B2241000016500235A740A4E5BA6,state=QUEUED,dispReason=UNKNOWN]), dispositionReason=UNKNOWN, mediaType=CHAT, sequenceNumber=0, statusTimeStamp=1533528158756]. Notification Type UPDATE

3722752: Aug 06 09:32:39.144 IST %MIVR-SS_ROUTEANDQUEUE-7-UNK:[pool-8-thread-15] RouteAndQueueSubsystemLogger: ALLOCATED Contact [0D66B2241000016500235A740A4E5BA6] to Agent [Jabber@ge.nt1]

向座席傳送通知，以接受使用者與座席之間的聊天並建立聊天室。

所有這一切的流與舊版聊天相同，因此不會從此流的日誌中覆蓋太多內容。

步驟13. SM Publicapps:代理加入和聊天會話已啟動。

建立XMPP隧道後，已建立聊天會話。使用者的聊天小部件和SocialMiner聊天小工具（在Finesse上託管）現在通過XMPP連線，您可以看到正在傳送和接收的線上狀態事件。

0000001149: 10.78.91.166: Aug 06 2018 09:32:46.842 +0530: %CCBU__CCPPUBLICAPPS-6-PRESENCE_EVENT_RECEIVED: %[CustomerNickname=Jayant Suneja][Nickname=Jabber@ge.nt1][SocialContactID=0D66B2241000016500235A740A4E5BA6][Status=joined][Username=socialminer_chat.16@conference.127.0.0.1/Jabber@ge.nt1]: Received presence event

0000001152: 10.78.91.166: Aug 06 2018 09:32:51.168 +0530: %CCBU__CCPPUBLICAPPS-6-TYPING_STATUS_RECEIVED: %[From=socialminer_chat.16@conference.127.0.0.1/Jabber@ge.nt1][Nickname=Jabber@ge.nt1][SocialContactID=0D66B2241000016500235A740A4E5BA6][Text=composing]: Typing Status received

步驟14.客戶端控制檯日誌：座席加入聊天室。

客戶端日誌顯示代理加入聊天室。聊天構件中會顯示相同內容。

Mon Aug 06 2018 09:32:48 GMT+0530 (India Standard Time):CISCO_BUBBLE_CHAT:Received chat room

status event of type chatroom_agent_joined

附註：客戶現在可以結束聊天了。與舊版聊天相比，此處的流量略有不同，因為新增了post chat rating with bubble chat功能。

步驟15. SM Publicapps：使用者離開聊天室。

使用者離開聊天室，現在座席在聊天室中是單獨的。這也顯示了使用者離開房間。

0000001185: 10.78.91.166: Aug 06 2018 09:33:26.738 +0530: %CCBU__CCPPUBLICAPPS-6-LEAVE_CHAT_ROOM:

%[ChatRoomName=socialminer_chat.16@conference.127.0.0.1][Nickname=Jayant Suneja]

[User=ccp_chatclient][social_contact_id=0D66B2241000016500235A740A4E5BA6]: Leave chat room

附註：如果啟用帖子聊天評級，則使用者提交帖子聊天評級後，SM會收到此聊天評級。

步驟16.客戶端控制檯日誌：使用者瀏覽器顯示聊天評級成功。

使用使用者瀏覽器上收到的200 OK成功提交聊天評級。

Mon Aug 06 2018 09:33:34 GMT+0530 (India Standard Time):CISCO_BUBBLE_CHAT:Feedback submitted

successfully. Response code: 200

Mon Aug 06 2018 09:33:34 GMT+0530 (India Standard Time):CISCO_BUBBLE_CHAT:Successfully ended

the chat session. Response code: 200 ccp-chat-components.js:1:14634

Mon Aug 06 2018 09:33:34 GMT+0530 (India Standard Time):CISCO_BUBBLE_CHAT:Successfully cleaned up

步驟17. SM Publicapps:ccppublicapps從瀏覽器接收「聊天後」評級。

在SM上收到評分反饋。

10.78.91.166: Aug 06 2018 09:33:34.277 +0530: %CCBU__CCPPUBLICAPPS-6-CHAT_FEEDBACK_RECEIVED :

%[ChatFeedback=com.cisco.ccbu.ccp.publicapps.api.chat.ChatFeedback@d82623[rating=4]][Session=

3F8B8C08D7E8144C7B1AD7AF144A4C1E][social_contact_id=0D66B2241000016500235A740A4E5BA6]:

Received chat feedback

附註：當SM接收到包含評分資訊的聊天反饋時，該資訊首先儲存在SM資料儲存上的社交聯絡人中，然後通知CCX。如果SM資料儲存出現故障，提交聊天評分會失敗，並顯示「CCPPUBLICAPPS-3-UPDATE_CHAT_SOCIALCONTACT_EXTENSION_FIELD_FAILED」片段

步驟18. UCCX MIVR:從SM接收的XMPP更新。

SM向CCX傳送XMPP更新，通知它從終端使用者收到的評級。

3723269: Aug 06 09:33:34.290 IST %MIVR-SS_CHAT-7-UNK:[Smack Packet Reader (1)] ChatSubsystemLogger: createXMPPSession: PacketExtensionProvider.parseExtension:<SocialContact><campaignPublicId>CCX_Chat_Campaign</campaignPublicId><extensionFields><extensionField><name>h_chatRoom</name><value>socialminer_chat.16@conference.127.0.0.1</value></extensionField><extensionField><name>h_chatOrigin</name><value>CISCO_BUBBLE</value></extensionField><extensionField><name>C&#233;dula</name><value>Bill Issue</value></extensionField><extensionField><name>Details</name><value>Test Bubble Chat</value></extensionField><extensionField><name>PhoneNumber</name><value>97xxxxxxxx</value></extensionField><extensionField><name>h_agentName</name><value>Jabber@ge.nt1</value></extensionField><extensionField><name>h_rating</name><value>4</value>

步驟19. UCCX MIVR:將聊天評分寫入資料庫。

提交的聊天評分會寫入CCX資料庫並儲存在textratingdetail表中，此表是UCCX 11.6(2)上新新增的表。

此表的主要用途是儲存聊天評級以供報告。

3723276: Aug 06 09:33:34.299 IST %MIVR-SS_ROUTEANDQUEUE-7-UNK:[Smack Listener Processor (1)]

RouteAndQueueSubsystemLogger: com.cisco.wf.subsystems.routeandqueue.aggregator.historical.

HistoricalManager : Writing Historical Record: TRDR: ContactID=0D66B2241000016500235A740A4E5BA6,

rating=4, ratingTime=java.util.GregorianCalendar[time=1533528214299,areFieldsSet=true,

areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,

useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,

YEAR=2018,MONTH=7,WEEK_OF_YEAR=32,WEEK_OF_MONTH=2,DAY_OF_MONTH=6,DAY_OF_YEAR=218,DAY_OF_WEEK=2,

DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=4,HOUR_OF_DAY=4,MINUTE=3,SECOND=34,MILLISECOND=299,

ZONE_OFFSET=0,DST_OFFSET=0]