Candy plugin for Openfire

Version 5

    The ignite realtime community is happy to announce a plugin for the popular Candy (Chats Are Not Dead Yet) group-chat web client. Candy was developed by Michael Weibel (@weibelm) and Patrick Stadler (@pstadler) on behalf of their employer Amiado Group. It provides group and private chat for collaborative working between teams.


    The Candy plugin for Openfire adds audo-conferencing and a telephone voicebridge service to Candy. In practice, it means a user can join a group-chat with voice using their PC mic/speaker or their SIP Phone. If the optional  PSTN/PBX gateway is configured, then an external mobile phone or home telephone can be used. The voice bridge can call the destination or accept an incoming call. The audio bridge is based on the jVoiceBridge project an can handle hundreds of concurrent users across multiple conferences, Each MUC room in Openfire is accesible as a sip address room@your_domain or via telephone extension associated with each room. See readme below. The Openfire SIP plugin can be used to enter the SIP registration details of the external PSTN/PBX gateway as well keep a log of all calls.


    The Candy web client has been extended by a voicebridge plugin which activates/deactivates audio-conferencing when user clicks on the  group-chat room/conference tab. Both group-chat and private chats are supported. It uses the XMPP Openlink XEP to handle the telephone messages


    Sample configuration for candy voicebridge plugin


    // uncomment and edit to use a SIP phone for // audio-conferencing (voip phone).
    // voicebridge will call this SIP address

    // uncomment and edit to use a PBX/PSTN Telephone number
    // for audio-conferencing (mobile/desk phone).
    // voicebridge will forward this call to the PSTN/PBX gateway

    // uncomment and edit to use Flash Player for audio-conferencing (desktop).
    // voicebridge will call connect two RTMP streams to audio-conference
    // setup Flash Player with mic permissions with '../plugins/voicebridge/setup.html'


    Note that this plugin includes a RTMP server on TCP port 1935 and a SIP server on UDP port 5060 and will clash with any other VOIP software or plugin like Redfire on the same server unless you changes the default ports. For more information visit the project web site at



    Candy Plugin Readme


    1. Stop Openfire.
    2. Copy the clientcontrol.jar file to the OPENFIRE_HOME/plugins directory.
    3. Copy the sip.jar file to the OPENFIRE_HOME/plugins directory.
    4. Copy the candy.war file to the OPENFIRE_HOME/plugins directory.
    5. Restart Openfire.
    6. From a browser, go to http://your_openfire-server:7070/candy/candy/plugins/voicebridge/setup.html and give Flash permissions to use your mic. Select the remember checkbox.
    7. From a browser, go to http://your_openfire-server:7070/candy
    8. If this pages do not appear, please check you log files and post any errors on



    • Follow steps from
    • To associate a MUC room with a voicebridge for incoming SIP calls, make the room name a telephone extension or prefix the room description with a telephone extension. This is needed when making incoming calls from a telephone into the voicebridge. Any room can be accessed via their SIP address (room@your_domain). For security, enable a numeric password to be used as a pin number.



    • To setup a PSTN/PBX gateway for external VOIP telephone calls, use the SIP plugin to setup the SIP account and add the follwing two properties to Openfire. Use the standard admin user or any other admin account..


    PropertyDefault ValueDescription<required>A unique name for Voice bridge external PSTN Gateway
    voicebridge.default.proxy.username<required>XMPP username used to create the SIP registration by SIP plugin




    • Change the http-bind ports from 7070/7443 to your choice like 80/443

    • Create or modify any of the folowing system properties


    PropertyDefault ValueDescription
    candy.webapp.connectionboshType of xmpp web connection. Use bosh or websockets. Note that you need Openfire 3.7.2 for websockets
    candy.webapp.namecandyWeb application root name
    voicebridge.rtmp.port1935Listening TCP port for RTMP Server
    voicebridge.sip.port5060Listening UDP port for SIP Server
    voicebridge.default.private.hostlocalhostSIP Server internal network host name or ip address
    voicebridge.default.public.hostlocalhostSIP Server external network host name or ip address
    voicebridge.default.conf.exten<required>Telephone extension for accessing conference bridge from external PSTN gateway
    voicebridge.rtp.start.port3200RTP Port range start
    voicebridge.rtp.end.port3299RTP Port range start
    voicebridge.server.log.level1Logging level for VoiceBridge Server. 1-9
    voicebridge.sip.log.level1Logging level for SIP Server. 1-9