一種通過(guò)FIAS協(xié)議實(shí)現(xiàn)IPPBX與PMS對(duì)接的方法、終端設(shè)備及
介質(zhì)
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種通過(guò)FIAS協(xié)議實(shí)現(xiàn)IPPBX與PMS對(duì)接的方法、終端設(shè)備及介質(zhì)。
背景技術(shù)
[0002] IPPBX是一種基于Internet協(xié)議的企業(yè)電話(huà)系統(tǒng),可以集成多種通信方式,并且具有遠(yuǎn)程辦公和移動(dòng)辦公等新的工作方式。PMS(酒店管理系統(tǒng))是一種計(jì)算機(jī)軟件系統(tǒng),專(zhuān)門(mén)用于協(xié)調(diào)和管理酒店的日常運(yùn)營(yíng)和管理任務(wù)。FIAS(Fidelio?Interface?Application?Specification)是一套協(xié)議的名稱(chēng),其目的是用于Oracle?Hospitality酒店物業(yè)管理系統(tǒng)(PMS)與酒店物業(yè)供應(yīng)商系統(tǒng)之間的數(shù)據(jù)通信,該協(xié)議設(shè)定了應(yīng)用記錄格式和數(shù)據(jù)流的標(biāo)準(zhǔn),并提供了記錄格式和數(shù)據(jù)流要求的一般描述,并涵蓋了記錄類(lèi)型、字段類(lèi)型和字段使用的具體內(nèi)容。
[0003] 目前同行業(yè)中,大部分IPPBX通過(guò)第三方實(shí)現(xiàn)的中間件,在本地創(chuàng)建HTTP客戶(hù)端再通過(guò)中間件間接實(shí)現(xiàn)與PMS端對(duì)接,并實(shí)現(xiàn)相應(yīng)的酒店管理功能,該方案存在以下問(wèn)題:
[0004] (1)存在安全風(fēng)險(xiǎn):使用中間件的方式對(duì)接PMS,IPPBX必須先與中間件建立連接,將客戶(hù)的數(shù)據(jù)信息先交給中間件,再由中間件交給PMS,存在數(shù)據(jù)在中間件或者由中間件傳輸過(guò)程中泄露的安全風(fēng)險(xiǎn)。
[0005] (2)功能擴(kuò)展性:一旦使用第三方提供的中間件對(duì)接PMS,就必須使用中間件提供的接口,這就導(dǎo)致了原本豐富的FIAS協(xié)議規(guī)則必須受制于第三方中間件的接口,只要接口未提供的功能,即使FIAS協(xié)議允許,IPPBX也必然無(wú)法實(shí)現(xiàn)。
[0006] (3)通用性差:一旦PMS使用的協(xié)議變更,IPPBX必須重新尋找中間件。
發(fā)明內(nèi)容
[0007] 為了解決上述問(wèn)題,本發(fā)明提出了一種通過(guò)FIAS協(xié)議實(shí)現(xiàn)IPPBX與PMS對(duì)接的方法、終端設(shè)備及介質(zhì)。
[0008] 具體方案如下:
[0009] 一種通過(guò)FIAS協(xié)議實(shí)現(xiàn)IPPBX與PMS對(duì)接的方法,包括以下步驟:
[0010] IPPBX客戶(hù)端開(kāi)啟PMS集成功能后,接收用戶(hù)配置信息并發(fā)送至Thirdapp模塊;用戶(hù)配置信息包括PMS服務(wù)器提供的IP地址、端口和PMS服務(wù)相關(guān)配置信息;
[0011] Thirdapp模塊接收到用戶(hù)配置信息后通知Basicsrv模塊,并根據(jù)用戶(hù)配置信息中的IP地址和端口信息構(gòu)建FIAS客戶(hù)端連接PMS服務(wù)器;
[0012] 連接建立成功后,Thirdapp模塊讀取用戶(hù)配置的處于開(kāi)啟狀態(tài)的PMS服務(wù),并根據(jù)處于開(kāi)啟狀態(tài)的PMS服務(wù)向FIAS客戶(hù)端管理類(lèi)注冊(cè)可讀事件和可寫(xiě)事件,注冊(cè)完成后等待讀事件或?qū)懯录ㄖ?
[0013] Thirdapp模塊接收到PMS服務(wù)器發(fā)送的FIAS請(qǐng)求包后,解析FIAS請(qǐng)求包中的讀事件類(lèi)型,并判斷解析到的讀事件類(lèi)型是否處于注冊(cè)的可讀事件的范圍,如果是,將該讀事件對(duì)應(yīng)的FIAS請(qǐng)求包分配給Thirdapp模塊內(nèi)部對(duì)應(yīng)的任務(wù)模塊;否則,則丟棄該請(qǐng)求包;
[0014] Thirdapp模塊接收到Basicsrv模塊發(fā)送的HTTP請(qǐng)求包后,解析HTTP請(qǐng)求包中的寫(xiě)事件類(lèi)型,并判斷解析到的寫(xiě)事件類(lèi)型是否處于注冊(cè)的可寫(xiě)事件的范圍,如果是,將該寫(xiě)事件對(duì)應(yīng)的HTTP請(qǐng)求包分配給Thirdapp模塊內(nèi)部對(duì)應(yīng)的任務(wù)模塊;否則,則丟棄該請(qǐng)求包。
[0015] 進(jìn)一步的,當(dāng)Thirdapp模塊內(nèi)部的任務(wù)模塊接收到分配的讀事件對(duì)應(yīng)的FIAS請(qǐng)求包時(shí),解析FIAS請(qǐng)求包,并提取其中的數(shù)據(jù)封裝為HTTP數(shù)據(jù)包后,發(fā)送至Basicsrv模塊,由Basicsrv模塊執(zhí)行該讀事件對(duì)應(yīng)的業(yè)務(wù)邏輯。
[0016] 進(jìn)一步的,當(dāng)Thirdapp模塊內(nèi)部的任務(wù)模塊接收到分配的讀事件對(duì)應(yīng)的FIAS請(qǐng)求包時(shí),判斷對(duì)應(yīng)的事件是否為拋賬成功確認(rèn)事件PA,如果是,將根據(jù)請(qǐng)求包中攜帶的唯一標(biāo)識(shí)P#,從拋賬未成功數(shù)據(jù)庫(kù)中移除與唯一標(biāo)識(shí)P#一致的記錄。
[0017] 進(jìn)一步的,當(dāng)Thirdapp模塊內(nèi)部的任務(wù)模塊接收到分配的寫(xiě)事件對(duì)應(yīng)的HTTP請(qǐng)求包時(shí),解析HTTP請(qǐng)求包,并提取其中的數(shù)據(jù)封裝為FIAS數(shù)據(jù)包后,發(fā)送至Basicsrv模塊,由Basicsrv模塊執(zhí)行該寫(xiě)事件對(duì)應(yīng)的業(yè)務(wù)邏輯。
[0018] 進(jìn)一步的,當(dāng)Thirdapp模塊內(nèi)部的任務(wù)模塊接收到分配的寫(xiě)事件對(duì)應(yīng)的HTTP請(qǐng)求包時(shí),判斷對(duì)應(yīng)的事件是否為拋賬事件PS,如果是,將該事件記錄至拋賬未成功數(shù)據(jù)庫(kù)中。
[0019] 進(jìn)一步的,連接建立成功的判斷過(guò)程包括:
[0020] Thirdapp模塊與PMS服務(wù)器連接成功后,?PMS服務(wù)器發(fā)送鏈路開(kāi)始數(shù)據(jù)包至Thirdapp模塊;