專利名稱:一種ip終端或網(wǎng)關(guān)的收號(hào)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種IP終端或網(wǎng)關(guān)的收號(hào)方法,屬于信息通信技術(shù)的收號(hào)技術(shù)的技術(shù)領(lǐng)域,具體說屬于信息通信技術(shù)的收號(hào)技術(shù)中主要涉及IP終端或網(wǎng)關(guān)的的收號(hào)方法的技術(shù)領(lǐng)域。
背景技術(shù):
在使用SIP協(xié)議的多媒體通信系統(tǒng)中,主要由端系統(tǒng)(終端)和服務(wù)器系統(tǒng)組成。 端系統(tǒng)向服務(wù)器發(fā)起呼叫的時(shí)候必須先收齊被叫號(hào)碼(即收號(hào),一個(gè)完整地收號(hào)過程的描述為端系統(tǒng)(終端)將接收的一個(gè)完整的號(hào)碼向服務(wù)器發(fā)起呼叫的過程稱為收號(hào)的過程),而協(xié)議本身并沒有指出端系統(tǒng)如何收集用戶輸入的被叫號(hào)碼;所以收集被叫用戶號(hào)碼必須由端系統(tǒng)自己完成。
我們知道,傳統(tǒng)的模擬電話是由服務(wù)器判斷用戶是否撥完號(hào)碼的,而不是由終端完成的。目前使用SIP協(xié)議的幾乎所有端系統(tǒng)解決收號(hào)的方法有兩種第一種為端系統(tǒng)都設(shè)有一個(gè)發(fā)送鍵,當(dāng)用戶撥完被叫號(hào)碼后按發(fā)送鍵,端系統(tǒng)在檢測(cè)到用戶按了發(fā)送鍵后認(rèn)為主叫撥完被叫號(hào)碼,向服務(wù)器發(fā)起呼叫。第二種方法是用戶撥完被叫號(hào)碼后按‘#’號(hào)鍵表示撥號(hào)結(jié)束,端系統(tǒng)在收到‘#’號(hào)時(shí)認(rèn)為用戶收完被叫號(hào)碼,向服務(wù)器發(fā)起呼叫,收號(hào)結(jié)束O 對(duì)于以上的兩種方法都存在一個(gè)問題,既要求用戶判斷是否撥完被叫號(hào)碼,而對(duì)于用慣了傳統(tǒng)電話的用戶來說,使用上既不習(xí)慣也不方便。用戶希望撥完被叫號(hào)碼后端系統(tǒng)就能向服務(wù)器系統(tǒng)發(fā)起呼叫。
發(fā)明內(nèi)容
本發(fā)明提供了一種IP終端或網(wǎng)關(guān)的收號(hào)方法,以實(shí)現(xiàn)不需要用戶發(fā)送結(jié)束標(biāo)志即達(dá)到收號(hào)的目的。
為達(dá)到上述目的本發(fā)明的技術(shù)方案是 一種IP終端或網(wǎng)關(guān)的收號(hào)方法,包括如下步驟 (一 )、配置號(hào)碼匹配表;用戶在終端上設(shè)置號(hào)碼匹配表,該號(hào)碼匹配表為二維表結(jié)構(gòu),包括號(hào)碼前綴字符串字段和號(hào)碼長(zhǎng)度字段; 該號(hào)碼前綴字符串指一種類型號(hào)碼的前面幾位號(hào)碼; 該號(hào)碼長(zhǎng)度指包括號(hào)碼前綴字符串長(zhǎng)度在內(nèi)的一種類型號(hào)碼的總長(zhǎng)度; (二)、初始化號(hào)碼匹配表并存入內(nèi)存;其規(guī)則為,將號(hào)碼匹配表配置的數(shù)據(jù)記錄根據(jù)號(hào)碼前綴字符串的長(zhǎng)度進(jìn)行降序排序,前綴長(zhǎng)度大的配置數(shù)據(jù)記錄放在號(hào)碼匹配表的前面,前綴長(zhǎng)度小的配置數(shù)據(jù)記錄放在后面;前綴長(zhǎng)度相同的配置數(shù)據(jù)記錄按原先的順序存放; (三)、號(hào)碼匹配;用戶撥號(hào)時(shí),將用戶所撥的被叫號(hào)碼依次存入號(hào)碼緩沖區(qū),不斷將存入號(hào)碼緩沖區(qū)內(nèi)的號(hào)碼和內(nèi)存中號(hào)碼匹配表的記錄進(jìn)行匹配,判斷用戶是否撥完被叫號(hào)碼,若是則馬上向服務(wù)器系統(tǒng)發(fā)起呼叫;否則對(duì)于沒有匹配上的或者匹配結(jié)果不唯一的號(hào)碼則結(jié)合定時(shí)器來完成撥號(hào)。
該號(hào)碼匹配的具體過程為 步驟101、當(dāng)端系統(tǒng)進(jìn)入撥號(hào)過程中時(shí),設(shè)置首位號(hào)定時(shí)器,清號(hào)碼緩沖區(qū);設(shè)置號(hào)間定時(shí)器時(shí)長(zhǎng)為長(zhǎng)時(shí)長(zhǎng); 步驟102、等待用戶撥號(hào),在等待用戶撥號(hào)的過程中,若該首位號(hào)定時(shí)器超時(shí)則進(jìn)入步驟117 ;若用戶撥號(hào)則進(jìn)入步驟103 ; 步驟103、設(shè)置號(hào)間定時(shí)器,如果是用戶撥的第一位號(hào)碼則停止首位號(hào)定時(shí)器; 步驟104、置臨時(shí)匹配結(jié)果為不匹配; 步驟105、判斷號(hào)碼匹配表是否還有未匹配的號(hào)碼匹配數(shù)據(jù)記錄;如果還有未匹配的數(shù)據(jù)項(xiàng)或數(shù)據(jù)記錄,則進(jìn)入步驟107 ;否則進(jìn)入步驟106 ; 步驟106、號(hào)碼匹配結(jié)束,結(jié)果為臨時(shí)匹配結(jié)果;返回步驟102等待用戶撥下一個(gè)號(hào)碼; 步驟107、獲取號(hào)碼匹配表中順序下一個(gè)匹配數(shù)據(jù)項(xiàng)或數(shù)據(jù)記錄; 步驟108、判斷在用戶所撥的號(hào)碼串中是否包含當(dāng)前獲取的匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段的內(nèi)容;如果包含則進(jìn)入步驟111 ;否則進(jìn)入步驟109 ; 步驟109、判斷當(dāng)前獲取的匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段中內(nèi)容是否包含用戶所撥的號(hào)碼串;如果包含則進(jìn)入步驟110 ;否則進(jìn)入步驟105 ; 步驟110、置臨時(shí)匹配結(jié)果為部分匹配,然后進(jìn)入步驟105 ; 步驟111、判斷用戶所撥號(hào)碼串長(zhǎng)度是否等于當(dāng)前獲取的匹配數(shù)據(jù)記錄的號(hào)碼長(zhǎng)度字段內(nèi)的長(zhǎng)度值;如果長(zhǎng)度相等則進(jìn)入步驟112 ;否則進(jìn)入步驟110 ; 步驟112、判斷臨時(shí)匹配結(jié)果屬于什么匹配;如果是不匹配進(jìn)入步驟113 ;如果是部分匹配則進(jìn)入步驟114; 步驟113、置匹配結(jié)果為完全匹配;跳至步驟115 ; 步驟114、置匹配結(jié)果為既有完全匹配又有部分匹配; 步驟115、判斷匹配結(jié)果;若是完全匹配則進(jìn)入步驟117 ;若是既有完全匹配又有部分匹配則進(jìn)入步驟116 ;否則為部分匹配或不匹配則進(jìn)入步驟102 ; 步驟116、修改號(hào)間定時(shí)器時(shí)長(zhǎng)為為短時(shí)長(zhǎng);重新進(jìn)入步驟102 ; 步驟117、收號(hào)過程結(jié)束;號(hào)碼緩沖區(qū)內(nèi)號(hào)碼為被叫號(hào)碼,向服務(wù)器系統(tǒng)發(fā)起呼叫。
該首位號(hào)定時(shí)器及該號(hào)間定時(shí)器為設(shè)置在內(nèi)存中由系統(tǒng)時(shí)鐘控制的計(jì)時(shí)單元; 所述的首位號(hào)定時(shí)器用來限定用戶從摘機(jī)到撥第一位號(hào)碼的時(shí)長(zhǎng);設(shè)定范圍為 5-120 秒; 所述的號(hào)間定時(shí)器用來限定用戶連續(xù)撥下一個(gè)號(hào)碼的時(shí)長(zhǎng);該號(hào)間定時(shí)器根據(jù)匹配結(jié)果可在預(yù)先設(shè)定的長(zhǎng)時(shí)長(zhǎng)和短時(shí)長(zhǎng)之間轉(zhuǎn)換;所述的長(zhǎng)時(shí)長(zhǎng)的范圍為4-15秒;所述的短時(shí)長(zhǎng)的范圍為大于等于1秒且小于4秒的范圍內(nèi)。
該首位號(hào)定時(shí)器設(shè)定為15秒;該號(hào)間定時(shí)器的長(zhǎng)時(shí)長(zhǎng)設(shè)定為5秒;該號(hào)間定時(shí)器的短時(shí)長(zhǎng)設(shè)定為3秒。
該臨時(shí)匹配結(jié)果和該匹配結(jié)果為設(shè)置在內(nèi)存中分別用于區(qū)別號(hào)碼匹配狀態(tài)的存貯單元; 所述的號(hào)碼匹配狀態(tài)包括完全匹配、部分匹配、既有完全匹配又有部分匹配和不匹配四種狀態(tài); 所述的完全匹配,指用戶所撥的號(hào)碼字符串只和匹配表中的一項(xiàng)匹配數(shù)據(jù)記錄有如下關(guān)系,既用戶所撥的號(hào)碼字符串包含該匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段內(nèi)容,且號(hào)碼字符串的長(zhǎng)度和該匹配數(shù)據(jù)記錄的號(hào)碼長(zhǎng)度字段值相同; 所述的部分匹配,指用戶所撥的號(hào)碼字符串和匹配表中的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄有如下關(guān)系,既用戶所撥的號(hào)碼字符串包含所述的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段內(nèi)容,但是用戶所撥號(hào)碼字符串的長(zhǎng)度和所述的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄的號(hào)碼長(zhǎng)度字段值均不相等;或是所述的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段中包含用戶所撥號(hào)碼字符串但所述的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄的號(hào)碼長(zhǎng)度字段值和用戶所撥號(hào)碼字符串的長(zhǎng)度不相等; 所述的既有完全匹配又有部分匹配,指用戶所撥號(hào)碼字符串既和匹配表中的一項(xiàng)數(shù)據(jù)記錄符合完全匹配的條件,且用戶所撥號(hào)碼字符串也和匹配表中的一項(xiàng)或多項(xiàng)數(shù)據(jù)記錄符合部分匹配的條件; 所述的不匹配,指用戶所撥號(hào)碼字符串不包含匹配表中任何一條匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段的內(nèi)容。
該部分匹配用數(shù)字0表示;該完全匹配用數(shù)字1表示;該既有完全匹配又有部分匹配用數(shù)字2表示;該不匹配用數(shù)字3表示。
采用本發(fā)明的技術(shù)方案使用用戶配置多條包括號(hào)碼前綴字符串和號(hào)碼總長(zhǎng)度的匹配表,在端(終端)系統(tǒng)初始化時(shí),根據(jù)用戶的配置,程序初始化時(shí)讀入內(nèi)存,且讀入內(nèi)存的匹配表是將用戶配置的匹配數(shù)據(jù)記錄根據(jù)號(hào)碼前綴字符串的長(zhǎng)度從大到小排序后放入內(nèi)存,也就是說號(hào)碼前綴字符串長(zhǎng)的排列在前面;用戶撥號(hào)時(shí),將用戶所撥的號(hào)碼和內(nèi)存中的匹配表進(jìn)行匹配,判斷用戶是否撥完被叫號(hào)碼,若是則馬上向服務(wù)器系統(tǒng)發(fā)起呼叫,否則對(duì)于沒有匹配上的或者匹配結(jié)果不唯一的號(hào)碼則結(jié)合定時(shí)器來完成撥號(hào)。即接收到用戶撥打的被叫號(hào)碼后,將被叫號(hào)碼放入號(hào)碼緩沖區(qū),之后將號(hào)碼緩沖區(qū)中用戶所撥號(hào)碼與初始化時(shí)放入內(nèi)存的號(hào)碼匹配表數(shù)據(jù)進(jìn)行匹配,若匹配結(jié)果為完全匹配,則結(jié)束收號(hào)過程;否則返回匹配結(jié)果等待用戶的下次撥號(hào)。其中還要判斷定時(shí)器是否超時(shí),并當(dāng)所述定時(shí)器超時(shí)時(shí)結(jié)束收號(hào)過程,端系統(tǒng)直接向服務(wù)器系統(tǒng)發(fā)起呼叫。
采用本發(fā)明的方法不要求用戶判斷是否撥完被叫號(hào)碼,與傳統(tǒng)電話的使用習(xí)慣相同,撥完被叫號(hào)碼后端系統(tǒng)通過自動(dòng)判斷就能向服務(wù)器系統(tǒng)發(fā)起呼叫,具有簡(jiǎn)單方便的優(yōu)點(diǎn)ο
圖1為本發(fā)明號(hào)碼匹配方法的整體流程示意圖; 圖2為本發(fā)明號(hào)碼匹配過程的流程圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的方法詳細(xì)描述如下。
經(jīng)過對(duì)用戶撥打的被叫號(hào)碼分析后發(fā)現(xiàn),用戶撥打的被叫號(hào)碼類型不同,號(hào)碼的起始幾位和號(hào)碼總長(zhǎng)度不相同。例如某一個(gè)非北京的公司,內(nèi)部的所有分機(jī)是以3開頭的長(zhǎng)度為4的號(hào)碼;公司所在地區(qū)的市話號(hào)碼是以361開頭的電話號(hào)碼,但是其長(zhǎng)度為7位; 對(duì)于長(zhǎng)途電話來說號(hào)碼都是以0開頭的號(hào)碼,長(zhǎng)度為11或者12位。例如用戶要撥打北京的固定電話,撥號(hào)為010XXXXXXXX,北京的區(qū)號(hào)為010,XXXXXXXX為固話號(hào)碼,總共11位,用戶撥打北京的固話時(shí)010三位號(hào)碼是固定的。另外對(duì)用戶撥號(hào)習(xí)慣分析發(fā)現(xiàn),用戶撥號(hào)時(shí), 撥號(hào)間隔較短。
因此本發(fā)明提供了一種IP終端或網(wǎng)關(guān)的收號(hào)方法,如圖1所示,包括如下步驟 首先,配置號(hào)碼匹配表;用戶在終端上設(shè)置號(hào)碼匹配表,該號(hào)碼匹配表為二維表結(jié)構(gòu),包括號(hào)碼前綴字符串字段和號(hào)碼長(zhǎng)度字段; 該號(hào)碼前綴字符串指一種類型號(hào)碼的前面幾位號(hào)碼; 該號(hào)碼長(zhǎng)度指包括號(hào)碼前綴字符串長(zhǎng)度在內(nèi)的一種類型號(hào)碼的總長(zhǎng)度; 其次,初始化號(hào)碼匹配表并存入內(nèi)存;其規(guī)則為,將號(hào)碼匹配表配置的數(shù)據(jù)記錄根據(jù)號(hào)碼前綴字符串的長(zhǎng)度進(jìn)行降序排序,前綴長(zhǎng)度大的配置數(shù)據(jù)記錄放在號(hào)碼匹配表的前面,前綴長(zhǎng)度小的配置數(shù)據(jù)記錄放在后面;前綴長(zhǎng)度相同的配置數(shù)據(jù)記錄按原先的順序存放; 接下來再進(jìn)行的是,號(hào)碼匹配;用戶撥號(hào)時(shí),將用戶所撥的被叫號(hào)碼依次存入號(hào)碼緩沖區(qū),不斷將存入號(hào)碼緩沖區(qū)內(nèi)的號(hào)碼和內(nèi)存中號(hào)碼匹配表的記錄進(jìn)行匹配,判斷用戶是否撥完被叫號(hào)碼,若是則馬上向服務(wù)器系統(tǒng)發(fā)起呼叫;否則對(duì)于沒有匹配上的或者匹配結(jié)果不唯一的號(hào)碼則結(jié)合定時(shí)器來完成撥號(hào)。所設(shè)定的定時(shí)器包括首位號(hào)定時(shí)器及號(hào)間定時(shí)器,所述的首位號(hào)定時(shí)器用來等待用戶撥第一位號(hào)碼,所述號(hào)間定時(shí)器用來等待用戶撥的下一個(gè)號(hào)碼,特別的所述的號(hào)間定時(shí)器的時(shí)長(zhǎng)可根據(jù)匹配結(jié)果要將初始設(shè)置的長(zhǎng)時(shí)長(zhǎng)修改為短時(shí)長(zhǎng)。
該首位號(hào)定時(shí)器及該號(hào)間定時(shí)器為設(shè)置在內(nèi)存中由系統(tǒng)時(shí)鐘控制的計(jì)時(shí)單元;所述的首位號(hào)定時(shí)器用來限定用戶從摘機(jī)到撥第一位號(hào)碼的時(shí)長(zhǎng);設(shè)定范圍為5-120秒,最佳的設(shè)定為15秒; 所述的號(hào)間定時(shí)器用來限定用戶連續(xù)撥下一個(gè)號(hào)碼的時(shí)長(zhǎng);該號(hào)間定時(shí)器根據(jù)匹配結(jié)果可在預(yù)先設(shè)定的長(zhǎng)時(shí)長(zhǎng)和短時(shí)長(zhǎng)之間轉(zhuǎn)換;所述的長(zhǎng)時(shí)長(zhǎng)的范圍為4-15秒,最佳的長(zhǎng)時(shí)長(zhǎng)設(shè)定為5秒;所述的短時(shí)長(zhǎng)的范圍為大于等于1秒且小于4秒的范圍內(nèi),S卩1-4秒 (不包括4秒),最佳的短時(shí)長(zhǎng)設(shè)定為3秒。
為記載并控制匹配的過程,在內(nèi)存中設(shè)置兩個(gè)存貯單元臨時(shí)匹配結(jié)果存貯單元和匹配結(jié)果存貯單元;分別存儲(chǔ)號(hào)碼當(dāng)前匹配狀態(tài),即臨時(shí)匹配結(jié)果狀態(tài)和匹配結(jié)果狀態(tài)。
號(hào)碼匹配狀態(tài)包括完全匹配、部分匹配、既有完全匹配又有部分匹配和不匹配四種狀態(tài);在實(shí)際使用中可用不同的數(shù)字表示不同的狀態(tài),例如該部分匹配用數(shù)字0表示;該完全匹配用數(shù)字1表示;該既有完全匹配又有部分匹配用數(shù)字2表示;該不匹配用數(shù)字3表示。
所述的完全匹配,指用戶所撥的號(hào)碼字符串只和匹配表中的一項(xiàng)匹配數(shù)據(jù)記錄有如下關(guān)系,既用戶所撥的號(hào)碼字符串包含該匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段內(nèi)容,且號(hào)碼字符串的長(zhǎng)度和該匹配數(shù)據(jù)記錄的號(hào)碼長(zhǎng)度字段值相同; 所述的部分匹配,指用戶所撥的號(hào)碼字符串和匹配表中的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄有如下關(guān)系,既用戶所撥的號(hào)碼字符串包含所述的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段內(nèi)容,但是用戶所撥號(hào)碼字符串的長(zhǎng)度和所述的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄的號(hào)碼長(zhǎng)度字段值均不相等;或是所述的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段中包含用戶所撥號(hào)碼字符串但所述的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄的號(hào)碼長(zhǎng)度字段值和用戶所撥號(hào)碼字符串的長(zhǎng)度不相等; 所述的既有完全匹配又有部分匹配,指用戶所撥號(hào)碼字符串既和匹配表中的一項(xiàng)數(shù)據(jù)記錄符合完全匹配的條件,且用戶所撥號(hào)碼字符串也和匹配表中的一項(xiàng)或多項(xiàng)數(shù)據(jù)記錄符合部分匹配的條件; 所述的不匹配,指用戶所撥號(hào)碼字符串不包含匹配表中任何一條匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段的內(nèi)容。
如圖2所示,所述的號(hào)碼匹配的具體過程為 步驟101、當(dāng)端系統(tǒng)進(jìn)入撥號(hào)過程中時(shí),設(shè)置首位號(hào)定時(shí)器,清號(hào)碼緩沖區(qū);設(shè)置號(hào)間定時(shí)器時(shí)長(zhǎng)為長(zhǎng)時(shí)長(zhǎng); 步驟102、等待用戶撥號(hào),在等待用戶撥號(hào)的過程中,若該首位號(hào)定時(shí)器超時(shí)則進(jìn)入步驟117 ;若用戶撥號(hào)則進(jìn)入步驟103 ; 步驟103、設(shè)置號(hào)間定時(shí)器,如果是用戶撥的第一位號(hào)碼則停止首位號(hào)定時(shí)器; 步驟104、置臨時(shí)匹配結(jié)果為不匹配; 步驟105、判斷號(hào)碼匹配表是否還有未匹配的號(hào)碼匹配數(shù)據(jù)記錄;如果還有未匹配的數(shù)據(jù)項(xiàng)或數(shù)據(jù)記錄,則進(jìn)入步驟107 ;否則進(jìn)入步驟106 ; 步驟106、號(hào)碼匹配結(jié)束,結(jié)果為臨時(shí)匹配結(jié)果;返回步驟102等待用戶撥下一個(gè)號(hào)碼; 步驟107、獲取號(hào)碼匹配表中順序下一個(gè)匹配數(shù)據(jù)項(xiàng)或數(shù)據(jù)記錄; 步驟108、判斷在用戶所撥的號(hào)碼串中是否包含當(dāng)前獲取的匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段的內(nèi)容;如果包含則進(jìn)入步驟111 ;否則進(jìn)入步驟109 ; 步驟109、判斷當(dāng)前獲取的匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段中內(nèi)容是否包含用戶所撥的號(hào)碼串;如果包含則進(jìn)入步驟110 ;否則進(jìn)入步驟105 ; 步驟110、置臨時(shí)匹配結(jié)果為部分匹配,然后進(jìn)入步驟105 ; 步驟111、判斷用戶所撥號(hào)碼串長(zhǎng)度是否等于當(dāng)前獲取的匹配數(shù)據(jù)記錄的號(hào)碼長(zhǎng)度字段內(nèi)的長(zhǎng)度值;如果長(zhǎng)度相等則進(jìn)入步驟112 ;否則進(jìn)入步驟110 ; 步驟112、判斷臨時(shí)匹配結(jié)果屬于什么匹配;如果是不匹配進(jìn)入步驟113 ;如果是部分匹配則進(jìn)入步驟114; 步驟113、置匹配結(jié)果為完全匹配;跳至步驟115 ; 步驟114、置匹配結(jié)果為既有完全匹配又有部分匹配; 步驟115、判斷匹配結(jié)果;若是完全匹配則進(jìn)入步驟117 ;若是既有完全匹配又有部分匹配則進(jìn)入步驟116 ;否則為部分匹配或不匹配則進(jìn)入步驟102 ; 步驟116、修改號(hào)間定時(shí)器時(shí)長(zhǎng)為為短時(shí)長(zhǎng);重新進(jìn)入步驟102 ; 步驟117、收號(hào)過程結(jié)束;號(hào)碼緩沖區(qū)內(nèi)號(hào)碼為被叫號(hào)碼,向服務(wù)器系統(tǒng)發(fā)起呼叫。
綜上所述在端系統(tǒng)初始化時(shí),所述號(hào)碼匹配表模塊(如圖1)將用戶配置的匹配數(shù)據(jù)按一定規(guī)則(排序)處理后,將處理后的匹配數(shù)據(jù)放入內(nèi)存中; 所述號(hào)碼匹配數(shù)據(jù)具有以下特點(diǎn)每一個(gè)匹配數(shù)據(jù)包含兩部分內(nèi)容一部分是號(hào)碼前綴字符串,指一種類型號(hào)碼的前面幾位號(hào)碼,例如分機(jī)類型號(hào)碼的前面兩位“36”; 一部分是號(hào)碼長(zhǎng)度,指包括號(hào)碼前綴字符串長(zhǎng)度的一種類型號(hào)碼的總長(zhǎng)度,例如分機(jī)類型的號(hào)碼總長(zhǎng)度為4。其中號(hào)碼長(zhǎng)度不小于號(hào)碼前綴字符串的長(zhǎng)度,且號(hào)碼匹配數(shù)據(jù)可以配置多項(xiàng)。
所述的號(hào)碼匹配表處理規(guī)則和內(nèi)存中的匹配表數(shù)據(jù)具有以下特點(diǎn)將配置數(shù)據(jù)根據(jù)號(hào)碼前綴的長(zhǎng)度進(jìn)行排序,前綴長(zhǎng)度大的配置數(shù)據(jù)放在內(nèi)存中號(hào)碼匹配表的前面,前綴長(zhǎng)度小的配置數(shù)據(jù)放在后面。前綴長(zhǎng)度相同的按原先的順序存放。
進(jìn)一步地,當(dāng)端系統(tǒng)進(jìn)入收號(hào)狀態(tài)時(shí)啟用首位號(hào)定時(shí)器,等待首位號(hào)碼。清號(hào)碼緩沖區(qū);所述號(hào)碼匹配模塊在接收到用戶的一個(gè)撥號(hào)后,進(jìn)一步包括以下步驟 如果是第一位號(hào)碼則停止首位號(hào)定時(shí)器的步驟; 設(shè)號(hào)間定時(shí)器,定時(shí)器時(shí)長(zhǎng)為長(zhǎng)時(shí)長(zhǎng)的步驟; 對(duì)用戶所撥的號(hào)碼進(jìn)行一次號(hào)碼匹配表匹配的步驟; 進(jìn)一步地,對(duì)用戶所撥的號(hào)碼進(jìn)行號(hào)碼匹配表匹配的步驟具有以下特點(diǎn)從內(nèi)存中的號(hào)碼匹配表的第一個(gè)匹配數(shù)據(jù)開始,順序的將用戶所撥的號(hào)碼和匹配數(shù)據(jù)匹配。其中, 當(dāng)系統(tǒng)開始一次號(hào)碼匹配表的匹配過程時(shí)包括如下步驟置臨時(shí)匹配結(jié)果為不匹配,臨時(shí)匹配結(jié)果標(biāo)記用戶所撥號(hào)碼與一項(xiàng)匹配數(shù)據(jù)匹配的結(jié)果;啟用號(hào)間定時(shí)器,時(shí)長(zhǎng)為長(zhǎng)時(shí)長(zhǎng)。
所述號(hào)碼匹配模塊在進(jìn)行用戶所撥號(hào)碼和匹配表中單個(gè)匹配數(shù)匹配時(shí)具有以下特點(diǎn) 在用戶所撥的號(hào)碼串中,查找是否包含匹配數(shù)據(jù)的前綴字符串,所述的包含是指從用戶所撥號(hào)碼的第一個(gè)號(hào)碼開始的多個(gè)子字符串中的一個(gè)和匹配數(shù)據(jù)的前綴字符串相同。
若用戶所撥的號(hào)碼串中不包含匹配數(shù)據(jù)的前綴字符串,則在匹配數(shù)據(jù)的前綴字符串中檢查是否包含用戶所撥的號(hào)碼。若匹配數(shù)據(jù)的前綴字符串中包含用戶所撥的號(hào)碼,則置臨時(shí)匹配結(jié)果為部分匹配,結(jié)束和單個(gè)匹配數(shù)據(jù)匹配的過程,繼續(xù)和匹配表中剩下的匹配數(shù)據(jù)進(jìn)行單個(gè)匹配數(shù)據(jù)匹配的過程;若匹配數(shù)據(jù)的前綴字符串中不包含用戶所撥的號(hào)碼,結(jié)束和單個(gè)匹配數(shù)據(jù)匹配的過程,繼續(xù)和匹配表中剩下的匹配數(shù)據(jù)進(jìn)行單個(gè)匹配數(shù)據(jù)匹配的過程。例如匹配數(shù)據(jù)的前綴為“36”,當(dāng)用戶所撥的號(hào)碼串為“3”時(shí),則用戶所撥號(hào)碼串“3”中不包含匹配數(shù)據(jù)的前綴“36”,當(dāng)用戶所撥的號(hào)碼串為“364”時(shí),則用戶所撥號(hào)碼串 “364”中包含匹配數(shù)據(jù)的前綴“36” ; 若用戶所撥的號(hào)碼串中包含匹配數(shù)據(jù)的前綴字符串,則對(duì)用戶所撥號(hào)碼串長(zhǎng)度和匹配數(shù)據(jù)的號(hào)碼長(zhǎng)度進(jìn)行比較。若用戶所撥號(hào)碼串長(zhǎng)度不等于匹配數(shù)據(jù)的號(hào)碼長(zhǎng)度,則置臨時(shí)匹配結(jié)果為部分匹配,結(jié)束和單個(gè)匹配數(shù)據(jù)匹配的過程,繼續(xù)和匹配表中剩下的匹配數(shù)據(jù)進(jìn)行單個(gè)匹配數(shù)據(jù)匹配的過程;若用戶所撥號(hào)碼串長(zhǎng)度等于匹配數(shù)據(jù)的號(hào)碼長(zhǎng)度,此時(shí)如果臨時(shí)匹配結(jié)果為部分匹配,則匹配結(jié)果為既有完全匹配又有部分匹配,匹配結(jié)束;如果臨時(shí)匹配結(jié)果為不匹配,則表明用戶所撥被叫號(hào)碼已全,匹配結(jié)束。
若和匹配表的所有匹配數(shù)據(jù)項(xiàng)匹配后還不能結(jié)束一次號(hào)碼匹配表的匹配過程,則返回臨時(shí)匹配結(jié)果,匹配結(jié)束。
進(jìn)一步地,和匹配表匹配完成后,根據(jù)匹配結(jié)果做不同的處理過程若是完全匹配,則向服務(wù)器系統(tǒng)發(fā)起呼叫;若是部分匹配或是不匹配,則等待用戶的下次撥號(hào)或是定時(shí)器超時(shí);若是既有完全匹配又有部分匹配,則修改號(hào)間定時(shí)器時(shí)長(zhǎng)為短時(shí)長(zhǎng),等待用戶的下次撥號(hào)或是定時(shí)器超時(shí)。
下面以幾個(gè)具有代表性的被叫號(hào)碼的收號(hào)流程實(shí)例來說明本發(fā)明的具體收號(hào)過程。以下幾個(gè)收號(hào)過程中使用的號(hào)碼匹配表數(shù)據(jù)總共有四項(xiàng),用戶配置的數(shù)據(jù)如下表1所示表1用戶配置的號(hào)碼匹配表
權(quán)利要求
1.一種IP終端或網(wǎng)關(guān)的收號(hào)方法,其特征在于包括如下步驟(一)、配置號(hào)碼匹配表;用戶在終端上設(shè)置號(hào)碼匹配表,該號(hào)碼匹配表為二維表結(jié)構(gòu), 包括號(hào)碼前綴字符串字段和號(hào)碼長(zhǎng)度字段;該號(hào)碼前綴字符串指一種類型號(hào)碼的前面幾位號(hào)碼;該號(hào)碼長(zhǎng)度指包括號(hào)碼前綴字符串長(zhǎng)度在內(nèi)的一種類型號(hào)碼的總長(zhǎng)度;(二)、初始化號(hào)碼匹配表并存入內(nèi)存;其規(guī)則為,將號(hào)碼匹配表配置的數(shù)據(jù)記錄根據(jù)號(hào)碼前綴字符串的長(zhǎng)度進(jìn)行降序排序,前綴長(zhǎng)度大的配置數(shù)據(jù)記錄放在號(hào)碼匹配表的前面,前綴長(zhǎng)度小的配置數(shù)據(jù)記錄放在后面;前綴長(zhǎng)度相同的配置數(shù)據(jù)記錄按原先的順序存放;(三)、號(hào)碼匹配;用戶撥號(hào)時(shí),將用戶所撥的被叫號(hào)碼依次存入號(hào)碼緩沖區(qū),不斷將存入號(hào)碼緩沖區(qū)內(nèi)的號(hào)碼和內(nèi)存中號(hào)碼匹配表的記錄進(jìn)行匹配,判斷用戶是否撥完被叫號(hào)碼,若是則馬上向服務(wù)器系統(tǒng)發(fā)起呼叫;否則對(duì)于沒有匹配上的或者匹配結(jié)果不唯一的號(hào)碼則結(jié)合定時(shí)器來完成撥號(hào)。
2.如權(quán)利要求1所述的IP終端或網(wǎng)關(guān)的收號(hào)方法,其特征在于該號(hào)碼匹配的具體過程為步驟(101)、當(dāng)端系統(tǒng)進(jìn)入撥號(hào)過程中時(shí),設(shè)置首位號(hào)定時(shí)器,清號(hào)碼緩沖區(qū);設(shè)置號(hào)間定時(shí)器時(shí)長(zhǎng)為長(zhǎng)時(shí)長(zhǎng);步驟(102)、等待用戶撥號(hào),在等待用戶撥號(hào)的過程中,若該首位號(hào)定時(shí)器超時(shí)則進(jìn)入步驟(117);若用戶撥號(hào)則進(jìn)入步驟(103);步驟(103)、設(shè)置號(hào)間定時(shí)器,如果是用戶撥的第一位號(hào)碼則停止首位號(hào)定時(shí)器; 步驟(104)、置臨時(shí)匹配結(jié)果為不匹配;步驟(105)、判斷號(hào)碼匹配表是否還有未匹配的號(hào)碼匹配數(shù)據(jù)記錄;如果還有未匹配的數(shù)據(jù)項(xiàng)或數(shù)據(jù)記錄,則進(jìn)入步驟(107);否則進(jìn)入步驟(106);步驟(106)、號(hào)碼匹配結(jié)束,結(jié)果為臨時(shí)匹配結(jié)果;返回步驟(102)等待用戶撥下一個(gè)號(hào)碼;步驟(107)、獲取號(hào)碼匹配表中順序下一個(gè)匹配數(shù)據(jù)項(xiàng)或數(shù)據(jù)記錄; 步驟(108)、判斷在用戶所撥的號(hào)碼串中是否包含當(dāng)前獲取的匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段的內(nèi)容;如果包含則進(jìn)入步驟(111);否則進(jìn)入步驟(109);步驟(109)、判斷當(dāng)前獲取的匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段中內(nèi)容是否包含用戶所撥的號(hào)碼串;如果包含則進(jìn)入步驟(110);否則進(jìn)入步驟(105); 步驟(110)、置臨時(shí)匹配結(jié)果為部分匹配,然后進(jìn)入步驟(105); 步驟(111)、判斷用戶所撥號(hào)碼串長(zhǎng)度是否等于當(dāng)前獲取的匹配數(shù)據(jù)記錄的號(hào)碼長(zhǎng)度字段內(nèi)的長(zhǎng)度值;如果長(zhǎng)度相等則進(jìn)入步驟(112);否則進(jìn)入步驟(110);步驟(112)、判斷臨時(shí)匹配結(jié)果屬于什么匹配;如果是不匹配進(jìn)入步驟(113);如果是部分匹配則進(jìn)入步驟(114);步驟(113)、置匹配結(jié)果為完全匹配;跳至步驟(115); 步驟(114)、置匹配結(jié)果為既有完全匹配又有部分匹配;步驟(115)、判斷匹配結(jié)果;若是完全匹配則進(jìn)入步驟(117);若是既有完全匹配又有部分匹配則進(jìn)入步驟(116);否則為部分匹配或不匹配則進(jìn)入步驟(102);步驟(116)、修改號(hào)間定時(shí)器時(shí)長(zhǎng)為為短時(shí)長(zhǎng);重新進(jìn)入步驟(102);步驟(117)、收號(hào)過程結(jié)束;號(hào)碼緩沖區(qū)內(nèi)號(hào)碼為被叫號(hào)碼,向服務(wù)器系統(tǒng)發(fā)起呼叫。
3.如權(quán)利要求2所述的IP終端或網(wǎng)關(guān)的收號(hào)方法,其特征在于該首位號(hào)定時(shí)器及該號(hào)間定時(shí)器為設(shè)置在內(nèi)存中由系統(tǒng)時(shí)鐘控制的計(jì)時(shí)單元;所述的首位號(hào)定時(shí)器用來限定用戶從摘機(jī)到撥第一位號(hào)碼的時(shí)長(zhǎng);設(shè)定范圍為5-120秒;所述的號(hào)間定時(shí)器用來限定用戶連續(xù)撥下一個(gè)號(hào)碼的時(shí)長(zhǎng);該號(hào)間定時(shí)器根據(jù)匹配結(jié)果可在預(yù)先設(shè)定的長(zhǎng)時(shí)長(zhǎng)和短時(shí)長(zhǎng)之間轉(zhuǎn)換;所述的長(zhǎng)時(shí)長(zhǎng)的范圍為4-15秒;所述的短時(shí)長(zhǎng)的范圍為大于等于1秒且小于4秒的范圍內(nèi)。
4.如權(quán)利要求3所述的IP終端或網(wǎng)關(guān)的收號(hào)方法,其特征在于該首位號(hào)定時(shí)器設(shè)定為 15秒;該號(hào)間定時(shí)器的長(zhǎng)時(shí)長(zhǎng)設(shè)定為5秒;該號(hào)間定時(shí)器的短時(shí)長(zhǎng)設(shè)定為3秒。
5.如權(quán)利要求2所述的IP終端或網(wǎng)關(guān)的收號(hào)方法,其特征在于該臨時(shí)匹配結(jié)果和該匹配結(jié)果為設(shè)置在內(nèi)存中分別用于區(qū)別號(hào)碼匹配狀態(tài)的存貯單元;所述的號(hào)碼匹配狀態(tài)包括完全匹配、部分匹配、既有完全匹配又有部分匹配和不匹配四種狀態(tài);所述的完全匹配,指用戶所撥的號(hào)碼字符串只和匹配表中的一項(xiàng)匹配數(shù)據(jù)記錄有如下關(guān)系,既用戶所撥的號(hào)碼字符串包含該匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段內(nèi)容,且號(hào)碼字符串的長(zhǎng)度和該匹配數(shù)據(jù)記錄的號(hào)碼長(zhǎng)度字段值相同;所述的部分匹配,指用戶所撥的號(hào)碼字符串和匹配表中的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄有如下關(guān)系,既用戶所撥的號(hào)碼字符串包含所述的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段內(nèi)容,但是用戶所撥號(hào)碼字符串的長(zhǎng)度和所述的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄的號(hào)碼長(zhǎng)度字段值均不相等;或是所述的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段中包含用戶所撥號(hào)碼字符串但所述的一項(xiàng)或多項(xiàng)匹配數(shù)據(jù)記錄的號(hào)碼長(zhǎng)度字段值和用戶所撥號(hào)碼字符串的長(zhǎng)度不相等;所述的既有完全匹配又有部分匹配,指用戶所撥號(hào)碼字符串既和匹配表中的一項(xiàng)數(shù)據(jù)記錄符合完全匹配的條件,且用戶所撥號(hào)碼字符串也和匹配表中的一項(xiàng)或多項(xiàng)數(shù)據(jù)記錄符合部分匹配的條件;所述的不匹配,指用戶所撥號(hào)碼字符串不包含匹配表中任何一條匹配數(shù)據(jù)記錄的號(hào)碼前綴字符串字段的內(nèi)容。
6.如權(quán)利要求5所述的IP終端或網(wǎng)關(guān)的收號(hào)方法,其特征在于該部分匹配用數(shù)字0表示;該完全匹配用數(shù)字1表示;該既有完全匹配又有部分匹配用數(shù)字2表示;該不匹配用數(shù)字3表示。
全文摘要
本發(fā)明公開了一種IP終端或網(wǎng)關(guān)的收號(hào)方法,屬于信息通信技術(shù)的收號(hào)技術(shù)中主要涉及IP終端或網(wǎng)關(guān)的的收號(hào)方法的技術(shù)領(lǐng)域。包括配置號(hào)碼匹配表;初始化號(hào)碼匹配表并存入內(nèi)存和號(hào)碼匹配三個(gè)步驟;當(dāng)接收到用戶撥打的被叫號(hào)碼后,將號(hào)碼緩沖區(qū)中用戶所撥號(hào)碼與初始化時(shí)放入內(nèi)存的號(hào)碼匹配表數(shù)據(jù)進(jìn)行匹配,根據(jù)匹配結(jié)果進(jìn)行結(jié)束收號(hào)過程或返回等待用戶的下次撥號(hào)。當(dāng)結(jié)束收號(hào)時(shí)端系統(tǒng)直接向服務(wù)器系統(tǒng)發(fā)起呼叫。采用本發(fā)明的方法不要求用戶判斷是否撥完被叫號(hào)碼,與傳統(tǒng)電話的使用習(xí)慣相同,撥完被叫號(hào)碼后端系統(tǒng)通過自動(dòng)判斷就能向服務(wù)器系統(tǒng)發(fā)起呼叫,具有簡(jiǎn)單方便的優(yōu)點(diǎn)。
文檔編號(hào)H04L12/66GK102185985SQ201110032230
公開日2011年9月14日 申請(qǐng)日期2011年1月30日 優(yōu)先權(quán)日2011年1月30日
發(fā)明者王開銀, 李偉明, 吳天勇, 李艷平 申請(qǐng)人:廣東佳和通信技術(shù)有限公司