--- zhone.orig	Mon Nov 24 09:03:29 2008
+++ /usr/bin/zhone	Mon Nov 24 15:02:33 2008
@@ -65,6 +65,7 @@
 from optparse import OptionParser
 import time
 import math
+import sqlite3
 
 illume = None
 try:
@@ -779,26 +780,39 @@
         logger.error( "error while retrieving phonebook %s" % e )
         self.busy = False
 
+    def cbPhonebookReplyFirst(self, result):
+        sql = "Select cpn.recid, coalesce(firstname, '') || ' ' || coalesce(lastname, '') || '-' || case when phone_type=1 then 'HP' when phone_type=257 then 'HM' when phone_type=769 then 'HV' when phone_type=513 then 'HF' when phone_type=2 then 'BP' when phone_type=258 then 'BM' when phone_type=770 then 'BV' when phone_type=514 then 'BF' when phone_type=1026 then 'BG' else '?' end, replace(replace(replace(replace(phone_number, '-', ''), '(', ''), ')', ''), ' ', '') from contacts inner join contactphonenumbers as cpn on contacts.recid=cpn.recid and cpn.phone_number is not null;"
+        con = sqlite3.connect('/home/root/qtopia_db.sqlite')
+        cur = con.cursor()
+        logger.info ("about to exec sql")
+        cur.execute(sql)
+        logger.info("back from sql")
+        res = cur.fetchall()
+        combined = res #+ result
+        self.cbPhonebookReply(combined)
+        cur.close()
+        con.close()
+    
     def prepare( self ):
         if not self.ready and not self.busy:
             if dbus_object.gsm_device_obj:
                 logger.info( "retrieving phonebook..." )
                 dbus_object.gsm_sim_iface.RetrievePhonebook(
                     "contacts",
-                    reply_handler=self.cbPhonebookReply,
+                    reply_handler=self.cbPhonebookReplyFirst,
                     error_handler=self.cbPhonebookError
                 )
                 self.busy = True
