Using SIPE / OCS / Microsoft Lync with bitlbee-libpurple

Bitlbee + libpurple can talk to SIPE and Microsoft's OCS. First, you need a Bitlbee with libpurple support. In Ubuntu 13.04, it appears that the bitlbee-libpurple package gets you everything you need (built-in even). Otherwise, you'll need the pidgin-sipe plugin. This is packaged in Debian and Ubuntu; on OS X you'll have to compile it yourself. Then it's easy. For OCS, you add your account like this:

account add sipe EMAIL-ADDRESS,DOMAIN\USERNAME PASSWORD

Pidgin calls the EMAIL-ADDRESS field "Username" and the DOMAIN\USERNAME field "Login." For non-OCS SIPE you might not need the ,DOMAIN\USERNAME part. In case it helps you figure out your usernames, here's a screenshot of the Pidgin account setup page.

It may also be necessary to escape the slash between DOMAIN and USERNAME. You can confirm if this is necessary by viewing the account settings after adding the account.

account sipe set

Check that username = email,domain\username appears formatted correctly. If the slash is missing, then correct it by escaping the slash.

account sipe set username you@email.com,domain\\login

User Agent

If you get the following error:

sipe - Login error: You have been rejected by the server: You are currently not using the recommended version of the client

You will need to set a proper useragent so that you're able to connect. This should do it.

account sipe set useragent "UCCAPI/15.0.4693.1001 OC/15.0.4693.1001 (Microsoft Lync)"

Other user agents that might be valid for older servers (pick one)

account sipe set useragent "UCCAPI/3.5.6907.0"
account sipe set useragent "CCAPI/4.0.7577.0 OC/4.0.7577.0"
account sipe set useragent "UCCAPI/3.5.6907.0 OC/3.5.6907.0 (Microsoft Office Communicator 2007 R2)"

If these don't work, you'll have to figure out what to use. Good luck (and add findings to this page)

Login error: Incompatible authentication scheme chosen

account sipe set authentication tls-dsk

SSL errors (Read Error) with Debian/Ubuntu 12.04

Add this to /etc/init.d/bitlbee underneath SCRIPTNAME.

export NSS_SSL_CBC_RANDOM_IV=0