My god, it's full of segfaults


This is about extending gabble, the Telepathy XMPP connection manager. While mainline gabble is quite conservative in its XMPP features, some features are essential for use within mobile environments, e.g. notebooks or smartphones with unstable network. Some work has been done for:

The stream management patch enables stream management for the basic acking scenario. Depending on your servers configuration, it will resend failed messages on your next connection or just send error reports to the sender. So it's still possible to lose messages, but some clients (e.g. empathy, jolla-messages and N9) will at show up an error.

The carbons patch by Michael Kuhn keeps your connected devices synchronized. A carbon-enabled client will receive a copy of your sent and received messages. Again, server support is needed.
Carbon support is disabled by default and can be enabled with mc-tool:
mc-tool update gabble/jabber/jabber_1 bool:message-carbons=true

Chat marker is an more general replacement for XEP-184 Message Receipts. It supports received, displayed and acknowledged markers. Furthermore, it is designed to be used in conjunction with carbons. Using this, your clients have the chance to sync their notifications.
Sending of markers is disabled by default and can be enabled with mc-tool:
mc-tool update gabble/jabber/jabber_1 bool:send-chat-markers=true

To force sending of chat-marker and receipt requests dispite missing client or buddy client support enable the following options:
mc-tool update gabble/jabber/jabber_2 bool:force-chat-markers=true
mc-tool update gabble/jabber/jabber_2 bool:force-receipts=true

The HTTP File Upload patch provides a file sharing method utilizing a http server, provided by an XMPP service or server component. The receipient will receive a text message with a corresponding link. In its current state it caches the complete data and uploads withing one chunk. Therefore the senders transfer status won't work properly.

Both carbons and http upload will report sent messages to your clients. Some won't expect this and show your carbon- or link-message like its received by your opponent or some other contact with your id. You may need to patch this software to get the desired behaviour.

The User Avatar patch enables fetching of PEP based avatars. This is used by the Conversations Android client. Unfortunately, Conversations tends to use webp images, which are not supported by some systems or clients per default.