In order to have a big leverage on the resources provided by underlying platform, Java implementation is based on a zorg.platform.Platform abstraction.
Architecture
Zorg java has been succesfully integrated in a custom J2ME version of MjSIP inside our PrivateGSM product. We do not provide here the whole SIP/RTP stack, but only the security protocol implementation, namely ZRTP and SRTP.
Main and relevant classes/interfaces are:
- ZRTP: protocol implementation, state machine and messages
- SRTP: protocol implementation
- RtpStack: interface to be implemented by VoIP stack to send ZRTP messages
- RtpPacket: interface to be implemented by VoIP stack to extraxt fields from RTP packets
- ZrtpListener: interface to be implemented to receive ZRTP session events
- Platform: all underlying interfaces requires an implementation specific to working platform
TODO: publish a working sample with 2 in-memory zorg sessions, establishing a ZRTP handshake
Platform abstraction
Basically it abstracts Crypto utils, logging, RandomGenerator, Addressbook integration and persistent storage for ZRTP cache.
Blackberry back-end
Along with ZRTP protocol implementation, we provide sources for blackberry backend implementation.
J2SE back-end
We do not provide a J2SE back-end but it should be fairly simple and quick to develop. We encourage community to do it and to share it.