簡介
本文說明如何解決思科語音入口網站(CVP)操作控制台(OAMP)伺服器與CVP呼叫服務器之間的連線問題。
下面列出了這兩個伺服器之間的常見連線問題:
1. 在CVP OAMP頁面中按下「儲存和部署」按鈕時,會發生什麼情況?
2. 需要驗證OAMP伺服器是否無法到達CVP呼叫伺服器的元件是什麼?
3. 在重新映像過程中更改了哪些檔案?
作者:思科TAC工程師Mingze Yan。
由Cisco TAC工程師Sahar Modares編輯。
先決條件
需求
思科建議您瞭解以下主題:
採用元件
- CVP通話伺服器11.5
- CVP OAMP 11.5
在CVP OAMP頁面中按下「儲存和部署」按鈕時,會發生什麼情況?
要瞭解按下「儲存並部署」按鈕後會發生什麼情況,您需要檢視安裝新呼叫伺服器時顯示的內容。 安裝CVP呼叫伺服器後,沒有定義CVP子系統,並且OAMP伺服器不分配任何消息匯流排。
若要驗證設定,請導覽至\Cisco\CVP\conf\system.properties文件。該檔案不包含子系統資訊。
CVPServlet.upgradeProperties = false /
#msg.sendType = NEW_CALL
#msg.sendTopic = CVP.ICM.CC.RESP.SYS_SIP1
#stub.ipaddress = localhost
#stub.sendport = 6000
#stub.readport = 7000
CVPServlet.upgradeProperties = false
思在同一資料夾中,檔案MessageAdapter.properties中未定義任何外掛。
#MessageAdapter.MsgBus001.filter.stubFilter1 = CVP.SIP.CC.*
##--------------- STUB SS (SYS_STUB1) MESSAGE BUS SIDE PLUGIN -------------------
#MessageAdapter.MsgBus001.plugin.MSGBUS_STUB1.class = com.cisco.msg.msgbus.inprocess.InProcessPlugin
#MessageAdapter.MsgBus001.plugin.MSGBUS_STUB1.param.pluginType = IN_PROCESS
#MessageAdapter.MsgBus001.plugin.MSGBUS_STUB1.param.adapterName = MsgBus001
#MessageAdapter.MsgBus001.plugin.MSGBUS_STUB1.param.adapterType = MessageBus
#MessageAdapter.MsgBus001.plugin.MSGBUS_STUB1.param.mirrorPluginName = SYS_STUB1
#MessageAdapter.MsgBus001.plugin.MSGBUS_STUB1.filter.exclude.1 = filterAll
#MessageAdapter.MsgBus001.plugin.MSGBUS_STUB1.filter.include.1 = stubFilter1
##--------------- STUB SS (SYS_STUB1) PLUGIN -------------------
#MessageAdapter.STUB1.active = true
#MessageAdapter.STUB1.plugin.SYS_STUB1.class = com.cisco.msg.msgbus.inprocess.InProcessPlugin
#MessageAdapter.STUB1.plugin.SYS_STUB1.param.pluginType = IN_PROCESS
#MessageAdapter.STUB1.plugin.SYS_STUB1.param.adapterName = STUB1
#MessageAdapter.STUB1.plugin.SYS_STUB1.param.mirrorPluginName = MSGBUS_STUB1
#MessageAdapter.STUB1.plugin.SYS_STUB1.param.adapterType = STUB
在CVP日誌中,如果未定義子系統,則將顯示以下內容:
16: 10.66.75.101: Jul 07 2017 09:28:27.726 +1000: %CVP_11_5_Infrastructure-0-START: No Subsystems have been started. Have you configured your server yet? ; Make sure <CVP_HOME>\conf\propFileList.properties is loading "system" and that <CVP_HOME>\conf\system.properties lists at least one subsystem to load. [id:1033]
在OAMP GUI頁面中配置CVP呼叫伺服器時,會發生以下更改:
1. OAMP伺服器向CVP呼叫伺服器推送消息匯流排資訊,並新增子系統和外掛。
2.在應用更改後修改這些檔案:
3.從system.properties檔案中, 消息匯流排由OAMP伺服器分配,具有全域性意義。每個CVP呼叫伺服器使用不同的消息匯流排與OAMP通訊:
CVPServlet.upgradeProperties = false
MessagingLayer.adapterName = MsgBus003
CVPServlet.subsystem.0.Class = com.cisco.cvp.central.CVPController
CVPServlet.subsystem.0.ID = CVPCTL3
CVPServlet.subsystem.1.Class = com.cisco.cvp.icm.ICMSubsystem
CVPServlet.subsystem.1.ID = ICM3
CVPServlet.subsystem.2.Class = com.cisco.cvp.sip.SipSubsystem
CVPServlet.subsystem.2.ID = SIP3
CVPServlet.subsystem.3.Class = com.cisco.cvp.ivr.IVRSubSystem
CVPServlet.subsystem.3.ID = IVR3
cmdManager.timeout = 10000
cmdManager.commandPrefix = cmd /c
cmdManager.checkServiceCmd = net start
cmdManager.cmd_separator = &
cmdManager.expected = expected
4.在ORM.Properties檔案中,新增控制元件adapterName:
#For http client
orm.org.apache.logLevel = ERROR
httpclient.logLevel = ERROR
orm.controller.adapterName = CVPCTL3
5.在messageAdapter.properties檔案中新增外掛,並為每個外掛分配埠號。
# --------------- ORM OUTPROCESS PLUGIN -------------------
MessageAdapter.ORM.active = true
MessageAdapter.ORM.plugin.SYS_ORM.class = com.cisco.msg.msgbus.outprocess.OutProcessClientPlugin
MessageAdapter.ORM.plugin.SYS_ORM.param.pluginType = OUT_PROCESS
MessageAdapter.ORM.plugin.SYS_ORM.param.adapterName = ORM
MessageAdapter.ORM.plugin.SYS_ORM.param.adapterType = OAMP
MessageAdapter.ORM.plugin.SYS_ORM.param.primaryServerHostname = 10.66.75.101
MessageAdapter.ORM.plugin.SYS_ORM.param.primaryServerPort = 23000
MessageAdapter.ORM.plugin.SYS_ORM.param.socketReadTimeout = 0
MessageAdapter.ORM.plugin.SYS_ORM.param.waitForApplication = 3
MessageAdapter.ORM.plugin.SYS_ORM.param.mirrorPluginName = MSGBUS_ORM3
6.在wrapper.conf中,新增了Java新增設定rmi.server:
# Java Additional Parameters
wrapper.java.additional.1= -Djavax.net.ssl.keyStore=C:/Cisco/CVP/conf/security/.ormKeystore
wrapper.java.additional.2= -Djavax.net.ssl.keyStorePassword=<NEED_TO_MODIFY>
wrapper.java.additional.3= -Djavax.net.ssl.keyStoreType=JCEKS
wrapper.java.additional.4= -Djavax.net.ssl.trustStore=C:/Cisco/CVP/conf/security/.keystore
wrapper.java.additional.5= -Djavax.net.ssl.trustStorePassword=<NEED_TO_MODIFY>
wrapper.java.additional.6= -Djavax.net.ssl.trustStoreType=JCEKS
wrapper.java.additional.7= -Dcom.sun.management.config.file=../conf/orm_jmx.properties
wrapper.java.additional.8= -Dccbu.logging.config.file=log4j_orm.xml
wrapper.java.additional.9= -Djava.rmi.server.hostname=10.66.75.101
需要驗證OAMP伺服器是否無法到達CVP呼叫伺服器的元件是什麼?
從OAMP儲存CVP配置時,將顯示以下錯誤消息:
"由於連線超時,無法訪問裝置"
為了將OAMP連線到CVP呼叫伺服器,OAMP需要與CVP呼叫伺服器中的兩個埠(2099(固定埠)和一個隨機報告埠(1024-65535))進行通訊。
使用jconsole測試連線(C:\Cisco\CVP\jre\bin\jconsole.exe):
如果測試失敗並出現以下錯誤消息「Connection Failed:Retry?」,則必須檢查以下兩個埠:
- 埠號2099
- rmi隨機埠。(在我們的測試台中,作業系統分配了埠號1042)。
以下是連線埠1042遭封鎖時的錯誤訊息:
以下是jconsole測試正常工作時的資料包捕獲:
由於此隨機埠,CVP操作控制檯伺服器無法在防火牆外部部署,而所有其他Unified CVP元件都位於防火牆內部。
http://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/customer_voice_portal/srnd/11_0/CCVP_BK_11366AC9_00_1101-design-guide/CCVP_BK_11366AC9_00_1101-design-guide_chapter_01100.html
行為描述在此缺陷中:
CSCve32007 -操作控制檯伺服器和CVP元件之間的防火牆
要查詢rmi隨機數,請執行以下步驟:
步驟1.使用2099查詢PID編號。
步驟2.使用PID編號找出所有使用的埠。
範例:
附註:OAMP和呼叫伺服器之間的連線是雙向的。相同命令可用於OAMP伺服器上的本地埠。
在重新映像過程中更改了哪些檔案?
重新映像處理後,將更改四個檔案:
- messageAdapter.properies
- orm.properties
- orm.xml
- system.properties
以下是這四個檔案的變更:
- 在messageAdapter.properies中,在前一節中新增的外掛 已刪除
- 在orm.properties中,orm.controller.adapterName = CVPCTL3已移除
- 在orm.xml中,刪除上一節中新增的所有子系統
- 在system.properties中,刪除上一節中新增的子系統
如果從OAMP頁面按一下儲存和部署,則不會更新CVP呼叫伺服器,因為OAMP仍在使用消息匯流排ID與呼叫伺服器通訊,但呼叫伺服器沒有此類消息匯流排資訊。
從OAMP刪除CVP呼叫伺服器後,將更改三個檔案:
- messageAdaptor檔案為空
- Orm新增此行orm.controller.adapterName =
- 系統檔案新增此行MessagingLayer.adapterName =
在OAMP中重新新增CVP呼叫伺服器時,將在CVP呼叫伺服器中更新配置。
除了檔案orm_jmx外,更新的檔案幾乎與首次部署相同。
javax.net.debug = all
com.sun.management.jmxremote.ssl.need.client.auth = false
com.sun.management.jmxremote.authenticate = false
com.sun.management.jmxremote.port = 2099
com.sun.management.jmxremote.ssl = false
因此,重新映像刪除消息匯流排資訊,導致OAMP無法更新CVP呼叫伺服器。因此,必須刪除呼叫伺服器以允許呼叫伺服器接受新的消息匯流排分配。
附加的配置檔案和資料包捕獲以供參考。