SUPL client and proxy

Assisted GPS (AGPS) SUPL client and proxy

This is an implementation of OMA SUPL and 3GPP RRLP protocols used in Assisted GPS (A-GPS). Only client (mobile) initiated case is implemented.

The package provides sources for user level programs supl-client and supl-proxy, and supporting SUPL / RRLP library for more general use.

Version 0.9.2 (released Feb 2011) fixes some issues mostly to cope with more picky SUPL servers. Now the lastest version should work again.

Starting from version 1.0 (Mar 2011) it will be hosted at Most notable is does not use autotools anymore but plain Makefiles for building. Also it includes a single certificate creation utility needed for supl-proxy.

From Nov 2016 forward the code base have been moved over to Github @, and if anything is still to happen it, it will happen in Github. But consider this code more like a historical reference as I have not had any time (or interest) for a few years to it.


The supl-client is used to get assistance data from the SUPL server (e.g. You should specify your rough position estimate in the query to get valid ephemeris data.

If you are only after almanac data (which is valid globally) you still only specify some valid GSM cell id. Some SUPL servers may not return anything if position is not specified. You can get GSM cell id (and other cellular parameters) for the query either by asking your mobile phone or using supl-proxy to see the communication between your device and the SUPL server.


Print out in human readable format exchanged SUPL and RRLP messages between SUPL client and SUPL server. Useful for debugging and figuring out the protocols.

To use this, you must first configure your device to use your box (where supl-proxy is ran) as the SUPL server. Then the supl-proxy will connect to the real SUPL server and proxy all messages between the client and server.

Some devices may require setting up SSL RSA keys and certificates, see in the provided ca subdirectory how to create required keys and certificates

For Nokia N900 you must install the ca-certificate you created with command line tool cmcli into common-ca domain. Certificate manager from the settings if of no good.

An example run from supl-proxy from N900 to is here.


Source code is available for download in tarball supl_1.0.6.tar.gz

The code in released under open source license (BSD).

Copyright info

Copyright (C) 2011 Tatu Männistö.

Redistribution and modifications are permitted subject to BSD license.