本發明涉及軟件設計,具體地說,涉及一種基于freeswitch利用rtp消息實現服務端播報回鈴音的方法、系統、設備及介質。
背景技術:
1、在軟交換外呼時候需要給a-leg播報回鈴音,目前是根據sip協議18x消息結合p-early-media字段來決定是服務端播報回鈴音還是終端播報回鈴音,但是這樣處理邏輯非常復雜,不同的運營商、不同的設備返回的sdp消息不一樣,造成本地播報回鈴音遺漏的問題。
技術實現思路
1、本發明針對現有的播報方法容易造成本地播報回鈴音遺漏的問題,提出一種基于freeswitch利用rtp消息實現服務端播報回鈴音的方法、系統、設備及介質;首先根據從freeswitch語音平臺獲取的記錄表,構建表模型;然后呼入ivr平臺并獲取外呼的電話號碼,根據ims發起bleg呼叫;最后根據構建的表模型監聽rtp媒體流,判斷是否有合法的rtp媒體流返回,若是則將呼入aleg與呼出bleg建立通話,否則根據aleg播報本地回鈴音;實現在對端是復雜的ims設備、不同的運營商返回不同sdp信息的情況以及沒有返回回鈴音的情況下,本端語音平臺都可以100%播報本地回鈴音。
2、本發明具體實現內容如下:
3、一種基于freeswitch利用rtp消息實現服務端播報回鈴音的方法,具體包括以下步驟:
4、步驟s1:根據從freeswitch語音平臺獲取的記錄表,構建表模型;
5、步驟s2:呼入ivr平臺并獲取外呼的電話號碼,根據ims發起bleg呼叫;
6、步驟s3:根據構建的表模型監聽rtp媒體流,判斷是否有合法的rtp媒體流返回,若是則將呼入aleg與呼出bleg建立通話,否則根據aleg播報本地回鈴音。
7、為了更好地實現本發明,進一步地,所述步驟s3具體包括以下步驟:
8、步驟s31:監聽rtp媒體包,從channel通道獲取媒體包;
9、步驟s32:根據獲取的rtp媒體包數量,獲取rtp媒體流觸發rtp事件;
10、步驟s33:根據觸發的rtp事件判斷rtp媒體流是否合法;
11、步驟s34:根據構建的表模型判斷是否有合法的rtp媒體流返回,若是則將呼入aleg與呼出bleg建立通話,否則根據根據lua腳本,結合觸發的rtp事件播放本地回鈴音。
12、為了更好地實現本發明,進一步地,所述步驟s32具體包括以下步驟:
13、步驟s321:監聽rtp數據包,當rtp數據包數量達到5,則判斷收到rtp媒體流;
14、步驟s322:根據freeswitch語音平臺調用rtp_common_read函數讀取rtp媒體流,并根據rtp媒體流觸發rtp事件。
15、為了更好地實現本發明,進一步地,述步驟s33的具體操作為:判斷rtp媒體包的數量是否合法,若rtp媒體包大于12字節,則判斷rtp媒體包合法。
16、為了更好地實現本發明,進一步地,所述步驟s34具體包括以下步驟:
17、步驟s341:根據lua腳本,結合觸發的rtp事件播放回鈴音;
18、步驟s342:根據接收的sip協議,調用lua腳本bleg播報回鈴音;
19、步驟s343:監聽是否收到來自核心層core當前channel通道的event_channel_rtp事件,若收到則中斷播報回鈴音主線程。
20、為了更好地實現本發明,進一步地,步驟s1中所述表模型包括呼叫記錄表cc_callrecord、操作動作表cc_agentaction、簽入表cc_agents。
21、基于上述提出的基于freeswitch利用rtp消息實現服務端播報回鈴音的方法,為了更好地實現本發明,進一步地,提出一種基于freeswitch利用rtp消息實現服務端播報回鈴音的系統,用于執行上述的基于freeswitch利用rtp消息實現服務端播報回鈴音的方法;包括構建單元、呼叫單元、播報單元;
22、所述構建單元,用于根據從freeswitch語音平臺獲取的記錄表,構建表模型;
23、所述呼叫單元,用于呼入ivr平臺并獲取外呼的電話號碼,根據ims發起bleg呼叫;
24、所述播報單元,用于根據構建的表模型監聽rtp媒體流,判斷是否有合法的rtp媒體流返回,若是則將呼入aleg與呼出bleg建立通話,否則根據aleg播報本地回鈴音。
25、基于上述提出的基于freeswitch利用rtp消息實現服務端播報回鈴音的方法,為了更好地實現本發明,進一步地,提出一種電子設備,包括存儲器和處理器;所述存儲器上存儲有計算機程序;當所述計算機程序在所述處理器上執行時,實現上述的基于freeswitch利用rtp消息實現服務端播報回鈴音的方法。
26、基于上述提出的基于freeswitch利用rtp消息實現服務端播報回鈴音的方法,為了更好地實現本發明,進一步地,提出一種計算機可讀存儲介質,所述計算機可讀存儲介質上存儲有計算機指令;當所述計算機指令在上述的電子設備上執行時,實現上述的基于freeswitch利用rtp消息實現服務端播報回鈴音的方法。
27、本發明具有以下有益效果:
28、本發明利用rtp消息實現服務端播報回鈴音的方法,實現在對端是復雜的ims設備,不同的運營商返回不同sdp信息的情況以及沒有返回回鈴音的情況下,本端語音平臺都可以100%播報本地回鈴音。而在ims對側有返回早期媒體回鈴音的情況下,也可以播報對方彩鈴作為回鈴音。有效地提高了客戶通過語音平臺呼叫過程中的感知,提高了語音平臺的健壯性,兼容性。
1.一種基于freeswitch利用rtp消息實現服務端播報回鈴音的方法,其特征在于,具體包括以下步驟:
2.根據權利要求1所述的一種基于freeswitch利用rtp消息實現服務端播報回鈴音的方法,其特征在于,所述步驟s3具體包括以下步驟:
3.根據權利要求2所述的一種基于freeswitch利用rtp消息實現服務端播報回鈴音的方法,其特征在于,所述步驟s32具體包括以下步驟:
4.根據權利要求2所述的一種基于freeswitch利用rtp消息實現服務端播報回鈴音的方法,其特征在于,所述步驟s33的具體操作為:判斷rtp媒體包的數量是否合法,若rtp媒體包大于12字節,則判斷rtp媒體包合法。
5.根據權利要求3所述的一種基于freeswitch利用rtp消息實現服務端播報回鈴音的方法,其特征在于,所述步驟s34具體包括以下步驟:
6.根據權利要求1所述的一種基于freeswitch利用rtp消息實現服務端播報回鈴音的方法,其特征在于,步驟s1中所述表模型包括呼叫記錄表cc_callrecord、操作動作表cc_agentaction、簽入表cc_agents。
7.一種基于freeswitch利用rtp消息實現服務端播報回鈴音的系統,用于執行如權利要求1所述的基于freeswitch利用rtp消息實現服務端播報回鈴音的方法;其特征在于,包括構建單元、呼叫單元、播報單元;
8.一種電子設備,其特征在于,包括存儲器和處理器;所述存儲器上存儲有計算機程序;當所述計算機程序在所述處理器上執行時,實現如權利要求1-6任一項所述的基于freeswitch利用rtp消息實現服務端播報回鈴音的方法。
9.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機指令;當所述計算機指令在如權利要求8所述的電子設備上執行時,實現如權利要求1-6任一項所述的基于freeswitch利用rtp消息實現服務端播報回鈴音的方法。