本發(fā)明實施例涉及通信,尤其涉及一種通話中的應用同步的方法、裝置、設備及介質。
背景技術:
1、3gpp?ts26.114r16版本提出imsdc(ip?multimedia?subsystem?data?channel,ip多媒體子系統(tǒng)數(shù)據(jù)通道)技術,在sdp(session?description?protocol,會話描述協(xié)議)協(xié)商過程中增加dc(data?channel,數(shù)據(jù)通道)協(xié)商,dc可與通話音視頻流同時存在,并為數(shù)據(jù)交互提供基礎能力。3gpp規(guī)范中定義了imsdata?channel中主要傳輸內容為web?page和script,以解決ims網(wǎng)絡內通話交互業(yè)務能力欠缺的問題?,F(xiàn)有企標方案中,相較于基礎volte通話,新增vonr+媒體面等網(wǎng)元以支持dc功能。dc通道分為bootstrap?dc和adc(application?data?channel,應用數(shù)據(jù)通道)。其中,bdc(bootstrap?data?channel,引導數(shù)據(jù)通道)通道用于獲取引導程序、dc應用程序列表、dc應用的數(shù)據(jù)通道,現(xiàn)有企標規(guī)定bdc的子協(xié)議subprotocol固定為http,stream?id范圍為0-999;而application?dc通道是dc應用數(shù)據(jù)和傳輸交互內容的數(shù)據(jù)通道,下文簡稱adc,現(xiàn)有企標規(guī)定其無需指定特定子協(xié)議subprotocol,stream?id范圍為1000-65534。
2、以以上技術背景為基礎,現(xiàn)有的在基于dc技術進行通話的方案中,存在如下問題:主被叫雙方所處業(yè)務程序環(huán)境難以保證同步,部分場景功能無法正常使用,尤其是在實時通話這類強交互場景下,存在雙端應用的同步需求,而現(xiàn)有技術的方案無法滿足這一需求。例如:在通話中,主叫端打開了“內容分享”程序并發(fā)送圖片,被叫端如果沒有處于“內容分享”程序,將無法正確解析、展現(xiàn)主叫發(fā)送的圖片。
技術實現(xiàn)思路
1、本發(fā)明實施例提供一種通話中的應用同步的方法、裝置、設備及介質,以解決相關技術中,在基于dc技術進行通話的方案中,主被叫雙方所處業(yè)務程序環(huán)境難以保證同步,部分場景功能無法正常使用,降低了用戶的使用體驗的技術問題。
2、第一方面,本發(fā)明實施例提供一種通話中的應用同步的方法,所述方法包括:
3、與第二設備建立第一數(shù)據(jù)通道;
4、基于所述第一數(shù)據(jù)通道向所述第二設備發(fā)送控制消息。
5、可選的,與第二設備建立第一數(shù)據(jù)通道包括:
6、向所述第二設備發(fā)起所述第一數(shù)據(jù)通道的第一協(xié)商請求;
7、接收所述第二設備的第一響應信息;
8、根據(jù)所述第一響應信息和所述第一數(shù)據(jù)通道的第一協(xié)商請求,建立所述第一數(shù)據(jù)通道。
9、可選的,向所述第二設備發(fā)起所述第一數(shù)據(jù)通道的第一協(xié)商請求之前,所述方法還包括:
10、向所述第二設備發(fā)起引導數(shù)據(jù)通道的協(xié)商請求,以建立引導數(shù)據(jù)通道。
11、可選的,與第二設備建立第一數(shù)據(jù)通道包括:
12、向所述第二設備發(fā)起第二協(xié)商請求;
13、接收所述第二設備的第二響應信息;
14、根據(jù)所述第二協(xié)商請求中的與所述第一數(shù)據(jù)通道的建立相關的信息,和所述第二響應信息中的與所述第一數(shù)據(jù)通道的建立相關的信息,建立所述第一數(shù)據(jù)通道。
15、可選的,所述第二協(xié)商請求用于協(xié)商引導數(shù)據(jù)通道的建立和所述第一數(shù)據(jù)通道的建立,在接收所述第二設備的第二響應信息之后,所述方法還包括:
16、根據(jù)所述第二協(xié)商請求中的與所述引導數(shù)據(jù)通道的建立相關的信息,和所述第二響應信息中的與所述引導數(shù)據(jù)通道的建立相關的信息,建立所述引導數(shù)據(jù)通道。
17、可選的,所述控制消息基于所述第一數(shù)據(jù)通道,從第一設備發(fā)出,依次經第一設備媒體面服務器、第二設備媒體面服務器轉發(fā),到達所述第二設備。
18、可選的,所述控制消息用于進行應用程序的同步啟動或同步關閉,基于所述第一數(shù)據(jù)通道向所述第二設備發(fā)送控制消息包括:
19、通過所述第一數(shù)據(jù)通道向所述第二設備發(fā)送與第一應用程序相關的第一控制消息;所述第一控制消息用于指示所述第二設備啟動所述第二設備本地的所述第一應用程序。
20、可選的,在通過所述第一數(shù)據(jù)通道向所述第二設備發(fā)送與第一應用程序相關的第一控制消息之前,所述方法還包括:
21、如果用戶觸發(fā)在第一設備本地啟動所述第一應用程序,判斷所述第一應用程序是否需要在所述第一設備和所述第二設備同步啟動;
22、如果所述第一應用程序需要在所述第一設備和所述第二設備同步啟動,則執(zhí)行所述通過所述第一數(shù)據(jù)通道向所述第二設備發(fā)送與第一應用程序相關的第一控制消息的步驟。
23、可選的,在通過所述第一數(shù)據(jù)通道向所述第二設備發(fā)送與第一應用程序相關的第一控制消息之后,所述方法還包括:
24、確定是否通過所述第一數(shù)據(jù)通道接收到所述第二設備返回的啟動結果;其中,所述啟動結果包括:啟動成功信息;
25、如果接收到所述啟動成功信息,則確定所述第一應用程序同步成功。
26、可選的,判斷所述第一應用程序是否需要在所述第一設備和所述第二設備同步啟動包括:
27、向第一設備媒體面服務器發(fā)送查詢指令;其中,所述查詢指令用于查詢所述第一應用程序對應的配置文件;
28、根據(jù)所述配置文件,確定所述第一應用程序是否需要在所述第一設備和所述第二設備同步啟動。
29、可選的,在所述如果所述第一應用程序需要在所述第一設備和所述第二設備同步啟動的情況下,所述方法還包括:
30、進入等待所述第二設備響應的狀態(tài);并啟動定時器,其中,所述定時器的定時時長為第一預設時段;
31、在所述定時器超時后,退出所述等待所述第二設備響應的狀態(tài)。
32、可選的,所述啟動結果還包括:啟動失敗信息;確定是否通過所述第一數(shù)據(jù)通道接收到所述第二設備返回的啟動結果包括:
33、如果在第一預設時段內,接收到所述啟動失敗信息,或者,如果在所述第一預設時段內,未接收到所述啟動結果,則發(fā)出第一提示信息;其中,所述第一提示信息用于提示所述用戶重新觸發(fā)在本地啟動所述第一應用程序。
34、可選的,在確定所述第一應用程序同步成功之后,基于所述第一數(shù)據(jù)通道向所述第二設備發(fā)送控制消息包括:
35、如果用戶觸發(fā)在所述第一設備本地關閉已啟動的所述第一應用程序;
36、則通過所述第一數(shù)據(jù)通道向所述第二設備發(fā)送與所述第一應用程序相關的第二控制消息;所述第二控制消息用于指示所述第二設備關閉所述第二設備本地已啟動的所述第一應用程序;
37、接收所述第二設備返回的關閉結果信息;其中,所述關閉結果信息包括以下任一項:所述第二設備已關閉所述第一應用程序和所述第二設備未關閉所述第一應用程序。
38、可選的,所述控制消息包括以下至少一項:請求消息msgtype、消息唯一標識msgid、消息發(fā)送方origin、控制消息類型type、通話應用程序唯一idappid、通話應用程序名稱appname,、通話應用程序版本號appversion、通話應用程序所有文件哈希計算后的摘要值hash以及自定義擴展數(shù)據(jù)data。
39、第二方面,本發(fā)明實施例提供一種通話中的應用同步的方法,所述方法包括:
40、與第一設備建立第一數(shù)據(jù)通道;
41、基于所述第一數(shù)據(jù)通道接收所述第一設備發(fā)送的控制消息。
42、可選的,基于所述第一數(shù)據(jù)通道接收所述第一設備發(fā)送的控制消息包括:
43、通過所述第一數(shù)據(jù)通道接收來自于第一設備的與第一應用程序相關的第一控制消息;其中,所述第一控制消息用于指示第二設備啟動所述第一應用程序。
44、可選的,所述第一控制消息中攜帶以下至少一項:所述第一應用程序的唯一標識、所述第一應用程序的應用名稱和所述第一應用程序的版本號,在所述通過所述第一數(shù)據(jù)通道接收來自于第一設備的與第一應用程序相關的第一控制消息之后,所述方法還包括:
45、根據(jù)所述唯一標識和/或所述應用名稱判斷當前正在運行的應用程序是否包括所述第一應用程序;
46、如果否,則根據(jù)所述唯一標識和所述版本號獲取相同版本的第一應用程序;
47、啟動所述相同版本的第一應用程序;
48、判斷是否啟動成功,根據(jù)判斷結果,向所述第一設備返回啟動結果。
49、可選的,根據(jù)所述唯一標識和所述版本號獲取相同版本的第一應用程序包括:
50、根據(jù)所述唯一標識和所述版本號判斷本地是否存在相同版本的第一應用程序;
51、如果是,則獲取所述相同版本的第一應用程序;
52、如果否,則向應用程序運營管理平臺發(fā)送獲取指令,以根據(jù)所述唯一標識和所述版本號獲取相同版本的第一應用程序。
53、可選的,向應用程序運營管理平臺發(fā)送獲取指令包括:
54、通過引導數(shù)據(jù)通道發(fā)送所述獲取指令,其中,所述獲取指令經第二設備媒體面服務器,轉發(fā)至所述應用程序運營管理平臺。
55、可選的,所述第一控制信息還包括:所述第一應用程序的數(shù)據(jù)包的第一哈希值,根據(jù)所述唯一標識和所述版本號獲取相同版本的第一應用程序之后,所述方法還包括:
56、確定所述相同版本的第一應用程序的數(shù)據(jù)包的第二哈希值;
57、將所述第二哈希值與所述第一哈希值進行比較;
58、若不一致,則確定所述啟動結果為啟動失敗;
59、若一致,則確定所述啟動結果為啟動成功。
60、第三方面,本發(fā)明實施例提供一種通話中的應用同步的方法,所述方法應用于第一設備媒體面服務器,所述方法包括:
61、與第一設備建立第一數(shù)據(jù)通道;
62、接收所述第一設備通過所述第一數(shù)據(jù)通道發(fā)送的第一控制消息;其中,所述第一控制消息用于指示第二設備啟動所述第二設備本地的第一應用程序;
63、在所述第一控制消息中加入第一時間戳,并啟動對所述第一數(shù)據(jù)通道的監(jiān)聽功能,所述監(jiān)聽功能用于監(jiān)聽來自于所述第二設備的第三控制消息;其中,所述第三控制消息用于指示所述第一設備啟動所述第一設備本地的第一應用程序或第二應用程序;
64、接收來自第二設備媒體面服務器的攜帶有第二時間戳的第三控制消息;
65、比較所述第一時間戳和所述第二時間戳;
66、若所述第一時間戳早于所述第二時間戳,則丟棄所述攜帶有第二時間戳的第三控制消息;
67、若所述第一時間戳晚于所述第二時間戳,則繼續(xù)向所述第一設備轉發(fā)所述第三控制消息。
68、可選的,則繼續(xù)向所述第一設備轉發(fā)所述第三控制消息之后,所述方法還包括:
69、接收所述第一設備發(fā)送的啟動結果;
70、在接收到所述啟動結果的情況下,關閉所述監(jiān)聽功能。
71、可選的,在所述第一控制消息中加入第一時間戳之后,所述方法還包括:
72、向所述第二設備媒體面服務器發(fā)送加入所述第一時間戳的第一控制消息。
73、第四方面,本發(fā)明實施例提供一種通話中的應用同步的方法,所述方法包括:
74、與第二設備建立第一數(shù)據(jù)通道;
75、通過所述第一數(shù)據(jù)通道向所述第二設備發(fā)送與第一應用程序相關的第一控制消息,并進入等待所述第二設備響應的狀態(tài);
76、在進入等待所述第二設備響應的狀態(tài)的情況下,若接收到所述第二設備通過所述第一數(shù)據(jù)通道發(fā)送的第三控制消息,則退出所述等待第二設備響應的狀態(tài),并發(fā)出第二提示信息;
77、其中,所述第一控制消息用于指示所述第二設備啟動所述第二設備本地的所述第一應用程序;所述第三控制消息用于指示所述第一設備啟動所述第一設備本地的所述第一應用程序或第二應用程序;所述第二提示信息用于提示用戶本次啟動失敗。
78、可選的,在退出所述等待第二設備響應的狀態(tài),并發(fā)出第二提示信息之后,所述方法還包括:
79、在第二預設時段內,通過所述第一數(shù)據(jù)通道,隨機向所述第二設備發(fā)送所述第一控制消息,直至確定所述第一應用程序同步成功,或者,直至根據(jù)所述第三控制消息,啟動所述第一應用程序或所述第二應用程序,或者,直至隨機發(fā)送所述第一控制消息的次數(shù)達到預設閾值并提示所述用戶本次啟動失敗。
80、第五方面,本發(fā)明實施例還提供一種通話中的應用同步的裝置,所述裝置包括:
81、第一建立模塊,用于與第二設備建立第一數(shù)據(jù)通道;
82、第一發(fā)送模塊,用于基于所述第一數(shù)據(jù)通道向所述第二設備發(fā)送控制消息。
83、第六方面,本發(fā)明實施例還提供一種通話中的應用同步的裝置,所述裝置包括:
84、第二建立模塊,用于與第一設備建立第一數(shù)據(jù)通道;
85、第一接收模塊,用于基于所述第一數(shù)據(jù)通道接收所述第一設備發(fā)送的控制消息。
86、第七方面,本發(fā)明實施例還提供一種通話中的應用同步的裝置,所述裝置應用于第一設備媒體面服務器,所述裝置包括:
87、第三建立模塊,用于與第一設備建立第一數(shù)據(jù)通道;
88、第二接收模塊,用于接收所述第一設備通過所述第一數(shù)據(jù)通道發(fā)送的第一控制消息;其中,所述第一控制消息用于指示第二設備啟動所述第二設備本地的第一應用程序;
89、監(jiān)聽模塊,用于在所述第一控制消息中加入第一時間戳,并啟動對所述第一數(shù)據(jù)通道的監(jiān)聽功能,所述監(jiān)聽功能用于監(jiān)聽來自于所述第二設備的第三控制消息;其中,所述第三控制消息用于指示所述第一設備啟動所述第一設備本地的第一應用程序或第二應用程序;
90、第二接收模塊,用于接收來自第二設備媒體面服務器的攜帶有第二時間戳的第三控制消息;
91、比較模塊,用于比較所述第一時間戳和所述第二時間戳;
92、丟棄模塊,用于若所述第一時間戳早于所述第二時間戳,則丟棄所述攜帶有第二時間戳的第三控制消息;
93、轉發(fā)模塊,用于若所述第一時間戳晚于所述第二時間戳,則繼續(xù)向所述第一設備轉發(fā)所述第三控制消息。
94、第八方面,本發(fā)明實施例還提供一種通話中的應用同步的裝置,所述裝置包括:
95、第四建立模塊,用于與第二設備建立第一數(shù)據(jù)通道;
96、第二發(fā)送模塊,用于通過所述第一數(shù)據(jù)通道向所述第二設備發(fā)送與第一應用程序相關的第一控制消息,并進入等待所述第二設備響應的狀態(tài);
97、第三發(fā)送模塊,用于在進入等待所述第二設備響應的狀態(tài)的情況下,若接收到所述第二設備通過所述第一數(shù)據(jù)通道發(fā)送的第三控制消息,則退出所述等待第二設備響應的狀態(tài),并發(fā)出第二提示信息;
98、其中,所述第一控制消息用于指示所述第二設備啟動所述第二設備本地的所述第一應用程序;所述第三控制消息用于指示所述第一設備啟動所述第一設備本地的所述第一應用程序或第二應用程序;所述第二提示信息用于提示用戶本次啟動失敗。
99、第九方面,本發(fā)明實施例提供一種電子設備,包括:處理器、存儲器及存儲在所述存儲器上并可在所述處理器上運行的程序,所述程序被所述處理器執(zhí)行時實現(xiàn)如第一方面或第二方面或第三方面或第四方面所述的通話中的應用同步的方法的步驟。
100、第十方面,本發(fā)明實施例提供一種計算機可讀存儲介質,所述計算機可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如第一方面或第二方面或第三方面或第四方面所述的通話中的應用同步的方法的步驟。
101、由此,建立了一種控制數(shù)據(jù)通道,可用于點對點通話過程中,設備之間進行控制消息的互相傳遞,且基于控制數(shù)據(jù)通道,可實現(xiàn)同一應用在通話雙端的同步啟動,即一方啟動應用后拉起對端應用,且可實現(xiàn)同一應用在通話雙端的同步關閉,以保證雙方前臺應用完全一致,避免了通話時因雙方所處前臺應用不同而造成的功能不可用的問題,提升了用戶的通話體驗。