Ok, I was busy with messing with my iPhone and the 2.2 Update, but I feel that I am back on track now. In the first part I described a little bit what I am looking for when it comes to actually use your smart phone in a serious way. My central point is synchronization. I need to be able to access my information (including calendar data, contacts and email) whereever I go and work, including my iPhone and my various private and corporate PCs. And I need OTA sync, of course. No offline "sync when we are at home next time" type of thing, if I enter an appointment in my phone, walk in the door, sit down at my desk and open Thunderbird, I want to see that new appointment without having to fire off a dedicated sync software or - worst case - use a USB cable.
When I fiddled around with the iPhone I soon found out that it basically offers all the synchronization stuff with its MS Exchange integration. The problem is: I am a Linux guy, I have access to a number of Windows PCs but my main machine(s) are running Ubuntu. And, I do not have an Exchange server which I can mess around with ... and I do not want to :-)
First idea: Trying to "sync with the cloud"
I created an MS Exchange Account with my ISP (who offers this kind of scary thing) for quite some money. I also tried out mobileMe but both solutions have a big drawback: No Linux client software. I already mentioned that I am using Mozilla Thunderbird, mainly because it is available on both Linux and Windows and because of its crazy genius plug in capabilities. I will probably elaborate more on all the "add ons" I use in a separate post. But this was a big problem, I could not use Outlook on Linux (which is probably a good thingtm) and I simply did not find anything that would deal nice with an Exchange server.
Second negative point: All my private data would be in the hands of the company that runs the server. Although I am not paranoid, I would want to avoid that if ever possible.
Having your own Exchange server on Linux is fortunately not entirely impossible. A company called Communigate Software offers a powerful communication server software called Communigate Pro. And guess what? They offer a free version called "Community Edition" which supports up to 5 accounts and is limited to private users (AFAIK - please check out their license terms and conditions).
Communigate Pro is not only a mail server software, it is a full featured enterprise-grade collaboration and communication system. I am not affiliated in any way with them and I am sure I only use 1% of the features that this software offers, but it really looks pretty sophisticated. What I especially like about it is the multi-platform approach. It can run on an impressive list of different OS, including Linux and Solaris.
Now, for my specific requirements all I need was the contacts and calendar sync capabilities. And CGPro offers Push OTA synchronization with your iPhone for these out of the box - great stuff.
I installed CGPro using the tarball and then went to the administration web GUI which is running on port 8010 and, SSL-protected, on port 9010. The installation was pretty straightforward and I was easily able to set up a new domain and my first (and only - so far) mail account. Since I initially did not find a way to connect my Thunderbird eMail client with the CGPro server, I started with using the web mail interface of CGPro to create and edit my contacts and calendar entries on my PCs. The mail interface can be reached at port 8100 (HTTP) and 9100 (HTTPS) and offers a number of different themes and layouts to choose from. An Adobe AIR enabled client is also available, adding a little bit of convenience to the UI by allowing drag-and-drop stuff and other gimmicks.
One important thing: So far I did not set up CGPro as my mail server in terms of IMAP mail. But I am able to access the mailbox of my account via IMAP and already played around with it a little bit. I see no problems to use this as your primary mail server, it offers central mail filtering rules and can poll POP mailboxes (they call this RPOP). You can setup a number of POP3 feeds and therefore can combine more than one mailbox with your CGPro account.
Short note: I am using the German interface with CGPro, I tried to translate the menu and option names back into English, so please do not freak out if you do not find an option or menu entry that exactly matches my description. Look out for something that could mean the same thing and do not forget to let me know, I will change my article accordingly.
In order to get OTA Sync with my iPhone, I created an MS Exchange account on it with these settings:
EMail: youraccount@yourdomain.blabla
Server: yourserver:8100
Domain: (empty)
Username: youraccount@yourdomain.blabla
Password: (your CGPro account password)
If you want to use an encrypted connection, please use port 9100 instead and enable the "Use SSL" switch.
If you face difficulties with connecting to your CGPro server, you can try it with the web interface first. Just point a browser to yourserver:8100 and you should see the login screen. If you do not, please check that your CGPro server is actually running (it will start a ton of identical looking daemon processes on your server, because for each of the different services like IMAP, POP, FTP, HTTP it runs exactly the same binary). If it runs, you should check your firewall settings and, if you are running this behind a router, check the port forwarding rules on your router and make sure that you setup a rule that will forward whatever port you want to port 8100 or 9100 of your CGPro host. If you do not use 8100/9100 as your external port, you obviously need to modify the settings on your iPhone (and use that port for your web interface test, too).
I faced three difficulties with my setup:
a) I received an "Unknown Domain" error message stating that this server does not provide Web Services for the requested domain. Solution: The domain name I chose for my CGPro domain was not the domain name I used for accessing the server from the Internet. I soon found out that I needed to add a statement "externaldomain = cgdomain" where "externaldomain" the external domain name of your server is and "cgdomain" the name of the domain as you have created it in CGPro. This can be done in the "Settings" / "Router" part of the admin web interface.
b) when I tried to login to the web interface of my CGPro server over an Internet connection, it kicked me back to the login screen pretty often. I found out that this was due to the changing IP address on my side (in our company we use a round robin sort of load balancing on our outgoing DSL Internet connections) and could be solved by using the "Disable Fixed Address Check" checkbox on the login screen.
c) everytime I restarted my CGPro server, it created a new certificate which actually resulted in errors and warnings on the iPhone and when trying to access the web interface using Firefox. I was able to resolve this by creating my own certificate on the "User" / "Domains" / [yourdomain] / "Security" / "SSL/TLS" screen of the admin web interface. Please make sure that "PKI Services" is changed from "Default (Test)" to "On" after you created your own certificate. The "Default(test)" setting leads to the described behavior, i.e. a new test certificate is created every time you (re)start CGPro.
As I already mentioned, this allowed me to sync my iPhone OTA with my own central server, the only thing that was left is integration into Mozilla Thunderbird / Lightning. Fortunately CGPro already has CalDAV support and you can easily add your CGPro calendars to Thunderbird/Lightning by creating a remote calendar with this address:
http://yourdomain:8100/CalDAV/yourcalendarname
You need to change the port number to your external port number, of course. When asked for user id and password, simply use your CGPro account name (plus the full domain, e.g. "heiko@mycgpro.domain") and your regular CGPro password.
Great, we now have calendar data synch'ed between our iPhone and our Thunderbird eMail client (with the Lightning extension). What else? Oh, yes. Contacts. I did not find out how to sync my contacts between the iPhone and the Thunderbird address book, but a colleague of mine found the solution for me in form of a TB add-on (what else) called SyncCGP ... Now, unfortunately this add-on seems to be an unofficial add-on, because it is not available on the regular TB Add-On site. I recalled the general appearance of the Add On, it looked quite similiar to SyncKolab and seems to be a modified version made by Niversoft.
The download link is here:
CGPro Sync for Thunderbird
This add on requires you to create an IMAP mail account for accessing your CGPro account from within Thunderbird. You can then use this extension to sync an addressbook and a calendar with one of the IMAP folders (the ones that represent the Calendar and Contacts folders of your CGPro Account).
So, at this point I have a running configuration that allows me to synchronize my iPhone with my various Thunderbird installations, including calendar and contacts data. I personally use an external IMAP mail account for the email messages, but I see no problems to use eMail with the CGPro software as well and I will definitely try to change my setup as soon as I have more time.
Any questions? Please feel free to send me your comments!
Recent Comments