法律状态公告日
法律状态信息
法律状态
2022-04-12
未缴年费专利权终止 IPC(主分类):H04L29/06 专利号:ZL2013101204872 申请日:20130409 授权公告日:20151028
专利权的终止
2015-10-28
授权
授权
2013-09-18
实质审查的生效 IPC(主分类):H04L29/06 申请日:20130409
实质审查的生效
2013-08-21
公开
公开
技术领域
本发明属于互联网与通信应用技术领域,涉及一种利用SIP会话和LBS定位的Android 移动终端实时拼车系统,同时本发明还涉及一种基于此系统的拼车方法。
背景技术
拼车,即相同路线或者具有公共路线的人乘坐一辆出租车以便到达各自的目的地。拼车 是一种新生的事物,它不仅有利于改善城市出租车紧张问题以及重新优化道路使用资源,改 善城市交通拥堵,还可以方面乘客出行。
LBS(基于位置的服务)已经逐步走向每个拥有智能移动终端的用户,LBS可以利用智能移 动终端(如Android移动终端)的定位功能将用户信息与位置信息相结合,为用户提供与地点相 关的各种服务。
SIP(Session Initiation Protocol,会话初始协议)是IETF提出的,在IP网上进行多媒体通 信的应用层控制协议。随着SIP协议的成熟,使用其代替H.323协议族成为多媒体会议的底 层架构已经是业界公认的发展趋势。随着移动宽带与Wi-Fi网络的普及、iPhone和Android 等智能手机终端的应用,传统的基于PC端的多媒体会议系统已经无法满足实际需要。因此, 在Android等智能终端上实现基于SIP的多媒体会话是一个重要的应用方面。
SIP通信和LBS两项技术目前大都是分离的在线服务,例如多媒体会议,位置查询等, 但利用SIP通信和LBS两项技术来结合起来并在移动终端上的服务并不多见。基于拼车应用 的实际需求,将实时的通信交流和地图位置信息查询相结合是十分自然且必要的。
发明内容
本发明的目的是提供一种基于SIP会话和LBS定位的Android移动终端实时拼车系统和 方法。基于本发明,拼车用户在拼车的时候不仅能获得拼车用户和司机用户的位置信息,同 时随之建立有效的拼车团体,还可以通过Android移动终端上的SIP通信方式与他们联系和 协商,最后返回确认消息和集合地点到各个用户的Android移动终端上,并且支持拼车组状 态查询和动态加入拼车组。本系统还能根据街道和各个用户的位置信息从而在地图上标注拼 车用户和司机用户的信息,并能计算出可用范围内的拼车用户和司机用户,并自动生成最佳 拼车方案。
本发明提供的技术方案如下:
一种基于SIP会话和LBS定位的Android移动终端实时拼车系统,其特征在于,所述系 统包括如下组件(参图1):一台SIP服务器101、多台Android移动终端104、一台LBS服 务器102、一台拼车服务器103。其中:
SIP服务器101,部署在WAN中,负责与发起用户所持Android移动终端104上的SIP 信令进行多媒体通信,包括SIP的注册和SIP信令的发起、路由和结束,包括语音和文字的 通信,并与拼车服务器103进行交互并传输信息;
LBS服务器102,部署在WAN中,负责接收从Android移动终端104发出的位置请求信 息,计算线路信息,计算距离信息,并接收拼车服务器103返回的集合点和位置信息并下发 到Android移动终端104;
拼车服务器103,部署在WAN中,负责根据街道和各个用户的位置信息从而在地图上标 注拼车用户和司机用户的信息,并能计算出可用范围内的拼车用户和司机用户,并自动生成 最佳拼车组;或者手动加组的方式形成拼车组。
Android移动终端104,是用户的手持或车载的移动通信设备,负责发送位置查询请求并 显示地图信息,实现多媒体通信,即接收和发送基于SIP的信令消息和多媒体消息,建立、 组队或取消拼车组,并与拼车中心服务器进行通信。
所述拼车系统的工作流程如下(参图2):
a)Android移动终端首先发送登录消息至拼车服务器;
b)拼车服务器接收终端登录消息,并转发SIP注册消息到SIP服务器;
c)Android移动终端接收来自SIP服务器的确认消息;
d)Android移动终端向LBS服务器发送定位消息;
e)LBS服务器进行位置查询;
f)Android移动终端接收到LBS的定位数据后,绘制在用户界面上,并保存到本地数 据库中;
g)Android移动终端自动发送查询拼车消息到拼车服务器;
h)拼车服务器接收查询数据,并执行查询功能,即查询相关的拼车组、拼车者和司机 信息;
i)拼车服务器返回这些数据到LBS服务器,并生成地图信息;
j)LBS服务器将地图信息发送到Android移动终端上;
k)拼车者或者司机可以加入或者新建一个拼车组,并将请求发送给拼车服务器;
l)拼车者就绪后,拼车服务器通知SIP服务器发起多方会话消息;
m)SIP服务器接收到消息后发起多方会话;
n)Android移动终端接收SIP服务器发来的邀请并参与SIP多方会话;
o)Android移动终端在SIP会话结束后,发送SIP会话结束消息到SIP服务器;
p)SIP服务器结束SIP会话,并通知拼车服务器建立拼车组;
q)拼车服务器通知LBS服务器,生成位置和路线信息;
r)LBS服务器将拼车成功的位置和路径信息发送到Android移动终端上。
图2是本发明所述系统的系统工作流程图。
下面详细介绍所述拼车系统的功能模块:
SIP服务器,主要功能是负责与用户所持Android移动终端上的SIP信令通信,包括SIP 的注册和SIP信令的发起、路由和结束。包括:
●SIP注册服务器模块:用于完成对Android移动终端的SIP模块用户的登录,在SIP 系统的网元中,所有SIP终端用户都要在某个登录服务器中登录,以便其他用户通 过服务器能够找到它们。
●SIP代理服务器模块:具有解析名字的能力,负责代理用户之间的信令消息,能够将 连接到其上的Android终端用户向下一跳服务器发出呼叫请求,服务器决定下一跳的 地址。
●媒体流信息处理模块:用于传输多通道媒体流信息到SIP终端中。
●会话控制模块:包括在会话人数容量未满时随时接入新的参与者;强制性地取消某 个与会者的发言权利;多方呼叫参与者;强制结束会话;对会话信息的管理。
LBS服务器,负责接收从Android移动终端104发出的位置请求信息,计算线路信息, 计算距离信息,并接收拼车服务器返回的集合点和位置信息并下发到Android移动终端,包 括:
●定位模块:可以实时定位拼车人和车载的终端,获取位置信息、查询车辆历史轨迹、 显示定位拼车人和车辆基本信息等。
●距离计算模块:用于计算地图上坐标之间的距离。
●路线计算模块:用于计算地图上坐标之间的乘车路径。
●XML数据通信模块:用于与拼车服务器和Android移动终端之间进行数据交换。
Android移动终端,负责发送位置查询请求并显示地图信息,实现多媒体通信,即接收和 发送基于SIP的信令消息和多媒体消息,建立、组队或取消拼车组,并与拼车中心服务器进 行通信,包括:
●用户界面模块:显示地图并在地图上标注出信息,当点击各个标注时可以选择查看 各个用户发布的信息。
●SIP信令通信模块:用于与SIP服务器进行SIP信令通信。
●媒体处理模块:用于与SIP服务器进行RTP等多媒体协议通信。
●拼车操作模块:用于与拼车服务器进行交互,执行拼车请求与响应。
拼车服务器,包括:
●SIP信令通信模块:用于与SIP服务器进行SIP信令通信。
●XML数据通信模块:用于与LBS服务器和Android移动终端进行通信交互。
●拼车管理模块:用于实现拼车服务和实现拼车状态机的维护。
●拼车查询模块:用于查询拼车者相关联的拼车路线和拼车人,并计算其线路关联度、 拼车者关联度,并对查询结果按照关联度进行排序。
基于如上系统,本发明同时提供了基于SIP会话和LBS定位的Android移动终端的拼车 方法,具体步骤如下(参图3):
a)Android移动终端发送建立拼车组的请求到拼车服务器;
b)拼车服务器接收Android移动终端请求并组建拼车组;
c)拼车服务器计算相关的拼车组和拼车者,并通过LBS服务器反馈到Android移动终端 上;
d)Android移动终端选择新建拼车组或者加入拼车组;
e)成功建立拼车组后,即可接收拼车者和司机加入拼车组;
f)如果所有人都同意启动SIP会话协商,则进入下一步;否则就是有人主动退出或者被 拼车组建立者踢出拼车组,然后进入拼车组队状态;
g)拼车服务器通知SIP服务器发起多方会话消息;
h)SIP服务器发起SIP多方会话并呼叫Android移动终端;
i)用户通过终端和SIP服务器、媒体服务器进行通信;
j)用户通过终端确认是否进行拼车;
k)如果所有用户都同意拼车方案,则进入下一步;否则就是有人主动退出或者被踢出拼 车组,然后进入拼车组队状态;
l)判断拼车组人数是否满员;
m)若满员,拼车服务器修改拼车组状态为:成功拼车、行驶中并满员;
n)若不满员,拼车服务器修改拼车组状态为:成功拼车并可以加人;
o)当有人中途到达目的地,则由出租车司机通过Android移动终端向拼车服务器发送下 车消息;
p)拼车服务器修改拼车组人数;
q)拼车服务器修改拼车组状态为:成功拼车并可以加人;
r)中途加入者查询行驶中拼车者人数并加入一个拼车组;
s)若人数未满,则加入成功行驶的组;否则,进入等待队列;
t)加入成功行驶的组以后,拼车服务器定时判断拼车组人数;
u)若拼车组人数为0,则表示拼车过程结束,删除拼车组。
本发明的有益效果:利用本发明提供的技术方案,用户可以通过Android移动终端在线 查询与自己相关联的拼车组、拼车人和司机,并通过LBS定位技术在Android移动终端上显 示邻近的拼车人和关联的拼车组以及其线路信息,并可以加入或者新建拼车组;同时利用SIP 通信技术发起多方会话,并且可以在中途动态加入已经拼车行驶的拼车组。使用本系统和方 法可以有效改善城市出租车紧张问题以及重新优化道路使用资源,改善城市交通拥堵,方便 乘客出行。
附图说明
图1是本发明所述系统的系统部署图。其中101为SIP服务器,102为LBS服务器,103 为拼车服务器,104为Android移动终端。
图2是本发明所述系统的系统工作流程图。
图3是本发明所述系统的基于SIP会话和LBS定位的Android移动终端的拼车方法流程 图。
图4是本发明实施例中的系统架构图。
图5是本发明实施例中的初始界面图。
图6是本发明实施例中的执行过程界面图。
图7是本发明实施例中的查询结果返回界面图。
图8是本发实施例中的SIP消息序列图。
图9是本发明实施例中的拼车组状态图。
具体实施方式
本发明所述实施例包括以下硬件设备(各设备之间的连接关系如图1所示):
SIP服务器101,部署在WAN中,负责与发起用户所持Android移动终端104上的SIP 信令通信,包括SIP的注册和SIP信令的发起、路由和结束。
LBS服务器103,部署在WAN中,负责接收从Android移动终端104发出的位置请求信 息,计算线路信息,计算距离信息,并接收拼车服务器104返回的集合点和位置信息并下发 到Android移动终端105;
拼车服务器104,部署在WAN中,负责根据街道和各个用户的位置信息从而在地图上标 注拼车用户和司机用户的信息,并能计算出可用范围内的拼车用户和司机用户,并自动生成 最佳拼车组;或者手动加组的方式形成拼车组。
Android移动终端105,是用户的手持或车载的移动通信设备,负责发送位置查询请求并 显示地图信息,实现多媒体通信,即接收和发送基于SIP的信令消息和多媒体消息,建立、 组队或取消拼车组,并与拼车中心服务器进行通信。
本发明的实施例由四个子系统构成,分别运行在SIP通信服务器、LBS服务器、拼车服 务器以及Android移动终端。
SIP服务器,主要功能是负责与用户所持Android移动终端上的SIP信令通信,包括SIP 的注册和SIP信令的发起、路由和结束。包括:
●SIP注册服务器模块:用于完成对Android移动终端SIP模块用户的登录,在SIP系 统的网元中,所有SIP终端用户都要在某个登录服务器中登录,以便其他用户通过 服务器能够找到它们。
●SIP代理服务器模块:它可以看作既是客户机又是服务器,具有解析名字的能力,负 责代理用户之间的信令消息,能够将连接到其上的Android终端用户向下一跳服务器 发出呼叫请求,服务器决定下一跳的地址。
●媒体流信息处理模块:用于传输多通道媒体流信息到SIP终端中。
●会话控制模块:包括在会话人数容量未满时随时接入新的参与者;强制性地取消某 个与会者的发言权利;多方呼叫参与者;强制结束会话;对会议信息的管理。
LBS服务器,负责接收从Android移动终端104发出的位置请求信息,计算线路信息, 计算距离信息,并接收拼车服务器返回的集合点和位置信息并下发到Android移动终端,包 括:
●定位模块:可以实时定位拼车人和车载的终端,获取位置信息、查询车辆历史轨迹、 显示定位拼车人和车辆基本信息等。
●距离计算模块:用于计算地图上坐标之间的距离。
●路线计算模块:用于计算地图上坐标之间的乘车路径。
●XML数据通信模块:用于与拼车服务器和Android移动终端之间进行数据交换。
Android移动终端,负责发送位置查询请求并显示地图信息,实现多媒体通信,即接收和 发送基于SIP的信令消息和多媒体消息,建立、组队或取消拼车组,并与拼车中心服务器进 行通信,包括:
●用户界面模块:显示地图并在地图上标注出信息,当点击各个标注时可以选择查看 各个用户发布的信息。
●SIP信令通信模块:用于与SIP服务器进行SIP信令通信。
●媒体处理模块:用于与SIP服务器进行RTP等多媒体协议通信。
●拼车操作模块:用于与拼车服务器进行交互,执行拼车请求与响应。
拼车服务器,包括:
●SIP信令通信模块:用于与SIP服务器进行SIP信令通信。
●XML数据通信模块:用于与LBS服务器和Android移动终端进行通信交互。
●拼车管理模块:用于实现拼车服务和实现拼车状态机的维护。
●拼车查询模块:用于查询拼车者相关联的拼车路线和拼车人,并计算其线路关联度、 拼车者关联度,并对查询结果按照关联度进行排序。
●距离判定模块:用于定时查询乘客和车主的位置信息,并判定乘客是否已经离开该 车辆。
本发明实施例所包含的系统的具体工作流程,描述如下(如图5-图7所示,图5是本发 明实施例中的初始界面图,图6是本发明实施例中的执行过程界面图,图7是本发明实施例 中的查询结果返回界面图):
第1步、拼车者A(拼车角色为拼车组建者或者拼车参与者,乘车角色为乘客或者司机) 首先打开Android移动终端,发送拼车登录消息至拼车服务器,成功登录后发送SIP注册消 息至SIP服务器。
第2步、成功登录拼车服务器与SIP服务器后向LBS服务器发出位置查询请求。LBS服 务器接收消息后执行位置信息查询操作并向Android移动终端发送查询结果消息。位置信息 具体包括地址信息、经纬度信息和路线信息。
第3步、拼车者A的Android移动终端接收到位置信息后调用显示模块和标注模块在地 图上进行显示。拼车者A通过Android移动终端进行查看自己所在的位置,并选择查询相关 拼车组(第4步)、加入拼车组(第7步)、组建拼车组(第6步)。
第4步、若拼车者A选择查询拼车组,则可以选择路线主导模式或起终点主导模式来进 行查询。
若选择路线主导模式进行查询,则拼车者A需要在Android移动终端上的地图上点击选 择起点、途经的各中间地点,然后点击查询按钮,发送查询请求至拼车服务器。拼车服务器 接收到查询请求后找出所有拼车者A的所有关联路线及其所在的拼车组,并按照路线相关度 从大到小进行排序后,将查询到的关联拼车组结果返回到Android移动终端。
定义:关联路线
设(x,y)是拼车者A的指定路线PathA上的动态坐标,(x',y')是另一条线路PathB上的动 态坐标。若PathB上的所有的点到PathA的最短距离都小于路线邻近阈值Dpath,则 称PathB是PathA的关联路线。其中,Dpath即一个用户自定义的阈值。即对于任意PathB上的 点(x',y'),都存在一个PathA上的动态坐标(x,y),使得点(x',y')、(x,y)的距离Dist(x',y')(x,y)小 于路线邻近阈值Dpath:
路线关联度Relevantpath由相互关联的两个路线的长短、起点和终点的接近程度决定。
定义:路线关联度
其中,为相互关联的两个路线的路线关联度。为关联路线 PathA和PathB的公共路线长度,λP是关联路线PathA和PathB的公共路线长度关联系数,λS为 关联路线PathA和PathB的起点距离关联系数,为关联路线PathA的起点 (xSA,ySA)与PathB的起点(xSB,ySB)之间的距离,λT是关联路线PathA和PathB的终点距离关联 系数,为关联路线PathA的终点(xTA,yTA)与PathB的终点(xTB,yTB)之间的距离。 由于公共路线长度关联系数具有更高的优先级别,起点距离关联系数次之,终点距离关联系 数最次。所以λP通常比λS大,λS通常比λT大,通常取λS=100,λS=10,而λT=1。
若选择起终点主导模式进行查询,则拼车者A只需要在Android移动终端上的地图中选 择起点和终点即可。然后点击查询按钮,发送查询请求至拼车服务器。拼车服务器接收到查 询请求后查找关联拼车组结果返回到Android移动终端。起终点主导模式是根据关联拼车人 的选择来决定的。而关联拼车人则是通过计算与拼车人的起点和终点的关联程度来决定的。 与拼车者起点相关联的关联拼车者包括在拼车者直接邻近范围内或者间接邻近范围内的所有 拼车人。
定义:直接邻近范围
拼车者A的直接邻近范围是满足下列条件的所有的位置(x,y)组成的范围,也称位置 (x,y)在拼车者A在直接邻近范围内。
其中,(xA,yA)是拼车者A所在位置的坐标,Dcarpooler为用户自定义的一个阈值。
定义:间接邻近范围
设拼车者B是在拼车者A的直接邻近范围内,若拼车者C也在拼车者B的直接邻近范 围内,则称拼车者C在拼车者A的间接邻近范围内。
关联拼车者包括起点关联拼车者、终点关联拼车者、起终点关联拼车者。
定义:起点关联拼车者
起点关联拼车者为起点在指定拼车者的起点的直接邻近范围或者间接邻近范围内。
定义:终点关联拼车者
终点关联拼车者为终点在指定拼车者的终点的直接邻近范围内。
定义:起终点关联拼车者
起终点关联拼车者为既是起点关联拼车者又是终点关联拼车者的拼车者。
拼车者关联度Relevantcarpooler是由拼车者的起点和终点的接近程度所决定的。
定义:拼车者关联度
其中,为两个拼车者A和B的拼车者关联度。λS为拼车者A和拼车者 B的起点距离关联系数,为拼车者A的起点(xSA,ySA)与拼车者B的起点 (xSB,ySB)之间的距离,λT是拼车者A和拼车者B的终点距离关联系数,为拼 车者A的终点(xTA,yTA)与拼车者B的终点(xTB,yTB)之间的距离。
由于起点关联系数有更高的优先级别,所以λS通常比λT大,通常取λS=10,而λT=1。
拼车服务器通过查询模块找出这些拼车者后,并按照拼车者关联度进行排序,将查询到 的关联拼车人结果返回到Android移动终端。
优选地,也可以先对拼车者的起点和终点进行聚类后,再在同类的范围内,按照与拼车 者的距离大小来确定拼车者的关联度。
第6步、若拼车者选择组建拼车组操作,则需要发送组建拼车组请求至拼车服务器。若 拼车者仅仅选择起点和终点,则拼车服务器仅仅考虑起终点查询模式;若拼车者不仅选择起 点和终点,而且选择途经的中间地点,则拼车服务器同时考虑起终点模式和路线主导模式。 假如拼车者A发送新建拼车组请求到拼车服务器,拼车服务器完成拼车组的建立后首先向拼 车者A的关联拼车者发送消息(如图6圆形虚线范围内)。如图6所示,拼车者B在A的直 接邻近范围内,可以看见拼车者A的拼车组并加入;拼车者C在B的直接邻近范围内,也是 在拼车者A的间接邻近范围内,故拼车者C也可以看见拼车者A的拼车组并加入;而拼车者 D虽然在拼车者A的直接范围内,但是拼车者D的终点不在拼车组线路范围内,故拼车者D 不可以看见拼车者A的拼车组并且不能加入;拼车者E(司机)在A的邻近范围内,可以看见 拼车者A的拼车组并加入。拼车组拼车者的人数上限是4,不能超过4;其中司机人数为1。 (拼车组的信息存储着拼车目的地,拼车者总人数,拼车者以及他们各自的终点,司机和当 前人数,司机的终点,拼车组的状态。)
第7步、若拼车者选择加入拼车组操作,则可以在两种情况下加入:第一种是在拼车组 组建以后且未发车前,只能加入到拼车人起点邻近并且路线邻近的拼车组;另一种是在发车 后未满员行驶状态下,只能加入到拼车人终点邻近并且路线邻近的拼车组。
第8步、当人数满员,或所有拼车人和司机发起同意后,拼车组状态进入协商状态。拼 车服务器给SIP服务器发消息,SIP服务器对组内所有的拼车者发出SIP消息,邀请各个拼车 者进行多方会话。图8是本发明实施例中的SIP消息序列图。会话结束后,如果一致同意发 车,则拼车组建者发送同意发车信息到拼车服务器,该拼车组进入行驶状态。如满员则进入 满员行驶状态,如不满员则进入可载行驶状态;否则,返回之前组队状态继续等待。
第9步、拼车者B在中途下车后,有两种方法更新拼车组状态:手动退出和自动退出判 定。手动退出模式下,拼车者B通过Android移动终端退出拼车组,拼车服务器接收到消息 后将拼车组状态信息改为可载行驶状态。自动退出判定模式下,拼车服务器的距离判定模块 定时查询乘客和车主的位置信息,并判定乘客是否已经离开该车辆。具体来说,距离判定模 块设定有自定义的限定值,当定时采集的乘客与车主的距离大于这个限定值时,距离判定模 块则自动修改拼车服务器为非满员状态。
此后,拼车者F通过Android移动终端查询后,加入该拼车组,并刷新拼车组和司机的 终点为F的终点。此后,拼车者C和拼车者A先后下车并修改了组的人数。最后拼车者F到 达终点后,拼车组状态改为空车。拼车组将该拼车组的信息清空并删除。
图9是本发明实施例中的拼车组状态图。
机译: 基于SIP的呼叫/会话转发方法和系统,特别是与基于SIP的呼叫设置过程中根据每个发起者编号或时区转发呼叫有关的方法
机译: 使用虚拟代理服务器检测SIP攻击的系统和方法,能够通过将虚拟代理服务器模块添加到现有SIP代理服务器来提供基于状态信息的SIP会话分析功能
机译: 通过使用会话发起协议(SIP)端点以及相关方法,系统和计算机可读媒体,在交互式Web实时通信(WebRTC)会话期间改善媒体属性