OMEMO doesn’t work with Gajim as client and Openfire as server. According to the developers of Gajim, a problem in Openfire might be the cause.
Environment:
- XMPP Client: Gajim 1.3.3 with OMEMO Plugin 2.7.15
- Client OS: Windows 10 x64
- XMPP Server: Openfire 4.7.1
- Server JVM: 1.8.0_31 Oracle Corporation – Java HotSpot™ Client VM
- Server Application Server: jetty/9.4.43.v20210629
- Server OS: Windows 2003 / x86
Gajim tries to set pubsub#access_model to open:
<iq type="error" id="24f29e89-a327-4cf7-8b1e-b8a8f3d9b9a1" from="CENSORED@xmpp.CENSORED.de" to="CENSORED@xmpp.CENSORED.de/gajim.CENSORED">
<pubsub xmlns="http://jabber.org/protocol/pubsub#owner">
<configure node="eu.siacs.conversations.axolotl.devicelist">
<x xmlns="jabber:x:data" type="submit">
<title>Node Konfiguration</title>
<instructions>Bitte die Konfiguration für den Knoten &#39;eu.siacs.conversations.axolotl.devicelist&#39; bereitstellen.</instructions>
<field var="FORM_TYPE" type="hidden">
<value>http://jabber.org/protocol/pubsub#node_config</value>
</field>
<field var="pubsub#title" type="text-single" label="Kurzname für den Knoten">
<value/>
</field>
<field var="pubsub#description" type="text-single" label="Knotenbeschreibung">
<value/>
</field>
<field var="pubsub#node_type" type="text-single" label="Ob der Knoten ein Blatt (Standard) oder eine Sammlung ist.">
<value>leaf</value>
</field>
<field var="pubsub#collection" type="text-single" label="Die Sammlung, der ein Knoten zugeordnet ist."/>
<field var="pubsub#subscribe" type="boolean" label="Erlaube Abonnements vom Knoten">
<value>1</value>
</field>
<field var="pubsub#subscription_required" type="boolean" label="Neue Abonnements erfordern eine Konifguration">
<value>0</value>
</field>
<field var="pubsub#deliver_payloads" type="boolean" label="Übermittle Nutzdaten mit Eregnisbenachrichtigung">
<value>1</value>
</field>
<field var="pubsub#notify_config" type="boolean" label="Benachrichtige die Abonnenten, wenn sich die Knotenkonfiguration ändert">
<value>1</value>
</field>
<field var="pubsub#notify_delete" type="boolean" label="Benachrichtige die Abonnenten, wenn der Knoten gelöscht wird">
<value>1</value>
</field>
<field var="pubsub#notify_retract" type="boolean" label="Benachrichtige die Abonnenten, wenn Elemente vom Knoten entfernt werden">
<value>1</value>
</field>
<field var="pubsub#presence_based_delivery" type="boolean" label="Übermittle Benachrichtigungen nur an verfügbare Nutzer">
<value>0</value>
</field>
<field var="pubsub#type" type="text-single" label="Nutzdatentyp muss an diesem Knoten bereitgestellt werden">
<value/>
</field>
<field var="pubsub#body_xslt" type="text-single" label="Nachrichtenkörper XSLT">
<value/>
</field>
<field var="pubsub#dataform_xslt" type="text-single" label="Nutzdaten XSLT">
<value/>
</field>
<field var="pubsub#access_model" type="list-single" label="Bitte spezifizieren, wer Elemente abonnieren und wiederherstellen darf">
<option>
<value>authorize</value>
</option>
<option>
<value>open</value>
</option>
<option>
<value>presence</value>
</option>
<option>
<value>roster</value>
</option>
<option>
<value>whitelist</value>
</option>
<value>open</value>
</field>
<field var="pubsub#publish_model" type="list-single" label="Publisher Model">
<option>
<value>publishers</value>
</option>
<option>
<value>subscribers</value>
</option>
<option>
<value>open</value>
</option>
<value>publishers</value>
</field>
<field var="pubsub#roster_groups_allowed" type="list-multi" label="Roster Gruppen dürfen abonnieren"/>
<field var="pubsub#contact" type="jid-multi" label="zu kontaktierende Personen mit Fragen"/>
<field var="pubsub#language" type="text-single" label="Standardsprache">
<value>English</value>
</field>
<field var="pubsub#owner" type="jid-multi" label="Knotenbesitzer">
<value>CENSORED@xmpp.CENSORED.de</value>
</field>
<field var="pubsub#publisher" type="jid-multi" label="Knotenherausgeber"/>
<field var="pubsub#itemreply" type="list-single" label="Bitte eine Instanzt wählen, die Antworten zu Elementen erhalten soll">
<option>
<value>owner</value>
</option>
<option>
<value>publisher</value>
</option>
<value>owner</value>
</field>
<field var="pubsub#replyroom" type="jid-multi" label="Mehrnutzer-Chatraum, an den Antworten gesendet werden sollen"/>
<field var="pubsub#replyto" type="jid-multi" label="Nutzer, an die Anworten gesendet werden sollen"/>
<field var="pubsub#send_item_subscribe" type="boolean" label="Sende Elemente an neue Abonnenten">
<value>1</value>
</field>
<field var="pubsub#persist_items" type="boolean" label="Behalte Elemente im Speicher">
<value>1</value>
</field>
<field var="pubsub#max_items" type="text-single" label="Maximale Anzahl von zu behaltenden Elementen">
<value>1</value>
</field>
<field var="pubsub#max_payload_size" type="text-single" label="Maximale Nutzdatengröße in bytes">
<value>10485760</value>
</field>
</x>
</configure>
</pubsub>
<error code="406" type="modify">
<not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</iq>
However, this fails with error 406 “not acceptable”:
<iq type="error" id="24f29e89-a327-4cf7-8b1e-b8a8f3d9b9a1" from="CENSORED@xmpp.CENSORED.de" to="CENSORED@xmpp.CENSORED.de/gajim.CENSORED">
<pubsub xmlns="http://jabber.org/protocol/pubsub#owner">
<configure node="eu.siacs.conversations.axolotl.devicelist">
<x xmlns="jabber:x:data" type="submit">
<title>Node Konfiguration</title>
<instructions>Bitte die Konfiguration für den Knoten &#39;eu.siacs.conversations.axolotl.devicelist&#39; bereitstellen.</instructions>
<field var="FORM_TYPE" type="hidden">
<value>http://jabber.org/protocol/pubsub#node_config</value>
</field>
<field var="pubsub#title" type="text-single" label="Kurzname für den Knoten">
<value/>
</field>
<field var="pubsub#description" type="text-single" label="Knotenbeschreibung">
<value/>
</field>
<field var="pubsub#node_type" type="text-single" label="Ob der Knoten ein Blatt (Standard) oder eine Sammlung ist.">
<value>leaf</value>
</field>
<field var="pubsub#collection" type="text-single" label="Die Sammlung, der ein Knoten zugeordnet ist."/>
<field var="pubsub#subscribe" type="boolean" label="Erlaube Abonnements vom Knoten">
<value>1</value>
</field>
<field var="pubsub#subscription_required" type="boolean" label="Neue Abonnements erfordern eine Konifguration">
<value>0</value>
</field>
<field var="pubsub#deliver_payloads" type="boolean" label="Übermittle Nutzdaten mit Eregnisbenachrichtigung">
<value>1</value>
</field>
<field var="pubsub#notify_config" type="boolean" label="Benachrichtige die Abonnenten, wenn sich die Knotenkonfiguration ändert">
<value>1</value>
</field>
<field var="pubsub#notify_delete" type="boolean" label="Benachrichtige die Abonnenten, wenn der Knoten gelöscht wird">
<value>1</value>
</field>
<field var="pubsub#notify_retract" type="boolean" label="Benachrichtige die Abonnenten, wenn Elemente vom Knoten entfernt werden">
<value>1</value>
</field>
<field var="pubsub#presence_based_delivery" type="boolean" label="Übermittle Benachrichtigungen nur an verfügbare Nutzer">
<value>0</value>
</field>
<field var="pubsub#type" type="text-single" label="Nutzdatentyp muss an diesem Knoten bereitgestellt werden">
<value/>
</field>
<field var="pubsub#body_xslt" type="text-single" label="Nachrichtenkörper XSLT">
<value/>
</field>
<field var="pubsub#dataform_xslt" type="text-single" label="Nutzdaten XSLT">
<value/>
</field>
<field var="pubsub#access_model" type="list-single" label="Bitte spezifizieren, wer Elemente abonnieren und wiederherstellen darf">
<option>
<value>authorize</value>
</option>
<option>
<value>open</value>
</option>
<option>
<value>presence</value>
</option>
<option>
<value>roster</value>
</option>
<option>
<value>whitelist</value>
</option>
<value>open</value>
</field>
<field var="pubsub#publish_model" type="list-single" label="Publisher Model">
<option>
<value>publishers</value>
</option>
<option>
<value>subscribers</value>
</option>
<option>
<value>open</value>
</option>
<value>publishers</value>
</field>
<field var="pubsub#roster_groups_allowed" type="list-multi" label="Roster Gruppen dürfen abonnieren"/>
<field var="pubsub#contact" type="jid-multi" label="zu kontaktierende Personen mit Fragen"/>
<field var="pubsub#language" type="text-single" label="Standardsprache">
<value>English</value>
</field>
<field var="pubsub#owner" type="jid-multi" label="Knotenbesitzer">
<value>CENSORED@xmpp.CENSORED.de</value>
</field>
<field var="pubsub#publisher" type="jid-multi" label="Knotenherausgeber"/>
<field var="pubsub#itemreply" type="list-single" label="Bitte eine Instanzt wählen, die Antworten zu Elementen erhalten soll">
<option>
<value>owner</value>
</option>
<option>
<value>publisher</value>
</option>
<value>owner</value>
</field>
<field var="pubsub#replyroom" type="jid-multi" label="Mehrnutzer-Chatraum, an den Antworten gesendet werden sollen"/>
<field var="pubsub#replyto" type="jid-multi" label="Nutzer, an die Anworten gesendet werden sollen"/>
<field var="pubsub#send_item_subscribe" type="boolean" label="Sende Elemente an neue Abonnenten">
<value>1</value>
</field>
<field var="pubsub#persist_items" type="boolean" label="Behalte Elemente im Speicher">
<value>1</value>
</field>
<field var="pubsub#max_items" type="text-single" label="Maximale Anzahl von zu behaltenden Elementen">
<value>1</value>
</field>
<field var="pubsub#max_payload_size" type="text-single" label="Maximale Nutzdatengröße in bytes">
<value>10485760</value>
</field>
</x>
</configure>
</pubsub>
<error code="406" type="modify">
<not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</iq>