Empathy change to Online Accounts no longer supports SIPE

Bug #1070377 reported by SeanK on 2012-10-23
This bug affects 59 people
Affects Status Importance Assigned to Milestone
Fix Released
Online Accounts: Account plugins
Alberto Mardegan
Telepathy Haze
account-plugins (Ubuntu)

Bug Description

Many of us use SIPE as way a way to use Microsoft Communicator/Lync in order to IM with workplaces. Empathy used to allow for SIPE connections through the pidgin-sipe package but since I switched to 12.10 and "online accounts" functionality, I can no longer find a way to do so.

While I can still use SIPE in pidgin, pidgin no longer integrates into the Unity notification system.

In either case, it means that I no longer get notifications when people at work IM me. As such, the new version of Ubuntu has greatly diminished my ability to use Linux at my workplace.

A way to use SIPE (or any previously supported account type not supported by Online Accounts) in Empathy -- even if it requires a non--pretty command line/config change -- would be very welcome.

ProblemType: Bug
DistroRelease: Ubuntu 12.10
Package: empathy
ProcVersionSignature: Ubuntu 3.5.0-17.28-generic 3.5.5
Uname: Linux 3.5.0-17-generic x86_64
NonfreeKernelModules: nvidia
ApportVersion: 2.6.1-0ubuntu3
Architecture: amd64
Date: Tue Oct 23 07:18:15 2012
InstallationMedia: Ubuntu 12.10 "Quantal Quetzal" - Beta amd64 (20120926)
 PATH=(custom, no user)
SourcePackage: empathy
UpgradeStatus: No upgrade log present (probably fresh install)

SeanK (seank) wrote :
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in empathy (Ubuntu):
status: New → Confirmed
Kevin (kupiakos) wrote :

I agree. I just found this out this morning that I can't use telepathy-haze anymore. What's the point of having telepathy-haze if you can't even use it?

Felipe Martinez (metalmartinez) wrote :

I agree . i cant use sipe no more under empathy (been using this on the past as a Office Communicator replacement) , atm the only working solution on ubuntu is Pidgin + pidgin-sipe plugin.

Brian (brian-battaglia) wrote :

I also require SIPE in my workplace and am now reluctant to upgrade until SIPE is integrated with Empathy.

Xavier Claessens (zdra) wrote :

UOA supports and hardcoded list of protocols. If we want to add some, just edit http://git.gnome.org/browse/empathy/tree/ubuntu-online-accounts/cc-plugins/generate-plugins.py. I'm not sure why SIPE is not there, maybe we wanted to avoid duplicated SIP support?

Xavier Claessens (zdra) wrote :

Actually we don't support any external libpurple plugins, that's the reason why it won't work.

SeanK (seank) wrote :

That is a shame. It means those of us who work at home don't have a well-integrated SIPE solution with newer versions of Ubuntu. It's hard to argue for switching to Linux desktops when they don't provide access to required work IM solutions.

For the record, Empathy supported the pidgin SIPE plugin in the past, because I personally used it for at least a year before upgrading to Quantal. So if it is no longer supported, then the functionality was removed.

ltl beaver (ltlbeaver) wrote :

I would really appreciate any workaround for this problem. Thanks.

Changed in empathy:
importance: Unknown → High
status: Unknown → Incomplete

I actually stopped using Ubuntu at work when they introduced Lync/Communicator as the corporate standard IM (I came back because I can use it via Outlook Web App now). I imagine I'm not the only one. Supporting it as a first class protocol is really important.

Bilal Shahid (s9iper1) on 2012-11-21
Changed in empathy (Ubuntu):
importance: Undecided → Medium

I have installed account-plugin-sip package and sip protocol is shown on online accounts. Unfortunately, I cannot figure it out how to make it work. I get a "network error" with no more explanations. For me it's important to connect to my corporation IM (lync) from my ubuntu desktop at home. Thanks.

Ondrej Kubik (ondrak) wrote :

Upgraded from 12.04 where I was using sipe pluging, my account kept working after upgrade, though I could not actually see it in my online accounts.
I had to change sipe account's password, so now I'm buggered, since there is no way I can update my account settings.

It's definitely bug. My existing account turned after upgrade to 12.10 into zombie, can't delete it, can't update it, it's just there nagging about wrong credentials....

Bilal Shahid (s9iper1) wrote :

moving bug to online accounts

affects: empathy (Ubuntu) → signon-ui (Ubuntu)
affects: signon-ui (Ubuntu) → account-plugins (Ubuntu)
Changed in account-plugins (Ubuntu):
importance: Medium → Wishlist
status: Confirmed → New
Alberto Mardegan (mardy) on 2012-11-28
Changed in account-plugins:
status: New → Confirmed
Xavier Claessens (zdra) wrote :

As discussed with Mardy on IRC, here is what I suggest to fix this bug:

1) include .provider/service file in the packaging of the purple plugins
2) add a field in .service XML to tell which plugin to use, fallback to use lib<service-name>.so as it does now
3) in empathy stop generating a plugin per protocol, but instead make only one plugin and add the field in all .service files to tell UOA to use that common plugin

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in account-plugins (Ubuntu):
status: New → Confirmed
Jaw (jayleonfb99) wrote :

This also makes me a sad panda. I want SIPE in empathy. Has anyone made this work yet or notifications in the messaging menu for pidgin?

Yes this is annoying, I can use the web app but desktop notifications would be nice.

Victor Passapera (vpassapera) wrote :

Is there a fix for this in the works? :(

Kevin (kupiakos) wrote :

Temporary fix, guys:
run 'empathy-accounts' in the console and you can add it in there.

Alberto Mardegan (mardy) wrote :

I linked a branch which adds an account plugin for SIPE. However, it's to be merged only after a new Empathy version has been released.

Changed in account-plugins:
status: Confirmed → In Progress
assignee: nobody → Alberto Mardegan (mardy)
Changed in empathy:
status: Incomplete → Unknown

Created attachment 77679
Patch to support purple_request_fields()

libpurple plugins which support accounts with optional passwords don't work with telepathy-haze, because it doesn't purple_account_request_password(), which boils down to a purple_request_fields() call to the UI client.

One example is SIPE since version 1.14.1, which no longer works with Empathy (Fedora bug https://bugzilla.redhat.com/show_bug.cgi?id=754395)

Attached is a proposal how this could be implemented. The patch is based on the 0.6.x branch.

Unfortunately this change requires --enable-leaky-request-stubs, so this will need some more work.

Created attachment 77742
Version 2 of the proposed change

Version 2:

 - commit 1: cleaned up version of version 1
 - commit 2: fix resource leakage in haze_request_field()

Comment on attachment 77742
Version 2 of the proposed change

Review of attachment 77742:

I think this will still leak, actually. Take a look at pidgin/request.c's implementation of request_fields: if the user closes the window without picking a response, it makes sure to call the cancel_cb before purple_request_close(). This allows whatever bit of libpurple made the request to clean up.

But if that's fixed, I think it looks good.

::: src/request.c
@@ +27,3 @@
> #include "debug.h"
> #include "request.h"

What happens if libpurple gives us a password request, and before the user answers the challenge, libpurple cancels it?

I think what will happen is: haze_close_request() is called by libpurple, freeing this stuff up.

Then later, haze_request_password_cb() will be called, which will call back into libpurple with a freed request and crash.

@@ +33,2 @@
> static gpointer
> haze_request_input (const char *title,

Use g_slice_free (fields_data, fd);

@@ +104,5 @@
> +struct password_data {
> + PurpleRequestFields *fields;
> + PurpleRequestField *password;
> + GCallback ok_cb;
> + GCallback cancel_cb;

I think it would be better to cast these to PurpleRequestFieldsCb in haze_request_fields, not at the point you call them. I think that would be clearer.

@@ +138,4 @@
> PurpleConversation *conv,
> void *user_data)
> {
> + /*

Use g_slice_new0.

@@ +166,2 @@
> return NULL;

I think the idle callback should call the cancel_cb, so that whatever made the request doesn't leak.

Created attachment 77806
Version 3 of the proposed change

Thanks for the review comments. Please see attached version 3.

LnxSlck (brunomiguelqueiros) wrote :

I also have this problem, and i do have the same need, to be able to use sipe accounts on empathy. I can add the sipe account and configure it through 'empathy-accounts', however empathy hangs on trying to establish connection. In Pidgin i'm prompted to accept my company certificate, and after i accept it, i'm able to login. Maybe what's happening is that Empathy doesn't show me the certificate so i can accept it, and connection stalls.

Anyone has the same problem? Is there a way to import this certificate into Empathy? Should it be filled as a bug?

Changed in account-plugins (Ubuntu):
status: Confirmed → New
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in account-plugins (Ubuntu):
status: New → Confirmed
Nick (nick-rawlins) wrote :

Yes this affects me too, I really need a solution to this!

Vadim Peretokin (vperetokin) wrote :

This looks like a more relevant bug report for this issue.

Changed in empathy:
importance: High → Unknown
Changed in empathy:
importance: Unknown → Wishlist
status: Unknown → Fix Released
Marc Thomas (jazzyflute) wrote :

This is causing issues for me as well. I have attempted configuring it though empathy-accounts but like LnxSlck, it just hangs on trying to connect.

tim nelson (tim-l-nelson) wrote :

This applies to me as well, I can import the account from pidgin but it will never actually log on.

tim nelson (tim-l-nelson) wrote :

Also, of quick note, there should be an easy way to enable this to auth with the cloud if you are on office365.

Dan Jared (danjaredg) wrote :

On Ubuntu 13.10 with sipe protocol hang on Writing file /tmp/haze-F7rdhB/accounts.xml

hazehaze-DEBUG: 18/10/13 03:19:57.677793: haze_connection_manager_init: Initializing (HazeConnectionManager *)0x6ad230
hazehaze-DEBUG: 18/10/13 03:19:57.678549: haze_protocol_build_list: using default behaviour for unknown prpl 'prpl-myspace'
tp-glib/-DEBUG: 18/10/13 03:19:57.681860: started version 0.6.0 (telepathy-glib version 0.20.4)
purpleprefs-INFO: 18/10/13 03:19:57.682009: /purple/savedstatus/isidleaway changed, scheduling save.
hazehaze-DEBUG: 18/10/13 03:20:00.652416: haze_protocol_translate_parameters: setting parameter account (telepathy name account)
hazehaze-DEBUG: 18/10/13 03:20:00.652574: haze_protocol_translate_parameters: setting parameter usersplit1 (telepathy name login)
hazehaze-DEBUG: 18/10/13 03:20:00.652695: haze_protocol_translate_parameters: setting parameter server (telepathy name server)
hazehaze-DEBUG: 18/10/13 03:20:00.652816: haze_protocol_translate_parameters: setting parameter transport (telepathy name transport)
hazehaze-DEBUG: 18/10/13 03:20:00.652936: haze_protocol_translate_parameters: setting parameter authentication (telepathy name authentication)
hazehaze-DEBUG: 18/10/13 03:20:00.662748: haze_protocol_translate_parameters: setting parameter sso (telepathy name sso)
hazehaze-DEBUG: 18/10/13 03:20:00.663129: haze_protocol_translate_parameters: setting parameter dont-publish (telepathy name dont-publish)
hazehaze-DEBUG: 18/10/13 03:20:00.663639: haze_connection_class_init: Initializing (HazeConnectionClass *)0x7145a0
hazehaze-DEBUG: 18/10/13 03:20:00.663985: haze_connection_init: Initializing (HazeConnection *)0x7420c0
hazehaze-DEBUG: 18/10/13 03:20:00.664374: haze_connection_constructor: Post-construction: (HazeConnection *)0x7420c0
purpleaccount-MESSAGE: 18/10/13 03:20:00.697925: Connecting to account **********@**************.
purpleconnection-MESSAGE: 18/10/13 03:20:00.699067: Connecting. gc = 0x714290
purpleaccount-MESSAGE: 18/10/13 03:20:00.699521: Connecting to account **********@**************.
purpleutil-MESSAGE: 18/10/13 03:20:02.670810: Writing file prefs.xml to directory /tmp/haze-F7rdhB
purpleutil-MESSAGE: 18/10/13 03:20:02.670928: Writing file /tmp/haze-F7rdhB/prefs.xml
purpleutil-MESSAGE: 18/10/13 03:20:02.700251: Writing file status.xml to directory /tmp/haze-F7rdhB
purpleutil-MESSAGE: 18/10/13 03:20:02.700333: Writing file /tmp/haze-F7rdhB/status.xml
purpleutil-MESSAGE: 18/10/13 03:20:05.666207: Writing file accounts.xml to directory /tmp/haze-F7rdhB
purpleutil-MESSAGE: 18/10/13 03:20:05.666572: Writing file /tmp/haze-F7rdhB/accounts.xml

Dan Jared (danjaredg) wrote :
Download full text (4.0 KiB)

$ env HAZE_PERSIST=1 HAZE_DEBUG=all /usr/lib/telepathy/telepathy-haze

I send the haze debug mode

(haze:31221): purple/plugins-CRITICAL **: /usr/lib/purple-2/libjabber.so is not usable because the 'purple_init_plugin' symbol could not be found. Does the plugin call the PURPLE_INIT_PLUGIN() macro?
purple/prpl-loubserp-mxit-Message: Loading MXit libPurple plugin...

(haze:31221): purple/plugins-CRITICAL **: /usr/lib/purple-2/tcl.so is not loadable: libtk8.5.so.0: cannot open shared object file: No such file or directory

(haze:31221): purple/plugins-CRITICAL **: /usr/lib/purple-2/libsametime.so has a prefs_info, but is a prpl. This is no longer supported.

(haze:31221): purple/plugins-CRITICAL **: /usr/lib/purple-2/libymsg.so is not usable because the 'purple_init_plugin' symbol could not be found. Does the plugin call the PURPLE_INIT_PLUGIN() macro?

(haze:31221): purple/plugins-CRITICAL **: /usr/lib/purple-2/liboscar.so is not usable because the 'purple_init_plugin' symbol could not be found. Does the plugin call the PURPLE_INIT_PLUGIN() macro?
purple/util-Message: Reading file xmpp-caps.xml from directory /tmp/haze-6fYM6p
purple/util-Message: File /tmp/haze-6fYM6p/xmpp-caps.xml does not exist (this is not necessarily an error)
purple/jabber-Message: creating hash tables for data objects
purple/util-Message: Reading file accounts.xml from directory /tmp/haze-6fYM6p
purple/util-Message: File /tmp/haze-6fYM6p/accounts.xml does not exist (this is not necessarily an error)
purple/util-Message: Reading file status.xml from directory /tmp/haze-6fYM6p
purple/util-Message: File /tmp/haze-6fYM6p/status.xml does not exist (this is not necessarily an error)

(haze:31221): purple/certificate-WARNING **: CertificateVerifier x509, singleuse requested but not found.
purple/certificate-Message: CertificateVerifier singleuse registered

(haze:31221): purple/certificate-WARNING **: CertificatePool x509, ca requested but not found.

(haze:31221): purple/certificate-WARNING **: CertificateScheme x509 requested but not found.

(haze:31221): purple/certificate/x509/ca-WARNING **: Lazy init failed because an X.509 Scheme is not yet registered. Maybe it will be better later.
purple/certificate/x509/ca-Message: Init failed, probably because a dependency is not yet registered. It has been deferred to later.
purple/certificate-Message: CertificatePool ca registered

(haze:31221): purple/certificate-WARNING **: CertificatePool x509, tls_peers requested but not found.
purple/certificate-Message: CertificatePool tls_peers registered

(haze:31221): purple/certificate-WARNING **: CertificateVerifier x509, tls_cached requested but not found.
purple/certificate-Message: CertificateVerifier tls_cached registered

(haze:31221): purple/certificate-WARNING **: CertificateScheme x509 requested but not found.
purple/certificate-Message: CertificateScheme x509 registered
purple/util-Message: Reading file smileys.xml from directory /tmp/haze-6fYM6p
purple/util-Message: File /tmp/haze-6fYM6p/smileys.xml does not exist (this is not necessarily an error)
purple/stun-Message: using server
purple/util-Message: Reading file blist.xml from directory /tmp/haze-6fYM6p


Dan Jared (danjaredg) wrote :

Last strace of telepathy haze process

write(2, "purple/util-Message: Writing fil"..., 64purple/util-Message: Writing file /tmp/haze-0SJdZl/accounts.xml
) = 64
access("/tmp/haze-0SJdZl/accounts.xml.save", F_OK) = -1 ENOENT (No such file or directory)
open("/tmp/haze-0SJdZl/accounts.xml.save", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3ef285f000
write(5, "<?xml version='1.0' encoding='UT"..., 1553) = 1553
fsync(5) = 0
close(5) = 0
munmap(0x7f3ef285f000, 4096) = 0
stat("/tmp/haze-0SJdZl/accounts.xml.save", {st_mode=S_IFREG|0644, st_size=1553, ...}) = 0
chmod("/tmp/haze-0SJdZl/accounts.xml.save", 0600) = 0
rename("/tmp/haze-0SJdZl/accounts.xml.save", "/tmp/haze-0SJdZl/accounts.xml") = 0
sendmsg(3, {msg_name(0)=NULL, msg_iov(2)=[{"l\4\1\1X\0\0\0O\1\0\0z\0\0\0\1\1o\0 \0\0\0/org/fre"..., 144}, {"\261P\336\253^\230\324A\v\0\0\0purple/util\0\3\0\0\0007\0\0\0"..., 88}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 232
sendmsg(3, {msg_name(0)=NULL, msg_iov(2)=[{"l\4\1\1K\0\0\0P\1\0\0z\0\0\0\1\1o\0 \0\0\0/org/fre"..., 144}, {"\347R\336\253^\230\324A\v\0\0\0purple/util\0\3\0\0\0*\0\0\0"..., 75}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 219
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}, {fd=3, events=POLLIN}], 3, 4294967295

Jonatã Bolzan Loss (jbopen) wrote :

Bug still present in Ubuntu 14.04.

Using empathy-accounts, it is possible to add a lync account using pidgin-sipe plugin. I didn't see any problems, just need to put the e-mail address into "account" field and click "Connect". Empathy will ask for password.

topet2k12001 (topet2k1) wrote :

I can confirm Comment #36. I opened terminal and typed "empathy-accounts" and I can once again see that familiar interface for adding a Microsoft OCS Account.

graingert (tagrain) wrote :

I create an account in empathy-accounts and configure as I have configured the account in Pidgin, however in the debugger I get:

"User name should be a valid SIP URI Example: <email address hidden>"

and the accounts.xml file only contains the top level "accounts" element.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Related questions

Remote bug watches

Bug watches keep track of this bug in other bug trackers.