获取服务信息的方法、客户端和服务器 【技术领域】
本发明涉及基于位置提供服务的领域,尤其涉及基于位置提供和获取服务信息的方法、客户端、服务器和系统。
背景技术
目前紧急呼叫如警察、消防、事故和急救等相关的电话在中国可以拨打110、119、122和120等来获得相应的紧急服务。在其他的国家也有相应的紧急呼叫号码,如美国的紧急呼叫号码有911等。由于紧急呼叫一般都要求能够进行及时的处理响应,通常会根据用户的位置提供离其最近的紧急服务设施和人员。
随着通信技术的发展,基于互联网协议IP(Internet Protocol)的通信设施越来越普及。在新一代基于互联网协议的通信网络中也需要提供紧急呼叫服务,并突破原有传统紧急呼叫服务的一些缺点。如在现有的紧急呼叫服务中,如果发起呼叫的用户有听力或语言障碍,或者暂时处于无法说话的紧急情况等,即使接通了紧急呼叫服务的电话,也无法表达自己在什么位置以及具体需要什么服务。特别是,如中国很多地区已经将110、119和122合并,统一为110一个接入号码。这样也就很难提供其所需的相应的紧急服务。
除了紧急呼叫服务,用户在获取与自己位置相关的服务信息,很多情况下都希望能获得具体的服务项目信息。如用户在查询自己附近的餐馆信息时,希望能获得餐馆具体的服务项目信息,如是否提供卡拉OK、免费停车等子服务项目。
另外在紧急呼叫服务中,实际上预防紧急事件的发生也是非常重要的。如果能在用户进入或接近一些经常或很可能发生紧急事件的区域时,进行相应的提示,将可以对预防紧急事件的发生具有极大作用。一些研究也显示,很多犯罪类型具有一定的空间分布模式的规律。城市犯罪分布的空间差异十分明显,城市内部存在少数极端的犯罪高发区。充分利用该规律,可以减少犯罪事件的发生。
【发明内容】
本发明实施例提出了一种获取服务信息的方法,使用户可以获得与指定位置相关的服务的子服务信息。
本发明实施例还提出了一种客户端,用户使用该客户端可获得指定服务和位置相关的子服务信息。
本发明实施例还提出了一种服务器,可以向用户提供指定服务和位置相关的子服务信息。
本发明实施例还提出了一种服务呼叫系统,可以使用户获得服务的子服务信息,并据此信息发起服务呼叫。尤其适用于紧急呼叫服务。
本发明实施例还提出了一种获取服务信息的方法,可以使用户获得服务相关的特别区域信息。
本发明实施例还提出了一种下发危险区域信息的方法,可以使用户通过短消息或多媒体消息获得附近的危险区域信息。
本发明实施例提出的技术方案如下:
一种获取服务信息的方法,该方法包括步骤:
客户端发送获取服务信息的请求,所述请求中包括服务名称、客户端的位置信息,以及标志,所述标志用来指示要获取子服务信息;
客户端接收响应,所述响应包括根据所述的服务名称和所述客户端的位置信息所确定的具体服务实例的统一资源标识符,以及所述具体服务实例和所对应的子服务信息。
一种客户端,所述客户端包括:
服务信息请求模块,用于组装和发送获取子服务信息的请求消息,所述的请求消息中包括包括服务名称、客户端的位置信息以及用来指示要获取子服务信息的标志;
服务信息接收模块,用于接收包含所述子服务信息的响应消息;
服务信息界面接口模块,用于将所述的子服务信息呈现在客户端的界面上。
一种服务器,所述服务器包括:
消息收发模块,用于接收获取子服务信息的请求消息和发送响应消息,所述请求消息中包括服务名称、位置信息以及用来指示要获取子服务信息的标志,根据所述标志在所述响应消息中包括具体服务实例和对应的子服务信息;
服务信息存储模块,用于存储服务信息,包括具体服务实例和对应的子服务信息;
子服务信息检索模块,用于在消息收发模块收到获取子服务信息的请求时,根据所述标志的指示从所述服务信息存储模块获取相应的子服务信息,并返回给所述消息收发模块通过所述响应消息发送。
一种服务呼叫系统,所述系统包括:
第一终端,用于获取服务信息和发起服务呼叫请求,所述获取服务信息的请求中包括服务名称、位置信息以及用来指示要获取子服务信息地标志;
第二终端,用于接收所述第一终端发起的服务呼叫请求,所述的服务呼叫请求中包括子服务名称;
服务器,用于向第一终端提供服务信息,所述的服务信息中包括具体服务实例的子服务信息。
一种获取服务信息的方法,该方法包括步骤:
客户端发送获取服务信息的请求,所述请求中包括服务名称和客户端的位置信息;
客户端接收包含服务信息的响应,所述响应中包含根据所述服务名称和客户端的位置信息所确定的具体服务实例,以及所述具体服务实例对应的特别区域信息。
一种下发危险区域信息的方法,该方法包括步骤:
监测通信网络中的移动终端的位置更新信令;
向进入对应有危险区域的通信小区的移动终端发送包括所述危险区域信息的短消息或多媒体消息。
本发明的有益效果如下:
本发明实施例通过于预先存储子服务信息,并在获取服务信息的请求中增加标志以指示获取与位置信息相关服务的子服务信息,使用户客户端可以获得详细的子服务列表,了解当前服务实例所能提供的子服务项目。在紧急呼叫等服务请求中,通过携带指定的子服务名称,可以使请求者的呼叫得到更加准确及时的处理。另外还通过向用户终端提供与位置相关的服务统计信息,使用户可以了解详细的服务状况如自己周边的治安情况等。还通过提供特别区域信息,使用户避开比较危险的区域,或者进入危险区域时依据备注信息中指示和建议来提高警惕。本发明的实施例通过充分利用服务统计信息如犯罪分类和记录数据,可以实现预防犯罪以及及时有效处理报警呼叫的有益社会效果。另外对于一些自然灾害或事故频发的区域,也可以提前让用户获知区域位置和相关信息。
【附图说明】
图1为本发明实施例实现紧急呼叫的流程图;
图2为本发明实施例基于LoST协议的发现服务请求和响应来获取服务信息的流程图;
图3为本发明实施例LoST客户端的结构示意图;
图4为本发明实施例LoST服务器的结构示意图;
图5为本发明实施例紧急呼叫系统的实体交互示意图;
图6为本发明实施例服务呼叫系统的结构示意图。
【具体实施方式】
参照图1,该图是本发明实施例实现一次完整紧急呼叫服务的流程图,包括如下步骤:
步骤101、服务器存储紧急呼叫服务的服务信息,服务信息包括每个具体紧急呼叫服务的统一资源标识符URI(Uniform Resource Identifier)或服务号码所对应的地理范围信息、所支持的服务以及子服务信息。
紧急呼叫服务的统一资源标识符或服务号码用于用户与紧急呼叫服务进行通信联系。如每个警察局都可以有自己的统一资源标识符。另外如一般每个警察局都有自己的管辖区域地理范围,这样的地理范围信息也对应的存储在服务器中。每个警察局所提供的具体紧急呼叫服务也可以称为一个紧急呼叫服务实例。
支持的子服务信息指该服务可以提供的服务项目,如不同的警察局可以提供的紧急服务项目可能不同,小的警察局可能只能处理一些常规紧急事件,可能无法处理恐怖活动等重大事件。此处以警察服务(urn:service:sos.police)为例,其提供的子服务可以包括偷窃(theft)、抢劫(robbery)和恐怖活动(terrorism)等等事件的处理。
步骤102、客户端向服务器请求获取具体的紧急呼叫服务实例以及所支持的子服务信息,所述请求中包含客户端的地理位置信息,以及所请求的紧急呼叫服务的名称等。
客户端可以位于手机或者便携机等移动设备中。在开机后或者向网络注册时,先获取服务器的地址,再从服务器获取紧急呼叫服务信息。如在移动设备通过无线保真Wi-Fi(Wireless Fidelity)接入网络,并通过动态主机配置协议DHCP(Dynamic Host Configuration Protocol)获取IP地址时,同时获得存储有紧急呼叫服务信息的服务器地址。然后客户端从该服务器获取紧急呼叫服务信息,以备将来发生紧急事件时使用。因为移动设备的位置在不断变化中,与位置对应服务信息也需要进行不断的更新。在客户端获取到的服务信息中,还可以包含每个具体服务者所管辖的地理范围信息,当客户端移出一个服务者所管辖的地理范围时,重新发送请求获取与当前客户端位置所对应的服务信息。客户端也可以每隔一定时间如半小时自动发送刷新请求获取与当前位置对应的服务信息。还可以在用户使用客户端选择紧急呼叫服务时去获取服务信息,这样的方式获得的信息更准确。
客户端可以获得与自己位置对应的紧急呼叫服务的统一资源标识符,如SIP URI,sip:szpd@example.gov。可以包括多个不同的URI,还可以包括业务号码如28560110等。另外还可以对不同的子服务分配不同的URI,并一起返回给客户端。这样客户端在后续发生紧急事件时,可以直接联系与自己所需的子服务对应的URI,使紧急事件的处理更加有效率。
步骤103、在发生紧急事件时,用户客户端向紧急呼叫服务的统一资源标识符URI发起呼叫,在呼叫请求中可以包含所需要的子服务信息。或者,如果服务器返回的子服务信息中包括子服务对应的具体URI,则可以直接呼叫子服务对应的URI。具体的如可以用SIP协议的INVITE方法发起建立一个会话进行通信等,并在INVITE方法的消息中包含所需要的子服务信息。
具体的操作过程可以是:在用户客户端的操作界面选择紧急呼叫服务的警察服务,客户端显示信息提示正在获取与当前位置对应警察服务信息,并且可以同时显示已经缓存的已有的警察服务信息,缓存的信息可能不太准确,但如果非常紧急的情况可以让用户根据已有的服务信息进行紧急呼叫,而不必等待。在获得新的警察服务信息后,显示新的警察服务信息。显示的警察服务信息可以包括警察局的名称以及支持的子服务项目等,在选择一个或多个子服务项目后,点击呼叫按钮,客户端将联系相应的URI进行通信。
一种在客户端更好的显示警察服务信息的方式是在用户选择紧急呼叫服务的警察服务后,显示目前可用的子服务列表,用户只要选择所需要的子服务即可,因为用户并不关心到底是谁来处理紧急呼叫。
客户端也可以显示全部的子服务列表,按子服务的常用程度进行排列显示。如果用户选择了一个子服务,而该子服务并不在其获取到的任何一个警察服务URI所支持的子服务内,这时客户端可以发送一个查询该具体子服务对应URI的请求,该请求包含子服务的名称以及客户端的当前地理位置信息,服务器可以返回一个或多个与客户端当前地理位置信息最为接近的警察服务URI。客户端再向该URI发起紧急呼叫。
本发明实施例中主要以警察服务(urn:service:sos.police)为例,但并不限于此,其他的一些服务如消防(urn:service:sos.fire)、海事(urn:service:sos.marine)、医疗急救(urn:service:sos.ambulance)等紧急服务或者一些咨询服务如儿童(urn:service:counseling.children),也都同样适用本发明,此处不再一一列举。
下面的一些实施例中基于互联网工程组IETF(Internet Engineering TaskForce)的LoST(A Location-to-Service Translation Protocol)协议分别采用不同形式的扩展来实现紧急呼叫子服务信息查询和获取。LoST协议的请求和响应可以使用超文本传输协议HTTP(HyperText Transfer Protocol)和安全超文本传输协议HTTPS(Secure Hypertext Transfer Protocol)协议进行承载。也可以用XMPP(Extensible Messaging and Presence Protocol)等协议来承载LoST请求和响应。
第一实施例中对LoST协议中的发现服务请求<findService>和发现服务响应<findServiceResponse>进行了扩展。参照图2,具体包括以下步骤:
步骤201,LoST客户端向LoST服务器发送发现服务请求获取紧急呼叫服务实例(包括服务的统一资源标识符或服务号码等)以及所支持的子服务信息。所述的发现服务请求中的<findService>元素中包含指示获取子服务信息的属性标志,如getSubservice=″true″,指出该请求要获取子服务信息。具体格式举例如下:
<findService
serviceBoundary=″value″
getSubservice=″true″>
<location id=″1234abcd″profile=″geodetic-2d″>
<Point id=″point1″srsName=″urn:ogc:def:crs:EPSG::4326″>
<pos>31.135-312.711</pos>
</Point>
</location>
<service>urn:service:sos.police</service>
</findService>
为简明期间,本说明书中的实例省略了部分内容。其中子元素位置信息<location>中包含客户端的地理位置信息,子元素服务名称<service>中包含所需要的服务名称。
LoST服务器根据上述请求中的客户端位置信息、所请求服务名称以及获取子服务信息属性标志在数据库中查询所对应的具体服务信息,并将对应服务的URI以及支持的可用子服务信息返回。
步骤202,LoST客户端接收LoST服务器返回的包含服务URI和子服务信息的发现服务响应消息。所述的发现服务响应元素<findServiceResponse>中包含子元素子服务列表<subserviceList>。具体举例如下:
<findServiceResponse>
<mapping>
<service>urn:service:sos.police</service>
<uri>sip:szpd9@example.gov</uri>
<serviceNumber>110</serviceNumber>
<subserviceList>
urn:service:sos.police.burglary
urn:service:sos.police.gambling
urn:service:sos.police.robbery
urn:service:sos.police.theft
</subserviceList>
</mapping>
</findServiceResponse>
其中<mapping>元素中包含了服务名称和具体服务的URI,其子元素子服务列表<subserviceList>中列出了该具体服务实例所支持的可用子服务的名称,这些子服务使用注册的标准化名称。如:入室行窃(urn:service:sos.police.burglary)和赌博(urn:service:sos.police.gambling)等等。此处子服务表示可处理的犯罪类型名称。在客户端显示这些子服务名称时,可以对应显示用户所使用的本地语言如中文名称。
实际上子服务也可以进一步进行分类,即子服务的子服务。本实施例中默认只返回所请求服务的下一级子服务列表,不会递归的返回更低层级的子服务。
通过本实施例用户客户端通过LoST协议可以获得详细的子服务列表,了解当前服务实例所能提供的子服务项目。
第二实施例中描述了可以按用户所请求排序方式返回子服务列表。预先在服务器上存储的子服务信息中,可以包含子服务如各种犯罪类型对应的发生次数以及犯罪事件发生的具体地点区域时间等等。当客户端发送的发现服务请求中,<findService>元素中还包含指示按指定排序方式获取子服务列表的属性标志,如sortBy=″frequency″,指出该请求要获取子服务信息,服务器根据存储的子服务信息将相应的子服务按照发生或使用的频率排序后返回给客户端。一般服务器可以只统计具体服务URI的管辖范围之内的一定时间之内(如最近一周或一月内)的子服务发生频率然后进行排序。在返回的响应中的子服务列表元素<subserviceList>中增加排序方式属性如sortBy,表示子服务列表的排序方式。如下所示:
<subserviceList sortBy=″frequency″>
urn:service:sos.police.theft
urn:service:sos.police.robbery
urn:service:sos.police.burglary
urn:service:sos.police.gambling
</subserviceList>
通过本实施例用户可以获得排序后的子服务列表,便于用户选择相应的最常发生的服务,以及了解周围那些子服务最常发生。
第三实施例中描述返回更加详细的子服务信息,如返回各种犯罪类型发生的具体次数。当客户端发送的发现服务请求中,<findService>元素中包含属性标志,如getSubservice=″frequency″,指出该请求要获取子服务信息,并包含各子服务的频率信息。服务器根据存储的子服务信息将相应的子服务以及各子服务对应的频率在返回的响应<findServiceResponse>中传送给客户端。包含频率的子服务列表举例如下:
<subserviceList>
<subservice frequency=″28″>urn:service:sos.police.theft</subservice>
<subservice frequency=″19″>urn:service:sos.police.robbery</subservice>
<subservice frequency=″10″>urn:service:sos.police.gambling</subservice>
</subserviceList>
其中子元素子服务<subservice>的属性如“frequency”中包含具体的频率,如“28”,表示一定时期如每月发生该类型犯罪事件的次数。
这样用户在获得紧急呼叫服务信息的同时,还可以得到当前区域的治安犯罪情况,以提前注意采取一些措施避免受到伤害,起到通过提示信息实现预防发生紧急事件的目的。比单纯只能获得紧急呼叫服务联系信息如URI有更好的效果。这样警察局也可以充分利用犯罪记录资料来为公众提供更好的服务。特别是一个用户进入一个新的城市或者不太熟悉的区域时,可以提前及时的获知当地的治安状况信息,而不仅仅是获得紧急呼叫服务联系信息。
如用户终端进入一个区域刷新警察服务信息时,获得了该区域内各种类型的犯罪事件的发生频率,当终端的客户端检测到某种类型的犯罪事件发生频率较高超过一个预设的上限时,在客户端界面上向用户显示提示信息。可以使用户提前注意采取措施避开该类型的犯罪事件等。
对于更为详细的服务信息,如犯罪事件的具体时间和位置等,不便在上述响应中返回,可以在响应中的一个<uri>元素中包含一个HTTP链接地址,用户客户端可以通过浏览器访问该链接地址获得更详细的信息。具体举例如下:
<uri>http://police.example.gov/query?id=szpd9</uri>
通过本实施例用户可以了解各种子服务更为详细的信息,充分利用服务统计信息,使用户可以提前了解周围子服务的详细情况。
第四实施例中描述在返回的子服务信息中包含各子服务对应的联系信息如URI,以方便用户可以直接联系所需的子服务。在服务器返回响应中包含的子服务列表中可以包含各子服务的一个或多个URI、发生频率等。具体举例如下:
<subserviceList>
<subservice name=″urn:service:sos.police.theft″>
<uri>sip:szpd9.theft@example.gov</uri>
<uri>http://police.example.gov/query?id=szpd9&sub=theft</uri>
<frequency>132</frequency>
</subservice>
<subservice name=″urn:service:sos.police.robbery″>
<uri>sip:szpd9.robbery@example.gov</uri>
<frequency>18</frequency>
<note>夜间10点后多发抢劫</note>
</subservice>
</subserviceList>
其中子服务列表元素<subserviceList>中包含一个或多个子服务元素<subservice>。每个个子服务元素<subservice>的属性“name”中包含子服务的名称,还包括一个或多个<uri>和频率<frequency>等子元素。还可以包含备注信息如<note>,备注信息为描述相应子服务的文本。返回的备注信息可以与客户端的位置相关,不同的位置可能返回的备注信息不同。如用户提供的位置接近一个多发抢劫的街区,则返回的备注信息可以是“夜间10点后多发抢劫”,如果用户提供的位置接近一个扒手较多的街区,则返回的备注信息可以是“警惕扒手”。
另外服务器返回的响应还可以包含服务等级元素如<serviceRank>,其值可以是数字,如1到5分别代表不同的服务等级。在不同服务中服务等级代表的含义可能也不相同,如在酒店服务中,服务等级可以是一个酒店评定的星级,如五星级,而在警察服务中,服务等级可以一个区域的安全等级,等级1可以表示非常安全,等级5表示非常危险。在警察服务的子服务也可以对应有服务等级,表示该子服务对应的犯罪类型发生的频度级别,如果每天都发生多起该类犯罪事件,则定为5级,一年内发生次数少于或等于一件,则可以定为2级。可见子服务的服务等级也可以根据数据库中记录的频率数据计算得出。包含服务等级的子服务元素内容具体举例如下:
<subservice name=″urn:service:sos.police.theft″>
<uri>http://police.example.gov/query?id=szpd9&sub=theft</uri>
<serviceRank>5</serviceRank>
</subservice>
或者作为与服务名称元素<service>并列的元素,如下:
<mapping>
<service>urn:service:sos.police</service>
<uri>sip:szpd9@example.gov</uri>
<serviceRank>5</serviceRank>
</mapping>
另外其实一个服务实例对应的区域,如一个警察局对应的管辖区域可能比较大,该区域内不能地段可能治安状况也不相同,这样最好能向客户端返回更精确的信息。具体的可以将服务区域内危险地段的信息存储在服务器,在<findServiceResponse>响应中返回给客户端。危险地段的信息可以包括一个点的地理位置经纬度坐标,也可以包含一个区域边界的信息,如下:
<specialArea>
<rank>5</rank>
<note>偷盗案件多发</note>
<areaBoundary profile=″geodetic-2d″>
<Circle srsName=″urn:ogc:def:crs:EPSG::4326″>
<pos>24.1234-63.2345</pos>
<radius uom=″urn:ogc:def:uom:EPSG::9001″>
250.12
</radius>
</Circle>
</areaB oundary>
<specialArea>
其中特别区域<specialArea>元素中包含危险地段区域的边界信息,以及等级<rank>和备注信息<note>等。特别区域还可以包含一个对应的区域名称子元素如<areaName>,在客户端界面上可以显示该区域名称。可以在一个<findServiceResponse>响应中包含多个特别区域<specialArea>元素。这样可以帮助用户重点识别出临近或所在区域中的特别区域如危险地段区域。特别区域的边界形状可以是圆、椭圆、多边形等。也可以是一个城市的街区名称等。如果客户端根据特别区域的边界信息检测到自己的当前位置接近(如当离特别区域边界距离小于一预设值,如100米)或者位于特别区域时,则进行警示。例如手机终端可以通过振动或振铃,并显示提示信息。提示信息可以包含上述的等级和备注信息中的内容。备注信息可以是一些提醒以及建议文字等。特别区域除了在警察服务中使用外,还可以在火警服务,如在森林中标注出山火的特别区域,并在备注中给出山火的蔓延方向信息等。还有海事服务,在海域中标注出容易出事的特别区域,如暗礁较多的区域等。这对于预防事故灾难的发生可以起到很大作用。另外在紧急服务(SOS)里,特别区域<specialArea>元素也可以命名为危险区域<dangerousArea>。实际上向用户提供安全区域也很有用处,如在大范围的灾难中(山火、洪水、地震或恐怖袭击等),如果用户可以经由本发明获得特别标注的安全区域(一般由政府机构设定),则可以有效的依据相关信息进行转移到安全的地方。用户不一定想在每个<findServiceResponse>响应中都包含特别区域信息,因此还可以在<findService>请求中增加一个属性,指示是否获取特别区域信息,如“SpecialArea”属性。当服务器检测到<findService>请求中包含该属性时,则在<findServiceResponse>响应中包含特别区域信息。该属性的值可以是“value”或“reference”,如果是“value”则返回具体的特别区域边界信息,如果是“reference”时,则只返回一个包含引用指示符的元素,如下的<areaBoundaryReference>元素,引用指示符包含在其属性“key”中:
<areaBoundaryReference source=″szpd.example.gov″
key=″1234YYUI324OP999LK3299KJ39″/>
客户端可以通过<getServiceBoundary>从LoST服务器请求获取引用指示符对应的具体的特别区域边界信息。举例如下:
<getServiceBoundary xmlns=″urn:ietf:params:xml:ns:lost1″
key=″1234YYUI324OP999LK3299KJ39″/>
另外还可以在该属性中指定范围信息,如“SpecialArea=1000”表示要获取用户指定位置附近1000米范围内的特别区域。如果不指定范围,则服务器可以返回缺省范围内的特别区域,或者将服务实例对应区域范围内的特别区域全部返回。
还可以用一个新的LoST接口如列出特殊区域请求<listspecialArea>来获取信息,该请求中除了包括服务名称和客户端的位置信息外,还可以包含希望获取特殊区域的范围,如用一个属性“near”其值表示客户端给出的位置的距离范围半径;如果不给出该范围信息,则服务器可以返回默认范围内的特殊区域,如可以返回客户端的位置附近1000米之内的所有特殊区域的信息。请求中的服务名称可以用一个新的服务如地图服务中犯罪子服务:“urn:service:map.crime”。除了犯罪地图服务外,还可以有火灾地图“urn:service:map.fire”等。
服务器返回的特别区域信息中,还可以包含对应的子服务名称,如一个特别区域可以对应子服务“urn:service:sos.police.theft”,可以表示该区域是个盗窃事件较多的危险区域。这指示了特别区域的类型。
另外实际上等级<rank>、备注信息<note>和特别区域<specialArea>等都可以不依赖于子服务信息,而可以用来描述服务实例。因此即使在<findServiceResponse>响应中不包含子服务信息,也可以包含等级<rank>、备注信息<note>和特别区域<specialArea>等元素。
本实施例通过提供特别区域信息,使用户可以了解周围值得关注的危险地段等,在接近或进入这些区域时可以获得提醒。
第五实施例中使用<findService>请求和<findServiceResponse>响应以及新的服务名称来专门获取特别区域信息。以获取犯罪地图信息为例,使用新的服务名称如“urn:service:map.crime”,在<findService>请求指定该名称以及客户端指定的位置范围信息。具体内容举例如下:
<findService>
<location>
<Circle srsName=″urn:ogc:def:crs:EPSG::4326″>
<pos>31.111-133.333</pos>
<radius uom=″urn:ogc:def:uom:EPSG::9001″>
500.05
</radius>
</Circle>
</location>
<service>urn:service:map.crime</service>
</findService>
其中<location>元素中给出了位置范围信息即一个圆形范围,服务名称则指定为“urn:service:map.crime”。服务器根据上述的位置范围信息将该范围内的犯罪危险区域返回,<findServiceResponse>响应举例如下:
<findServiceResponse>
<mapping>
<displayName xml:lang=″zh″>
抢劫案多发地段
</displayName>
<serviceBoundary profile=″geodetic-2d″>
<Circle srsName=″urn:ogc:def:crs:EPSG::4326″>
<pos>31.126-133.312</pos>
<radius uom=″urn:ogc:def:uom:EPSG::9001″>
50.12
</radius>
</Circle>
</serviceBoundary>
</mapping>
</findServiceResponse>
其中在<serviceBoundary>元素中包含特殊区域边界信息,每个<mapping>元素中包含一个特殊区域的信息,一个<findServiceResponse>响应可以包含多个<mapping>元素,即可以包含多个特殊区域。
对于一些避难或收容场所等,如地震、洪水或火灾临时疏散区、防空洞、救助站或收容所等,可以定义一种与“SOS”并列的服务,如“urn:service:shelter”,其子服务包括:
urn:service:shelter.airraid
urn:service:shelter.earthquake
urn:service:shelter.flood
urn:service:shelter.wildfire
urn:service:shelter.homeless
用户可以通过<findService>请求和<findServiceResponse>响应获得自己位置附近的上述相关场所的信息,如地址,联系方式等,使其可以容易找到相关场所获得救助。通过本实施例用户可以用新的服务名称直接获得周围的特殊区域信息。
第六实施例中使用新的接口根据服务的URI来查询子服务信息。客户端可以先通过<findService>请求和<findServiceResponse>响应来获得与自己位置相关的服务信息,包括服务的URI,但是这些服务信息中并不包含子服务信息。客户端可以通过单独的请求如<listSubservicesByURI>和响应如<listSubservicesByURIResponse>来根据服务的URI来获取其子服务信息。请求举例如下:
<listSubservicesByURI>
<service>urn:service:sos.police</service>
<uri>sip:szpd9@example.gov</uri>
</listSubservicesByURI>
上述请求中包含服务名称<service>和服务URI。由于一个URI可能对应多种服务,所以该请求中不仅包含URI,还包含有服务名称。服务器收到该请求后,检索到相应的子服务信息,并在响应<listSubservicesByURIResponse>中返回给客户端。响应举例如下:
<listSubservicesByURIResponse>
<subserviceList>
urn:service:sos.police.burglary
urn:service:sos.police.gambling
urn:service:sos.police.robbery
urn:service:sos.police.theft
</subserviceList>
</listSubservicesByURIResponse>
其中在子服务列表<subserviceList>元素中包含请求中服务URI所支持的子服务信息。有些子服务可能还进一步包含若干子服务,此处缺省只返回下一级的子服务,不会递归返回更低层级的子服务信息。
另外还可以采用类似前面的实施例中<findService>请求和<findServiceResponse>响应中的一些扩展,如还可以在响应中返回各子服务对应的具体URI或号码、服务等级等。
用户终端的客户端在通过以上实施例中的方法获取到服务和子服务的信息后,在后续希望获得服务时发起相应的呼叫,如可以通过会话初始协议SIP(Session Initiation Protocol)的INVITE方法发起呼叫,在客户端发送的INVITE的请求行中包含服务名称或服务具体的URI,在目的地址“To”字段中包含具体子服务的名称。如:
INVITE sip:szpd9@example.gov SIP/2.0
To:urn:service:sos.police.robbery
呼叫的接收者可以根据呼叫请求中的子服务的名称采取更加及时和准确的处理措施。
如果客户端获得了子服务具体的URI,在INVITE的请求行中可以直接包含所需子服务具体的URI。这样接收到该INVITE请求的服务处理方可以根据其所包含的子服务名称或子服务URI来更准确及时得提供请求方所需的服务。
有些服务的子服务列表中的可能包含很多的子服务,如果在客户端的界面全部显示并不方便查找,特别是在手机这样的屏幕较小的终端上。可以只显示指定数目的部分最常用的子服务信息,如只显示前5种最常用的子服务,或者由用户自己设置定义将其最可能用到的子服务显示在最前面,如一些用户知道自己具有某些疾病如心脏病等,可以将相应类别的急救子服务列在最前面。并可以将所设定的子服务作为拨打急救号码如“120”时对应子服务的缺省值。以方便紧急情况下快速发起呼救请求。当然用户在无法发现所需的子服务时还可以选择显示全部的子服务列表。
除了根据服务的URI来查询子服务信息,还可以根据指定的位置来查询子服务信息。使用新的接口<listSubservicesByLocation>请求和<listSubservicesByLocationResponse>响应,举例如下:
<listSubservicesByLocation>
<service>urn:service:sos.police</service>
<location id=″1r12wb2314y86q″profile=″geodetic-2d″>
<Point srsName=″urn:ogc:def:crs:EPSG::4326″>
<pos>134.301 121.811</pos>
</Point>
</location>
</listSubservicesByLocation>
其中<listSubservicesByLocation>请求中包含服务名称<service>和指定的位置信息<location>。则服务器收到请求后,首先将根据上述服务名称和位置信息检索到对应具体服务,可能会有多个对应的具体服务。再对每个具体服务检索获取相应的的子服务信息。然后将子服务信息通过<listSubservicesByLocationResponse>响应返回个客户端。
第七实施例描述了通过短消息方式来实现对危险区域的信息通知。首先将每个基站对应小区(Cell)范围附近的危险区域信息存储在网络中,当用户的移动终端进入到一个通信网络的小区中时,则向该移动终端发送包含小区相关的危险区域信息的短消息。为了不改变网络结构,可以通过对网络信令链路中的移动应用部分(MAP)信令进行监测,当检测到移动终端进入包含危险区域的小区时,则发送相应短消息通知。
具体的,可以将监测装置设在移动交换中心(MSC)一侧,对附近存在危险区域的基站控制器(BSC)与MSC之间的位置更新信令进行监测。当检测到有移动终端进入包含危险区域的小区时,则监测装置上报通知业务服务器,由业务服务器将所存储的与小区标识(cell id)对应的危险区域的信息通过短消息中心发送短消息给移动终端。危险区域的信息存储在业务服务器中,可以不断进行更新。危险区域的信息一般可以是与小区标识对应的文本信息,如“南山海关登山口暴雨后可能发生山体滑坡,近期请不要登山”。当然除了短消息通知外,还可以使用多媒体消息通知,业务服务器可以将通知消息通过MM7接口由多媒体消息中心发送通知。可以将多媒体消息的内容存储在业务服务器。
另外业务服务器可以记录发送过通知的移动终端号码、时间等,在一定时间内(如1个月内)不会重复向同一移动终端号码发送同样的短消息或多媒体消息通知。实际上这种过滤处理最好由监测装置来进行,可以大大降低网络和业务服务器的负担。可以由监测装置记录上报过的移动终端号码、时间等,将在一定时间内曾经上报过的号码过滤掉。另外考虑到实际上本地用户可能对一些危险区域比较熟悉,没有必要进行通知,可以将本地用户的手机号段存储在监测装置,监测装置根据上述号段判断是否为本地用户,如果不是时才进行上报处理。
通过本实施例,可以在现有网络中基于短消息或多媒体消息向用户提供周围危险区域的信息。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在运行时,执行上述实施例方法中的全部或部分步骤。上述提到的存储介质可以是只读存储器,磁盘或光盘等。
如图3所示,客户端可以包括:服务信息请求模块301,服务信息接收模块302,服务信息存储模块303和服务信息界面接口模块304。其中服务信息请求模块用于向服务器组装和发送获取子服务信息的请求消息,请求消息中可以包括用来指示要获取子服务信息的标志。作为LoST客户端如向LoST服务器发送<findService>或<listSubservicesByURI>请求,具体可参见上述的几个实施例。服务信息接收模块用于接收LoST服务器返回的包含子服务信息的响应消息,如接收<findServiceResponse>或<listSubservicesByURIResponse>响应,并将消息中的子服务信息内容存储在客户端的服务信息存储模块。服务信息存储模块用于存储客户端所获得的服务信息。服务信息界面接口模块用于将存储在客户端的服务信息存储模块中的子服务信息呈现在客户端的界面上。
服务信息界面接口模块304还可以根据用户在界面的输入如选择了某个子服务时,向所在终端通信模块请求发起对应的呼叫,如用SIP INVITE方法向子服务的URI发起呼叫。一般在发起呼叫前,服务信息界面接口模块可以请求服务信息请求模块重新获取最新的服务信息,如果服务信息接收模块在一个预定时间内(如3秒)获得了相应的更新的服务信息,并存储到了服务信息存储模块中,则服务信息界面接口模块可以使用新的服务信息如新的URI所在终端通信模块请求发起对应的呼叫。如果在预定时间内没有获得新的服务信息,则直接使用已经存储在客户端的服务信息,以保证能及时发出紧急呼叫。
如图4所示,服务器通常为LoST服务器,可以包括:消息收发模块301,用于接收获取子服务信息的请求消息和发送响应消息,请求消息中包括用来指示要获取子服务信息的标志,响应消息中包括具体服务实例和对应的子服务信息;服务信息存储模块302,用于存储服务信息,包括子服务信息。子服务信息检索模块303,用于在消息收发模块收到获取子服务信息的请求时,从服务信息存储模块获取相应的子服务信息,并返回给消息收发模块,由消息收发模块发送出去。
服务器中还可以存储有一个数据服务器的地址,数据服务器中可以存储服务数据记录如犯罪信息数据记录,包括犯罪事件的时间、地点和类型等。服务器包括数据获取模块304,该模块可用于定期如每天向数据服务器请求获取服务统计信息,请求中包括具体服务的区域位置信息,数据服务器根据数据记录统计并返回相应区域的服务状况,如对应区域中的各种犯罪类型的发生频率等。然后数据获取模块将这些获取的服务统计信息存储到服务信息存储模块中,并与对应的具体服务相关联。这样后续服务器在返回的子服务信息中就可以包含这些服务统计信息了,如包含犯罪事件发生频率或服务等级。另外服务器也可以将数据服务器的地址在LoST响应中返回给客户端,然后客户端所在的终端直接向数据服务器请求获取服务统计信息,请求中可以包括终端的位置信息和指定的服务名称等。
服务呼叫系统如紧急呼叫系统可以包括:第一终端UA1,用于获取紧急呼叫服务信息和发起紧急呼叫请求;第二终端UA2,用于接收第一终端UA1发起的紧急呼叫请求;服务器501,可以是LoST服务器,用于向第一终端UA1提供紧急呼叫服务信息。在支持SIP协议的通信网络中,SIP代理服务器502可以用于处理第一终端UA1发起的SIP呼叫请求,并建立和控制与第二终端UA2之间的会话。系统中各实体之间交互流程如图5所示:
第一终端UA1获取自己的位置信息,如通过GPS(Global PositioningSystem)或者在地图上选中自己所在的位置,甚至也手工可以输入位置信息;
(1)第一终端UA1向LoST服务器发送请求,该请求中包括位置信息和指定的服务名称;具体如可以用上述的<findService>请求或者<listSubservicesByLocation>请求。
(2)LoST服务器501接到该请求后,根据上述的位置信息和指定的服务名称查找到具体的服务,并将具体服务的信息如URI、号码、支持的子服务列表或服务区域等在响应中返回给第一终端UA1;具体如可以用上述的<findServiceResponse>响应或者<listSubservicesByLocationResponse>响应。
(3)第一终端UA1使用SIP INVITE发起紧急呼叫,其中INVITE方法的请求行中包含服务URI,“To”头字段包含所需子服务的名称;
(4)SIP Proxy代理服务器502将该SIP INVITE请求路由到相应的第二终端UA2。
(5)在第二终端UA2响应后,建立起两终端之间的会话,如RTP(Real-time Transport Protocol)或MSRP(Message Session Relay Protocol)会话等。图中为简明省略的200 OK和ACK等SIP消息。
以上是一个典型的流程,另外一种情形是如果终端发起的紧急呼叫中的INVITE请求行没有具体服务的URI,只指定了所需要的子服务名称,则SIP代理服务器还可以从定位系统获得第一终端UA1的位置信息,并作为LoST客户端向LoST服务器获取具体的服务URI,然后将该INVITE请求路由到对应该服务URI的第二终端UA2。
如图6所示,服务呼叫系统包括:第一终端601,服务器602,第二终端603。还可以包括SIP代理服务器604。各实体之间的关系在上述流程中已经详细描述,此处不再赘述。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。