關(guān)鍵詞 Parlay API 呼叫禁止業(yè)務(wù) 下一代業(yè)務(wù)
一、引言
Parlay API(Application Programming Interface)是一種基于分布式技術(shù)的、開放的、面向?qū)ο蟮南乱淮鷺I(yè)務(wù)開發(fā)技術(shù),它通過(guò)協(xié)議映射技術(shù)把底層網(wǎng)絡(luò)的通信細(xì)節(jié)抽象成標(biāo)準(zhǔn)的API形式供業(yè)務(wù)開發(fā)者開發(fā)業(yè)務(wù)邏輯程序。它帶來(lái)的好處是降低了業(yè)務(wù)開發(fā)的技術(shù)門檻,能使業(yè)務(wù)開發(fā)者更快捷地滿足用戶的個(gè)性化需要,提供豐富多彩的業(yè)務(wù),為下一代網(wǎng)絡(luò)的應(yīng)用和發(fā)展提供最有效的驅(qū)動(dòng)力。
框架服務(wù)器接口和業(yè)務(wù)能力接口是Parlay API定義的兩類主要接口。業(yè)務(wù)邏輯程序通過(guò)Parlay網(wǎng)關(guān)中框架服務(wù)器接口鑒權(quán)后,被授權(quán)接入規(guī)定的業(yè)務(wù),然后使用框架服務(wù)器接口提供的業(yè)務(wù)能力發(fā)現(xiàn)和業(yè)務(wù)能力選擇功能,通過(guò)簽訂在線業(yè)務(wù)能力使用協(xié)議,獲得在框架服務(wù)器中注冊(cè)的、滿足業(yè)務(wù)需求的業(yè)務(wù)能力管理類接口引用。業(yè)務(wù)邏輯通過(guò)獲得業(yè)務(wù)能力管理類接口引用就可以和其對(duì)應(yīng)的業(yè)務(wù)能力接口進(jìn)行通信,實(shí)現(xiàn)特定業(yè)務(wù)邏輯的呼叫控制、用戶交互、計(jì)費(fèi)等功能。文本主要在結(jié)合實(shí)踐的基礎(chǔ)上,說(shuō)明如何實(shí)現(xiàn)基于Parlay API技術(shù)的呼叫禁止業(yè)務(wù)的基本功能。
二、業(yè)務(wù)功能結(jié)構(gòu)
當(dāng)主叫用戶呼叫申請(qǐng)了呼叫禁止業(yè)務(wù)的用戶時(shí),要求主叫用戶輸入被叫的設(shè)定的PIN(Personal Identification Number)碼,如果呼叫禁止業(yè)務(wù)邏輯發(fā)現(xiàn)輸入的PIN碼正確,則允許把該呼叫接續(xù)到被叫用戶目的地址,否則提示主叫用戶并禁止該呼叫。
呼叫禁止業(yè)務(wù)功能結(jié)構(gòu)由框架接入模塊、業(yè)務(wù)消息通知接口、業(yè)務(wù)話音管理模塊、業(yè)務(wù)處理模塊、后臺(tái)數(shù)據(jù)庫(kù)和業(yè)務(wù)支撐接口六部分組成。
框架接入模塊通過(guò)Parlay網(wǎng)關(guān)框架服務(wù)器接口提供的接入鑒權(quán)、授權(quán)、業(yè)務(wù)能力發(fā)現(xiàn)、業(yè)務(wù)能力選擇等功能獲得呼叫禁止業(yè)務(wù)邏輯所需的一般呼叫控制能力管理類接口對(duì)象引用和用戶交互能力管理類接口對(duì)象引用。業(yè)務(wù)邏輯使用一般呼叫控制能力管理類接口對(duì)象的方法要求Parlay網(wǎng)關(guān)上報(bào)定制的呼叫禁止業(yè)務(wù)事件,使用用戶交互能力管理類接口對(duì)象方法創(chuàng)建用戶信息交互對(duì)象,向用戶發(fā)送系統(tǒng)提示音收集用戶輸入的交互信息。
呼叫禁止業(yè)務(wù)邏輯通過(guò)業(yè)務(wù)消息接口收集Parlay網(wǎng)關(guān)的呼叫消息和用戶交互信息,它們也是標(biāo)準(zhǔn)的Parlay API接口,由Parlay網(wǎng)關(guān)使用對(duì)象回調(diào)的方式調(diào)用呼叫禁止業(yè)務(wù)邏輯提供的這些接口對(duì)象中的方法,實(shí)現(xiàn)消息的傳遞。業(yè)務(wù)消息接口根據(jù)消息類型和業(yè)務(wù)邏輯當(dāng)前狀態(tài)把接收到的消息傳遞給業(yè)務(wù)話音管理模塊和業(yè)務(wù)處理模塊。
業(yè)務(wù)話音管理模塊的功能主要是允許用戶在系統(tǒng)語(yǔ)音提示下在線設(shè)置、修改和刪除PIN碼;而業(yè)務(wù)處理模塊的功能主要是判斷主叫用戶輸入的PIN碼是否和被叫設(shè)置的PIN碼一致,以決定是否允許接續(xù)本次呼叫到被叫用戶。它們都涉及到對(duì)后臺(tái)數(shù)據(jù)庫(kù)的操作,主要是讀寫用戶設(shè)置的PIN碼信息。
業(yè)務(wù)支撐接口主要是接收和響應(yīng)系統(tǒng)管理操作、業(yè)務(wù)管理操作、用戶管理操作和用戶業(yè)務(wù)定制操作,它在呼叫禁止業(yè)務(wù)邏輯產(chǎn)品化過(guò)程中占有重要的地位。
1. 框架接入消息交互
框架接入消息交互依照接入流程的先后次序由初始接入、業(yè)務(wù)能力發(fā)現(xiàn)和業(yè)務(wù)能力選擇三組交互序列組成。
在初始接入時(shí)業(yè)務(wù)邏輯框架接入模塊調(diào)用Parlay網(wǎng)關(guān)框架服務(wù)器通過(guò)名字服務(wù)方式向外公布的初始接入對(duì)象IpInitial的認(rèn)證初始化方法InitialAuthentication,然后使用selectEncryptionMethod選擇和框架服務(wù)的鑒權(quán)機(jī)制。業(yè)務(wù)邏輯和框架服務(wù)需相互認(rèn)證,只有當(dāng)相互認(rèn)證成功后,業(yè)務(wù)邏輯才可以調(diào)用requestAccess方法獲得一個(gè)IpAccess對(duì)象引用,業(yè)務(wù)邏輯通過(guò)調(diào)用該對(duì)象的selectSigningAlgorithm方法和框架服務(wù)器協(xié)商交易簽署算法。
業(yè)務(wù)邏輯在完成初始接入后,使用obtainInterface方法獲得框架服務(wù)器提供的業(yè)務(wù)發(fā)現(xiàn)接口對(duì)象,然后調(diào)用該對(duì)象的listServiceTypes方法列出在網(wǎng)絡(luò)中哪些業(yè)務(wù)能力類型被支持。業(yè)務(wù)邏輯在其獲得的業(yè)務(wù)能力類型列表中,使用describeServiceType方法獲得它所感興趣的一個(gè)確定業(yè)務(wù)類型的屬性,然后使用discoverService方法獲得跟它需要的業(yè)務(wù)屬性相匹配的已注冊(cè)的、包含業(yè)務(wù)能力標(biāo)識(shí)符和特征描述的列表。
在業(yè)務(wù)能力發(fā)現(xiàn)過(guò)程中獲得的包含業(yè)務(wù)能力標(biāo)識(shí)符和特征描述的列表中,包含有多個(gè)業(yè)務(wù)能力版本,它們通過(guò)serviceID來(lái)標(biāo)識(shí),在進(jìn)行業(yè)務(wù)能力選擇時(shí),業(yè)務(wù)邏輯從中確定其最終使用的業(yè)務(wù)能力,通過(guò)調(diào)用selectService方法獲得一個(gè)針對(duì)該業(yè)務(wù)能力的私有標(biāo)識(shí)符,它被用在簽署業(yè)務(wù)能力使用條約的過(guò)程中。業(yè)務(wù)邏輯和框架服務(wù)器間相互簽署業(yè)務(wù)使用條約,如果簽署成功,則業(yè)務(wù)邏輯就獲得了一個(gè)指向該業(yè)務(wù)能力管理接口的引用。
在呼叫禁止業(yè)務(wù)邏輯使用上述流程獲得一般呼叫控制能力管理接口引用后,還需充分業(yè)務(wù)能力發(fā)現(xiàn)和業(yè)務(wù)能力選擇流程,以獲得用戶交互能力管理接口的引用。
2. 業(yè)務(wù)消息交互
呼叫禁止業(yè)務(wù)通過(guò)Parlay網(wǎng)關(guān)提供的一般呼叫控制對(duì)象和用戶交互對(duì)象下網(wǎng)絡(luò)發(fā)送消息,通過(guò)在業(yè)務(wù)消息接口中實(shí)現(xiàn)的一般呼叫控制應(yīng)用對(duì)象和用戶交互應(yīng)用對(duì)象接收Paraly網(wǎng)關(guān)的傳遞給業(yè)務(wù)邏輯的消息。
呼叫禁止業(yè)務(wù)邏輯在完成框架接入消息流程后。首先業(yè)務(wù)邏輯使用enableCallNotification方法要求Parlay網(wǎng)關(guān)通知底層網(wǎng)絡(luò)上報(bào)跟呼叫禁止業(yè)務(wù)相關(guān)的業(yè)務(wù)觸發(fā)事件,如上報(bào)對(duì)申請(qǐng)了呼叫禁止業(yè)務(wù)用戶的呼叫觸發(fā)事件,上報(bào)呼叫禁止業(yè)務(wù)話音管理觸發(fā)事件。Parlay網(wǎng)關(guān)通過(guò)一般呼叫控制應(yīng)用對(duì)象的callEventNotifify方式上報(bào)業(yè)務(wù)觸發(fā)事件,根據(jù)事件類型,把消息傳遞給業(yè)務(wù)處理模塊或業(yè)務(wù)話音管理模塊。隨后業(yè)務(wù)模塊通過(guò)用戶交互對(duì)象向用戶發(fā)送提示音收集用戶信息,一般根據(jù)需要這樣的語(yǔ)音提示信息收集過(guò)程要進(jìn)行多次。業(yè)務(wù)邏輯根據(jù)用戶信息決定業(yè)務(wù)邏輯后續(xù)執(zhí)行動(dòng)作,如在業(yè)務(wù)處理模塊中,當(dāng)獲得的主叫用戶輸入PIN碼和被叫用戶設(shè)定的PIN碼相同時(shí),則使用Parlay網(wǎng)關(guān)的routeReq方法允許底層網(wǎng)絡(luò)接續(xù)本次呼叫。呼叫結(jié)束后需使用callEnded方法通知業(yè)務(wù)邏輯,業(yè)務(wù)邏輯使用deassignCall方法釋放Parlay網(wǎng)關(guān)中的呼叫對(duì)象和底層網(wǎng)絡(luò)中的相關(guān)呼叫資源。
四、業(yè)務(wù)模塊
業(yè)務(wù)模塊可分為業(yè)務(wù)處理模塊和業(yè)務(wù)話音管理模塊,它們是呼叫禁止業(yè)務(wù)邏輯的核心部分,在后臺(tái)數(shù)據(jù)庫(kù)的配合下,由它們實(shí)現(xiàn)呼叫禁止業(yè)務(wù)的業(yè)務(wù)處理和業(yè)務(wù)話音管理功能。
1. 業(yè)務(wù)處理模塊
當(dāng)主叫用戶呼叫申請(qǐng)了呼叫禁止業(yè)務(wù)的用戶時(shí),底層網(wǎng)絡(luò)交換設(shè)備把該初始呼叫事件通過(guò)Parlay網(wǎng)關(guān)上報(bào)給呼叫禁止業(yè)務(wù)邏輯,業(yè)務(wù)邏輯在其IpAppCallControlManager對(duì)象的callEventNotify方法中接收到該事件后,業(yè)務(wù)邏輯程序進(jìn)入業(yè)務(wù)處理模塊,創(chuàng)建一個(gè)線程處理該呼叫,隨后使用Parlay網(wǎng)關(guān)IpUICall對(duì)象的sendInfoAndCollectReq方法向用戶發(fā)送系統(tǒng)提示音要求主叫用戶輸入被叫設(shè)定的PIN碼,業(yè)務(wù)邏輯邏輯通過(guò)其的IpAppUICall對(duì)象的sendInfoAndCollectRes收集到主叫輸入的PIN碼。
業(yè)務(wù)邏輯從后臺(tái)數(shù)據(jù)庫(kù)中讀出被叫用戶設(shè)定的PIN碼,并和收集到的主叫用戶輸入的PIN碼相比較,當(dāng)不一致時(shí),如果主叫用戶輸入錯(cuò)誤PIN的次數(shù)沒(méi)有超過(guò)規(guī)定的最大次數(shù),則發(fā)送系統(tǒng)提示音告知用戶輸入PIN碼不正確,需重新輸入,如果主叫用戶輸入錯(cuò)誤PIN的次數(shù)超過(guò)規(guī)定的最大次數(shù),則告訴用戶呼叫失敗,隨后釋放本次呼叫。
當(dāng)主叫輸入的PIN碼和被叫設(shè)定的相一致時(shí),終止和主叫用戶的信息交互,然后使用Parlay網(wǎng)關(guān)IpCall對(duì)象的routeReq方法運(yùn)行底層網(wǎng)絡(luò)交換設(shè)備繼續(xù)本次呼叫,當(dāng)呼叫結(jié)束時(shí),Parlay網(wǎng)關(guān)上報(bào)呼叫結(jié)束事件,業(yè)務(wù)邏輯釋放本次呼叫對(duì)象和資源。
2. 業(yè)務(wù)話音管理模塊
呼叫禁止業(yè)務(wù)話音管理功能對(duì)應(yīng)著一個(gè)特服號(hào),當(dāng)用戶撥打該特服號(hào)號(hào)時(shí),Parlay網(wǎng)關(guān)通過(guò)調(diào)用業(yè)務(wù)邏輯的callEventNotify方法把來(lái)自底層網(wǎng)絡(luò)交換設(shè)備的該事件上報(bào)給業(yè)務(wù)邏輯,業(yè)務(wù)邏輯程序進(jìn)入業(yè)務(wù)話音管理模塊,創(chuàng)建一個(gè)線程處理該業(yè)務(wù)話音管理呼叫,實(shí)現(xiàn)用戶PIN碼設(shè)定、刪除和修改功能。
業(yè)務(wù)邏輯查詢后臺(tái)數(shù)據(jù)庫(kù)該用戶是否已申請(qǐng)了呼叫禁止業(yè)務(wù),如果沒(méi)有申請(qǐng),則提示用戶是否要設(shè)定被叫時(shí)的PIN碼,如果用戶要求設(shè)定,則業(yè)務(wù)邏輯同樣通過(guò)Parlay網(wǎng)關(guān)的sendInfoAndCollectReq和業(yè)務(wù)邏輯的sendInfoAndCollectRes方法收集用戶設(shè)定的PIN碼,如果兩次輸入的PIN碼相同,則把該用戶和PIN碼對(duì)應(yīng)的信息寫到后臺(tái)數(shù)據(jù)庫(kù)中,并提示用戶設(shè)定成功。
如果用戶已設(shè)定了被叫時(shí)的PIN碼,則提示用戶是否刪除或修改PIN碼。如果用戶選擇刪除PIN碼,則業(yè)務(wù)邏輯從后臺(tái)數(shù)據(jù)庫(kù)中清除該用戶設(shè)定的PIN碼,本次會(huì)話結(jié)束。如果用戶選擇修改PIN碼,則只有當(dāng)用戶現(xiàn)正確輸入原PIN碼后,才可設(shè)定新的PIN碼。
五、結(jié)束語(yǔ)
Parlay API是進(jìn)行下一代業(yè)務(wù)開發(fā)的重要技術(shù),作者通過(guò)對(duì)基于Parlay API的呼叫禁止業(yè)務(wù)的開發(fā),熟悉了Parlay API的基本原理,掌握了一定的業(yè)務(wù)邏輯工程實(shí)現(xiàn)技術(shù),為開發(fā)其他各種基于Parlay API技術(shù)的下一代業(yè)務(wù)奠定了技術(shù)基礎(chǔ)。
通信世界網(wǎng)(www.cww.net.cn)