Set up a Funambol server to sync Smartphone with Zimbra

Lebih tepat judul diatas berbunyi “Open Source Mobile Calendar and Contact Synchronization”.  Implementasi ini berhasil 100% persen saya terapakan pada server produksi client yang telah memiliki mailserver live dengan Zimbra Collaboration Suite (ZCS) 6.0 Open source Edition.  Pertanyaannya menjadi, bagaimana membuat/menciptakan proses  sinkronisasi(Synchronizing) Contact(Address Book) dan Calender yang ada pada Zimbra dengan handphone sejenis smartphone seperti Nokia,Iphone,Blackberrys,dsb. Untuk ini dibutuhkanlah Funambol Server dan Zimbra Connector untuk menjembatani keterbatasan pemakai Zimbra versi Open Source.

Environment setup/instalasi ini sbb :
1. Zimbra Collaboration Suite (ZCS) 6.0 Open source Edition terinstall pada platform Linux Debian 5 Lenny.
2. The Funambol Server package for GNU/Linux, saya gunakan versi terbaru yaitu funambol-8.0.1.bin (http://download.forge.objectweb.org/sync4j/funambol-8.0.1.bin)
3. Zimbra Connector (ZimbraConnector_0.5.02.s4j) (http://www.zimbra.com/forums/attachments/zimbra-mobile/3129d1252691925-zimbra-funambol-sync4j-code-zimbraconnector.zip)
4. Mobile devices untuk testing :  Nokia E61i Black dengan tools Sync yang sudah ada secara default.  Saat melakukan sinkronisasi harus terhubung ke internet baik dengan GPRS atau Wifi.
5. Funambol Admin Tool for Windows XP Profesional (http://download.forge.objectweb.org/sync4j/funambol-admin-8.0.0.exe) saya pakai ini karena server Zimbra tidak pakai GUI.

Perlu diketahui point 1,2,3 diatas berada dalam 1 server dan tidak terpisah. Pada proses ini juga Zimbra Collaboration Suite (ZCS) 6.0 Open source Edition sudah produksi dan live dengan baik.  Jadi saya tinggal bermain di point 2,3,4,5 Dengan tahapan : Install Funambol server, install Zimbra Connector modules untuk Funambol, install Funambol Admin Tool dan conect ke Funambol Server, terakhir setting pengaturan Nokia e61i untuk Synchronizing.

Berikut jalannya instalasi dan konfigurasi yang berhasil saya dokumentasikan dengan lengkap dengan gambar capture/screenshot :

Instalasi The Funambol Server :

mail:/home/gtoms# wget http://download.forge.objectweb.org/sync4j/funambol-8.0.1.bin
–14:50:33–  http://download.forge.objectweb.org/sync4j/funambol-8.0.1.bin
=> `funambol-8.0.1.bin’
Resolving download.forge.objectweb.org… 88.191.79.12, 2a01:e0b:1:79:2e0:f4ff:fe1b:b525
Connecting to download.forge.objectweb.org|88.191.79.12|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 177,517,345 (169M) [application/octet-stream]
100%[========================================>] 177,517,345  457.47K/s    ETA 00:00
14:57:16 (431.94 KB/s) – `funambol-8.0.1.bin’ saved [177517345/177517345]

mail:/home/gtoms# sh funambol-8.0.1.bin

GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007

Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license
———skip aja deh panjang banget————

You should also get your employer (if you work as a programmer) or school,
if any, to sign a “copyright disclaimer” for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<http://www.gnu.org/licenses/>.

Do you agree to the above license terms? [yes or no]
yes
Directory to extract Funambol [/opt] <return to accept>?

Unpacking…
Checksumming…
Extracting… to /opt/Funambol
Do you want to start the server? [yes or no]
yes

mail:/home/gtoms#

mail:/home/gtoms# ps axf |grep funambol

7924 pts/0 S+ 0:00 \_ grep funambol
21886 ? Sl 11:25 /opt/Funambol/tools/jre-1.5.0/jre/bin/java -Xmx512M -Dfunambol.debug=false -Dfunambol.home=/opt/Funambol -Dfile.encoding=UTF-8 -Djava.library.path=/opt/Funambol/ds-server/lib/linux -Djavax.net.ssl.trustStore=/opt/Funambol/ds-server/lib/security/cacerts -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8101 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/opt/Funambol/tools/tomcat/conf/logging.properties -Djava.endorsed.dirs=/opt/Funambol/tools/tomcat/endorsed -classpath :/opt/Funambol/tools/tomcat/bin/bootstrap.jar -Dcatalina.base=/opt/Funambol/tools/tomcat -Dcatalina.home=/opt/Funambol/tools/tomcat -Djava.io.tmpdir=/opt/Funambol/tools/tomcat/temp org.apache.catalina.startup.Bootstrap start
22489 ? Sl 1:39 /opt/Funambol/tools/jre-1.5.0/jre/bin/java -Xmx256M -Dfile.encoding=UTF-8 org.hsqldb.Server -database.0 /opt/Funambol/tools/hypersonic/data/funambol -dbname.0 funambol
22494 ? Sl 1:34 /opt/Funambol/tools/jre-1.5.0/jre/bin/java -Dfile.encoding=UTF-8 -Dfunambol.home=/opt/Funambol -Djava.net.preferIPv4Stack=true -Xmx256M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7101 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false com.funambol.ctp.server.CTPServer
22528 ? Sl 1:22 /opt/Funambol/tools/jre-1.5.0/jre/bin/java -Dfile.encoding=UTF-8 -Dfunambol.home=/opt/Funambol -Dfunambol.pushlistener.config.bean=com/funambol/email/inboxlistener/InboxListenerConfiguration.xml -Djava.library.path=/opt/Funambol/inbox-listener/lib/linux -Djavax.net.ssl.trustStore=/opt/Funambol/inbox-listener/lib/security/cacerts -Djava.net.preferIPv4Stack=true -Xmx256M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=4101 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false com.funambol.email.inboxlistener.service.InboxListener
22538 ? Sl 1:23 /opt/Funambol/tools/jre-1.5.0/jre/bin/java -Dfile.encoding=UTF-8 -Dfunambol.home=/opt/Funambol -Dfunambol.pushlistener.config.bean=com/funambol/pimlistener/PIMListenerConfiguration.xml -Djava.net.preferIPv4Stack=true -Xmx256M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=3101 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false com.funambol.pimlistener.service.PimListener

mail:/home/gtoms#

mail:/home/gtoms# cd /opt/Funambol/
mail:/opt/Funambol# ls
admin  bin  config  ctp-server  ds-server  inbox-listener  LICENSES  LICENSE.txt  logs  pim-listener  plug-ins  Readme.txt  tools
mail:/opt/Funambol#

Sampai disini selesai instalasi Funambol Server, untuk melihat bisa browse ke http://202.5x.xxx.70:8080/funambol/

Untitled-1 copy2

kemudian test browse juga ke: http://202.5x.xxx.70:8080/funambol/ds
akan keluar output sbb :

Funambol Data Synchronization Server v.8.0.0

Man=Funambol
Mod=DS Server
SwV=8.0.0
HwV=-
FwV=-
OEM=-
DevID=funambol
DevTyp=server
VerDTD=1.2
UTC=true
SupportLargeObjs=true
SupportNumberOfChanges=true
Ext=X-funambol-smartslow

Instalasi dan Konfigurasi Zimbra Connector

Zimbra Connector disini merupakan modules untuk Funambol. Download source file http://www.zimbra.com/forums/attachments/zimbra-mobile/3129d1252691925-zimbra-funambol-sync4j-code-zimbraconnector.zip kemudian unzip lalu pindahkan file ZimbraConnector_0.5.02.s4j ke dalam folder /opt/Funambol/ds-server/modules

Kemudian kita membuat file XML untuk dapat bekerja dengan ru.korusconsulting.connector.config sourcesnya bisa didownload di https://henry.gultom.or.id/download/ZimbraConnector.xml dan copy ke dalam folder : /opt/Funambol/config/connector/

Setiap modul yang akan diinstall harus kita definisikan dahulu pada file install.properties di folder ds-server.

mail:/opt/Funambol/config/connector# nano /opt/Funambol/ds-server/install.properties

——-skip———-
modules-to-install=content-provider-8.0.0,email-connector-8.0.0,foundation-8.0.1,phones-support-8.0.1,webdemo-8.0.0,ZimbraConnector

mail:/opt/Funambol/bin# ./install-modules

[echo] Funambol Data Synchronization Server will be installed on the Tomcat 6.0.x application server
[echo] Undeploying funambol…
[echo] Pre installation for modules content-provider-8.0.0,email-connector-8.0.0,foundation-8.0.1,phones-support-8.0.1,webdemo-8.0.0,ZimbraConnector_0.6.00
[echo] content-provider-8.0.0 pre-installation…
[echo] content-provider-8.0.0 pre-installation successfully completed
[echo] email-connector-8.0.0 pre-installation…
[echo] email-connector-8.0.0 pre-installation successfully completed
[echo] foundation-8.0.1 pre-installation…
[echo] foundation-8.0.1 pre-installation successfully completed
[echo] phones-support-8.0.1 pre-installation…
[echo] phones-support-8.0.1 pre-installation successfully completed
[echo] webdemo-8.0.0 pre-installation…
[echo] webdemo-8.0.0 pre-installation successfully completed
[echo] ZimbraConnector_0.6.00 pre-installation…
[echo] ZimbraConnector_0.6.00 pre-installation successfully completed

[echo] Copying configuration files

[echo] Post installation for modules content-provider-8.0.0,email-connector-8.0.0,foundation-8.0.1,phones-support-8.0.1,webdemo-8.0.0,ZimbraConnector
[echo] has.install: true
[echo] Starting custom installation…
[echo] Install Funambol Content Provider on Tomcat (/opt/Funambol/ds-server/output/content-provider-8.0.0)
[echo] Funambol home: (/opt/Funambol/ds-server)
[echo] Content Provider installation successfully completed
[echo] content-provider-8.0.0 installation…
[echo] Database installation for module content-provider-8.0.0 on hypersonic (/opt/Funambol/ds-server)

[iterate] The Funambol Data Synchronization Server installation program can now create
[iterate] the database required by the module content-provider-8.0.0 (if any is needed).
[iterate] You can skip this step if you have already a valid database created
[iterate] or the module does not require a database.

[iterate] If you choose ‘y’ your existing data will be deleted.

[iterate] Do you want to recreate the database?
[iterate] (y,n)
y
[echo] content-provider-8.0.0 installation successfully completed
[echo] has.install: ${has.install}
[echo] email-connector-8.0.0 installation…
[echo] Deploying deploy.wsdd…
y [echo] Database installation for module email-connector-8.0.0 on hypersonic (/opt/Funambol/ds-server)

[iterate] The Funambol Data Synchronization Server installation program can now create
[iterate] the database required by the module email-connector-8.0.0 (if any is needed).
[iterate] You can skip this step if you have already a valid database created
[iterate] or the module does not require a database.

[iterate] If you choose ‘y’ your existing data will be deleted.

[iterate] Do you want to recreate the database?
[iterate] (y,n)
y

[iterate] The Funambol Data Synchronization Server installation program can now create
[iterate] the database required by the module email-connector-8.0.0 (if any is needed).
[iterate] You can skip this step if you have already a valid database created
[iterate] or the module does not require a database.

[iterate] If you choose ‘y’ your existing data will be deleted.

[iterate] Do you want to recreate the database?
[iterate] (y,n)
y
[echo] email-connector-8.0.0 installation successfully completed
[echo] has.install: true
[echo] Starting custom installation…
[echo] Foundation Installation
[echo] Foundation installation successfully completed
[echo] foundation-8.0.1 installation…
[echo] Database installation for module foundation-8.0.1 on hypersonic (/opt/Funambol/ds-server)

[iterate] The Funambol Data Synchronization Server installation program can now create
[iterate] the database required by the module foundation-8.0.1 (if any is needed).
[iterate] You can skip this step if you have already a valid database created
[iterate] or the module does not require a database.

[iterate] If you choose ‘y’ your existing data will be deleted.

[iterate] Do you want to recreate the database?
[iterate] (y,n)
y
[echo] foundation-8.0.1 installation successfully completed
[echo] has.install: ${has.install}
[echo] phones-support-8.0.1 installation…
[echo] Database installation for module phones-support-8.0.1 on hypersonic (/opt/Funambol/ds-server)

[iterate] The Funambol Data Synchronization Server installation program can now create
[iterate] the database required by the module phones-support-8.0.1 (if any is needed).
[iterate] You can skip this step if you have already a valid database created
[iterate] or the module does not require a database.

[iterate] If you choose ‘y’ your existing data will be deleted.

[iterate] Do you want to recreate the database?
[iterate] (y,n)
y
[echo] phones-support-8.0.1 installation successfully completed
[echo] has.install: true
[echo] Starting custom installation…
[echo] Install Funambol Web Demo Client on Tomcat (/opt/Funambol/ds-server/output/webdemo-8.0.0)
[echo] Funambol home: (/opt/Funambol/ds-server)
[echo] Web Demo Client installation successfully completed
[echo] webdemo-8.0.0 installation…
[echo] Database installation for module webdemo-8.0.0 on hypersonic (/opt/Funambol/ds-server)

[iterate] The Funambol Data Synchronization Server installation program can now create
[iterate] the database required by the module webdemo-8.0.0 (if any is needed).
[iterate] You can skip this step if you have already a valid database created
[iterate] or the module does not require a database.

[iterate] If you choose ‘y’ your existing data will be deleted.

[iterate] Do you want to recreate the database?
[iterate] (y,n)
y
[echo] webdemo-8.0.0 installation successfully completed
[echo] has.install: ${has.install}
[echo] ZimbraConnector installation…
[echo] Database installation for module ZimbraConnector on hypersonic (/opt/Funambol/ds-server)

[iterate] The Funambol Data Synchronization Server installation program can now create
[iterate] the database required by the module ZimbraConnector (if any is needed).
[iterate] You can skip this step if you have already a valid database created
[iterate] or the module does not require a database.

[iterate] If you choose ‘y’ your existing data will be deleted.

[iterate] Do you want to recreate the database?
[iterate] (y,n)
y
[echo] ZimbraConnector installation successfully completed
[war] Warning: selected war files include a WEB-INF/web.xml which will be ignored (please use webxml attribute to war task)
[echo] Remove output dir

BUILD SUCCESSFUL
Total time: 2 minutes 8 seconds

mail:/opt/Funambol/bin#

Selesai instalasi Zimbra Connector dan siap digunakan, tinggal mengkonfigurasi melalui Funambol Admin Tools.

Dikarenakan pada server produksi haram memakai GUI, maka untuk mengadminister Funambol server saya gunakan software Funambol Admin Tool for Windows XP Profesional yang bisa didonwload di http://download.forge.objectweb.org/sync4j/funambol-admin-8.0.0.exe . Lalu install file tersebut sampai selesai.

installfunamboladmintools

Untuk memulai administer Funambol Server :  PIlih Start menu, Programs -> Funambol -> Administration Tool.

funamboladmintools

Setelah jendela Funambol Admin Tools kebuka, Pilih File > Login

Ganti Hostname/IP dengan Hostname/IP tempat Server Funambol/Zimbra terinstall bisa berupa hostname Zimbra atau IP Public pada server ini, Port : 8080 , kemudian Username : Admin dan Password ganti dari defaultnya ke password baru. Kemudian tutup jendela Funambol Admin Tools dan buka kembali, Lalu pilih File Login untuk masuk ke Funambol Server. Jika berhasil akan tampak seperti gambar dibawah ini :

funamboladmintools2

Terlihat IP/Hostname Funambol server pada menu sebelah kiri, dan pada tree Modules telah terisi email,foundation,zimbra.  Untuk dapat mengedit tree  Zimbra SyncSource  kita harus menghapus beberapa tree pada foundation agar tidak bentrok penggunaannya.

Data yang harus didelete pada tree foundation connector :
PIM Calendar SyncSource — cal; event; scal; stask; task
PIM Contact SyncSource — card; scard

Setelah didelete slanjutnya kita Edit tree Zimbra untuk memasukkan SyncSource, fungsinya source ini akan menjadi template pada mobile devices yang kita ingin hubungkan dengan Zimbra. Terus terang diawal saya salah beberapa kali dalam memasukkan item yang benar sampai akhirnya sukses.

Ada 3 tree pada Modules Zimbra yang perlu diedit yaitu :
1. CalendarSyncSource(cal, event, scal, stask and task)
2. ContactSyncSource(card, scard)
3. GALSyncSource(zimbraGalContacts)

Berikut salah satu konfigurasi di tempat saya yang berjalan sukses :
Modules > zimbra > FunambolZimbraConnector>CalendarSyncSource

Source URI = cal
Name = cal
Zimbra URL = http://202.51.2xx.xx/service/soap/

Untuk event,scal,stask,taskcard,scardzimbraGalContacts, tinggal mengikut diatas. Selamat mencoba. Salah dikit tak bisa Sync dengan mobile devices :)

Setelah selesai tampilannya akan sbb :

funamboladmintools3

Asministrasi Funambol lainnya menggunakan Funambol Admin Tools ini adalah menambah User yang isinya sama dengan user email di Zimbra. Misalnya di mailserver zimbra ada user dengan alamat email test@galxxxx.co.id maka pada Funambol Admin Tools bagian tree Users tambahkan user ini,  misalnya : Username : test@galxxxx.co.id password : sama dengan password account user test di  Zimbra. Setelah menambah User lanjut dengan menambah Devices, disini kita isikan data mobile devices yang hendak kita koneksikan  :

ID : 351878010770661 (diisi nomer IMEI )
Type : Nokia E61i
Timezone(TZ) : Asia/Jakarta(GMT+07:00)
Conversion to current TZ : Enabled(default)
Charset : UTF-8
Address : –
Phone Number : +6281392865642
Notification Type : OMA DS 1.2
Description : My Lovely E61i Black Version

Settingan terakhir adalah Principles dimana kita memasukkan user test@galxxxx.co.id ke dalam Devices Id : IMEI:351878010770661

prinsipal

Jika masih bingung sebaiknya baca dulu manualnya http://funambol.com/docs/v80/funambol-installation-and-administration-guide.pdf

Selesai proses Instalasi dan konfigurasi Funambol Server dan Zimbra Connector(point 2,3,5). Sekarang masuk ke Setting Mobile Devices(smartphone) yang untuk uji coba memakai Nokia E61i Black.

e61i

Synchronizing  Zimbra with Nokia E61i

Settingan Sync pada E61i terletak pada :

Menu > Connect > Sync

Kita perlu membuat baru sync profile :  Options > New sync profile

Berikut Nokia’s connection settings pada E61i :

Server version: 1.2
Server ID: funambol
Data bearer: Internet
Access point: Always ask
Host address: https://202.51.2xx.xx/funambol/ds
Port: 8080
Username: test@galxxxx.co.id
Password: ***********
Allow sync requests: Yes
Accept all sync reqs.: Yes
Network authentic.: No

Screenshootnya :

Screenshot0040

Screenshot0052

Screenshot0054

Screenshot0045

Untuk menjalankan : Funambolzimbra > Option > Synchronise

Log sukses synchronise :

mail:/opt/Funambol/logs/ds-server# tail -f ds-server.log
[2009-10-25 22:28:02,408] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [] [] [] Handling incoming request
[2009-10-25 22:28:02,408] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [] [] [] Request URL: http://202.5x.xxx.70:8080/funambol/ds
[2009-10-25 22:28:02,408] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [] [] [] Requested sessionId: null
[2009-10-25 22:28:03,418] [funambol.handler] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] test@galxxxx.co.id/IMEI:351878010770661 logged in.
[2009-10-25 22:28:04,132] [funambol.zimbra] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] LOAD ZimbraConnector 0.5.02
[2009-10-25 22:28:04,774] [funambol.engine.pipeline] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Output processing stopped by com.funambol.foundation.synclet.BeanShellSynclet@d11f32[script=com/funambol/server/engine/pipeline/phones-support/bsh/NokiaS60out.bsh,header=user-agent,pattern=Nokia SyncML HTTP Client|S60 SyncML HTTP Client] (reason: NokiaS60out Synclet finished)
[2009-10-25 22:28:04,779] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxxa.co.id] [] Request processed.
[2009-10-25 22:28:14,984] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxxa.co.id] [] Handling incoming request
[2009-10-25 22:28:14,984] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Request URL: http://202.5x.xxx.70:8080/funambol/ds
[2009-10-25 22:28:14,985] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Requested sessionId: 2ECC7044874ADE344ACD67042E50D096
[2009-10-25 22:28:23,193] [funambol.engine] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Starting synchronization …
[2009-10-25 22:28:23,445] [funambol.engine.strategy] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [card] Preparing slow synchronization
[2009-10-25 22:28:23,446] [funambol.engine.strategy] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxxa.co.id] [card] Last call
[2009-10-25 22:28:25,774] [funambol.engine.strategy] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [card] Preparation completed.
[2009-10-25 22:28:25,774] [funambol.engine.strategy] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [card] Synchronizing…
[2009-10-25 22:29:06,049] [funambol.engine.pipeline] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Output processing stopped by com.funambol.foundation.synclet.BeanShellSynclet@d11f32[script=com/funambol/server/engine/pipeline/phones-support/bsh/NokiaS60out.bsh,header=user-agent,pattern=Nokia SyncML HTTP Client|S60 SyncML HTTP Client] (reason: NokiaS60out Synclet finished)
[2009-10-25 22:29:06,312] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Request processed.
[2009-10-25 22:29:07,656] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Handling incoming request
[2009-10-25 22:29:07,656] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Request URL: http://202.5x.xxx.70:8080/funambol/ds
[2009-10-25 22:29:07,656] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Requested sessionId: 2ECC7044874ADE344ACD67042E50D096
[2009-10-25 22:29:09,866] [funambol.engine.pipeline] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Output processing stopped by com.funambol.foundation.synclet.BeanShellSynclet@d11f32[script=com/funambol/server/engine/pipeline/phones-support/bsh/NokiaS60out.bsh,header=user-agent,pattern=Nokia SyncML HTTP Client|S60 SyncML HTTP Client] (reason: NokiaS60out Synclet finished)
[2009-10-25 22:29:09,877] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Request processed.
[2009-10-25 22:29:11,044] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Handling incoming request
[2009-10-25 22:29:11,044] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Request URL: http://202.5x.xxx.70:8080/funambol/ds
[2009-10-25 22:29:11,044] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Requested sessionId: 2ECC7044874ADE344ACD67042E50D096
[2009-10-25 22:29:11,413] [funambol.handler] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Handling mapping …
[2009-10-25 22:29:11,413] [funambol.handler] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Performing mapping …
[2009-10-25 22:29:11,449] [funambol.zimbra] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [card] Status:’ITEM ADDED’ for a ‘Add’ for this items: , 258
[2009-10-25 22:29:11,450] [funambol.zimbra] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [card] Status:’ITEM ADDED’ for a ‘Add’ for this items: , 259
[2009-10-25 22:29:11,450] [funambol.zimbra] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [card] Status:’ITEM ADDED’ for a ‘Add’ for this items: , 263
[2009-10-25 22:29:11,451] [funambol.zimbra] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [card] Status:’ITEM ADDED’ for a ‘Add’ for this items: , 268
[2009-10-25 22:29:11,451] [funambol.zimbra] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [card] Status:’ITEM ADDED’ for a ‘Add’ for this items: , 269
[2009-10-25 22:29:11,452] [funambol.zimbra] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [card] Status:’ITEM ADDED’ for a ‘Add’ for this items: , 270
[2009-10-25 22:29:11,501] [funambol.engine.source] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [card] card: 0 new items added, 0 existing items updated, 0 items deleted.
[2009-10-25 22:29:11,502] [funambol.engine] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] IMEI:351878010770661/test@galxxxx.co.id: synchronization completed
[2009-10-25 22:29:12,130] [funambol.engine.pipeline] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Output processing stopped by com.funambol.foundation.synclet.BeanShellSynclet@d11f32[script=com/funambol/server/engine/pipeline/phones-support/bsh/NokiaS60out.bsh,header=user-agent,pattern=Nokia SyncML HTTP Client|S60 SyncML HTTP Client] (reason: NokiaS60out Synclet finished)
[2009-10-25 22:29:12,132] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Request processed.
[2009-10-25 22:29:12,137] [funambol.transport.http] [INFO] [2ECC7044874ADE344ACD67042E50D096] [IMEI:351878010770661] [test@galxxxx.co.id] [] Closing session 2ECC7044874ADE344ACD67042E50D096
[2009-10-25 22:30:20,197] [funambol.transport.http] [INFO] [D45F8564B2C57679692C6F94B1B3C15E] [] [] [] Closing session D45F8564B2C57679692C6F94B1B3C15E
[2009-10-25 22:30:25,509] [funambol.transport.http] [INFO] [DA0F67EA1BFC0C825274858B2DC0F443] [] [] [] Closing session DA0F67EA1BFC0C825274858B2DC0F443
[2009-10-25 22:31:46,564] [funambol.transport.http] [INFO] [0E2FABB594CFD5EE62907DE63377A549] [] [] [] Closing session 0E2FABB594CFD5EE62907DE63377A549

Log /opt/Funambol/logs/ds-server/ds-server.log diatas menunjukkan proses sync berjalan lancar tanpa error.  Untuk melihat data contact yang di sync dari Nokia E61i ke Zimbra, user test@galxxxx.co.id login ke Zimbra Desktop atau Webmailnya dan cek penambahan Address Booknya atau Calender.

Sebelumnya saya sempat gagal dengan dengan error :  [funambol.zimbra] [ERROR] [card] I/O Error diikuti java.net.SocketException: Unexpected end of file from server, yang disebabkan tidak samanya username dan pasword pada user di Funambol dan email account di Zimbra.  Prinsipnya settingan Modul Zimbra di Funambol dan settngan Sync di mobile devices haruslah benar.

28 thoughts on “Set up a Funambol server to sync Smartphone with Zimbra

  1. wawan

    mas gultom saya coba install funambol n berhasil saat saya panggil kluar error kaya gini

    Not Found

    The requested URL was not found on this server.

    Please try again later.

    « Go back

    ERROR: 404

    kira2 apa tuch ya….oh ya tu yg di panggil pada broeser ip public or ip mail server.

    makasih

  2. wawan

    hasil nya itu tadi mas henry kya yg bawah ini :

    —————————————
    Not Found

    The requested URL was not found on this server.

    Please try again later.

    « Go back

    ERROR: 404

    —————————————————–

    saya panggil ip mailserver na

  3. wawan

    ini hasil yg di minta mas henry

    [root@mail ~]# netstat -nltup |grep 8080
    [root@mail ~]# ps axf |grep funambol
    31643 pts/2 S+ 0:00 \_ grep funambol
    [root@mail ~]#

    thx u

  4. Henry Gultom

    itu aja hasilnya ? kalau itu berarti belum running dong instalasi funambolnya, please baca berulang2 dokumentasi/wiki nya baik2.

    kalau dah jalan hasilnya begini :
    mail:/home/gtoms# ps axf |grep funambol
    13528 pts/0 S+ 0:00 \_ grep funambol
    28473 ? Sl 1:46 /opt/Funambol/tools/jre-1.5.0/jre/bin/java -Xmx256M -Dfile.encoding=UTF-8 org.hsqldb.Server -database.0 /opt/Funambol/tools/hypersonic/data/funambol -dbname.0 funambol
    28479 ? Sl 1:49 /opt/Funambol/tools/jre-1.5.0/jre/bin/java -Dfile.encoding=UTF-8 -Dfunambol.home=/opt/Funambol -Djava.net.preferIPv4Stack=true -Xmx256M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7101 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false com.funambol.ctp.server.CTPServer
    28505 ? Sl 6:29 /opt/Funambol/tools/jre-1.5.0/jre/bin/java -Xmx512M -Dfunambol.debug=false -Dfunambol.home=/opt/Funambol -Dfile.encoding=UTF-8 -Djava.library.path=/opt/Funambol/ds-server/lib/linux -Djavax.net.ssl.trustStore=/opt/Funambol/ds-server/lib/security/cacerts -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8101 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/opt/Funambol/tools/tomcat/conf/logging.properties -Djava.endorsed.dirs=/opt/Funambol/tools/tomcat/endorsed -classpath :/opt/Funambol/tools/tomcat/bin/bootstrap.jar -Dcatalina.base=/opt/Funambol/tools/tomcat -Dcatalina.home=/opt/Funambol/tools/tomcat -Djava.io.tmpdir=/opt/Funambol/tools/tomcat/temp org.apache.catalina.startup.Bootstrap start
    28513 ? Sl 1:55 /opt/Funambol/tools/jre-1.5.0/jre/bin/java -Dfile.encoding=UTF-8 -Dfunambol.home=/opt/Funambol -Dfunambol.pushlistener.config.bean=com/funambol/email/inboxlistener/InboxListenerConfiguration.xml -Djava.library.path=/opt/Funambol/inbox-listener/lib/linux -Djavax.net.ssl.trustStore=/opt/Funambol/inbox-listener/lib/security/cacerts -Djava.net.preferIPv4Stack=true -Xmx256M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=4101 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false com.funambol.email.inboxlistener.service.InboxListener
    28518 ? Sl 1:34 /opt/Funambol/tools/jre-1.5.0/jre/bin/java -Dfile.encoding=UTF-8 -Dfunambol.home=/opt/Funambol -Dfunambol.pushlistener.config.bean=com/funambol/pimlistener/PIMListenerConfiguration.xml -Djava.net.preferIPv4Stack=true -Xmx256M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=3101 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false com.funambol.pimlistener.service.PimListener
    mail:/home/gtoms#

    mail:/home/gtoms# netstat -nltup |grep 8080
    tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 28505/java
    mail:/home/gtoms#

  5. wawan

    allow mas henry saya dah coba install ini hasil na

    [root@mail Funambol]# ls
    admin config ds-server LICENSES logs plug-ins tools
    bin ctp-server inbox-listener LICENSE.txt pim-listener Readme.txt
    [root@mail Funambol]#

  6. delfry

    push email nya sudah bisa juga ya pak?
    untuk mengaktifkan fitur push email, bisa dipandu step by step nya pak?

  7. budi

    saya pingin pake yg opensource bwt kantor, tapi pengen rubah halaman depan

    mas henry, mau tanya :

    gimana caranya rubah tampilan depan zimbra?
    btw.utk zzimbra yg open source katanya gak boleh dirubah ya?

  8. putu

    maap sebelumnya….
    saya masih awam dengan funambol dan zimbra…
    mohon bantuan dari mas henry…
    saya ingin mengangkat topik ini sebagai judul skripsi,tp saya bngung apa yang harus dilakukan pertama kali…
    saya sudah install dns server..tahap berikutnya saya kurang paham mas henry…
    mohon petunjuk dari mas henry..
    sekali lagi terimakasih banyak….

  9. Henry Gultom

    @Putu,

    Sudah ada 2 orang yg mengangkat sebagian artikel saya menjadi skripsi mereka dan sukses meraih nilai baik. Ada baiknya Putu mengirimkan surat keterangan dahulu dari kampus mengenai judul yang akan anda angkat dan meminta ijin ke saya. suratnya kirim ke email setelah itu saya akan bantu.

  10. putu

    mohon maap sebelumnya mas henry…
    saya kurang mengerti ttg surat keterangan yang mas henry maksud..bagaimana formatnya mas henry??
    dan juga surat izinnya??
    mohon penjelasan dari mas henry
    kalo boleh saya tau alamat email dari mas henry…
    terimakasih mas henry

  11. Imam

    Met pagi Mas..Artikelnya bagus2 banget,kebetulan saya sedang belajar buat mail server..Mau nanya mas kalo misalnya kita pengen data user (misalnya alamat email user) yang ada diserver dilindungi ato dienkript itu gimana caranya?Terus bagusny pakai algoritma apa ya?
    Mohon bantuannya..
    Trimakasih mas :-)

  12. gtoms

    @imam :

    gunakan sistem kripto asimetris seperti RSA(Rivest Shamir Adleman), zimbranya di integrasi dengan certificate authority(CA) yang dapat memproduksi public key dan private key.

    yang pernah saya implementasi menggunakan EJBCA dan Dog Tag. Keduanya cukup populer sebagai open source untuk pembuatan public key infrastructure(PKI).

  13. coky

    mas henry mohon bimbingan dan petunjuk:
    setelah sya ketikkan perinta ps axf |grep funambol keluar output spt dibawah
    tapi saya masih bngung.,knp tidak ad coretan seperti output mas henry. dan sya tidak bsa mengakses FUnambolnya.
    terimakasih….

    root@zimbra:/opt/Funambol# ps axf |grep funambol
    4651 pts/0 S+ 0:00 | \_ grep funambol
    26829 pts/0 Sl 0:01 /opt/Funambol/tools/jre-1.5.0/jre/bin/java -Xmx256M -Dfile.encoding=UTF-8 org.hsqldb.Server -database.0 /opt/Funambol/tools/hypersonic/data/funambol -dbname.0 funambol
    26837 pts/0 Sl 0:02 /opt/Funambol/tools/jre-1.5.0/jre/bin/java -Dfile.encoding=UTF-8 -Dfunambol.home=/opt/Funambol -Djava.net.preferIPv4Stack=true -Xmx256M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7101 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false com.funambol.ctp.server.CTPServer
    26882 pts/0 Sl 0:02 /opt/Funambol/tools/jre-1.5.0/jre/bin/java -Dfile.encoding=UTF-8 -Dfunambol.home=/opt/Funambol -Dfunambol.pushlistener.config.bean=com/funambol/email/inboxlistener/InboxListenerConfiguration.xml -Djava.library.path=/opt/Funambol/inbox-listener/lib/linux -Djavax.net.ssl.trustStore=/opt/Funambol/inbox-listener/lib/security/cacerts -Djava.net.preferIPv4Stack=true -Xmx256M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=4101 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false com.funambol.email.inboxlistener.service.InboxListener
    26893 pts/0 Sl 0:02 /opt/Funambol/tools/jre-1.5.0/jre/bin/java -Dfile.encoding=UTF-8 -Dfunambol.home=/opt/Funambol -Dfunambol.pushlistener.config.bean=com/funambol/pimlistener/PIMListenerConfiguration.xml -Djava.net.preferIPv4Stack=true -Xmx256M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=3101 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false com.funambol.pimlistener.service.PimListener

  14. coky

    maap nanya lg mas henry
    untuk perintah: netstat -nltup |grep 8080
    tidak mau jalan mas…
    apa mungkin bentrok dengan mail zimbra??

    karena setelah saya cek dengan perinta netstat -nltup tidak ada port 8080 yg terbuka mas.
    mohon petunjuk dari mas henry
    terimakasih..

  15. putu

    mas henry maap menggaggu…

    saya mau tanya ttg funambol administration tools. apakah diinstall pada satu server juga atau diinstall pada komputer yg lain??
    saya sudah coba menginstall pada laptop pribadi,tp tidak bsa mengakses funambol servernya. selalu gagal dalam login dan muncul warning:
    host not found or not reachable,please verify the connectioin parameters

    mohon bimbingan dari mas henry…
    terimakasih

  16. gtoms

    @Putu
    funambol administration tools itu tidak diinstall di server funambolnya, bisa diinstall di komputer lain dengan OS Windows XP.

    untuk host not found or not reachable, please verify the connectioin parameters, pastikan dari laptop anda ke server terkoneksi dengan baik,test ping IP dan hostname jalan.

  17. putu

    terimakasih mas henry…
    ternyata saya masih salah dalam proses instalasi funambol servernya.
    saat masuk opt/Funambol/bin:./install-modules
    keluar output spt dbawah:
    BUILD FAILED
    /opt/Funambol/ds-server/install/install.xml:197: The following error occurred while executing this line:
    /opt/Funambol/ds-server/install/install-modules.xml:101: The following error occurred while executing this line:
    /opt/Funambol/ds-server/install/install-modules.xml:126: Error while expanding /opt/Funambol/ds-server/modules/ZimbraConnector.s4j

    mohon petunjuk dari mas henry…
    apakah zimbra connector harus mengikuti spesifikasi atau boleh bebas mas henry??
    terimakasih…

  18. putu

    maaf mengganggu mas henry,,setelah ZimbraConnector_0.5.02.zip saya unzip filenya menjadi ru.korusconsulting kemudian file tersebut saya pindahkan ke /opt/Funambol/ds-server/modules :
    apakah benar langkah yg saya lakukan tersebut mas henry??

    isi dari install.properties di ds-server sudah saya samakan dg tutorial mas henry, yaitu ditambahkan ZimbraConnector. seperti dibawah:
    # Modules definitions#modules-to-install=content-provider-8.0.0,email-connector-8.0.0,foundation-8.0.1,phones-support-8.0.1,webdemo-8.0.0,ZimbraConnector

    mohon bimbingan dari mas henry.
    TERIMAKASIH….

  19. PUTU

    Maap saya mengganggu mas Henry,

    bisakah setting di device pada funambol administration tool di reset??
    karena pada search devices saya lupa descriptionnya…
    mohon balasan dan petunjuk dari Mas Henry
    terimakasih

  20. putu

    maap mengganggu mas henry..
    saat saya cek ds-server.log muncul output:
    [2010-09-21 00:18:46,777] [funambol.engine] [ERROR] [9831E440D3949C8205D5D190001C5C5A] [IMEI:356059033306255] [adi@mail.zimbra.ource configuration for source notes
    com.funambol.framework.server.store.NotFoundException: Source not found for notes
    at com.funambol.server.store.SyncSourcePersistentStore.read(SyncSourcePersistentStore.java:183)
    at com.funambol.server.store.PersistentStoreManager.read(PersistentStoreManager.java:167)
    at com.funambol.server.engine.Sync4jEngine.getServerSource(Sync4jEngine.java:1186)
    at com.funambol.server.engine.Sync4jEngine.checkServerDatabase(Sync4jEngine.java:2274)
    at com.funambol.server.engine.Sync4jEngine.prepareDatabases(Sync4jEngine.java:1351)
    at com.funambol.server.session.SyncSessionHandler.processInitMessage(SyncSessionHandler.java:1246)
    at com.funambol.server.session.SyncSessionHandler.processInitSyncMapMessage(SyncSessionHandler.java:926)
    at com.funambol.server.session.SyncSessionHandler.processMessage(SyncSessionHandler.java:526)
    at com.funambol.server.engine.SyncAdapter.processInputMessage(SyncAdapter.java:533)
    at com.funambol.server.engine.SyncAdapter.processWBXMLMessage(SyncAdapter.java:369)
    at com.funambol.transport.http.server.LocalSyncHolder.processWBXMLMessage(LocalSyncHolder.java:118)
    at com.funambol.transport.http.server.Sync4jServlet.doPost(Sync4jServlet.java:397)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.funambol.transport.http.server.LogContextFilter.doFilter(LogContextFilter.java:115)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)

    mohon bimbingan dari mas henry. apa yang salah dalam settingan funambol server??
    terimakasih mas henry

  21. eko

    Mas Gultom,
    Funambol saya sudah jalan , tetapi kenapa kl saya akses dari ip external tidak bisa ya?
    kl diakses dari ip local 192.168.x.x bisa. mohon pencerahan?
    tks

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.