I updated Openfire's BOSH code to support both versions 1.5 and 1.6. Thanks to the Openfire team, an initial work was done before for 1.6 support, which made my work a bit easier. On the other hand, in-order message forwarding was not working correctly, even if it's specified in the version 1.5 of the XEP, and that took me a long time to get done.
Here is an outline of what I did:
- Added 'hold' and 'ver' attributes to the session creation response.
- Fixed version checking. Before it was done using a double variable, which may show that 1.5 is newer than 1.10.
- Script syntax support has already been added before. Finetuned it to prevent caching of responses.
- Implemented in-order message forwarding (JM-1412), because further work seemed to be depend on this implementation. This is the part that took most of my time, also which made me to get more familiar with the code after long debugging sessions.
- Implemented acknowledgements, which was intoduced in version 1.6.
- Added support for session pauses, which was also new for 1.6.
- Implemented overactivity checking. In 1.5, there was only 'polling too-frequently error', and a little description about it. Version 1.6 introduced a new section for overactivity, and has a detailed description of which circumstances should be considered overactivity.