Use this tool to test your XMPP server for compatibility with various compliance suites.
You can easily mix and match various test cases to compose your own compliance suite or you can use a preexisting compliance suite.
XMPP is an extensible and living standard. Requirments shift over time and thus new extensions (called XEPs) get developed. While server implementors usually react quite fast and are able to cater to those needs it's the server operators who don't upgrade to the latest version or don't enable certain features.
Picking the right extensions to implement or enable isn't always easy. For this reason the XSF has published XEP-0387 XMPP Compliance Suites 2018 listing the most important extensions to date.
This tool helps you to asses if your server supports those compliance profiles. It will also test for the slightly more comprehensive Conversations compliance suite. Conversations is the technology leader in mobile XMPP instant messaging and aims to provide its user with an experience that is a par with proprietary instant messaging solutions.
Download the compiled ComplianceTester-0.2.3.jar or build with mvn package
(needs Java 8)
Run with java -jar target/ComplianceTester-0.2.3.jar username@domain password
Example output:
Use compliance suite 'Conversations Compliance Suite' to test conversations.im
running XEP-0115: Entity Capabilities… PASSED
running XEP-0163: Personal Eventing Protocol… PASSED
running Roster Versioning… PASSED
running XEP-0280: Message Carbons… PASSED
running XEP-0191: Blocking Command… PASSED
running XEP-0045: Multi-User Chat… PASSED
running XEP-0198: Stream Management… PASSED
running XEP-0313: Message Archive Management… PASSED
running XEP-0352: Client State Indication… PASSED
running XEP-0363: HTTP File Upload… PASSED
running XEP-0065: SOCKS5 Bytestreams (Proxy)… PASSED
running XEP-0357: Push Notifications… FAILED
passed 11/12
Conversations Compliance Suite: FAILED
This tool will save your accounts and passwords into a file called accounts.xml
. When you invoke it a second time you can omit the password.
There is also a very tiny wrapper script called runall.sh
invoking that will run the compliance tester with all known accounts and save the output to reports/$servername
.
Full reports can be found in the directory reports
. Please create a pull request if you want your server to be included.
Submitted data can be processed and displayed in a table.