專利名稱:管理會話的方法、通用消息客戶端及服務器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線通信領(lǐng)域,尤其涉及一種在通用消息系統(tǒng)中管理會話的技術(shù)。
背景技術(shù):
目前在無線通信網(wǎng)絡上存在多種消息系統(tǒng),如短信、彩信、Email、即時消息(IM)等,為了提高用戶消息通信的易用性和通用性,通用消息系統(tǒng)平臺應運而生,它可以統(tǒng)一管理用戶的消息通信,用戶只需維護一個通訊錄、使用一種消息編輯和閱讀的界面,使用戶能更方便的使用消息通信。通用消息系統(tǒng)平臺的架構(gòu)如說明書附圖的圖1所示通用消息系統(tǒng)由客戶端和服務器兩部分組成??蛻舳舜嬖谟诮K端中,服務器設置在網(wǎng)絡內(nèi),該終端可以是無線移動終端(如手機),也可以是固定終端(如PC),它是一個可以接入IP網(wǎng)絡的設備。該網(wǎng)絡是一個基于IP的網(wǎng)絡。終端和該網(wǎng)絡間可以間隔多種中間網(wǎng)絡,如無線移動網(wǎng)絡,或企業(yè)內(nèi)部網(wǎng),或家庭局域網(wǎng)。專用消息客戶端以及專用消息系統(tǒng)服務器是現(xiàn)有或者未來出現(xiàn)的專用消息服務實體,如短信(SMS)客戶端和短信服務器,或即時消息(IM)客戶端和IM服務器。
在通用消息終端內(nèi),通用消息客戶端將消息的內(nèi)容和收件人、發(fā)件人地址傳送給專用消息客戶端,由專用消息客戶端生成一條專用消息,然后由通用消息客戶端將這條消息加上通用消息封裝后,完成通用消息的生成工作。
當通用消息客戶端收到一條通用消息時,它將通用消息去除通用消息封裝,然后將里面包裹的專用消息送到專用消息客戶端解析,專用消息客戶端將消息內(nèi)容和發(fā)件人地址再返回給通用消息客戶端,由通用消息客戶端顯示給用戶。
通用消息終端通過通用消息服務器來完成互相之間的通信。通用消息服務器在收到通用消息時,在轉(zhuǎn)發(fā)這條消息之前它有兩種方式來處理這條消息。一是收到消息后,完成處理,直接轉(zhuǎn)發(fā)給接收端。二是收到消息后,通過消息投遞單元發(fā)送給專用消息系統(tǒng)服務器,由專用消息系統(tǒng)服務器完成該專用消息的處理后再返回給通用消息服務器,通用消息服務器再將該消息發(fā)送給接收端。
通用消息系統(tǒng)支持通用消息終端在會話進行中更換終端或新的終端加入會話,通用消息用戶在更換終端之前或之后,將更換后終端的通信方式通過服務器發(fā)送給通信對方,以實現(xiàn)通信的繼續(xù),但是現(xiàn)有技術(shù)中存在有如下缺點用戶在更換終端后不能有選擇的繼續(xù)已有的通信,且沒有過往通信的歷史記錄,相應的,當有新的終端加入會話時,也不能通過獲取已有的通信的歷史紀錄選擇與已有的通信方進行會話。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,提供一種通用消息服務器、通用消息客戶端,以及一種管理會話的方法,使得有新的終端加入會話或用戶在更換終端的過程中,能夠選擇繼承的會話以及中止的會話,并為新加入的終端或者更換后的終端提供會話記錄。
為了解決上述技術(shù)問題,本發(fā)明提出了一種管理會話方法,包括a、為當前的會話生成主會話標識,并存儲包含所述主會話標識的會話記錄;b、發(fā)送與所述主會話標識對應的通信方建立會話的會話請求消息;c、根據(jù)所述會話請求消息,查找主會話標識,并建立與所述主會話標識對應的通信方的會話。
相應的,本發(fā)明還提供了一種通用消息客戶端,主要包括會話標識管理模塊,用于生成通信雙方的主會話標識,并存儲會話標識記錄;消息標識管理模塊,用于在通信雙方會話過程中生成與主會話標識對應的消息標識,并存儲所述消息標識;對外通信模塊,用于與通用消息服務器之間進行會話標識記錄的傳輸。
相應的,本發(fā)明還提供了一種通用消息服務器,主要包括會話標識管理模塊,用于生成通信雙方的主會話標識,并存儲會話標識記錄;消息標識管理模塊,用于在通信雙方會話過程中生成與主會話標識對應的消息標識并存儲;
對外通信模塊,用于與通用消息客戶端之間進行會話標識記錄的傳輸。
實施本發(fā)明,具有如下有益效果首先,在有通信方發(fā)起會話時,通過為通信雙方建立主會話標識,在通信雙方的會話過程中,伴隨每一條消息產(chǎn)生消息標識,并在通用消息系統(tǒng)的客戶端和服務器上同時存儲包含主會話標識的會話標識記錄及每一條消息的消息標識,使得當出現(xiàn)新的終端加入會話或更換終端的情況時,可以通過對主會話標識的獲取、選擇,建立通信雙方的會話。
圖1是現(xiàn)有的通用消息系統(tǒng)結(jié)構(gòu)示意圖;圖2是本發(fā)明通用消息客戶端實施例結(jié)構(gòu)示意圖;圖3是本發(fā)明通用消息服務器實施例結(jié)構(gòu)示意圖;圖4是本發(fā)明的產(chǎn)生主會話標識的第一實施例的方法流程圖;圖5是本發(fā)明的產(chǎn)生主會話標識的第二實施例的方法流程圖;圖6是本發(fā)明客戶端與服務器進行消息標識傳輸?shù)姆椒ǖ牡谝粚嵤├牧鞒淌疽鈭D;圖7是本發(fā)明客戶端與服務器進行消息標識傳輸?shù)姆椒ǖ牡诙嵤├牧鞒淌疽鈭D;圖8是本發(fā)明管理會話的第一和第二實施例的方法流程示意圖;圖9是本發(fā)明管理會話的第三實施例的方法流程示意圖。
具體實施例方式
本發(fā)明的實施例在于用消息標識來標記通信雙方會話過程中的消息,將消息標識存儲在通用消息系統(tǒng)的服務器和客戶端,同時服務器和客戶端還存儲會話標識記錄,使得有新的終端加入會話或者用戶在會話過程中更換終端的情況下,可以選擇繼續(xù)的會話以及中止的會話,并提供會話記錄。
參見圖2,是本發(fā)明的通用消息客戶端實施例的結(jié)構(gòu)示意圖。
本發(fā)明提供的通用消息客戶端1具體包括消息處理單元10、對外通信單元11、消息顯示單元12、消息內(nèi)容獲取單元13、消息投遞單元14和通訊錄15。
與現(xiàn)有技術(shù)不同的是,本發(fā)明的消息處理單元10還包括
會話標識管理模塊100,用于生成通信雙方的主會話標識,并存儲會話標識記錄;消息標識管理模塊101,用于在通信雙方會話過程中生成與主會話標識對應的消息標識,并存儲所述消息標識;其中,會話標識管理模塊100包括主會話標識生成子模塊1000,用于在本通用消息系統(tǒng)的客戶端向通信對方發(fā)起會話時,生成它們之間的主會話標識;會話標識記錄1001,用于記錄由主會話標識生成單元所生成的通信雙方的主會話標識內(nèi)容,其內(nèi)容如下所示
其中,消息標識管理模塊101包括消息標識生成子模塊1010,用于本通用消息系統(tǒng)的客戶端向服務器發(fā)送每條消息時,生成一個消息標識;消息標識存儲子模塊1011,用于存儲通信雙方在會話過程中的每條消息的消息標識,其內(nèi)容如下表所示
其中,主會話標識用于區(qū)分與其它的會話,如主會話標識用于區(qū)分其它的會話,如Bob與Alice進行一個會話,與Mary進行另一個會話,這兩個會話必須使用不同的主會話標識;當前序列號用于區(qū)分當前會話的序列,它在會話過程中,隨著發(fā)送消息的次數(shù)遞增。該值可以有一個上限,當序列號計數(shù)到最大值時,再次遞增為最小值。如主會話序列號為8bit,則當計數(shù)到255時,下一條消息序列號設置為0;會話消息類型用于表示會話使用的消息類型;
消息標識還可包含時間信息,表示該消息標識產(chǎn)生或發(fā)送的時間。
本發(fā)明的對外通信模塊11用于與通用消息服務器之間進行通信,具體包括當通信雙方的主會話標識由本通用消息客戶端1來建立時,對外通信模塊11將主會話標識通過消息標識發(fā)送到通用消息服務器;當通信雙方的主會話標識由通用消息服務器來建立時,對外通信模塊11首先向通用消息服務器發(fā)起主會話標識建立請求消息,并接收來自通用消息服務器的返回的會話標識記錄;當通用消息客戶端更換為專用消息終端時,作為更換前的通用消息客戶端的對外通信模塊11用于向通用消息服務器發(fā)送更換后的專用消息終端的通信地址信息;當做為發(fā)起會話請求的通用消息客戶端,其對外通信模塊11用于向通用消息服務器發(fā)送登陸請求消息以獲取會話標識記錄,并接收來自通用消息服務器的登陸響應消息,以及向通用消息服務器發(fā)送會話更新消息,并接收返回的會話標識記錄。
需要說明的是,本發(fā)明的通用消息客戶端的會話標識管理模塊100和消息標識管理模塊101也可以直接和消息處理單元10相連,其功能與上述功能相同。
參見圖3,是本發(fā)明通用消息服務器實施例的結(jié)構(gòu)示意圖;本發(fā)明提供的通用消息服務器包括消息處理單元20、對外通信單元21、用戶信息處理單元22、消息投遞單元23,消息轉(zhuǎn)換單元24。
與現(xiàn)有技術(shù)不同的是,本發(fā)明的消息處理單元20具體還包括會話標識管理模塊200,用于生成通信雙方的主會話標識,并存儲會話標識記錄;消息標識管理模塊201,用于在通信雙方會話過程中生成與主會話標識對應的消息標識,并存儲的所述消息標識;其中,會話標識管理模塊200包括主會話標識生成子模塊2000,用于在專用消息系統(tǒng)的客戶端向通信對方發(fā)起會話時,根據(jù)通信對方通用消息系統(tǒng)用戶的用戶標識生成它們之間的主會話標識;或用于為通信雙方統(tǒng)一分配主會話標識;會話標識記錄2001,用于記錄由主會話標識生成單元所生成的通信雙方的主會話標識內(nèi)容,其內(nèi)容如下表所示
其中,消息標識管理模塊201包括消息標識生成子模塊2010,用于向客戶端發(fā)送每條消息時,生成一個消息標識;消息標識存儲子模塊2011,用于存儲通信雙方在會話過程中的每條消息的消息標識,其內(nèi)容如下表所示
其中,如主會話標識用于區(qū)分其它的會話,如Bob與Alice進行一個會話,與Mary進行另一個會話,這兩個會話必須使用不同的主會話標識;當前序列號用于區(qū)分當前會話的序列,它在會話過程中,隨著發(fā)送消息的次數(shù)遞增。該值可以有一個上限,當序列號計數(shù)到最大值時,再次遞增為最小值。如主會話序列號為8bit,則當計數(shù)到255時,下一條消息序列號設置為0;會話消息類型用于表示會話使用的消息類型;消息標識還可包含時間信息,表示該消息標識產(chǎn)生或發(fā)送的時間。
本發(fā)明的對外通信模塊21與通用消息客戶端之間的通信具體包括當通信雙方的主會話標識由通用消息客戶端來建立時,通用消息服務器的對外通信模塊21用于接收來自通用消息客戶端的主會話標識;當通信雙方的主會話標識由通用消息服務器來建立時,對外通信模塊21首先接收自通用消息客戶端發(fā)起的主會話標識建立請求消息,并向其返回會話標識記錄;當會話過程中,通用消息客戶端更換為專用消息客戶端時,對外通信模塊21用于接收由通用消息客戶端發(fā)送的專用消息客戶端的通信地址信息,以及接收專用消息客戶端發(fā)送的會話消息,并將會話標識記錄通過專用消息客戶端支持的消息格式封裝后發(fā)送給發(fā)起會話請求的專用消息客戶端;用于接收發(fā)起會話請求的通用消息客戶端發(fā)送的登陸請求消息,以獲取會話標識記錄,并向通用消息客戶端返回登陸響應消息,以及接收通用消息客戶端發(fā)送會話更新消息,并向其返回會話標識記錄。
需要說明的是,本發(fā)明的通用消息客戶端的會話標識管理模塊100和消息標識管理模塊101也可以直接和消息處理單元10相連,其功能與上述功能相同。
參見圖4,是本發(fā)明的產(chǎn)生主會話標識的第一實施例的方法流程圖。
在本實施例中,主會話標識基于用戶標識而產(chǎn)生首先,在步驟S100,當通用消息客戶端準備發(fā)起一次通信時,客戶端的會話標識管理模塊基于其通用消息系統(tǒng)用戶標識生成一個主會話標識,通用消息系統(tǒng)用戶標識能保證該主會話標識的唯一性。
在步驟S101,通用消息客戶端以會話消息作為載體將主會話標識和消息標識與消息內(nèi)容一并發(fā)送給通用消息服務器;在步驟S102,服務器將該主會話標識記錄在自己的通用消息會話標識記錄表中;在步驟S103,若通信對方是通用消息客戶端,則通用消息服務器通過會話消息將該主會話標識以及消息標識通知給通信對方。
需要說明的是,當非通用消息系統(tǒng)用戶與通用消息系統(tǒng)用戶之間通信時,主會話標識可以由通用消息服務器的會話標識管理模塊根據(jù)通用消息系統(tǒng)用戶的用戶標識建立,然后將該主會話標識通過會話消息傳遞給通用消息系統(tǒng)用戶。
參見圖5,是本發(fā)明的產(chǎn)生主會話標識的第二實施例的方法流程圖。
在這種實施例中,主會話標識由通用消息系統(tǒng)的服務器的會話標識管理模塊統(tǒng)一進行分配,即當通用消息客戶端發(fā)起一次通信時,它請求通用消息服務器生成一個主會話標識。
首先在步驟S200,通用消息客戶端向通用消息服務器發(fā)送會話標識建立請求消息,消息中包含發(fā)送人用戶名、接收人用戶名或接收人地址。
在步驟S201,通用消息服務器在其會話標識記錄表中查找對應項;在步驟S202,通過以下程序代碼進行判斷是否找到對應的會話標識記錄If((源用戶=發(fā)送人用戶名and(目標用戶=接收人用戶名or目標用戶=接收人地址)or(目標用戶=發(fā)送人用戶名and(源用戶=接收人用戶名or源用戶=接收人地址))找到對應項;else找不到對應項;在步驟S203,如果服務器找到了對應項,則通用消息服務器取出對應項的主會話標識,然后轉(zhuǎn)入步驟S205;在步驟S204,如果找不到對應項,通用消息服務器生成一個主會話標識,確保該標識與其它主會話標識不同。然后轉(zhuǎn)入步驟S205;在步驟S205,通用消息服務器返回會話標識記錄,包含發(fā)送人用戶名、接收人用戶名或接收人地址、主會話標識;需要指出的是,如果該主會話標識包含在會話標識記錄表中,返回的響應消息中還包括各個源用戶和目標用戶對的當前序列號。
若通信對方是通用消息客戶端,則還進行步驟S206,將通用消息服務器以會話消息作為載體將該主會話標識以及消息標識通知給通信對方。
需要說明的是,當非通用消息系統(tǒng)用戶發(fā)起一次與通用消息系統(tǒng)用戶的通信時,在步驟S200,專用消息客戶端向通用消息服務器發(fā)送的是會話消息,所述會話消息包含用于獲取主會話標識的地址信息;在這種實施例中,通信對方一定是通用消息客戶端,所以省略步驟S205,而在步驟S206,通用消息服務器以會話消息作為載體將主會話標識直接發(fā)送給通信對方的通用消息客戶端,其他步驟與上述步驟相同。
參見圖6,是本發(fā)明客戶端與服務器進行消息標識的傳輸?shù)姆椒ǖ牡谝粚嵤├牧鞒淌疽鈭D。
在這種實施例中,通用消息系統(tǒng)以會話消息作為載體傳輸消息標識;首先在步驟S300,在消息頭中嵌入表示通用消息系統(tǒng)的消息標識;需要說明的是,該標識不僅包含表2中的內(nèi)容,還包含子會話標識以及消息類型。子會話標識在消息生成時產(chǎn)生,根據(jù)該次消息分解的個數(shù)決定子會話的個數(shù),即用戶提供的一組消息內(nèi)容可由多個子會話來承載。
在步驟S301,通用消息客戶端向通用消息服務器發(fā)送會話消息;在步驟S302,通用消息服務器收到會話消息,即可獲知該會話消息的消息標識。
需要說明的是,消息標識也可以由通用消息服務器發(fā)送到通用消息客戶端。
參見圖7,是本發(fā)明客戶端與服務器進行消息標識的傳輸?shù)姆椒ǖ牡诙嵤├牧鞒淌疽鈭D。
在這種實施例中,通用消息服務器不負責對用戶消息的直接接收和發(fā)送,即與客戶端間僅完成通用消息系統(tǒng)的信令交互,消息內(nèi)容仍通過專用消息系統(tǒng)來發(fā)送,客戶端和服務器通過消息通知消息進行通用消息系統(tǒng)消息標識的通知。
首先在步驟S400,通用消息客戶端向通用消息服務器發(fā)送消息通知消息;該消息通知消息包含一條消息的會話信息,主要為主會話標識、當前序列號、發(fā)送方用戶名或發(fā)送方地址、接收方用戶名或接收方地址、消息類型、或還包括消息發(fā)送時間。
在步驟S401,通用消息的消息標識在通用消息客戶端和服務器間進行交互;在步驟S402,服務器收到消息標識后,認為下一個接收的來自于相同用戶,去向相同目的地,相同消息類型的會話消息對應該消息標識。
需要說明的是,消息通知消息可以由通用消息客戶端發(fā)送到通用消息服務器,也可以由通用消息服務器發(fā)送到通用消息客戶端。
當用戶退出通用消息系統(tǒng)時,通用消息客戶端、服務器將刪除與該用戶相關(guān)的主會話標識。
若通用消息系統(tǒng)用戶在會話過程中需要更換終端,或者有新的終端請求加入會話,而終端更換前后或者新的終端加入前后必須有一個終端支持通用消息系統(tǒng)。如果更換終端前后或者新的終端加入前后有一個終端是專用消息終端,則另一個通信終端必須是通用消息終端,所以一共存在4種情況1、更換前的終端或者已有會話的終端為通用消息終端,更換后的終端或者新加入會話的終端為通用消息終端,通信對方為通用消息終端;2、更換前的終端或者已有會話使用的終端為通用消息終端,更換后的終端或者新加入會話的終端為通用消息終端,通信對方為專用消息終端;3、更換前的終端或者已有會話的終端為專用消息終端,更換后的終端或者新加入會話的終端為通用消息終端,通信對方為通用消息終端;4、更換前的終端或者已有會話的終端為通用消息終端,更換后的終端或者新加入會話的終端為專用消息終端,通信對方為通用消息終端。
在會話過程中更換為通用消息終端或者新加入會話的終端是通用消息終端時,需通過該通用消息終端發(fā)送登陸請求消息,完成會話請求消息的功能,并通過網(wǎng)絡返回的登陸響應消息獲取會話記錄。這時,為了完成用戶更換終端時或有新的終端加入會話時,允許用戶有選擇的繼續(xù)之前的會話,通用消息服務器需要客戶端提供一條會話更新消息,并向客戶端發(fā)送響應通話記錄下發(fā)消息。
需要說明的是,針對有新的終端加入會話時和更換終端這兩種情況,本發(fā)明提供的管理會話的技術(shù)方案不同的地方在于當更換終端時,通用消息服務器將其會話記錄中關(guān)于更換前的終端的通信地址更新為更換后的終端的通信地址;而當有新的終端加入會話時,通用消息服務器在其會話記錄中增加或修改新加入會話的終端相關(guān)的會話標識記錄、會話消息及其對應消息標識。
下面以用戶更換終端這種情況為例,說明本發(fā)明的管理會話的方法。
參見圖8,是本發(fā)明的用戶更換終端時管理會話的第一實施例的方法流程示意圖。
用戶更換終端前后,都使用通用消息終端,無論通信對方為何種終端,其選擇會話的消息內(nèi)容是相同的。
例如,通用消息系統(tǒng)用戶Bob,通用消息系統(tǒng)用戶標識為12345,支持短信;通用消息系統(tǒng)用戶Alice,通用消息系統(tǒng)用戶標識為45678,支持短信和Email。
Bob與Alice正在進行消息通信,服務器與Bob客戶端上保存的會話標識記錄表為
Alice客戶端上保存的會話標識記錄表為
Bob希望更換一個終端,更換后的終端為一個通用消息終端,支持短信和彩信。在這種實施例中,用戶更換終端時管理會話的方法步驟如下在步驟S500,Bob打開終端,登陸通用消息系統(tǒng),向通用消息服務器發(fā)送登陸請求消息。程序代碼如下<CPM-CSP-Message xmlns=″http://www.openmobilealliance.org/DTD/CPM1.0″>
<Session>
<SessionDescriptor>
<SessionType>Inband</SessionType>
<SessionID>31018#user@server</SessionID>
</SessionDescriptor>
<Transaction>
<TransactionDescriptor>Request01#12345@Server</TransactionDescriptor>
<TransactionContentxmlns=″http://www.openmobilealliance.org/DTD/CPM-TRC1.0″>
<!--:登陸請求-->
<LoginRequest>
<!--:用戶名-->
<UserID>Bob</UserID>
<!--:密碼-->
<Password>2^8Jh9Z</Password>
<!--:Bob的聯(lián)系方式-->
<ClientID>http://211.112.1.1/CPMAPP</ClientID>
<!--:支持消息類型-->
<SupportModeList>
<PriorityMode>
<!--:接收偏好的等級-->
<Rank>1</Rank>
<!--:2表示短信,指支持的消息類型-->
<TargetMode>2</TargetMode>
<!--:消息系統(tǒng)的聯(lián)系方式-->
<TargetAddress>13601118888</TargetAddress>
</PriortyMode>
<PriorityMode>
<Rank>2</Rank>
<TargetMode>3</TargetMode>
<TargetAddress>13601118888</TargetAddress>
</PriorityMode>
</SupportModeList>
</LoginRequest>
</TransactionContent>
</Transaction>
</Session>
</CPM-CSP-Message>
在步驟S501,服務器收到該登陸請求后,對Bob的身份進行驗證,Bob登陸被接受,完成對Bob的登陸處理后,尋找Bob對應的會話。
在步驟S502,通用消息服務器向通用消息客戶端返回登陸響應消息,程序代碼如下<CPM-CSP-Message xmlns=″http://www.openmobilealliance.org/DTD/CPM1.0″>
<Session>
<SessionDescriptor>
<SessionType>Inband</SessionType>
<SessionID>31018#user@server</SessionID>
</SessionDescriptor>
<Transaction>
<TransactionDescriptor>Response01#12345@Server</TransactionDescriptor>
<TransactionContentxmlns=″http://www.openmobilealliance.org/DTD/CPM-TRC1.0″>
<LoginResponse>
<ClientID>http://211.112.1.1/CPMAPP</UserID>
<!--:告知登陸成功-->
<Result>200</Result>
<Description>Success Complete</Description>
<!--:通用消息系統(tǒng)用戶標識-->
<RegisterID>12345</RegisterID>
<!--:通訊錄-->
<AddressBook>
<UserInfo>
<!--:第一個聯(lián)系人-->
<UserID>Alice</UserID>
<!--:Alice的用戶標識-->
<RegisterID>45678</RegisterID>
<!--:告知Alice支持的消息類型、偏好及聯(lián)系方式-->
<SupportModeList>
<PriorityMode>
<Rank>1</Rank>
<TargetMode>2</TargetMode>
<TargetAddress>13601118888</TargetAddress>
</PriorityMode>
<PriorityMode>
<Rank>2</Rank>
<TargetMode>1</TargetMode>
<TargetAddress>Alice@home.com</TargetAddress>
</PriorityMode>
</SupportModeList>
<!--:告知Alice的登陸狀態(tài)1已登陸-->
<StatusInfo>1</StatusInfo>
</UserInfo>
<!--:第二個聯(lián)系人-->
<UserInfo>
<UserID>Mike</UserID>
<RegisterID>56787</RegisterID>
<SupportModeList>
<PriorityMode>
<Rank>1</Rank>
<TargetMode>4</TargetMode>
<TargetAddress>wv:Mike@im.com</TargetAddress>
</PriorityMode>
<PriorityMode>
<Rank>2</Rank>
<TargetMode>1</TargetMode>
<TargetAddress>Mike@home.com</TargetAddress>
</PriorityMode>
</SupportModeList>
<StatusInfo>1</StatusInfo>
</UserInfo>
</AddressBook>
<LastSession>
<SessionInfo>
<SessionID>456780001</SessionID>
<SourceUser>Bob</SourceUser>
<TargetUser>Alice</TargetUser>
<MessageIndex>103</MessageIndex>
</SessionInfo>
<SessionInfo>
<SessionID>456780001</SessionID>
<SourceUser>Alice</SourceUser>
<TargetUser>Bob</TargetUser>
<MessageIndex>94</MessageIndex>
</SessionInfo>
<SessionInfo>
<SessionID>123450001</SessionID>
<SourceUser>Bob</SourceUser>
<TargetUser>Mike</TargetUser>
<MessageIndex>23</MessageIndex>
</SessionInfo>
<SessionInfo>
<SessionID>123450001</SessionID>
<SourceUser>Mike</SourceUser>
<TargetUser>Bob</TargetUser>
<MessageIndex>24</MessageIndex>
</SessionInfo>
</LastSession>
</LoginResponse>
</TransactionContent>
</Transaction>
</Session>
</CPM-CSP-Message>
在步驟S503,Bob的客戶端向Bob顯示正在進行與Alice、Mike的通話,Bob選擇繼續(xù)Alice的通話,中止與Mike的通話??蛻舳私挊俗R記錄表,記錄會話標識
并向服務器返回一條會話更新消息。
<CPM-CSP-Message xmlns=″http://www.openmobilealliance.org/DTD/CPM1.0″>
<Session>
<SessionDescriptor>
<SessionType>Inband</SessionType>
<SessionID>31018#user@server</SessionID>
</SessionDescriptor>
<Transaction>
<TransactionDescriptor>Request01#12345@Server</TransactionDescriptor>
<TransactionContentxmlns=″http://www.openmobilealliance.org/DTD/CPM-TRC1.0″>
<SessionUpdate>
<Accepted>
<SessionID>456780001</SessionID>
<!--:接受的主會話標識-->
</Accepted>
<Denied>
<SessionID>123450001</SessionID>
<!--:拒絕的主會話標識-->
</Denied>
</SessionUpdate>
</TransactionContent>
</Transaction>
</Session>
</CPM-CSP-Message>
在步驟S504,服務器收到該消息后,保留456780001會話。中止123450001的會話,同時釋放123450001對應的消息標識相應的存儲信息;在步驟S505,通用消息服務器將選擇的主會話標識對應的消息標識存儲模塊中的消息標識或者還包括消息,發(fā)送給通用消息客戶端。
需要說明的是,當Bob與Alice繼續(xù)通信時,Alice從Bob收到消息標識,消息標識中的源用戶Bob與之前的13601119999不同,即將本身保存的會話標識記錄表更新為步驟S503中表格的內(nèi)容。
同樣參見圖8,是本發(fā)明的用戶更換終端時管理會話的第二實施例的方法流程示意圖;當用戶更換終端前使用專用消息終端,更換后使用通用消息終端,對方為通用消息終端,例如專用消息系統(tǒng)用戶Bob,電話號碼為13601119999,支持短信;通用消息系統(tǒng)用戶Alice,通用消息系統(tǒng)用戶標識為45678,支持短信和Email。
Bob與Alice正在進行消息通信,服務器與Alice客戶端上保存的會話標識記錄表為
這時,Bob希望更換一個終端,更換后的終端為一個通用消息終端,支持短信和彩信。
在這種實施例中,在步驟S500,Bob打開終端,登陸通用消息系統(tǒng),向通用消息服務器發(fā)送登陸請求消息,并提供之前終端使用的通信地址,程序代碼如下<CPM-CSP-Message xmlns=″http://www.openmobilealliance.org/DTD/CPM1.0″>
<Session>
<SessionDescriptor>
<SessionType>Inband</SessionType>
<SessionID>31018#user@server</SessionID>
</SessionDescriptor>
<Transaction>
<TransactionDescriptor>Request01#12345@Server</TransactionDescriptor>
<TransactionContentxmlns=″http://www.openmobilealliance.org/DTD/CPM-TRC 1.0″>
<!--:登陸請求-->
<LoginRequest>
<!--:用戶名-->
<UserID>Bob</UserID>
<!--:密碼-->
<Password>2^8Jh9Z</Password>
<!--:Bob的聯(lián)系方式-->
<ClientID>http://211.112.1.1/CPMAPP</ClientID>
<!--:支持消息類型-->
<SupportModeList>
<PriorityMode>
<!--:接收偏好的等級-->
<Rank>1</Rank>
<!--:2表示短信,指支持的消息類型-->
<TargetMode>2</TargetMode>
<!--:消息系統(tǒng)的聯(lián)系方式-->
<TargetAddress>13601118888</TargetAddress>
</PriorityMode>
<PriorityMode>
<Rank>2</Rank>
<TargetMode>3</TargetMode>
<TargetAddress>13601118888</TargetAddress>
</PriorityMode>
</SupportModeList>
<LastTerminal>
<TargetAddress>13601119999</TargetAddress>
</LastTerminal>
</LoginRequest>
</TransactionContent>
</Transaction>
</Session>
</CPM-CSP-Message>
在步驟S501,服務器收到該登陸請求后,對Bob的身份進行驗證,Bob登陸被接受。完成對Bob的登陸處理后,尋找原終端聯(lián)系方式13601119999對應的會話,將13601119999更新為Bob。服務器的會話標識記錄表為
在步驟S502,通用消息服務器向更換后的通用消息客戶端返回登陸響應消息
<CPM-CSP-Message xmlns=″http://www.openmobilealliance.org/DTD/CPM1.0″>
<Session>
<SessionDescriptor>
<SessionType>Inband</SessionType>
<SessionID>31018#user@server</SessionID>
</SessionDescriptor>
<Transaction>
<TransactionDescriptor>Response01#12345@Server</TransactionDescriptor>
<TransactionContentxmlns=″http://www.openmobilealliance.org/DTD/CPM-TRC1.0″>
<LoginResponse>
<ClientID>http://211.112.1.1/CPMAPP</UserID>
<!--:告知登陸成功-->
<Result>200</Result>
<Description>Success Complete</Description>
<!--:通用消息系統(tǒng)用戶標識-->
<RegisterID>12345</RegisterID>
<!--:通訊錄-->
<AddressBook>
<UserInfo>
<!--:第一個聯(lián)系人-->
<UserID>Alice</UserID>
<!--:Alice的用戶標識-->
<RegisterID>45678</RegisterID>
<!--:告知Alice支持的消息類型、偏好及聯(lián)系方式-->
<SupportModeList>
<PriorityMode>
<Rank>1</Rank>
<TargetMode>2</TargetMode>
<TargetAddress>13601118888</TargetAddress>
</PriorityMode>
<PriorityMode>
<Rank>2</Rank>
<TargetMode>1</TargetMode>
<TargetAddress>Alice@home.com</TargetAddress>
</PriorityMode>
</SupportModeList>
<!--:告知Alice的登陸狀態(tài)1已登陸-->
<StatusInfo>1</StatusInfo>
</UserInfo>
<!--:第二個聯(lián)系人-->
<UserInfo>
<UserID>Mike</UserID>
<RegisterID>56787</RegisterID>
<SupportModeList>
<PriorityMode>
<Rank>1</Rank>
<TargetMode>4</TargetMode>
<TargetAddress>wv:Mike@im.com</TargetAddress>
</PriorityMode>
<PriorityMode>
<Rank>2</Rank>
<TargetMode>1</TargetMode>
<TargetAddress>Mike@home.com</TargetAddress>
</PriorityMode>
</SupportModeList>
<StatusInfo>0</StatusInfo>
</UserInfo>
</AddressBook>
<LastSession>
<SessionInfo>
<SessionID>456780001</SessionID>
<SourceUser>Bob</SourceUser>
<TargetUser>Alice</TargetUser>
<MessageIndex>103</MessageIndex>
</SessionInfo>
<SessionInfo>
<SessionID>456780001</SessionID>
<SourceUser>Alice</SourceUser>
<TargetUser>Bob</TargetUser>
<MessageIndex>94</MessageIndex>
</SessionInfo>
</LastSession>
</LoginResponse>
</TransactionContent>
</Transaction>
</Session>
</CPM-C SP-Message>
在步驟S503,Bob的客戶端向Bob顯示正在進行與Alice的通話,Bob選擇繼續(xù)。通用消息客戶端建立會話標識記錄表,記錄會話標識,如步驟S501中的表格一樣,并向服務器返回一條會話更新消息。
<CPM-CSP-Message xmlns=″http://www.openmobilealliance.org/DTD/CPM1.0″>
<Session>
<SessionDescriptor>
<SessionType>Inband</SessionType>
<SessionID>31018#user@server</SessionID>
</SessionDescriptor>
<Transaction>
<TransactionDescriptor>Request01#12345@Server</TransactionDescriptor>
<TransactionContentxmlns=″http://www.openmobilealliance.org/DTD/CPM-TRC1.0″>
<SessionUpdate>
<Accepted>
<SessionID>456780001</SessionID><!--:接受的主會話標識-->
</Accepted>
</SessionUpdate>
</TransactionContent>
</Transaction>
</Session>
</CPM-CSP-Message>
在步驟S504,服務器收到會話更新消息后,保留456780001會話。
在步驟S505,通用消息服務器向更換后的客戶端發(fā)送通話記錄下發(fā)消息;需要說明的是,當Bob與Alice繼續(xù)通信時,Alice從Bob收到消息標識,消息標識中的源用戶Bob與之前的13601119999不同,即將本身保存的會話標識記錄表更新為步驟S501中表格的內(nèi)容。
參見圖9,是本發(fā)明的用戶更換終端時管理會話的第三實施例的方法流程示意圖。
在這種實施例中,更換前為通用消息終端,更換后為專用消息終端,通信對方為通用消息終端。
例如通用消息系統(tǒng)用戶Bob,通用消息系統(tǒng)用戶標識為12345,支持短信;通用消息系統(tǒng)用戶Alice,通用消息系統(tǒng)用戶標識為45678,支持短信和Email。
Bob與Alice正在進行消息通信,服務器與Bob客戶端上保存的會話標識記錄表為
Alice客戶端上保存的會話表示記錄表為
這時,Bob希望更換一個終端,更換后的終端為一個傳統(tǒng)消息終端,支持短信。在這種實施例中,更換終端時管理會話的方法步驟如下在步驟S600,Bob在更換終端前向服務器發(fā)送更換終端通知消息。程序代碼如下<CPM-CSP-Message xmlns=″http://www.openmobilealliance.org/DTD/CPM1.0″>
<Session>
<SessionDescriptor>
<SessionType>Inband</SessionType>
<SessionID>31018#user@server</SessionID>
</SessionDescriptor>
<Transaction>
<TransactionDescriptor>Request01#12345@Server</TransactionDescriptor>
<TransactionContentxmlns=″http://www.openmobilealliance.org/DTD/CPM-TRC1.0″>
<!--更換終端通知-->
<NotifyDeviceChanging>
<!--告知用戶名/通用消息系統(tǒng)用戶標識-->
<UserID>Bob</UserID>
<RegisterID>123456789</RegisterID>
<!--:支持消息類型-->
<SupportModeList>
<PriorityMode>
<!--:接收偏好的等級-->
<Rank>1</Rank>
<!--:2表示短信,指支持的消息類型-->
<TargetMode>2</TargetMode>
<!--:消息系統(tǒng)的聯(lián)系方式-->
<TargetAddress>13601119999</TargetAddress>
</PriorityMode>
</SupportModeList>
<SessionUpdate>
<Accepted>
<SessionID>456780001</SessionID><!--:接受的主會話標識-->
</Accepted>
<Denied>
<SessionID>123450001</SessionID><!--:拒絕的主會話標識-->
</Denied>
</SessionUpdate>
</NotifyDeviceChanging>
</TransactionContent>
</Transaction>
</Session>
</CPM-CSP-Message>
在步驟S601,通用消息服務器收到更換終端通知消息后,保留456780001會話。中止123450001的會話,同時釋放123450001對應的消息標識相關(guān)的存儲信息。其會話標識記錄表如下所示
在步驟S602,通用消息服務器將456780001對應的消息標識存儲模塊中保存的消息標識封裝在一條短信中發(fā)送給Bob的傳統(tǒng)消息終端。
需要說明的是,當Bob與Alice繼續(xù)通信時,Alice從服務器收到消息標識,消息標識中的源用戶13601119999與之前的Bob不同,即將本身保存的會話標識記錄表更新為步驟S601中表格的內(nèi)容。
以上所揭露的僅為本發(fā)明一種較佳實施例而已,當然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
權(quán)利要求
1.一種管理會話的方法,其特征在于,包括a、為當前的會話生成主會話標識,并存儲包含所述主會話標識的會話記錄;b、發(fā)送與所述主會話標識對應的通信方建立會話的會話請求消息;c、根據(jù)所述會話請求消息,查找主會話標識,并建立與所述主會話標識對應的通信方的會話。
2.如權(quán)利要求1所述的管理會話的方法,其特征在于,所述步驟a具體包括以下步驟a1、由通用消息服務器為通信雙方的會話建立并存儲主會話標識,所述通信雙方至少有一方為通用消息客戶端;a2、通用消息服務器將所述建立的主會話標識發(fā)送給通用消息客戶端;a3、通用消息客戶端存儲通信雙方的包含主會話標識的會話記錄。
3.如權(quán)利要求1所述的管理會話的方法,其特征在于,所述步驟a具體包括以下步驟a4、由通用消息客戶端為通信雙方的會話建立并存儲主會話標識,所述通信雙方至少有一方為通用消息客戶端;a5、通用消息客戶端將所述建立的主會話標識發(fā)送給通用消息服務器;a6、通用消息服務器存儲通信雙方的包含主會話標識的會話記錄。
4.如權(quán)利要求1所述的管理會話的方法,其特征在于,當所述發(fā)起會話請求的客戶端為請求加入當前會話的客戶端時,所述步驟b具體為b00、所述客戶端向通用消息服務器發(fā)送包含地址信息的會話消息;所述步驟c具體包括c00、根據(jù)會話消息中的地址信息,通用消息服務器查找其會話記錄中對應的主會話標識;c01、通用消息服務器根據(jù)所述主會話標識,建立所述客戶端與通信對方的會話。
5.如權(quán)利要求1所述的管理會話的方法,其特征在于,當所述發(fā)起會話請求的客戶端為通用消息客戶端時,所述步驟b具體包括b10、通用消息服務器向所述通用消息客戶端發(fā)送其會話記錄中與之相應的會話標識記錄;b11、通用消息客戶端向通用消息服務器發(fā)送會話更新消息,所述會話更新消息包含通用消息客戶端在會話標識記錄中所選擇需要繼續(xù)的會話的主會話標識;所述步驟c具體包括c10、通用消息服務器根據(jù)通用消息客戶端選擇的主會話標識,建立通用消息客戶端與通信對方的會話。
6.如權(quán)利要求1所述的管理會話的方法,其特征在于,當在會話過程中,通用消息客戶端需要更換為專用消息客戶端時,所述專用消息客戶端做為發(fā)起會話請求的客戶端時,所述步驟b具體包括b20、更換前的通用消息客戶端向通用消息服務器發(fā)送更換后的專用消息客戶端的通信地址;b21、更換后的專用消息客戶端向通用消息服務器發(fā)送包含地址信息的會話請求消息,所述會話請求消息為會話消息本身;所述步驟c具體包括c20、通用消息服務器接收自專用消息客戶端的消息,根據(jù)其地址信息查找其會話記錄中相應的主會話標識;c21、通用消息服務器根據(jù)所述主會話標識,建立專用消息系統(tǒng)客戶端與通信對方的會話。
7.如權(quán)利要求2所述的管理會話的方法,其特征在于,步驟a1中所述的主會話標識是由通用消息服務器統(tǒng)一進行分配的,當發(fā)起會話的一方為通用消息客戶端時,具體包括以下步驟a10、通用消息客戶端向通用消息服務器發(fā)送主會話標識建立請求消息;a11、通用消息服務器在其會話記錄中查找與通信雙方對應的會話標識記錄,如果找到對應的會話標識記錄,則轉(zhuǎn)入步驟a12,否則轉(zhuǎn)入步驟a13;a12、通用消息服務器提取對應的會話標識記錄;a13、通用消息服務器為通信雙方的會話生成一個區(qū)別于其他主會話標識,并存儲在其會話記錄中;所述步驟a2具體為通用消息服務器將包含主會話標識的會話標識記錄返回給發(fā)起主會話標識建立請求的客戶端。
8.如權(quán)利要求2所述的管理會話的方法,其特征在于,步驟a1中所述的主會話標識是由通用消息服務器統(tǒng)一進行分配的,當發(fā)起會話的一方使用專用消息客戶端,通信對方使用通用消息客戶端時,具體包括以下步驟a14、專用消息客戶端向通用消息服務器發(fā)送會話消息,并通過通用消息服務器向通信對方的通用消息客戶端發(fā)送消息;a15、通用消息服務器接收到來自專用消息客戶端的會話消息時,在其會話標識記錄中查找與通信雙方對應的會話標識記錄,如果找到對應的會話標識記錄,則轉(zhuǎn)入步驟a16,否則轉(zhuǎn)入步驟a17;a16、通用消息服務器提取對應的會話標識記錄;a17、通用消息服務器為通信雙方的會話生成一個區(qū)別于其他主會話標識的主會話標識,并存儲在其會話記錄中;所述步驟a2具體為通用消息服務器將所述包含主會話標識的會話標識記錄發(fā)送給通信對方使用的通用消息客戶端。
9.如權(quán)利要求2所述的管理會話的方法,其特征在于,所述步驟a1中所述的主會話標識是通用消息服務器基于用戶標識生成的,當發(fā)起會話的一方為專用消息客戶端時,通信對方為通用消息客戶端時,具體包括以下步驟a18、專用消息客戶端向通用消息服務器發(fā)送會話消息,并通過通用消息服務器向通信對方的通用消息客戶端發(fā)送會話消息;a19、通用消息服務器根據(jù)通信對方的用戶標識生成主會話標識,并存儲在其會話記錄中。所述步驟a2具體為通用消息服務器將主會話標識發(fā)送給通信對方的通用消息客戶端。
10.如權(quán)利要求3所述的管理會話的方法,其特征在于,所述步驟a4中所述的主會話標識是發(fā)起會話請求的通用消息客戶端基于其用戶標識生成的,具體包括以下步驟a41、當通用消息客戶端準備發(fā)起會話時,通用消息客戶端根據(jù)用戶標識建立主會話標識,并存儲在其會話記錄中;所述步驟a2具體為發(fā)起會話的通用消息客戶端將會話標識記錄發(fā)送給通用消息服務器。
11.如權(quán)利要求1至10中任一項所述的管理會話的方法,其特征在于,步驟a中的所述的在通用消息客戶端和通用消息服務器上存儲的會話記錄具體包括會話標識記錄、包含主會話標識的消息標識,或還包含與消息標識對應的消息。
12.一種通用消息客戶端,其特征在于,主要包括會話標識管理模塊,用于生成通信雙方的主會話標識,并存儲會話標識記錄;消息標識管理模塊,用于在通信雙方會話過程中生成與主會話標識對應的消息標識,并存儲所述消息標識;對外通信模塊,用于與通用消息服務器之間進行會話標識記錄的傳輸。
13.如權(quán)利要求12所述的通用消息客戶端,其特征在于,所述會話標識管理模塊包括主會話標識生成單元,用于在本通用消息客戶端向通信對方發(fā)起會話時,生成兩者之間的主會話標識;會話標識記錄,用于記錄所述主會話標識生成單元所生成的主會話標識、源用戶、目標用戶、當前序列號。
14.如權(quán)利要求13所述的通用消息客戶端,其特征在于,所述消息標識管理模塊包括消息標識生成單元,用于在本通用消息客戶端向服務器發(fā)送每條消息時,分別生成一個對應的消息標識;消息標識存儲單元,用于存儲通信雙方在會話過程中的每條消息的消息標識。
15.如權(quán)利要求12至14中任一項所述的通用消息客戶端,其特征在于,所述對外通信模塊與通用消息服務器之間進行的會話標識記錄的傳輸具體包括當通信雙方的主會話標識是由本通用消息客戶端建立時,所述對外通信模塊將所述主會話標識發(fā)送給通用消息服務器;或當通信雙方的主會話標識是由通用消息服務器建立時,通用消息客戶端的對外通信模塊首先向通用消息服務器發(fā)起主會話標識建立請求消息,并接收來自通用消息服務器返回的會話標識記錄;或用于向通用消息服務器發(fā)送更換后的專用消息客戶端的通信地址信息;或用于向通用消息服務器發(fā)送會話請求消息,并接收來自通用消息服務器的會話請求響應消息,以及向通用消息服務器發(fā)送會話更新消息,并接收返回的會話標識記錄。
16.如權(quán)利要求12至14中任一項所述的通用消息客戶端,其特征在于,所述消息標識包括包括主會話標識、當前序列號、會話消息類型以及時間信息。
17.一種通用消息服務器,其特征在于,主要包括會話標識管理模塊,用于生成通信雙方的主會話標識,并存儲會話標識記錄;消息標識管理模塊,用于在通信雙方會話過程中生成與主會話標識對應的消息標識并存儲;對外通信模塊,用于與通用消息客戶端之間進行會話標識記錄的傳輸。
18.如權(quán)利要求17所述的通用消息服務器,其特征在于,所述會話標識管理模塊包括主會話標識生成單元,用于在專用消息客戶端向通信對方發(fā)起會話時,根據(jù)通信對方的用戶標識生成通信雙方之間的主會話標識;或為通信雙方統(tǒng)一分配主會話標識;會話標識記錄,用于記錄由主會話標識生成單元所生成的通信雙方的主會話標識、源用戶、目標用戶、當前序列號。
19.如權(quán)利要求18所述的通用消息服務器,其特征在于,所述消息標識管理模塊包括消息標識生成單元,用于為每條消息分別生成一對應的消息標識;消息標識存儲單元,用于存儲通信雙方在會話過程中的每條消息的消息標識。
20.如權(quán)利要求17至19中任一項所述的通用消息服務器,其特征在于,所述對外通信模塊與通用消息客戶端之間的進行的會話標識記錄和消息標識的傳輸具體包括當通信雙方的主會話標識由通用消息客戶端來建立時,通用消息服務器的對外通信模塊接收通用消息客戶端產(chǎn)生的主會話標識;或當通信雙方的主會話標識由通用消息服務器來建立時,對外通信模塊首先接收自所述通用消息客戶端發(fā)起的主會話標識建立請求消息,并向其返回會話標識記錄;或用于接收專用消息客戶端的會話消息,以及接收通用消息客戶端向其發(fā)送的更換后的專用消息客戶端的通信地址;或用于接收通用消息客戶端發(fā)送的會話請求消息,并返回會話請求響應消息,以及接收通用消息客戶端發(fā)送會話更新消息,并向其返回會話標識記錄。
21.如權(quán)利要求17至19中任一項所述的通用消息服務器,其特征在于,所述消息標識包括包括主會話標識、當前序列號、會話消息類型以及時間信息。
全文摘要
本發(fā)明公開了一種管理會話方法,包括a.為當前的會話生成主會話標識,并存儲包含所述主會話標識的會話記錄;b.發(fā)送與所述主會話標識對應的通信方建立會話的會話請求消息;c.根據(jù)所述會話請求消息,查找主會話標識,并建立與所述主會話標識對應的通信方的會話。本發(fā)明還公開了一種通用消息客戶端和通用消息服務器。使用本發(fā)明,使得新的終端在加入已有的會話時,通過獲取會話記錄,能夠選擇性建立會話。
文檔編號H04L12/58GK1953386SQ20061012319
公開日2007年4月25日 申請日期2006年11月1日 優(yōu)先權(quán)日2006年11月1日
發(fā)明者王睿 申請人:華為技術(shù)有限公司