SEVENSTAX XMPP is a client implementation of the Extensible Messaging and Presence Protocol (XMPP) for embedded systems. In almost all cases a server is needed for the communication to access devices via internet because most communication partner are not directly addressable as they are located behind a NAT router or firewall. However, an extensive and complex management server supplied with a database, web frontend, admin backend etc. is not required in most of the cases. Mostly only a connection between the software to control the device (PC application, smartphone app etc.) and the device itself is needed. In this case using XMPP is a good solution. XMPP provides an ASCII based communication channel between the participants. Numerous XMPP server and XMPP client libraries for PC or smartphones are available. Moreover XMPP already offers all necessary functions for user authentication and establishment of a logical link between device and control application. The data exchange to maintain the connection between client and server is kept to a minimum level to reduce the traffic load.
The following components are included in SEVENSTAX XMPP:
- Extensible Messaging and Presence Protocol (XMPP) client according to RFC 6120, 6121
- Authentication via SASL (PLAIN)
- Register handshake with password
- Automated management for the list of participants
- XML streaming parser & generator
- Connect management application
- supported extensions:
- XEP-0054 (vcard-temp)
- XEP-0071 (XHTML-IM)
- XEP-0092 (Software Version)
- XEP-0153 (vCard-Based Avatars)
- XEP-0166 (Jingle)
- XEP-0332 (HTTP over XMPP transport)
During development it is possible to work with freely available XMPP clients for PC and smartphone (e.g. Pidgin) and access the embedded system via a console. By using SEVENSTAX Network Virtual Terminal a command based access is realized and a formatted text output is generated in the client.