Fixing location awareness of N900 IM

Nokias N900 cellular phone is a location aware device. Usually it has been able to display your location in the  status message of instant messaging services like Jabber or Skype. This function has stopped working completely some time ago. This article describes the underlying problem and presents a fix to restore the function again.

Usually one can enable the N900 phone to display the current location in the status message by tapping the status bar and selecting “Availability”. Afterwards the availability window opens, where the button “my location” can be tapped. Then one can select the precision of the position from street level to town level. Afterwards the current location is being published to contacts. Currently enabling this function does not publish any location to ones contacts. After installing sysklogd, the syslog gives a first hint, where the problem is located:

Aug 31 18:37:33 Nokia-N900 nm-nav-provider[11138]: GLIB WARNING **
default – Could not connect to
http://loc.desktop.maps.svc.ovi.com/geocoder/rgc/1.0?total=1&lat=52.308704391494393&long=13.252864412963390&token=9b87b24dffafdfcb6dfc66eeba834caa
Aug 31 18:37:33 Nokia-N900 [1621]: GLIB WARNING ** rtcom-presence-ui –
null pointer passed to the navigation_provider_location_to_address callback

After killing the nm-nav-provider process and restarting /usr/lib/nokiamaps-navigation-provider/nm-nav-provider from an xterm  a more detailed error message can be seen:

^
http://loc.desktop.maps.svc.ovi.com/geocoder/rgc/1.0?total=1&lat=52.308704391494393&long=13.252864412963390&token=9b87b24dffafdfcb6dfc66eeba834caa:1: parser error : Document is empty
^
http://loc.desktop.maps.svc.ovi.com/geocoder/rgc/1.0?total=1&lat=52.308704391494393&long=13.252864412963390&token=9b87b24dffafdfcb6dfc66eeba834caa:1: parser error : Start tag expected, ‘<‘ not found

Thus there is a problem with the request sent to Nokias web service. Most probably Nokia has changed the web service in the meanwhile. However, using the same request without the token leads to the desired result. This can be easily tried out by entering the requests URL in a web browser. Unfortunately nm-nav-provider is closed source, so it cannot easily be modified. A hex editor can be used to search for the token string and then the request can be zero terminated in front of  it.

Hexedit view of nm-nav-provider token location for webservice

Figure: hexedit view of nm-nav-provider token location for webservice

There are two positions with a matching request in the 0.109-3+0m5 version of nm-nav-provider, one at position 0x73F7 and one at 0x7689. The latter is the relevant one for the problem. Replacing the byte at this address by a zero terminates the request string and leads to a request that can be understood by Nokias web service. One has to kill the nm-nav-provider process before being able to write to the file.

Unfortunately the modified binary cannot be published here, because of license restrictions, but an easy way to patch the file can be provided. First of all, enhanced busybox needs to be installed on the N900. Then execute the following line as root user  inside an xterm:

cd /usr/lib/nokiamaps-navigation-provider/; cp nm-nav-provider nm-nav-provider.bak; killall nm-nav-provider;dd conv=notrunc bs=1 count=1 seek=30345 if=/dev/zero of=nm-nav-provider

This line works for nokiamaps-navigation-provider-0.109-3+0m5. After execution, the location can be published to contacts again. The only problem remaining is up to you. Do you really want that all your contacts know your location?

best regards
Jürgen

 

1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 5.00 out of 5)
Loading...

Looking up phone numbers with the N900

Who does not know this situation. One returns to the phone and recognizes a missed call. Then one usually wants to know who the caller is, but the phone only displays an unknown phone number. Usually the next step is to google the number  or use a reverse number search to see who called, or at least from where the call came.  This article is about improving this situation using Nokia´s smartphone N900 .

Concept

Basically there are two applications for the N900 phone which can be used to improve the above scenario. These are callerid and extcalllog. The callerid application displays the details for the phone number of an incoming call. This is done by automatically accessing a reverse number search engine. If the number is not available in the database, which happens quite often due to privacy reasons, it compares the area code with a local database and displays at least the region, the call comes from. The extcalllog application displays the call history just as the phone application of the N900 does, but it has got two major advantages. First it is not restricted to the last 30 days as the N900s phone application is, second it is open source, thus it can be extended. This makes it possible to combine the functionality of extcalllog and callerid.

Prerequirements

As a prerequirement it is necessary to install and configure the callerid application for the users region. It is available from the  extras-devel repository. Configuration is done by supplying an xml file describing the reverse search. This file has to be placed in /opt/callerid/ and named correctly. For example the xml file for the german reverse number search must have the filename de.xml. The contents of the file, taken from [1] are being shown below.

<config>
  <directory>
    <query>http://www.klicktel.de/inverssuche/index/search?method=searchSimple&amp;_dvform_posted=1&amp;phoneNumber=</query>
    <name>
      <find class="namelink"/>
    </name>
    <address>
      <find class="data track"/>
    </address>
  </directory>
</config>

For displaying the area code in case of a failed reverse lookup a local database file has to be placed in /opt /callerid/.  For Germany this file must be named de.txt. It can be created from the official list of area codes, ONB, provided by the Bundesnetzagentur.  For convenience you can download the file in proper format for callerid from here: [download#78]. Copy it to your device and as root user extract it to /opt/callerid. Afterwards the device signals incoming calls with a notification containing the callers name and address or at least, if these are not available, the callers city.

Modifications

The next step is to extend the user interface to display the details for an incoming call. Since the default N900 phone application is not open source, the extcallog application is the only application which is extensible for this purpose. It also is available from the extras-devel repository. For the new functionallity an additional button has to be added to the user interface, which calls the callerid application with the phone number for the log entry. For this the extcalllog applications source has to be extended using my patch. You may download the patch from here: [download#79]. For convenience a binary with the patched version can be downloaded from here: [download#80]. Download the binary to the device and install it with, dpkg -i extcalllog_0.6-callerid_armel.deb as root user. Or open the download in the phones browser and install it using the hildon application manager.

Usage

After installing the modified extcalllog application, it can be used as shown in figures 1 to 4. The figures show screenshots of the extcalllog application.

callerid
Figure 1: Selection of an entry in the callerid application

After tapping onto one entry of the call list (marked in red) the details page of the call is being opened. Figure 2 shows this page.

callerid details page
Figure2: Details page of a call with the “Lookup Number” button

The details page looks like the original one of the extcalllog application, but has got one more button, the “Lookup Number” button (also marked with a red point). After tapping onto the “Lookup Number” button the callerid application gets called for the callers number and displays the notification containing the callers details shown in Figure 3. (callers details are indecipherable in the screenshot, due to privacy reasons)

shot_callerid_3
Figure 3: Notification with callers details

If the callers details are not available using the reverse number search, then only a notification displaying the callers town, like in figure 4, is being shown.

shot_callerid_4
Figure 4: Notification containing callers town only

Now the N900 user is able to find out who the unknown caller is, or at least he can find out  in which area he lives.

Jürgen

References:

[1] http://talk.maemo.org/showthread.php?t=70738

[2] http://talk.maemo.org/showthread.php?t=42700

 

 

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5.00 out of 5)
Loading...

meego 1.2 Summer Release tested

Hi  folks,

I’ve tested meego SR on my N900 and it looks great. There are only problems with my german keyboard layout left, but with onscreen keyboard everything works fine.

Next I will check connecting it to anything, I’ve connected maemo to.

The installation documentation is here and it simply works. If you have a pr1.3 kernel, you only need to install uboot. Originally it can boot from a fat partition of any sd card inserted. If you want to switch back, you have only to remove the sd card. For testing it is easy.

Now I will test Meego some swipes more 😉

best regards xexplorer

You will find more info’s on meego.com. A short list of release notes can be found here.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

MeeGo 1.1 released

The MeeGo Project has released the version 1.1 for Intel Atom and ARMv7 for Download. MeeGo is the fusion of Intels Netbook OS Moblin and Nokias Maemo. The new Linux distribution is available with three different Desktops.

The Version User Experience (UX) for Netbooks uses the well known GTK Interface of the Moblin distribution. The variant  for In-Vehicle Infotainment (IVI) is optimized for in car use. The third variant Handset UX is designed for use with mobile phones and internet tablets. Handset UX should work on N900 Nokia mobile phones and is planned to be installed on the new N9 instead of Symbian-OS.

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Maemo 5 PR 1.3 is out

Maemo 5 PR1.3 was released on October 25, 2010, together with an update of the SDK for developers. The product version is 20.2010.36-2.

New features

  • Qt Mobility API 1.0.2, which is now integrated into the device software.
  • Qt Core libraries updated to 4.7.0 version.
  • Full OVI-Suite support

I will test it in the next days and tell you about

best regards

xexplorer

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

how to find wireless keys on maemo

Over time one collects lots of WEP and WPA keys with mobile devices like nokia´s n800 or n810. Often you want to use these keys with other devices or need them after reinstalling the OS.

For maemo based devices like the n800 and the n810 it is quite easy to recover the previously stored wireless keys, since they are stored unencrypted in gconf. Just open an xterm and enter the following line:

gconftool-2 -R /system/osso/connectivity/IAP |egrep ‘(pass|name|wlan_wepkey)’

The output you get is a list containing all wireless keys and network names you stored on the device. Note that the output contains the key first and the network name is being displayed a line below the corresponding key.

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 3.50 out of 5)
Loading...

siteinfo

Translator