Rich text messages sent from bots (botkit) appear as blank/empty messages on Jabber Mobile.
This happens even if I strip out all the formatting (buttons, forms, etc.) and build the stanza in the most basic form:
reply_message.stanza = xml `<message to="${to}" type="${type}"><html xmlns="http://jabber.org/protocol/xhtml-im"><body xmlns="http://www.w3.org/1999/xhtml">Test message.</body></html></message>`;
This is a huge issue as it breaks the bot ux on mobile and takes Cisco Jabber out of the running as a viable chatbot solution.
Solved! Go to Solution.
I have found a partial solution.
The first <body> tag in the stanza is the message text that goes to mobile. If this is section is omitted or blank the message will appear blank on mobile. **If it contains any markup it will throw an xml parser error so it has to be plain text.** As long as there is text in the first body field, the button will appear on mobile. But as @dstaudt mentioned, the button text is "OK" and this cannot be changed. Also, if the message has multiple buttons, only the first will show.
I am able to get this working on Jabber for Android, a couple of things to check:
- Using Jabber for Android version 12.6+
- There is a new config item to white-list bot accounts for advanced UI features: <AdminConfigureBot>. This needs to be present in your device's jabber-config.xml file with a semi-colon separated list of approved bots:
<?xml version="1.0" encoding="utf-8"?> <config version="1.7"> <options> <AdminConfiguredBot>mybot@ds-cup11-5.cisco.com</AdminConfiguredBot> </options> </config>
During testing I found that I had to restart the CUCM TFTP server to get the jabber-config.xml to actually update...it also took several minutes before it took effect. You should see an automatically created '_bots' group listing your bot on the Jabber client.
If all of the above is ok on Jabber 12.6+, may need to open a DevNet ticket for further troubleshooting (follow 'contact us' steps): https://developer.cisco.com/site/support/
One thing that tripped me up (maybe its changed recently, or I hadn't tried it on Android in a while), but if I send a complex/form UI message back (e.g. the robot-submit function from the Botkit sample), all you see initially is an 'OK' button (and the non-HTML <body> of the stanza, if any) - you have to click that to then see the full UI/form ...
I have found a partial solution.
The first <body> tag in the stanza is the message text that goes to mobile. If this is section is omitted or blank the message will appear blank on mobile. **If it contains any markup it will throw an xml parser error so it has to be plain text.** As long as there is text in the first body field, the button will appear on mobile. But as @dstaudt mentioned, the button text is "OK" and this cannot be changed. Also, if the message has multiple buttons, only the first will show.