CN111010374B - 一种app离线呼叫实现方法、装置、设备和介质 - Google Patents
一种app离线呼叫实现方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN111010374B CN111010374B CN201911155804.8A CN201911155804A CN111010374B CN 111010374 B CN111010374 B CN 111010374B CN 201911155804 A CN201911155804 A CN 201911155804A CN 111010374 B CN111010374 B CN 111010374B
- Authority
- CN
- China
- Prior art keywords
- app
- registration
- message
- server
- mobile equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1096—Supplementary features, e.g. call forwarding or call holding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1053—IP private branch exchange [PBX] functionality entities or arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1104—Session initiation protocol [SIP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Multimedia (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种APP离线呼叫实现方法、装置、设备和介质,方法包括:移动设备端的APP启动时,接收APP发送的注册消息,将注册消息中的Contact字段替换成推送服务器的地址,将替换后的所述注册消息转发给PBX服务器进行注册;完成注册后,将APP账号的注册信息保存到注册状态数据库,下发最终注册结果给APP;APP账号被呼叫时,接收PBX服务器发送的邀请消息,依据邀请消息到注册状态数据库中查询APP账号是否在线,如果在线,将邀请消息转发给APP;如果不在线,在内部保存邀请消息,且触发推送服务器唤醒APP;APP注册唤醒后,将内部保留的邀请消息转发给APP。本发明可以减少功能交互的耦合性,扩展性强,实时性强。
Description
技术领域
本发明涉及网络通讯技术领域,特别涉及一种APP离线呼叫实现方法、装置、设备和介质。
背景技术
SIP(Session Initiation Protocol,会话初始协议)是由IETF(InternetEngineering Task Force,因特网工程任务组)制定的多媒体通信协议。它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。广泛应用于CS(Circuit Switched,电路交换)、NGN(Next Generation Network,下一代网络)以及IMS(IPMultimedia Subsystem,IP多媒体子***)的网络中,可以支持并应用于语音、视频、数据等多媒体业务,同时也可以应用于Presence(呈现)、Instant Message(即时消息)等特色业务。
目前,在SIP通话的通讯网络中,都是由SIP PBX服务器和设备进行信息交互的,而正常设备的SIP账号是长时间注册在线的;但是,对于移动终端设备而言,移动终端设备APP离线关闭是常有的状态;因此,为了避免因移动终端设备APP离线关闭而导致错过通话消息,就亟需提供一种能够实现离线推送通话消息的方案。目前,市面上实现通话消息离线推送的方案主要是将推送服务整合到PBX服务器(即支持离线推送的SIP APP是配合PBX服务器进行开发的)中,然而这种推送方案存在有如下缺陷:1、推送服务直接在PBX服务器开发实现,导致不同厂商之间的PBX服务器难以兼容;同时,由于各种业务也都是在PBX服务器上实现的,因此,耦合性强,实现不灵活,且维护成本高;2、主流PBX服务器的离线推送主要针对通知类消息而不是通话消息,因此,在进行通话消息离线推送时,实时性差。
发明内容
本发明要解决的技术问题,在于提供一种APP离线呼叫实现方法、装置、设备和介质,用于解决现有APP离线推送通话消息存在的耦合性强、实时性差的问题。
第一方面,本发明提供了一种APP离线呼叫实现方法,所述方法用于代理服务器,所述方法包括:
在移动设备端的APP启动时,接收APP发送的注册消息,将所述注册消息中的Contact字段替换成推送服务器的地址,并将替换后的所述注册消息转发给PBX服务器进行注册;
在完成注册后,将APP账号的所述注册信息保存到注册状态数据库中,并下发最终注册结果给移动设备端的APP;
在移动设备端的APP账号被呼叫时,接收PBX服务器发送的邀请消息,依据所述邀请消息到注册状态数据库中查询对应的APP账号是否在线,如果APP账号在线,则将所述邀请消息转发给对应的移动设备端的APP;如果APP账号不在线,则在内部保存所述邀请消息,且触发推送服务器去唤醒移动设备端的APP;
当移动设备端的APP注册唤醒后,将内部保留的所述邀请消息转发给移动设备端的APP。
进一步地,所述方法还包括:
在移动设备端的APP退出时,接收APP发送的注销信息,并依据所述注销信息直接回复第一应答消息给移动设备端的APP,所述第一应答消息告知APP注销的结果;
在移动设备端的APP退出后,继续定时向PBX服务器发送注册消息进行保活操作。
进一步地,所述的将所述注册消息中的Contact字段替换成推送服务器的地址,并将替换后的所述注册消息转发给PBX服务器进行注册具体为:
在接收到所述注册消息后,解析所述注册消息获取PBX服务器的地址,将所述注册消息中的Contact字段替换成推送服务器的地址,并依据解析出的PBX服务器的地址将替换后的所述注册消息转发给PBX服务器;
接收PBX服务器根据鉴权信息返回的第二应答消息,将所述第二应答消息转发给移动设备端的APP,所述第二应答消息用于指示移动设备端的APP进行鉴权操作;
接收移动设备端的APP基于所述第二应答消息发送的携带鉴权信息的注册消息,将所述携带鉴权信息的注册消息转发给PBX服务器,以供PBX服务器对鉴权信息进行验证并生成验证结果;
接收PBX服务器基于验证结果返回的第三应答消息,将第三应答消息转发给移动设备端的APP,所述第三应答消息用于告知APP注册的结果。
进一步地,所述的如果APP账号不在线,则在内部保留所述邀请消息,且触发推送服务器去唤醒移动设备端的APP具体为:
如果APP账号不在线,则直接回复第四应答消息给PBX服务器,所述第四应答消息用于告知PBX服务器保留所述邀请消息;同时,在内部保存所述邀请消息,依据推送服务器的地址推送通知消息给推送服务器,以供推送服务器转发通知消息给第三方平台,并通过第三方平台去唤醒移动设备端的APP注册上线。
进一步地,所述将APP账号的所述注册信息保存到注册状态数据库后,还包括:
根据所述注册信息更新客户端注册数据库,匹配APP的设备号、用户名以及密码是否存在,具体包括:
当APP的设备号存在于客户端注册数据库内,且设备号与用户名匹配时,如果注册成功,则不进行处理;如果注册失败,则将存在于客户端注册数据库内的APP的设备号移除,并向PBX服务器注销APP账号;
当APP的设备号存在于客户端注册数据库内,且设备号与用户名不匹配时,则向PBX服务器注销旧的用户名,并将旧的用户名从客户端注册数据库内移除;同时,将新的用户名添加到客户端注册数据库内,并向PBX服务器注册新的用户名;
当APP的设备号不存在于客户端注册数据库内时,则向移动设备端的APP发送用户名和密码请求消息;接收移动设备端的APP基于所述用户名和密码请求消息返回的第五应答消息,所述第五应答消息内携带有用户名和密码;将接收到的用户名和密码保存到客户端注册数据库内,并向PBX服务器发送注册信息。
第二方面,本发明提供了一种APP离线呼叫实现装置,所述装置为代理服务器,所述装置包括注册模块、账号保存模块、呼叫处理模块以及邀请转发模块;
所述注册模块,用于在移动设备端的APP启动时,接收APP发送的注册消息,将所述注册消息中的Contact字段替换成推送服务器的地址,并将替换后的所述注册消息转发给PBX服务器进行注册;
所述账号保存模块,用于在完成注册后,将APP账号的所述注册信息保存到注册状态数据库中,并下发最终注册结果给移动设备端的APP;
所述呼叫处理模块,用于在移动设备端的APP账号被呼叫时,接收PBX服务器发送的邀请消息,依据所述邀请消息到注册状态数据库中查询对应的APP账号是否在线,如果APP账号在线,则将所述邀请消息转发给对应的移动设备端的APP;如果APP账号不在线,则在内部保存所述邀请消息,且触发推送服务器去唤醒移动设备端的APP;
所述邀请转发模块,用于当移动设备端的APP注册唤醒后,将内部保留的所述邀请消息转发给移动设备端的APP。
进一步地,所述装置还包括注销模块以及保活模块;
所述注销模块,用于在移动设备端的APP退出时,接收APP发送的注销信息,并依据所述注销信息直接回复第一应答消息给移动设备端的APP,所述第一应答消息告知APP注销的结果;
所述保活模块,用于在移动设备端的APP退出后,继续定时向PBX服务器发送注册消息进行保活操作。
进一步地,在所述注册模块中,所述的将所述注册消息中的Contact字段替换成推送服务器的地址,并将替换后的所述注册消息转发给PBX服务器进行注册具体为:
在接收到所述注册消息后,解析所述注册消息获取PBX服务器的地址,将所述注册消息中的Contact字段替换成推送服务器的地址,并依据解析出的PBX服务器的地址将替换后的所述注册消息转发给PBX服务器;
接收PBX服务器根据鉴权信息返回的第二应答消息,将所述第二应答消息转发给移动设备端的APP,所述第二应答消息用于指示移动设备端的APP进行鉴权操作;
接收移动设备端的APP基于所述第二应答消息发送的携带鉴权信息的注册消息,将所述携带鉴权信息的注册消息转发给PBX服务器,以供PBX服务器对鉴权信息进行验证并生成验证结果;
接收PBX服务器基于验证结果返回的第三应答消息,将第三应答消息转发给移动设备端的APP,所述第三应答消息用于告知APP注册的结果;
在所述呼叫处理模块中,所述的如果APP账号不在线,则在内部保留所述邀请消息,且触发推送服务器去唤醒移动设备端的APP具体为:
如果APP账号不在线,则直接回复第四应答消息给PBX服务器,所述第四应答消息用于告知PBX服务器保留所述邀请消息;同时,在内部保存所述邀请消息,依据推送服务器的地址推送通知消息给推送服务器,以供推送服务器转发通知消息给第三方平台,并通过第三方平台去唤醒移动设备端的APP注册上线。
第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
1、通过独立出推送服务器,并由推送服务器来独立管理推送业务,不仅可以确保不会影响到PBX服务器的原有业务功能,而且可以减少功能交互的耦合性,实现和部署起来也十分简单,能够降低实现成本;2、可由推送服务器来兼容第三方平台,扩展性强,能够很好的兼容市面上常见的各种PBX服务器;3、通过第三方平台来唤醒离线的APP,实时性强。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明***的框架示意图;
图2为本发明实施例一中一种APP离线呼叫实现方法的执行流程图;
图3为本发明实施例二中一种APP离线呼叫实现装置的结构示意图;
图4为本发明实施例三中电子设备的结构示意图;
图5为本发明实施例四中介质的结构示意图。
图6为本发明实施例一中注册过程的时序图。
图7为本发明实施例一中注销过程的时序图。
图8为本发明实施例一中获取用户名与密码过程的时序图。
图9为本发明实施例一中离线被叫过程的时序图。
具体实施方式
本申请实施例通过提供一种APP离线呼叫实现方法、装置、设备和介质,用于解决现有APP离线推送通话消息存在的耦合性强、实时性差的问题。
本申请实施例中的技术方案,总体思路如下:通过在代理服务器的原有业务功能的基础上,加入通知推送服务器进行离线消息推送的业务功能;同时增加一个推送服务器,并由推送服务器实现将来自代理服务器的离线消息通过第三方平台(如谷歌等)推送给移动移动设备端,从而满足离线也可以正常建立通信的需求。
需要说明的是:在正常的场景下,SIP网络中的PBX服务器会配合代理服务器进行使用,代理服务器只负责维护设备端账号状态;本发明通过在代理服务器中加入离线消息推送业务功能,再部署上一个推送服务器,这样PBX服务器就只需要关注自己的主要业务功能,而对于消息推送业务的关注和移动设备的第三方平台的兼容问题则通过推送服务器来实现。通过本发明的技术方案具有以下有益效果:1、通过独立出推送服务器,并由推送服务器来独立管理推送业务,不仅可以确保不会影响到PBX服务器的原有业务功能,而且可以减少功能交互的耦合性,实现和部署起来也十分简单,能够降低实现成本;2、可由推送服务器来兼容第三方平台,扩展性强,能够很好的兼容市面上常见的各种PBX服务器;3、通过第三方平台来唤醒离线的APP,实时性强。
在介绍具体实施例之前,先介绍本申请实施例方法所对应的***框架,如图1所示,***主要包括PBX服务器、代理服务器、推送服务器、第三方平台、移动设备以及固定设备六个部分,其中:
所述PBX服务器可支持常见的sip服务器,主要负责用户管理,账号状态的维护和通话的交换功能。
所述代理服务器主要负责转发所述移动设备与所述PBX服务器交换的sip消息,维护移动设备端的账号状态,通知所述推送服务器进行消息推送。
所述推送服务器主要负责将来自所述代理服务器的推送消息通过各类第三方平台发送给移动设备。
所述第三方平台,主要负责安卓、ios***的平台信息推送。
所述移动设备,通常为手机APP,通过代理服务器的转发与所述PBX服务器进行sip消息交互。
所述固定设备,通常为室内机、门口机等,直接注册到所述pbx服务器上,通过所述pbx服务器呼叫其他设备。
实施例一
本实施例提供一种APP离线呼叫实现方法,如图2所示,所述方法用于代理服务器,所述方法包括:
在移动设备端的APP启动时,接收APP发送的注册消息,将所述注册消息中的Contact字段替换成推送服务器的地址,以实现在APP离线时,可以根据推送服务器的地址来通过推送服务器将消息推送给APP,并将替换后的所述注册消息转发给PBX服务器进行注册;其中,所述注册消息即为Register消息,sip的URL为pbx服务器的地址,例如From字段为sip:用户名@pbx服务器IP地址;
在完成注册后,将APP账号的所述注册信息保存到注册状态数据库中,并下发最终注册结果给移动设备端的APP,所述最终注册结果可以是注册成功或者注册失败,移动设备端的APP在接收到最终注册结果后,可以对最终注册结果进行显示;
在移动设备端的APP账号被呼叫时,接收PBX服务器发送的邀请消息(即invite消息),依据所述邀请消息到注册状态数据库中查询对应的APP账号是否在线,如果APP账号在线,则将所述邀请消息转发给对应的移动设备端的APP;如果APP账号不在线,则在内部保存所述邀请消息,且触发推送服务器去唤醒移动设备端的APP;
当移动设备端的APP注册唤醒后,将内部保留的所述邀请消息转发给移动设备端的APP,从而满足离线也可以正常建立通信的需求。
在实施例一中,所述方法还包括:
在移动设备端的APP退出时,接收APP发送的注销信息,并依据所述注销信息直接回复第一应答消息给移动设备端的APP,所述第一应答消息告知APP注销的结果;
在移动设备端的APP退出后,继续定时向PBX服务器发送注册消息进行保活操作。
在实施例一中,所述的将所述注册消息中的Contact字段替换成推送服务器的地址,并将替换后的所述注册消息转发给PBX服务器进行注册具体为:
在接收到所述注册消息后,解析所述注册消息获取PBX服务器的地址,将所述注册消息中的Contact字段替换成推送服务器的地址,并依据解析出的PBX服务器的地址将替换后的所述注册消息转发给PBX服务器;
接收PBX服务器根据鉴权信息返回的第二应答消息(也就是说,PBX服务器在接收到所述注册消息后,就会根据鉴权信息来返回第二应答消息),将所述第二应答消息转发给移动设备端的APP,所述第二应答消息用于指示移动设备端的APP进行鉴权操作;
接收移动设备端的APP基于所述第二应答消息发送的携带鉴权信息的注册消息,将所述携带鉴权信息的注册消息转发给PBX服务器,以供PBX服务器对鉴权信息进行验证并生成验证结果,也就是说,PBX服务器在接收到所述携带鉴权信息的注册消息后,会从所述携带鉴权信息的注册消息中提取出鉴权信息,并将提取出的鉴权信息与PBX服务器自身的鉴权信息进行比对验证,且如果验证通过,则说明注册成功;如果验证不通过,则注册不成功;
接收PBX服务器基于验证结果返回的第三应答消息,将第三应答消息转发给移动设备端的APP,所述第三应答消息用于告知APP注册的结果。
在实施例一中,所述的如果APP账号不在线,则在内部保留所述邀请消息,且触发推送服务器去唤醒移动设备端的APP具体为:
如果APP账号不在线,则直接回复第四应答消息给PBX服务器,所述第四应答消息用于告知PBX服务器保留所述邀请消息;同时,在内部保存所述邀请消息,依据推送服务器的地址推送通知消息给推送服务器,以供推送服务器转发通知消息给第三方平台,并通过第三方平台去唤醒移动设备端的APP注册上线。
在实施例一中,所述将APP账号的所述注册信息保存到注册状态数据库后,还包括:
根据所述注册信息更新客户端注册数据库,匹配APP的设备号、用户名以及密码是否存在,具体包括:
当APP的设备号存在于客户端注册数据库内,且设备号与用户名匹配时,如果注册成功,则不进行处理;如果注册失败,则将存在于客户端注册数据库内的APP的设备号移除,并向PBX服务器注销APP账号;
当APP的设备号存在于客户端注册数据库内,且设备号与用户名不匹配时,则向PBX服务器注销旧的用户名,并将旧的用户名从客户端注册数据库内移除;同时,将新的用户名添加到客户端注册数据库内,并向PBX服务器注册新的用户名;
当APP的设备号不存在于客户端注册数据库内时,则向移动设备端的APP发送用户名和密码请求消息;接收移动设备端的APP基于所述用户名和密码请求消息返回的第五应答消息,所述第五应答消息内携带有用户名和密码;将接收到的用户名和密码保存到客户端注册数据库内,并向PBX服务器发送注册信息。
下面描述几个移动设备端的APP与代理服务器的主要交互过程来对本发明做进一步说明:
1)注册过程
请参阅图6所示,整个注册过程如下:
1、移动设备端的app启动后,向proxy服务器(即代理服务器)发送Register消息,sip的URL为pbx服务器的地址,例如From字段为sip:用户名@pbx服务器IP地址;
2、proxy服务器收到Register消息后,解析出pbx服务器的地址,然后将Register消息的contact字段换成推送服务器IP后转发给pbx服务器;
3、PBX服务器收到Register消息后,根据鉴权信息回复401应答;
4、proxy服务器转发收到的应答给APP;
5、APP再次向proxy服务器发送携带鉴权信息的Register消息;
6、proxy服务器转发携带鉴权信息的register消息给pbx;
7、pbx服务器提前鉴权信息后,验证通过则回复200 OK,如果验证失败再回复401鉴权信息;
8、proxy服务收到200 ok的应答后,会将账号的注册信息(包括用户名,IP地址、联系地址、有效期等)保存到注册状态数据库,然后将200 OK的应答消息转发给APP;
9、APP收到 200 OK应答后,显示注册成功;
10、pbx服务器保存注册信息后,更新客户端注册数据库,匹配APP的设备号、用户名和密码是否存在:
(1)APP的设备号存在于客户端注册数据库内,且与用户名匹配时,如果注册成功,则不处理;如果注册失败,则将存在于客户端注册数据库内的APP的设备号移除,并向PBX服务器注销APP账号;
(2)APP的设备号存在于客户端注册数据库内,且与用户名不匹配时,向PBX服务器注销旧的用户名,并将旧的用户名从客户端注册数据库内移除;同时,将新的用户名添加到客户端注册数据库内,并向PBX服务器注册新的用户名;
(3)APP的设备号不在客户端注册数据库内时,向移动设备端的APP发送用户名和密码请求消息;在收到用户名和密码后,将接用户名和密码保存到客户端注册数据库内,并向PBX服务器发送注册信息;
11、APP收到用户名和密码请求消息后,回复200 ok应答,且应答的body内携带用户名与密码。
注:1、目前只有APP的设备号与用户名不匹配以及设备号与用户名匹配但注册失败时,才会去移除客户端注册数据库中的客户端注册信息,且移除时关键字是app的设备号,而不是用户名;2、当多个app注册同一个账号时,只保留一份客户端注册信息,且注册信息内包含多个设备号。
2)注销过程
请参阅图7所示,整个注销过程如下:
1、APP正常退出时,向proxy服务器发送Unregister消息;
2、proxy服务器在接收到Unregister消息时,不再转发给pbx服务器进行鉴权操作,而是直接回复APP应答,具体流程与标准流程一致;
3、proxy服务器继续定时向pbx服务器发送Register消息进行保活操作。
注:(1)proxy服务器收到Unregister消息时,只会操作账号的注册数据库,而不会操作客户端的数据库,proxy服务器继续保持注册消息;(2)针对APP的异常退出,需要新增其他的心跳机制(例如option消息);(3)当app恢复出厂设置或者账号被清空未通知服务器时,proxy服务器客户端依然会注册到pbx服务器,收到呼叫时,依然会去唤醒app,但是由于app不能注册成功,呼叫会一直保持直到呼叫方挂断。
3)获取用户名与密码
请参阅图8所示,整个获取过程如下:
1、proxy服务器向APP发送Message消息,body携带加密方式和临时密钥;
2、移动设备端的APP解析message的body后,获取加密方式和临时密钥,对body内的用户名和密码进型加密传输;
3、proxy服务器收到200应答后,解密body获取用户名和密码,然后添加到proxy服务器,并向pbx服务器发送注册。
4)在线呼叫流程
在线呼叫流程与标准的SIP呼叫流程一致,未作任何扩展;proxy服务器使用route-record字段来通知pbx服务器查找转发路由信息;转发invite时,不能替换contact字段。
5)离线被叫流程
请参阅图9所示,整个离线被叫流程如下:
1、由于Proxy服务器向pbx服务器注册app的账号时,修改了app发送的register消息的contact字段,因此在app的账号被呼叫时,pbx服务器会向Proxy服务器发送invite消息;
2、Proxy服务器收到invite消息后,会去查询注册状态数据库,获取账号的注册信息,如果显示不在线时,直接回复100和180应答,内部保存通话信息,然后通知推送服务器转发通知第三方平台唤醒app进行注册;其中,proxy服务器回复180给PBX服务器,其目的在于保留住当前这路来电,进而往下走处理离线推送,注册的事务;
3、Proxy服务器收到注册成功后,向app转发之前保持的invite消息,之后流程就与正常的通话流程一致。
基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置,详见实施例二。
实施例二
在本实施例中提供了一种APP离线呼叫实现装置,如图3所示,所述装置为代理服务器,所述装置包括注册模块、账号保存模块、呼叫处理模块以及邀请转发模块;
所述注册模块,用于在移动设备端的APP启动时,接收APP发送的注册消息,将所述注册消息中的Contact字段替换成推送服务器的地址,以实现在APP离线时,可以根据推送服务器的地址来通过推送服务器将消息推送给APP,并将替换后的所述注册消息转发给PBX服务器进行注册;其中,所述注册消息即为Register消息,sip的URL为pbx服务器的地址,例如From字段为sip:用户名@pbx服务器IP地址;
所述账号保存模块,用于在完成注册后,将APP账号的所述注册信息保存到注册状态数据库中,并下发最终注册结果给移动设备端的APP,所述最终注册结果可以是注册成功或者注册失败,移动设备端的APP在接收到最终注册结果后,可以对最终注册结果进行显示;
所述呼叫处理模块,用于在移动设备端的APP账号被呼叫时,接收PBX服务器发送的邀请消息(即invite消息),依据所述邀请消息到注册状态数据库中查询对应的APP账号是否在线,如果APP账号在线,则将所述邀请消息转发给对应的移动设备端的APP;如果APP账号不在线,则在内部保存所述邀请消息,且触发推送服务器去唤醒移动设备端的APP;
所述邀请转发模块,用于当移动设备端的APP注册唤醒后,将内部保留的所述邀请消息转发给移动设备端的APP,从而满足离线也可以正常建立通信的需求。
在实施例二中,所述装置还包括注销模块以及保活模块;
所述注销模块,用于在移动设备端的APP退出时,接收APP发送的注销信息,并依据所述注销信息直接回复第一应答消息给移动设备端的APP,所述第一应答消息告知APP注销的结果;
所述保活模块,用于在移动设备端的APP退出后,继续定时向PBX服务器发送注册消息进行保活操作。
在实施例二中,在所述注册模块中,所述的将所述注册消息中的Contact字段替换成推送服务器的地址,并将替换后的所述注册消息转发给PBX服务器进行注册具体为:
在接收到所述注册消息后,解析所述注册消息获取PBX服务器的地址,将所述注册消息中的Contact字段替换成推送服务器的地址,并依据解析出的PBX服务器的地址将替换后的所述注册消息转发给PBX服务器;
接收PBX服务器根据鉴权信息返回的第二应答消息(也就是说,PBX服务器在接收到所述注册消息后,就会根据鉴权信息来返回第二应答消息),将所述第二应答消息转发给移动设备端的APP,所述第二应答消息用于指示移动设备端的APP进行鉴权操作;
接收移动设备端的APP基于所述第二应答消息发送的携带鉴权信息的注册消息,将所述携带鉴权信息的注册消息转发给PBX服务器,以供PBX服务器对鉴权信息进行验证并生成验证结果,也就是说,PBX服务器在接收到所述携带鉴权信息的注册消息后,会从所述携带鉴权信息的注册消息中提取出鉴权信息,并将提取出的鉴权信息与PBX服务器自身的鉴权信息进行比对验证,且如果验证通过,则说明注册成功;如果验证不通过,则注册不成功;
接收PBX服务器基于验证结果返回的第三应答消息,将第三应答消息转发给移动设备端的APP,所述第三应答消息用于告知APP注册的结果。
在实施例二中,在所述呼叫处理模块中,所述的如果APP账号不在线,则在内部保留所述邀请消息,且触发推送服务器去唤醒移动设备端的APP具体为:
如果APP账号不在线,则直接回复第四应答消息给PBX服务器,所述第四应答消息用于告知PBX服务器保留所述邀请消息;同时,在内部保存所述邀请消息,依据推送服务器的地址推送通知消息给推送服务器,以供推送服务器转发通知消息给第三方平台,并通过第三方平台去唤醒移动设备端的APP注册上线。
在实施例二中,所述将APP账号的所述注册信息保存到注册状态数据库后,还包括:
根据所述注册信息更新客户端注册数据库,匹配APP的设备号、用户名以及密码是否存在,具体包括:
当APP的设备号存在于客户端注册数据库内,且设备号与用户名匹配时,如果注册成功,则不进行处理;如果注册失败,则将存在于客户端注册数据库内的APP的设备号移除,并向PBX服务器注销APP账号;
当APP的设备号存在于客户端注册数据库内,且设备号与用户名不匹配时,则向PBX服务器注销旧的用户名,并将旧的用户名从客户端注册数据库内移除;同时,将新的用户名添加到客户端注册数据库内,并向PBX服务器注册新的用户名;
当APP的设备号不存在于客户端注册数据库内时,则向移动设备端的APP发送用户名和密码请求消息;接收移动设备端的APP基于所述用户名和密码请求消息返回的第五应答消息,所述第五应答消息内携带有用户名和密码;将接收到的用户名和密码保存到客户端注册数据库内,并向PBX服务器发送注册信息。
由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。
实施例三
本实施例提供了一种电子设备,如图4所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。
由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
实施例四
本实施例提供一种计算机可读存储介质,如图5所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:1、通过独立出推送服务器,并由推送服务器来独立管理推送业务,不仅可以确保不会影响到PBX服务器的原有业务功能,而且可以减少功能交互的耦合性,实现和部署起来也十分简单,能够降低实现成本;2、可由推送服务器来兼容第三方平台,扩展性强,能够很好的兼容市面上常见的各种PBX服务器;3、通过第三方平台来唤醒离线的APP,实时性强。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (10)
1.一种APP离线呼叫实现方法,其特征在于:所述方法用于代理服务器,所述方法包括:
在移动设备端的APP启动时,接收APP发送的注册消息,将所述注册消息中的Contact字段替换成推送服务器的地址,并将替换后的所述注册消息转发给PBX服务器进行注册;
在完成注册后,将APP账号的所述注册信息保存到注册状态数据库中,并下发最终注册结果给移动设备端的APP;
在移动设备端的APP账号被呼叫时,接收PBX服务器发送的邀请消息,依据所述邀请消息到注册状态数据库中查询对应的APP账号是否在线,如果APP账号在线,则将所述邀请消息转发给对应的移动设备端的APP;如果APP账号不在线,则在内部保存所述邀请消息,且触发推送服务器去唤醒移动设备端的APP;
当移动设备端的APP注册唤醒后,将内部保留的所述邀请消息转发给移动设备端的APP。
2.根据权利要求1所述的一种APP离线呼叫实现方法,其特征在于:所述方法还包括:
在移动设备端的APP退出时,接收APP发送的注销信息,并依据所述注销信息直接回复第一应答消息给移动设备端的APP,所述第一应答消息告知APP注销的结果;
在移动设备端的APP退出后,继续定时向PBX服务器发送注册消息进行保活操作。
3.根据权利要求1所述的一种APP离线呼叫实现方法,其特征在于:
所述的将所述注册消息中的Contact字段替换成推送服务器的地址,并将替换后的所述注册消息转发给PBX服务器进行注册具体为:
在接收到所述注册消息后,解析所述注册消息获取PBX服务器的地址,将所述注册消息中的Contact字段替换成推送服务器的地址,并依据解析出的PBX服务器的地址将替换后的所述注册消息转发给PBX服务器;
接收PBX服务器根据鉴权信息返回的第二应答消息,将所述第二应答消息转发给移动设备端的APP,所述第二应答消息用于指示移动设备端的APP进行鉴权操作;
接收移动设备端的APP基于所述第二应答消息发送的携带鉴权信息的注册消息,将所述携带鉴权信息的注册消息转发给PBX服务器,以供PBX服务器对鉴权信息进行验证并生成验证结果;
接收PBX服务器基于验证结果返回的第三应答消息,将第三应答消息转发给移动设备端的APP,所述第三应答消息用于告知APP注册的结果。
4.根据权利要求1所述的一种APP离线呼叫实现方法,其特征在于:所述的如果APP账号不在线,则在内部保留所述邀请消息,且触发推送服务器去唤醒移动设备端的APP具体为:
如果APP账号不在线,则直接回复第四应答消息给PBX服务器,所述第四应答消息用于告知PBX服务器保留所述邀请消息;同时,在内部保存所述邀请消息,依据推送服务器的地址推送通知消息给推送服务器,以供推送服务器转发通知消息给第三方平台,并通过第三方平台去唤醒移动设备端的APP注册上线。
5.根据权利要求1所述的一种APP离线呼叫实现方法,其特征在于:所述将APP账号的所述注册信息保存到注册状态数据库后,还包括:
根据所述注册信息更新客户端注册数据库,匹配APP的设备号、用户名以及密码是否存在,具体包括:
当APP的设备号存在于客户端注册数据库内,且设备号与用户名匹配时,如果注册成功,则不进行处理;如果注册失败,则将存在于客户端注册数据库内的APP的设备号移除,并向PBX服务器注销APP账号;
当APP的设备号存在于客户端注册数据库内,且设备号与用户名不匹配时,则向PBX服务器注销旧的用户名,并将旧的用户名从客户端注册数据库内移除;同时,将新的用户名添加到客户端注册数据库内,并向PBX服务器注册新的用户名;
当APP的设备号不存在于客户端注册数据库内时,则向移动设备端的APP发送用户名和密码请求消息;接收移动设备端的APP基于所述用户名和密码请求消息返回的第五应答消息,所述第五应答消息内携带有用户名和密码;将接收到的用户名和密码保存到客户端注册数据库内,并向PBX服务器发送注册信息。
6.一种APP离线呼叫实现装置,其特征在于:所述装置为代理服务器,所述装置包括注册模块、账号保存模块、呼叫处理模块以及邀请转发模块;
所述注册模块,用于在移动设备端的APP启动时,接收APP发送的注册消息,将所述注册消息中的Contact字段替换成推送服务器的地址,并将替换后的所述注册消息转发给PBX服务器进行注册;
所述账号保存模块,用于在完成注册后,将APP账号的所述注册信息保存到注册状态数据库中,并下发最终注册结果给移动设备端的APP;
所述呼叫处理模块,用于在移动设备端的APP账号被呼叫时,接收PBX服务器发送的邀请消息,依据所述邀请消息到注册状态数据库中查询对应的APP账号是否在线,如果APP账号在线,则将所述邀请消息转发给对应的移动设备端的APP;如果APP账号不在线,则在内部保存所述邀请消息,且触发推送服务器去唤醒移动设备端的APP;
所述邀请转发模块,用于当移动设备端的APP注册唤醒后,将内部保留的所述邀请消息转发给移动设备端的APP。
7.根据权利要求6所述的一种APP离线呼叫实现装置,其特征在于:所述装置还包括注销模块以及保活模块;
所述注销模块,用于在移动设备端的APP退出时,接收APP发送的注销信息,并依据所述注销信息直接回复第一应答消息给移动设备端的APP,所述第一应答消息告知APP注销的结果;
所述保活模块,用于在移动设备端的APP退出后,继续定时向PBX服务器发送注册消息进行保活操作。
8.根据权利要求6所述的一种APP离线呼叫实现装置,其特征在于:在所述注册模块中,所述的将所述注册消息中的Contact字段替换成推送服务器的地址,并将替换后的所述注册消息转发给PBX服务器进行注册具体为:
在接收到所述注册消息后,解析所述注册消息获取PBX服务器的地址,将所述注册消息中的Contact字段替换成推送服务器的地址,并依据解析出的PBX服务器的地址将替换后的所述注册消息转发给PBX服务器;
接收PBX服务器根据鉴权信息返回的第二应答消息,将所述第二应答消息转发给移动设备端的APP,所述第二应答消息用于指示移动设备端的APP进行鉴权操作;
接收移动设备端的APP基于所述第二应答消息发送的携带鉴权信息的注册消息,将所述携带鉴权信息的注册消息转发给PBX服务器,以供PBX服务器对鉴权信息进行验证并生成验证结果;
接收PBX服务器基于验证结果返回的第三应答消息,将第三应答消息转发给移动设备端的APP,所述第三应答消息用于告知APP注册的结果;
在所述呼叫处理模块中,所述的如果APP账号不在线,则在内部保留所述邀请消息,且触发推送服务器去唤醒移动设备端的APP具体为:
如果APP账号不在线,则直接回复第四应答消息给PBX服务器,所述第四应答消息用于告知PBX服务器保留所述邀请消息;同时,在内部保存所述邀请消息,依据推送服务器的地址推送通知消息给推送服务器,以供推送服务器转发通知消息给第三方平台,并通过第三方平台去唤醒移动设备端的APP注册上线。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911155804.8A CN111010374B (zh) | 2019-11-22 | 2019-11-22 | 一种app离线呼叫实现方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911155804.8A CN111010374B (zh) | 2019-11-22 | 2019-11-22 | 一种app离线呼叫实现方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111010374A CN111010374A (zh) | 2020-04-14 |
CN111010374B true CN111010374B (zh) | 2022-04-19 |
Family
ID=70112876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911155804.8A Active CN111010374B (zh) | 2019-11-22 | 2019-11-22 | 一种app离线呼叫实现方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111010374B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101448240A (zh) * | 2008-12-25 | 2009-06-03 | 中兴通讯股份有限公司 | 初始会话协议终端的注册方法、***及设备 |
CN102932364A (zh) * | 2012-11-12 | 2013-02-13 | 华为软件技术有限公司 | 一种注册方法、装置及*** |
CN103746963A (zh) * | 2013-12-16 | 2014-04-23 | 深圳百科信息技术有限公司 | 一种sip服务器集群***及其业务应用请求处理方法 |
CN103973913A (zh) * | 2013-01-25 | 2014-08-06 | 中兴通讯股份有限公司 | 一种ngn下实现宽带业务功能的方法及业务平台 |
CN104426893A (zh) * | 2013-09-09 | 2015-03-18 | ***通信集团公司 | 唤醒移动终端的方法、装置及*** |
CN109495854A (zh) * | 2018-11-23 | 2019-03-19 | 睿云联(厦门)网络通讯技术有限公司 | 一种基于FreeSwitch的移动终端App离线SIP呼叫功能的实现方案 |
-
2019
- 2019-11-22 CN CN201911155804.8A patent/CN111010374B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101448240A (zh) * | 2008-12-25 | 2009-06-03 | 中兴通讯股份有限公司 | 初始会话协议终端的注册方法、***及设备 |
CN102932364A (zh) * | 2012-11-12 | 2013-02-13 | 华为软件技术有限公司 | 一种注册方法、装置及*** |
CN103973913A (zh) * | 2013-01-25 | 2014-08-06 | 中兴通讯股份有限公司 | 一种ngn下实现宽带业务功能的方法及业务平台 |
CN104426893A (zh) * | 2013-09-09 | 2015-03-18 | ***通信集团公司 | 唤醒移动终端的方法、装置及*** |
CN103746963A (zh) * | 2013-12-16 | 2014-04-23 | 深圳百科信息技术有限公司 | 一种sip服务器集群***及其业务应用请求处理方法 |
CN109495854A (zh) * | 2018-11-23 | 2019-03-19 | 睿云联(厦门)网络通讯技术有限公司 | 一种基于FreeSwitch的移动终端App离线SIP呼叫功能的实现方案 |
Also Published As
Publication number | Publication date |
---|---|
CN111010374A (zh) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2847979B1 (en) | Multiple versions of call invites | |
US8364827B2 (en) | Communication system | |
US20040122901A1 (en) | Providing computer presence information to an integrated presence system | |
CN102075545B (zh) | 一种客户端注册指示方法、注册方法及其设备 | |
US20060067227A1 (en) | Scheduled determination of network resource availability | |
CN103733701A (zh) | 用于订阅互联网协议多媒体子***(ims)应用服务注册状态的***和方法 | |
WO2011109574A2 (en) | Resilient routing for session initiation protocol based communication systems | |
US11363134B2 (en) | Gateway and method for managing VoIP telephone service | |
CN102026365B (zh) | 群组注册的方法、ip多媒体子***和多用户接入设备 | |
KR101620809B1 (ko) | Sip 프록시 장애 극복을 위한 방법 | |
US20090031016A1 (en) | Interface apparatus, main apparatus and control method for use in the interface apparatus | |
CN109525620B (zh) | 一种消息推送***、方法及装置 | |
CN106161201B (zh) | 一种以邮箱账号为标识参与群聊的方法、设备及*** | |
WO2015027721A1 (zh) | 一种终端状态订阅方法、装置及*** | |
WO2007079647A1 (fr) | Procede, appareil et systeme de sauvegarde en reseau d'un systeme d'application sip | |
CN101227474A (zh) | 软交换网络中的会话初始化协议用户鉴权方法 | |
CN103618747A (zh) | 一种实现sip信息服务的方法及*** | |
JP2007082073A (ja) | 通信接続方法及びシステム並びにプログラム | |
CN102348291B (zh) | 基于对话关联标识的会话建立方法及*** | |
CN111010374B (zh) | 一种app离线呼叫实现方法、装置、设备和介质 | |
US20140258425A1 (en) | Method and Device for Long Lived Chat with Dynamic Focus | |
EP2418913B1 (en) | Methods and system for joining group session with pre-defined joining | |
WO2013055270A1 (en) | Apparatus and method for conferencing | |
JP2006165919A (ja) | Ip電話網における通信サービス方式 | |
CN107317786B (zh) | 一种转发会话初始协议消息的方法、装置及网元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |