Wraps connection with daemon. Communication (via Unix sockets) with server for developer is transparent. It looks like using builtin library, but has many more advantages. It doesn't really matter which client is used (GTK+, Qt, MFC, ncurses or console commands). Everyone can choose what he/she likes!
Sample source code can be found at: http://johnny.wit.edu.pl/docs/sample-code.html
Minimal source code (to show how little lines is needed to write a softphone): http://johnny.wit.edu.pl/docs/minimal-code.html
Class diagram for Johnny Client