Professional Documents
Culture Documents
Location API
V 1.0
Índice
Introduction 3
Location-Based Services Overview 4
Location API Overview 6
Using MLP 3.0.0 8
Steps to Creating a Location-Enabled Service 12
I. Introduction
NII Network-based Location API (hereto forth known as the Location API) allows NII’s business
partners and corporate customers to develop a wide array of applications to be enhanced with
location data.The Location API does this through the use of standard web services known as the
MLP (Mobile Location Protocol), a location standard supported by the OMA (Open Mobility
Alliance).
Currently, the access to the Location API is granted for companies which have signed partnership
agreements with NII, as well as large NII enterprise customers who are developing an application
for in-house use.
This document provides information on the NII’s implementation of the MLP. It also defines how you
can gain access to the systems you should use for initial development, integration and pre-
production testing and launch.
This guide assumes that you have at least a basic understanding of data networking concepts,
software development, the eXtensible Mark-up Language (XML), and how to transmit, receive and
parse an XML document.
1) OMA MLP
The Open Mobile Alliance (OMA) Mobile Location Protocol (MLP) interface is an XML interface
that enables communication between location-based services and location infrastructure.The
interface was developed by the Location Interoperability Forum (LIF) – an international consortium
that promotes open standards and interoperability for mobile location services.Since OMA (at the
time under the responsibility of LIF) first created MLP, it has released updated versions.NII
Location API supports version 3.0.0.
The first full public release of the OMA MLP protocol is MLP 3.0.0.The interface definition for this
v e r s i o n i s a v a i l a b l e a t t h e O p e n M o b i l e A l l i a n c e We b s i t e a t : h t t p : / /
www.openmobilealliance.org/tech/LIF/index.htm.
Increasing numbers of mobile operators are implementing the capability to locate mobile phones
in their wireless networks.Several different methods to accomplish the determination of the
location of a phone exist.The most common and well-known positioning methods are briefly
described in the next section, Positioning Methods.
Different methods have been developed to enable mobile operators to estimate the horizontal
position of mobile subscribers.This section describes two methods supported by NII’s Location
API:cell-based positioning and GPS positioning.
In the diagram in Figure 1 below, a mobile subscriber is being served by cell site A, with cell site B
and C as neighboring cell sites.The strength of the signals from all three cell sites is measured by
the mobile station and sent to the network for triangulation and the subscriber’s appropriate
location is calculated with estimated accuracy.
Typical accuracy values measured for cell-based positioning can range from 100 meters to 2,000
meters depending on the density of cell site, and the ranges vary by market to market.Developers
shall consult each NII market for further information regarding the ranges.
2) GPS-BASED POSITIONING
to a number of reference GPS receivers spread throughout the world.The AGPS servers contain
information on the GPS satellites that can be used to obtain each handset’s location.The AGPS
servers also contain information on how to get the first location fix for the handset more
quickly.Therefore, the AGPS enables you to reduce the time-to-first-fix (TTFF) whereas non-
assisted cold start positioning may take a few minutes.Figure 2 depicts the AGPS positioning
method.
Typical precision values measure for GPS positioning methods can range from 5 meters to 50
meters depending on a variety of conditions, including atmospheric conditions and number of
satellites visible to the handset.
With GPS-based positioning, there are different types of position requests, or fixes, that can be
executed:
Standard Fix
Standard fixes include the phone’s position expressed in latitude and longitude as well as a
degree of horizontal uncertainty. Most applications only require minimal location information, as
returned in standard fixes. Since standard fixes contain minimal location information, they are
returned faster than extended fixes. For examples of standard fixes, see examples on page 15.
Extended Fix
In addition to the position and position uncertainty information in standard fixes, extended fixes
include direction, speed, altitude, and altitude uncertainty. To
trigger an extended fix, you must include a value for altitude
uncertainty in the location request. If you only require speed
or heading information, make sure to put in a large
uncertainty for altitude. If the system cannot meet your quality
of position requirements, you may receive an error message in
return. For an example of an extended fix request, see
Extended Fix on page 16.
Location API has authentication and security controls to ensure that only authorized LCS Clients (or
3rd party application developer) can request the location of subscribers. Location API
authenticates the client ID and password that is included in each location request. After clients are
authenticated, Location API authorizes location requests by clients based on the settings in the
client profiles.
All transactions against Location API require positive authentication of the client’s credentials
(client ID and password). The client ID and password must be embedded with each request.
Because of the information in each MLP location request (such as IDs and passwords), it is
standard practice to use SSL or a Virtual Private Network (VPNs) for security.
Authorization
NII maintains a profile for each client that controls client authorization to make location requests,
including restricting the accuracy of location data that can be requested by the application. It is
possible that location requests may be denied, or altered in the case of accuracy limitations,
based on the settings in the client profile.
2) SUBSCRIBER PRIVACY
NII is dedicated to protecting the privacy of its customers.To this end NII will only allow querying
of devices for which permission has been granted by the device owner.Therefore, the access to
subscriber location via the network-based Location API regime assumes that the corporate-level
privacy policy has been established between NII and customer.The corporate-level privacy policy
applies to the corporate-liable phones, and it assumes that the company representative (or the
account owner) is authorized to grant the privacy permission on behalf of the phones in the
account.It is important that the phones that are authorized to be tracked by the client have been
granted permission by the account owner.
GPS Assist
Server Location
API
(request/
response) Internet
Triangulation
Server
The section describes the location requests made by client applications using the MLP 3.0.0.
Header information
Each MLP request contains a header element (hdr) that contains client credentials. The client
credentials are contained in the client element. The client contains two subfields: id and pwd. The
following illustrates a header.
<hdr ver='3.0.0'>
<client>
<id>testlst</id>
<pwd>password</pwd>
</client>
</hdr>
Mobile Identification
The MLP interface supports the use of either North American Mobile Identification Number (MIN)
or GSM Mobile Subscriber ISDN (MSISDN) or Private Telephone Number (PTN) as the Mobile
Subscriber Identifier (MSID).A subscriber’s MIN, MSISDN, or PTN is simply his or her mobile
telephone number. By default the expected MSID is an MSISDN or PTN.In order to specify the
MSID as a MIN, MIN must be listed as the MSID type using the msid_type element as shown in the
following example with two mobile numbers:
<msids>
<msid msid_type=”MIN”>123456788</msid>
<msid msid_type=”MIN”>123456789</msid>
</msids>
Location requests that contain multiple MSIDs require that the location for all the subscribers be
found before the location response is returned.So if you request the location for two subscribers
(as shown in the preceding example), then both of the subscriber locations must be found before
the locations of the subscribers are returned.
There are two parameters that control the accepted age of location and Response time in MLP:
loc_type: Defines the maximum age of the location to be accepted by the client. There are three
types of location requests defined in MLP 3.0.0: CURRENT, LAST, and CURRENT_OR_LAST. The
default setting, if not specified, is CURRENT (which ignores the location cache). The format in the
MLP request is <loc_type type="CURRENT_OR_LAST" />.
resp_timer: Defines how many seconds the application is willing to wait for a response before a
response is returned. If resp_timer is included in the request it overrides the value provided in
resp_req.
In MLP 1.2 it was possible to specify the coordinate format in the GEO_INFO element, but in MLP
3.0.0 this is no longer the case.The geo-info element only specifies the coordinate reference
system, as defined by EPSG.Location API supports the MLP default coordinate reference system,
WGS-84, which corresponds to EPSG 4326, version 6.1.Thus, the GEO_INFO element is ignored
and should not be included requests.
Note that the flexibility in he returned text-encoding of the coordinates that was possible in MLP
1.2 is not possible.The format is now DDD MM SS.sssH, where DDD is degrees, MM is minutes, and
SS:sss is seconds with three decimals and H is the heading, (that is, N, S, W or E).For example,
<X>45 07 24.123N</X>
<Y>100 06 22.111E</Y>
<Z>5280</>
Observe that X corresponds to the latitude (northing) and Y to the longitude (easting).
The NII implementation supports both standard and extended fix requests.A standard fix request
will include the latitude, longitude, and horizontal accuracy parameters.An extended fix request
will include the latitude, longitude, and horizontal accuracy parameters, as well as altitude
accuracy, velocity, and direction parameters.Unless specifically requested, a standard fix will be
returned by Location API.To request an extended fix location, set the alt_acc parameter to a non-
zero value, such as 1000.
<eqop>
<resp_timer>0015</resp_timer>
<alt_acc>1000</alt_acc>
</eqop>
This section describes the location response sent from the system back to the client application
using MLP 3.0.0 in response to a location request.
Location Accuracy
The following elements of the response illustrate the returned location information and the radius
of uncertainty (<radius> tag), which is 1000 meters in this case. The radius is always defined in
meters.
There are many shapes defined in MLP, but Location Studio 2.1 always uses the CircularArea
element.
<shape>
! <CircularArea>
! ! <coord>
<X>45 07 24.123N</X>
! ! ! <Y>100 06 22.111E</Y>
! ! ! <Z>5280</Z>
! ! </coord>
! ! <radius>1000</radius>
! </CircularArea>
</shape>
Nextel’s location service cannot provide a guaranteed response time for sending location
information back to the client application. The locating procedure involves querying Nextel’s
location assistance servers, which in turn may need to page the mobile device for its current
location. This procedure can take variable amounts of time to complete, depending on the various
network and geographical conditions.The application developer should be aware that a
positioning operation can take as long as 60 seconds to complete.Times increase in busy periods.
Since response times vary and could be delayed by network conditions, NII location servers
maintain a cache of old subscriber locations. This cache can be made use of by specifying a
particular Quality of Position (QoP) parameter in the MLP request, which will allow for slightly
older information to be returned in exchange for a faster response.Please refer to Openwave,
“MLP 3.0.0 for Location Studio Interface Control Document” Version 0.5, 2003 for more
information.
CURRENT_OR_LAST Requesting the current location of the subscriber.If the cached location
for the subscriber is less than 10 minutes old, the cached location will be
returned.If the cached location is not available, the system responds
with no location data along with error 6.
For the NII implementation, this value provides the same result as
CURRENT.
CURRENT Requesting the current location of the subscriber.If the cached location
for the subscriber is less than 10 minutes old, the cached location will be
returned.If the cached location value is not available, the system
responds with no location data along with error 6.
For the NII implementation, this value provides the same result as
CURRENT_OR_LAST.
A component of the response is the time that the location was obtained. The <time> parameter is
in the format <time>YYYYMMDDHHMMSSss</time>. The <time> value can be used to
determine if the location is current or to determine the age of location returned from cache. In the
following example the time reported is April 1, 2002 at 11:46 AM, and the time reference is UTC
offset with one hour.
Time is reported using Universal Metric Time (UMT) and not Greenwich Mean Time (GMT).
Returned times are offset in UMT from the location of the Location Studio server and not
necessarily your location.
<pd>
<time utc_off="+0100">20030401114600</time>
This following are guidelines and information that will help you improve performance and reduce
problems.
• Set resp_timer to 60 seconds.This will reduce the chance of retransmitting requests and
getting cached location
• MUST set a value for hor_acc.This will allow the system sufficient time to return best possible
position
• Set hor_acc to be at 1000 meters or less.This will allow the system sufficient time to return
best possible position.
The Openwave Location Studio Test server provides two methods for testing and verifying your
location application. The first is a test harness, where you can cut and paste the XML request
document in a standard browser window and then view the XML response. The test harness is
provided to assist you with debugging and allow you to test various location request scenarios.
The second method of testing involves posting the XML request documents directly from your
application (using Java, C++ or any other development language) to the actual LSt MLP 3.0.0
interface.
The Openwave Location Studio test server is available to all members of the Openwave
Developer Program. This test server, and the data contained within this server is provided for your
own personal use to test and demonstrate applications using the Openwave Location Manager
and Location Studio products. The data contained in the test server is simulated and is not linked
to any person or business.
The test server is constantly maintained on a best efforts basis, but its availability is not
guaranteed. If this site is not available for any reason, please send a message to
developer@openwave.com to report the problem.
http://72.165.137.101:14000/lst_test/client/index.htm
By default, the page contains a form with the following empty XML request document:
</msids>
<loc_type type="LAST" />
<opwv_extension_request>Zone</opwv_extension_request>
</slir>
</svc_init>
Cut and paste from the Examples section of this document to insert XML requests covering a
variety of common request scenarios.
The test server does not support CURRENT. When sending requests to the test server, you must
specify a loc_type other than CURRENT, such as “CURRENT_OR_LAST.” All live network
implementations support CURRENT requests.
The browser test harness described previously simply takes the XML and posts it to the actual MLP
3.0.0 request interface of LSt. After you have verified your XML request is valid and you know
what response to expect, you can test your application by posting to the following URL:
http://72.165.137.101:14000/locationstudio/mlp300
This section describes how you should use the Openwave Location Service Test Server in order to
test MLP with your client application.
Username/Password
The following user ID and password are provided for use by all Openwave Developer Program
members to test the Location Studio 2.1 MLP 3.0.0 interface:
<id> infoservdemo1
<pwd> infoservdemo1
<client>
! <id>infoservdemo1</id>
! <pwd>infoservdemo1</pwd>
</client>
Test Data
The following is the current test data available in the Location Studio Test Server.
! <msids>
! ! <msid>3035551001</msid>
! </msids>
NII Developer Program provides support for integration with NII’s Location API. You may direct
questions to developerprogram@nii.com, or visit
http://programa.nii.com.
The Openwave Developer Program provides support for the Openwave test server described
above.Support personnel are located in two time zones: North America Pacific Time (GMT – 8)
and UK Time (GMT + 0).
Email: developer@openwave.com
Or you may download and review support material from the developer website at
http://developer.openwave.com/dvl/tools_and_sdk/location_studio/index.htm