一种基于FreeSwitch的移动终端App离线SIP呼叫功能的实现方案的制作方法

文档序号:17149538发布日期:2019-03-19 23:17阅读:1874来源:国知局
一种基于FreeSwitch的移动终端App离线SIP呼叫功能的实现方案的制作方法

本发明涉及通讯技术领域,尤其是指一种基于freeswitch的移动终端app离线sip呼叫功能的实现方案。



背景技术:

sip协议是目前国内外用得比较广泛的通用网络音视频通讯协议。

freeswitch是当前主流的软件sippbx,也就是服务器端,有提供sip账号供客户端来注册,手机上安装的sipapp就是其中的一种客户端。目前市面上用的freeswitch并没有离线呼叫功能,app注册了freeswitch提供的sip账号后无法在被杀掉之后收到来电。用户的手机app注册了freeswitch提供的sip账号后,由于app常驻后台耗电量较大,所以大部分人的习惯是把app推掉(杀掉),即使用户没有手动推掉,系统为了节能也会在一定时间内将应用杀掉。而此时如果有人呼叫该用户就无法呼通(因为app被杀掉了),从而造成通讯不便。



技术实现要素:

本发明的目的在于提供一种辅助freeswitch收到来电相关的离线推送,用户点开app后就能成功收到来电的基于freeswitch的移动终端app离线sip呼叫功能的实现方案。

为了达成上述目的,本发明的解决方案为:一种基于freeswitch的移动终端app离线sip呼叫功能的实现方案,其特征在于:在freeswitch上增加一个vsip程序,vsip的引入是创建一个虚拟的账号,所有那些没有登录的app账号的呼叫都呼叫到这个vsip程序上,在预设时间内,这些app账号登录上之后,再由vsip转呼给这些app账号,从而实现预设时间内的离线呼叫。

进一步,所述的一种基于freeswitch的移动终端app离线sip呼叫功能的实现方案,其具体做法为:

步骤一:appa呼叫未上线的appb,当freeswitch检测到appb为离线时,将呼叫转给vsip,并使得vsip保持该呼叫在预设时间内不断开,vsip通知云平台有一路appb的离线电话,云平台通知推送服务器,推送服务器推送一条消息给appb,告知appa呼叫;

步骤二:在步骤一的预设时间内若appb上线,登录账号成功,则freeswitch通知vsipappb已经登录成功;

步骤三:vsip呼叫appb,appb应答,接通该呼叫,同时vsip接通appa的呼叫;

步骤四:vsip发起转移,将appa来电转移给appb,实现appa和appb正常通话;

步骤五:若超出步骤一的预设时间,则freeswitch断开呼叫。

所述一种基于freeswitch的移动终端app离线sip呼叫功能的实现方案的方法,具体步骤如下:

步骤一:当b手机appb没有打开的情况下,freeswitch检测到appb为离线,此时a手机appa的账号为1001向freeswitch发送invite1请求,freeswitch收到invite请求后,向a手机appa的账号1001回复一个100trying信息同时向vsip的虚拟账号10001发送一个invite2;同时freeswitch向a手机appa的账号1001回复一个180ringing1,维持180ringing1的在预设时间内不断开;

vsip的虚拟账号10001收到该invite2则向freeswitch回复一个180ringing2,同时向b手机的推送服务器发送一个呼叫推送信息x,呼叫推送信息x表示b手机appb的账号1002收到一个呼叫;

步骤二:若appb收到推送服务器的推送信息x后在步骤一的预设时间内登录,则freeswitch会收到b手机的appb发出的register请求,freeswitch收到该register请求时,则通知vsip程序b手机的appb已经登录;

步骤三:此时vsip程序向freeswitch发出invite3请求,freeswitch向vsip程序回复100trying信息,同时freeswitch进一步向b手机的appb的账号1002发送invite4请求;同时b手机的appb的账号1002回复freeswitch一个180ringing3信息,freeswitch收到180ringing3信息也进一步回复给vsip程序一个180ringing4信息;

步骤四:同时,b手机appb的账号1002则此时发送200ok应答信息给freeswitch,freeswitch则发送ack信息给b手机appb的账号1002,同时freeswitch发送200ok给vsip程序以接通b手机appb的账号1002呼叫,vsip又进一步发送200ok给freeswitch以接通a手机appa的账号1001的呼叫,利用vsip程序接通两个呼叫之后,等到两路都正常通话时,vsip就发送一个refer信息给freeswitch,通知freeswitch将与appa的通话转移给appb,由于两路通话都是正常的通话,freeswitch就发送202accpted给vsip,这样1001跟1002就正常的通话了;

步骤五:若超出步骤一的预设时间用户未登录b手机appb的账号1002,则freeswitch会收到a手机appa的cancel信息,从而把appa的通话断开。

进一步,所述步骤一中,vsip的虚拟账号10001收到该invite2则向freeswitch回复一个180ringing2,同时向b手机的云平台发送呼叫推送信息x,云平台将此呼叫推送信息x进一步推送给推送服务器。

这项发明巧妙利用freeswitch外部模块,在不改变freeswitch内部逻辑的前提下实现了来电离线推送功能。这项发明通过模块中实现的逻辑算法,辅助freeswitch达到当用户app杀掉后,还能收到来电相关的离线推送,在预设时间内用户点开app后就能成功收到来电的目的。该方案适用于但是不局限于freeswitch,比如freepbx,asterisk等开源sippbx也可利用该专利方案实现。

附图说明

图1是本发明实施例的流程示意图;

具体实施方式

以下结合附图及具体实施例对本发明做详细描述。

实施例:

一种基于freeswitch的移动终端app离线sip呼叫功能的实现方案,其特征在于:在freeswitch上增加一个vsip程序,vsip的引入是创建一个虚拟的账号,所有那些没有登录的app账号的呼叫都呼叫到这个vsip程序上,在预设时间内,这些app账号登录上之后,再由vsip转呼给这些app账号,从而实现预设时间内的离线呼叫。

如图1所示,所述一种基于freeswitch的移动终端app离线sip呼叫功能的实现方案的方法,具体步骤如下:

步骤一:当b手机appb没有打开的情况下,freeswitch检测到appb为离线,此时a手机appa的账号为1001向freeswitch发送invite1请求,freeswitch收到invite请求后,向a手机appa的账号1001回复一个100trying信息同时向vsip的虚拟账号10001发送一个invite2;同时freeswitch向a手机appa的账号1001回复一个180ringing1,维持180ringing1的在预设时间内不断开;

vsip的虚拟账号10001收到该invite2则向freeswitch回复一个180ringing2,同时向b手机的推送服务器发送一个呼叫推送信息x,呼叫推送信息x表示b手机appb的账号1002收到一个呼叫;

步骤二:若appb收到推送服务器的推送信息x后在步骤一的预设时间内登录,则freeswitch会收到b手机的appb发出的register请求,freeswitch收到该register请求时,则通知vsip程序b手机的appb已经登录;

步骤三:此时vsip程序向freeswitch发出invite3请求,freeswitch向vsip程序回复100trying信息,同时freeswitch进一步向b手机的appb的账号1002发送invite4请求;同时b手机的appb的账号1002回复freeswitch一个180ringing3信息,freeswitch收到180ringing3信息也进一步回复给vsip程序一个180ringing4信息;

步骤四:同时,b手机appb的账号1002则此时发送200ok应答信息给freeswitch,freeswitch则发送ack信息给b手机appb的账号1002,同时freeswitch发送200ok给vsip程序以接通b手机appb的账号1002呼叫,vsip又进一步发送200ok给freeswitch以接通a手机appa的账号1001的呼叫,利用vsip程序接通两个呼叫之后,等到两路都正常通话时,vsip就发送一个refer信息给freeswitch,通知freeswitch将与appa的通话转移给appb,由于两路通话都是正常的通话,freeswitch就发送202accpted给vsip,这样1001跟1002就正常的通话了;

步骤五:若超出步骤一的预设时间用户未登录b手机appb的账号1002,则freeswitch会收到a手机appa的cancel信息,从而把appa的通话断开。

进一步,所述步骤一中,vsip的虚拟账号10001收到该invite2则向freeswitch回复一个180ringing2,同时向b手机的云平台发送呼叫推送信息x,云平台将此呼叫推送信息x进一步推送给推送服务器。

这项发明巧妙利用freeswitch外部模块,在不改变freeswitch内部逻辑的前提下实现了来电离线推送功能。这项发明通过模块中实现的逻辑算法,辅助freeswitch达到当用户app杀掉后,还能收到来电相关的离线推送,在预定时间内用户点开app后就能成功收到来电的目的。

以上所述仅为本发明的实施例,并非对本案设计的限制,凡依本案的设计关键所做的等同变化,均落入本案的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1