Quantcast
Channel: Ignite Realtime : Document List - Community Plugins
Viewing all 31 articles
Browse latest View live

Clustering Plugin

$
0
0

A commercial clustering plugin was available some time ago. This plugin was made open source, see http://www.igniterealtime.org/projects/openfire/plugins.jsp without the Coherence files. Currently one does need an old Coherence version to get it running,

 

If one wants to create a clustering plugin based on an existing clustering solution one does need to look at the packages org.jivesoftware.util.cache and org.jivesoftware.openfire.cluster. In those packages one will find interfaces like:

  • ClusterNodeInfo

  • CacheFactoryStrategy

  • ExternalizableUtilStrategy

  • ClusterTask

  • Cache

 

References:

http://www.igniterealtime.org/community/message/174820

http://www.igniterealtime.org/community/thread/36463


Raptor, traffic control plugin

$
0
0

raptor_logo80.png

Raptor allows to monitor traffic and drop or reject selective packets. Basically it is similar than the official PacketFilter plugin, but has much more features. For each packet going through the server it processes a list of Actions. In principle this list is processed from the top down, but branching is also allowed. You can define functions and if-then-else like structures. Even recursion is possible. These features can improve performance and open a complete new world of features. There are Actions for logging, sending Jabber messages and emails. Another key feature are counters. They count packets per JID. This allows you for example to detect abuse or react on something at maximum only once every minute. E.g. if you intercept 100 packets per second you probably don't want 100 log entries per second.

 

Such sets of actions are called profiles. Profiles can be easily imported and exported in an XML format. You will find it useful to share profiles or parts of them within the community.

 

You will find much more information about what is possible and how to use Raptor in the online manual included in the packet. Check out the self-explanatory XML examples below to get an idea what is possible with Raptor.

 

Raptor is clearly targeted to advanced users. Basic programming knowledge is required, some experience with multithreaded applications is recommend.

 

requirements and license

  • This is an BETA release, be aware of bugs! Use on production systems at your own risk!
  • Openfire 3.5.2 or newer
  • Raptor is licensed under GPLv3.
  • Raptor does not need direct database access, so it should support all databases Openfire supports. Instead profiles are stored by default as XML in "..../openfire/conf/raptor". You may change this directory, see README.
  • Currently there is no editor for profiles, you will need to write XML code by hand. However, an AJAX based editor for admin console is planned for future releases.

 

changelog

version 0.2.1 (March 19, 2009)

  • Added XML Viewer with Syntax-Highlight to Admin Console Interface.
  • Traffic to component.your-server.tld was blocked in some examples in manual. You components would not work correctly then.
  • Mentioned email sender properties in manual.
  • Email sender does now default to admin@your-server.tld.

 

version 0.2 (March 15, 2009)

  • Solved several race condition bugs in Counter. Packets are now synchronized using bare JID strings, instead of using AtomicInteger class.
  • new check:set_count is an atomic combination of check:count and action:set_count. This helps to deal with race conditions at user/profile level. See new examples in manual.
  • check:address does now support checking against a GROUP. If a domain ends with localhost this is automatically replaced with your servername.
  • new action:message can send Jabber messages.
  • new action:email can send emails. New emailmapper can map jabber to email adresses, e.g. you could map username@jabber.example.com to username@example.com.
  • new concept of functions. Functions are similar as the old action:branch, but they can be called multiple times using new action:call. In combination with variables even loops (as recursion) might be possible, if someone finds that useful. New entry point for your program is now a special function named MAIN. Old entry-Action are still supported, but deprecated.
  • Rules are now also Actions (action:rule), so you can place rules everywhere you can place actions. Old action:branch was removed, because there is no more need for them. However, action:branch is still supported when loading old profiles. An action:branch is substituted using an action:rule without Checks. However, it is recommend to rewrite your profiles, since there are many new features now.
  • new concept of variables. Variables allow to store information per packet during processing. Allowed Datatypes are JID and INT. Use this feature with new check:jid and action:set_jid rather new check:int and action:set_int.
  • new check:incoming reads incoming parameter of Openfire's PacketInterceptor.
  • new Raptor icon.
  • updated manual.
  • (for developers) improved usage of M4 macro processor for conditional comments.


version 0.1 (October 10, 2008)

  • initial version

 

download

  • raptor-0.2.1-544.tar.gz
  • raptor-0.2.1-544.zip
  • This is an BETA release, be aware of bugs! Use on production systems at your own risk!
  • This download includes compiled JAR file, online manual, source code, javadoc docs, several scripts and used libraries.

 

 

XML examples

Several example XML files are attached to this document.

WebReg (advanced webinterface plugin)

$
0
0

This is a highly customized version of the registration plugin from Ryan Graham. You can see the interface on jabber.rwth-aachen.de in action. The servlet is integrated via PHP-HttpClient, so the website is able to notice if the server/plugin is down an can show a nice and user friendly error message.

 

Features

- registration and activation (email authentication)

- automatic creation of vCard (fullname and email)

- a new user can chose if he wants to see a shared group ''Jabber Admins'' in his roster. (one way subscription)

- ensure user is member of RWTH-Aachen university (has a *rwth-aachen.de email address)

- ensure strong passwords (sends warning message if user sets a weak password via jabber-client, too)

- exponential waiting time if entered wrong password

- change password, lost password (email authentication)

- invite users by email

- simple statistics (count of registered and online users)

- advanced graphical statistics (last 24h, last week, last month), using RRD4J-Library (LGPL Licence) and a background thread.

- delete account

- ban users from using webinterface (except account deletion)

- (

new

) prevent remote users from using components, e.g. transports. You can specify which components should be monitored and whitelist single JIDs or complete remote jabber-servers. Blocked users get a message why their traffic was dropped.

- GPL License

 

Important

This plugin will not run out of the box. If you want to use this plugin you will have to customize it for your needs. At least you will have to setup some hardcoded paths and compile the plugin. Most strings/messages are GERMAN and partially specific for rwth-aachen university. Sourcecode comments and class/variable names are English.

 

This plugin is open source so everyone can take ideas and source snippets and build his/her own plugin. (in respect of the license)

 

Links

- Project site (German)

- Sourcecode

- Example how to integrate WebReg into your Webpage

 

Martin Weusten (Coolcat)

Helga (a Server-Bot plugin)

$
0
0

Helga is a powerful Server-Bot. It can be controlled by normal chat messages you send to bot@helga.yourserver.com, helga.yourserver.com or generally something@helga.yourserver.com. You will be automatically registered if you add Helga to your roster. Alternatively you can register via service discovery.

 

requirements and license

  • Openfire 3.5.x, 3.6.0 or newer
  • MySQL database is fully supported. Microsoft SQL-Server and HSQLDB (embedded-db) databases are reported to work, too. All other databases supported by Openfire are still beta, because completely untested.
  • released under GNU General Public License
  • I use parts of official plugins ( presence and search ) and Openfire itself. I am not the owner of the complete copyright, so I can't release it under any other license for you.

 

key features

  • advanced shared groups (see below)
  • LaTeX interface: compile LaTeX code into images, using external application.
  • some nice admin commands (e.g. message or email to every registered user, ...)
  • send remind messages to yourself or other users, simple management of this messages
  • import/export your own roster, import nicknames names from vCards (does work with transports, too!)
  • features taken from presence plugin: provide users presence via HTTP-Request, this does only work if the affected user has explicit allowed this.
  • currently available in German and an (maybe bad) English translation. (it would be great if a native English speaking could help translating it)
  • for developers
    • English comments and identifiers in source code (use of JavaDoc)
    • use of i18n files, you can translate Helga in your language
    • use of Openfire's internal database schema manager
    • easy to use base class for commands
    • feature rich utility classes
    • event system, to realize timeouts, callbacks, etc.
    • it should be easy to extend Helga with your ideas!

 

helga shared groups

Helga builds an advanced shared group system around the constricted Openfire system. So everything that was possible with Openfire itself, is possible with Helga, too. A more detailed description is available in German language.

  • All group settings are available through Helga chat commands. This should work with ALL jabber clients.
  • different user classes:
    • everyone - just a user who has an account on your server
    • group member - user who is member of a group
    • moderator - moderators for example can kick or ban users. Only serveradmins can give you this rights.
    • serveradmin - member of special group "Jabber Admins", this users can do everything
  • different group types:
    • OPEN - everyone can join this group or invite others. Moderators can kick or ban users. The list of group members is public and the group appears in global group list.
    • MODERATED - everyone can request a join, moderators can accept their request, invite, kick or ban users. The list of group moderators is public, member list is visible for members. The group appears in global group list.
    • CLOSED - users can only join this group, if they got an invitation from a moderator before. Moderators can kick or ban users, too. The list of group moderators is public, member list is visible for members. The group does not appear on global group list.

commands

An complete manual to all commands and parameters is currently only available in German language. Also a first steps guide is available in German.

 

basic commands

command

description

help

Get a list of all supported commands.

help [command]

Get help to an specific command.

get

Reads out the current setting of an option. To change a setting, use the 'set'-command.

latex

Complies given LaTeX Code to an GIF image, uploaded on the server. Helga provides two links:

  • permanent link to the image

  • always the same link which points always onto your last image.

See README for more details.

message

Send a remind message to someone. This command can be used to send an message to yourself or someone else. You can manage your messages with 'show' and 'remove' commands. The number of messages per user is limited to 10.

ping

Simple command which just answers "pong". Helpful to check if your internet connection is still available.

presence

Gives the time when an user was last seen or his presence if the user is only at the moment. For security reasons is is only possible to query users who are registered with Helga and have set public setting to 'true'.

Serveradmins get extended information about users operating system and client.

remove

Active events can be removed. The 'remove'-Command removes an specific or all messages. You can only remove your own messages. You can get the MessageID by the 'show'-Command.

set

Set an option to an new value. To read out the current setting use the 'get'-command.

show

Prints a list of all your active messages.

time

Sends current servertime

welcome

Sends welcome-message again.

 

group management

command

description

group add

This command is only for serveradmins. You can add one ore more users directly to a group. (without user demand)

group ban

This command is only for moderators. The user will deleted from the group and append to a ban list, which prevents the user from rejoin to the group. The ban can be revoked with the 'revoke' command. This ban list of a group can be shown using the 'info' command.

group create

Serveradmins can create new groups with this command. To change group settings later, use 'update'. Both commands are identically, except that 'create' can only create new groups and 'update' can only change existing groups. (security against typos)

group decline

This command has two functions:

  1. You can decline an invitation explicitly. Moderators will noticed about this with a message.

  2. Moderators can decline a join request.

group delete

Serveradmins can delete existing groups.

group find

This command lists all available groups of type OPEN and MODERATED. Groups of type CLOSED are only showed to serveradmins.

An optional filter can be used to restrict the search. All groups are listed who have the given filter in their name. The wildcards * and ? are interpreted as usual. The filter is case sensitive.

group info

A list of groups you are member of or information to an specific group.

group invite

Inside of OPEN groups every member can send invitations. Inside of MODERATED or CLOSED group only moderators are allowed to do this. Make an user an join request, then all moderators will receive a message. By inviting this user a moderator can accept the request. In this case the user will not receive an invite message, but will added to the group directly.

group join

With this command you can join a group. If the group is MODERATED, only a join request is made. This request can be accepted by an moderator with an 'invite' or decline with 'decline'. In CLOSED groups you can only join if you have been invited.

Only serveradmins can 'join' other users.

group kick

Groupmembers can leave the group with this command. Moderators can kick other users out of the group.

group message

Send a message to all members of a group. Only for group members in case of the group is in ONLYGROUP mode. In all other cases this can only done by group moderators.

group revoke

This command is only for moderators. It revokes a ban that was declared using the 'ban' command.

group update

see 'create'

 

roster management

command

description

roster import

With this command you can add multiple contacts at once to your roster (contactlist). This only makes sence if you want to import many contacts, for example a complete contact list if you are doing a server relocation.

roster export

This command does export your roster (contactlist) using the format described under 'import'. Contacts form shared groups where exported, too. Contacts that have a jabberID without a username (e.g. Transports as icq.jabber.rwth-aachen.de) where not exported.

roster names

This command iterates through your complete roster and sets nicknames automatically. This could take some seconds, especially if vCard are not locally available and have to be requested from remote.

 

admin commands

command

description

admin email

Serveradmins can send an email to all users of your server.

admin message

Serveradmins can send a message to all registered users of your server. (really all users, not only available)

 

changelog

2.22 -- August 18, 2008
  • Fixed bugs in database scripts for hsqldb. Using HSQLDB (embedded-db) with Helga should work now. (thx @ dfaure)
  • Changed time format for locale EN to 24h clock for usability reasons.
  • Fixed time format bug in 'message' command manpage.
  • Fixed minor leap year bug in 'message' command.
  • New compile script: No longer hardcoded absolute paths. JavaDoc creation should no longer flood with warnings.

2.21 -- April 8, 2008

  • Applied API changes for Openfire 3.5.0. Set minServerVersion to 3.5.0

  • Fixed some bad quoting bugs in i18n files.

  • Fixed NullPointerException for commands 'group create' and 'group update' if parameter '-g' is not given.

  • Fixed NullPointerException when revoking moderator rights with command 'group update'.

  • command 'presence' does now show also group memberships, if an admin is querying.

2.20 -- March 13, 2008

  • new command: 'latex' - compiles LaTeX code to images, using an external application.

2.11 -- March 4, 2008

  • Fixed serveral problems with SQL-server database. SQL-server should work now, but helga's group features are still untested with SQL-server. thx@deafsquad

  • Other databases than MySQL and SQL-server are still Beta. Would be nice if someone could test it and report results to me.

  • Added some linebreaks to in-band-registration-instructions.

2.1 -- February 21, 2008

  • 'message' command does now check if a local resource is available before sending to it. If the resource is unavailable it redirects to bare JID. For external resources can't checked if they are available, so message were lost, if the external server does not redirect the message.

  • fixed small bug while loading message events from database

  • 'admin message' sends to all connected resources now, not only to the most available resource of each user. Added option not to send to unavailable users, too. This should be equivalent to send a message through the admin console.

  • new command: 'ping' - It just answers "pong". Helpful to check you Internet connection.

  • new alias: (date -> time)

  • removed experimental transport settings, because they didn't work and are not needed anymore. Removed HelgaTransportManager class and related code.

  • Helga should now be able to import nicknames from everything that supports vCards (XEP-0054 vcard-temp). In particular this should work with pyICQt and pyMSNt.

  • command: 'roster names', added an option to restrict work on an specific domain or subdomain.

  • massive changes on database tables. Helga should now support all databases that openfire supports, but everything else than MySQL is still Beta.

  • Helga is now integrated into Openfires database update system. In future database changes can be done automatically. If you are updating from Helga 2.1x execute the following SQL statement before updating to a newer version of Helga:

INSERTINTO jiveVersion (name, version) VALUES ('helga', 0);
  • If you are updating from 1.xx (before offical release), you have to update manually.

2.02 -- November 18, 2007

  • compiled with Openfire 3.4.1 and JDK 6u3

  • minor changes

2.01 -- November 2, 2007

  • nicer presence images, images taken from Psi's "Crystal (Roster)" Icons (Author: Everaldo Coelho, http://www.everaldo.com)

  • changed the way how Helga loads the presence images

  • now an local username is accepted in a HTTP-Request. You can use something like: ...helga/user?jid=user1 instead of ...helga/user?jid=user1@yourserver.com

     

    download

    This complete bundle contains: compiled jar-file, source code, JavaDoc files, some scripts and GPL license text.

     

    helga-2.22-415.tar.gz

    You should read the configuration section in README file before using!

    Do not use on productive systems, if you do not have an MySQL database!

     

     

    If you have questions, improvements, etc. leave a comment on this document.

     

    Martin Weusten (Coolcat)

    Plugins for Openfire 3.6.4

    Jappix for Openfire plugin

    $
    0
    0

    I really like Jappix. It ia fully functional XMPP web client with a lot of features and even looks like Sparkweb

     

    Image1.png

    It has a cool microblog feature like onesocialweb similiar to the one I implemented on a comercial version of SparkWeb using XMPP pubsub. As much as I liked Jappix, I really could not use it. It was developed in PHP and required a second web server with too much fiddly configuration to make Openfire HTTP-BIND run the cross-domain gauntlet. Well that all changed when I discoveredQuercus: Caucho Technology's fast, open-source, 100% Java implementation of the PHP language.

     

    It has enabled me to create an Openfire plugin for Jappix that works out-of-the box. No configuration required.

     

    The main reason for my interest in Jappix was the minichat feature which is like the Facebook IM User Interface and is best for integration with other web applications. I have an immediate requirement to put IM into my Clearspace/Openfire setup and Jappix was just right for this.

    Image4.png

     

    I am posting this here for community members who might have a need for it. I do not plan on doing any development work on the Jappix PHP code, so if you spot a fault, head over to the Jappix project web site and report it. Please don't email me.

     

    How to install and use

    1. Download the appropiate zip file for your Openfire server
    2. Stop Openfire
    3. Unzip jappix.war and copy to your plugins folder
    4. Restart Openfire
    5. Go to http://your-server:7070/jappix

     

    References

    Download for Openfire-Jappix is http://code.google.com/p/openfire-jappix/downloads/list

    Source code is http://code.google.com/p/openfire-jappix/source/checkout

    Project Jappix is https://project.jappix.com/

    Project Quercus is http://www.caucho.com/resin-3.0/quercus/

    Online Users Plugin

    $
    0
    0

    I developed a very small plugin which displays on a web page the number of users currently online.

     

    Take a look here:

    https://github.com/amiadogroup/onlineUsersPlugin

     

    From the readme:

    "The OnlineUsers Plugin exposes the number of currently online users through HTTP.

    Just open http://yourserver:9090/plugins/onlineusers to get it."


    List of online users

    Since version 1.1.0 it's possible to get the list of online users through http://yourserver:9090/plugins/onlineusers/list.

    Standard behaviour is that you have to login in order to access this list. You can change that through the system property plugin.onlineUsers.list.disableAuth (set it to true).

     

    If you change this setting, you have to restart the server (or reload the plugin, but I didn't try that).

     

    Jar is in the "bin" directory.

     

    The plugin is released under GPLv2 and has been developed by me at the Amiado Group.

    Candy plugin for Openfire

    $
    0
    0

    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
    //CandyShop.VoiceBridge.init('sip:1000@192.168.1.96');

    // 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
    //CandyShop.VoiceBridge.init('+447925589467');

    // 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'
    CandyShop.VoiceBridge.init('rtmp:');Candy.Core.connect();

     

    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 http://code.google.com/p/openfire-candy/

     

     

    Candy Plugin Readme

    Installation

    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 www.igniterealtime.org

    Configuration

    Normal

    • Follow steps from https://github.com/candy-chat/candy/wiki/Installing-a-Jabber-server
    • 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.

    Image2.jpg

    Advanced

    • 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
    voicebridge.default.proxy.name<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

     

    Image2.jpg

     

    • 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

    Just married: Change a User Name & Update the Rosters

    $
    0
    0

    In a large environment, you may face requests to change user names for some reason.  We often had requests to change the username because somebody married and changed the family name.

     

    Our usernames are a combination of the forename and the surname like forename.surname@jabberserver.

    So we need to edit the usernames, but sadly Openfire does not support that because the username is unique and the primary key for nearly all user relations in the database.

     

    The created plugin creates a new user and copies all the roster entries, groups, password, preferences, vcard et cetera from an other user and deletes the old user (if you want). You also also create just a copy from an existing user for testing purpose or something like that.

     

    This is the first version of the plugin, so use it on your own risk. You might keep the old user in database as long as your sure everything works as intended!

     

    If you find some bugs feel free to comment, create tickets (if your allowed to) or fix it on your own. Sourcecode is available in openfire svn trunk.

     

    Greetz,

    Stytrix

     

    Dieses Dokument wurde aus folgender Diskussion erzeugt: Just married, Openfire plugin

    Openfire Audit Log Reader

    $
    0
    0

    by A_Li_N

     

    I didn't find any program out there that suited my needs for a log reader to read the server audit logs, so I made one.  I thought I'd share my work for anyone that might find it usefull.

     

    Very simple to use:
    Click on  Open Log, browse to the log files from the server.

    This populates the names on the left.

    Click one of the names to show the messages to and from that person on the right.

    Click a particular message on the right to show the entire message (if it is longer than visible) at the bottom.

     

    No need to convert or edit the logs.

    No need to know how many / what users there are.

     

    Fast and simple.

     

    Updates:

    2009/08/14 - Fixed error when file didn't close out Jive tag (believe this happens from taking log still being written to by server), thanks wr00t.

    2012/10/24 - Seth Randall made some improvements. Thanks! File attached

    2013/04/04 - Joshua Cantara - Fixed a bug resulting from when a user messages themself.

    2013/04/29 - Seth Randall - New version that fixes the bug Joshua found. Now it will log the message appropriately without teminating the import.

    How to run Spectrum 2 with Openfire - Gojara plugin Guide

    $
    0
    0

    How to run Spectrum 2 withOpenfire - Gojara plugin Guide

     

    "Spectrum 2 is an XMPP transport/gateway and also simple server. It allows XMPP users to communicate with their friends who are using one of the supported networks."

     

    We use Spectrum 2 as an external component to extend Openfire, making it possible to connect to different protocols within your Instant Messenger.

    To make Spectrum 2 work nicely with Openfire, we developed the OF-plugin Gojara.

     

    This document will guide you through the following steps:

    • Installing Spectrum 2 & configuring Spectrum 2 + Openfire
    • Installing Gojara & configuring Gojara
    • migrating user-credentials from kraken to spectrum 2

     

    I will try my best to give you the information you need to work with Spectrum2. If you have any suggestions for improving this document, feel free to write a pm / email.

     

    Before we start, let's talk about some important things Spectrum2 / Gojara can and CANNOT do so you don't set this up to later find out it's not what you wanted.

     

     

    • Spectrum 2 does currently (July 2013) NOT SUPPORT FILETRANSFER. For further Questions please contact the Spectrum 2 developers at    www.spectrum.im

     

    • Although Spectrum 2 supports protocols like Skype / Facebook, these are currently ( July 2013 ) not tested with Gojara / OF and getting these to work was not the purpose of this plugin. This may change in the future, but for our purposes libpurple is sufficient.

     

    • Adding contacts works, but may be a bit bothersome at times. Best practice is to add contacts from your native client and then everything works fine.

     

    • If you use a LDAP database or any UserProvider where Gojara would not be allowed to create it's own technical user, you currently need to create the openfire user gojaraadmin by yourself, otherwise communication between Gojara and Spectrum 2 wont work properly (This only affects statistics / unregistering of users). I'm currently working on a patch for selecting the user for communcation yourself, so if you already have a technical user for OF you won't need to create another one.

     

     

     

     

     

     

    Spectrum 2

    Installation

     

    We only use Spectrum 2 on linux machines, so this guide will not cover anything Windows related.

     

    You can install Spectrum 2 from repositories:

     

     

    Configuring Openfire

     

    Spectrum 2 backends are external components which need to connect to the OF-Server. Of course you need to enable External Components for this to work.

     

    • In your Openfire admin console goto: Server -> Server Settings -> External Components.

     

    • Set Service Enabled to Enabled. Standard Port is 5275, you can set a different password.


    • If you don't want to set "Allowed to Connect" to Anyone, you need to whitelist the component. The name of the component will be something like "icq.your-domain", see Spectrum 2 configuration.

     

     

    Configuring Spectrum 2

     

    Most of this is already covered in http://spectrum.im/documentation/tutorials/gateway_mode.html , but I'll provide a quick overview.

     

    Spectrum 2 config files are located at /etc/spectrum2/.

    Transport config files are at /etc/spectrum2/transports/.

     

    There is a default spectrum.cfg.example provided which you should copy, rename and edit. You need a .cfg file for EACH protocol you want to enable.

    Most settings in there are already documented well, but let's look at our most important ones. This should work for all protocols supported by libpurple.

     

     

    [service]

    • server_mode   ---> This should be 0. This means Gateway mode, as we don't need server functionality (we have OF for that).

     

    • jid           ---> Jabber-ID for the transport (or Openfire-component). E.g. "icq.yourdomain.tld". Please be aware that your server name may not be the same as your host Name / XMPP domain.  Look this up in Server -> Server Manager -> Server Information or System Properties -> xmpp.domain.

     

    You really should stick to this naming convention, as OF can only correctly show the icq image if the subdomain starts with icq., same for msn etc.

     

    • admin_jid     ---> This field needs to be added somewhere in the service area. It's the JID of the Account that will be able to send/receive spectrum2_manager commands via xmpp, should be gojaraadmin@yourdomain.


    If you don't set this to gojaraadmin@yourdomain, gojara will not correctly show gateway session/registration details and unregister from console won't work.

     

    • password         ---> Password for connecting the component to Openfire, you configured this earlier.
    • server              ---> Where is your XMPP Server running? (respectively "domain.tld"). S2 needs to be able to resolve this.
    • port                  ---> Port the Gateway should use to connect to OF. We set the default to 5275 earlier.
    • backend_host  ---> localhost, when Spectrum2 is running on the same machine as the backends.
    • backend          ---> Path to the backend you want to use for this Transport. For example: "backend=/usr/bin/spectrum2_libpurple_backend".
    • protocol           ---> Libpurple Protocol ID, see List of Protocol Identifiers for further info. https://wiki.instantbird.org/Protocol_Identifiers

     

    [identity]

    • self-explanatory

     

    [database]         ---> For simple sqlite3 usage this doesn't really need to be edited. We use postgres so I'll still explain this configuration.

    • type           ---> For postgres this needs to be set to "pqxx".
    • database   ---> Name of the Database we want to use.
    • server        ---> Server the DB is running on, localhost if same server.
    • port           ---> Port that should be used for connecting.
    • user           ---> Name of the User/Role we want to use.
    • password   ---> If configured for md5, we need to set the password for the role configured above. Of course there are also other authentication methods you can configure.
    • prefix         ---> Value the tables used for specific transport will be prefixed with. Probably should be set or it will insert users of different transports into the same table. Does not need to be set for sqlite usage, as in that case, S2 creates a separate DB for each transport in /var/lib/spectrum2/
    • connectionstring --> Does not need to be set as we configured the values above.

     

     

    Configuring for Debugging:

     

    To be able to debug incoming or outgoing XMPP Messages correctly, we should enable XML Logging for Spectrum2. With this ON, S2 will write the content of XMPP Packages to its logfiles. We then can easily grep these logs to find errors / figure out the workflow. Of course, this should not be set to ON on production.

     

    /etc/spectrum2/logging.cfg   --->    log4j.category.Component.XML = ON|OFF

     

    These settings will be overwritten on a new install of Spectrum2 ( unlike gateway cfgs located in /etc/spectrum2/transports/ ) but probably not by upgrade.

     

     

    List of important directories:

     

    /etc/spectrum2/             --> This is where the configuration files are located.When S2 is started, it looks here for cfgs and will try to create an instance accordingly.

     

    /var/log/spectrum2/        --> This is where the logfiles for each configured instance are located. It contains the Spectrum2.log, as well as the Backend.log. Spectrum2.log contains logs to most actions handled by Spectrum2, while the backend.log contains Information about the specific backend Spectrum2 uses to do its work (connect to loginservers, etc.).

     

    /var/lib/spectrum2/         --> This directory contains the databases created when used with SQLite3, as well as coredumps related to specific transports.

     

    /var/run/spectrum2/       --> Contains the PIDs related to started Spectrum2 Instances.

     

     

    Starting Spectrum2:

     

    You can interact with Spectrum2 via spectrum2_manager. All available commands are listed here: http://spectrum.im/documentation/management/spectrum2_manager.html

     

    For a simple start, type "spectrum2_manager start" in the shell. It starts a transport for each configurationfile in /etc/spectrum2/transports/ that ENDS on .cfg (so the example one will be skipped).

     

    You can directly adress a specific transport by supplying its JID to spectrum2_manager , e.g: "spectrum2_manager icq.your-domain stop"

     

     

     

    Gojara

    Download

    See http://community.igniterealtime.org/message/231619#231619

     

    Installation


    Installing Gojara is simple, just open the openfire console and in the Plugins section select Gojara.jar and upload it. You can delete it by clicking on the red X.

     

    Gojara now extends the openfire console with some new pages, here is a quick overview:

     

    • Server -> Server Settings -> GoJara                                   ---> Used for configuring Gojara and viewing Statistics as well as live logging
    • Server -> Server Manager -> Spectrum2 Stats                     ---> If admin_jid & spectrum2 is correctly configured, will show some statistics like Uptime, Memory Usage and messages sent / received for each transport.
    • Sessions -> Active Sessions -> Gateway Sessions             ---> Overview of OF-Users currently connected to a gateway via Spectrum 2
    • Sessions -> Tools -> Gateway Registration Overview           ---> Overview of all Users that at some point entered login credentials or actually connected to a gateway via Spectrum 2. If admin_jid & spectrum2 is correctly configured, you will be able to manually unregister registrations from the OF-Console
    • Session Details                                                                ---> Will show active Sessions and existing Registrations for selected user. Click on a session entry / registration entry in respective overviews to see this view.

     

    Configuring Gojara

     

    We are not quite done yet. Without configuration, Spectrum 2 will send a authorization request for EVERY transport on your gateway contact list. There are also some additional features you might want to use that can be configured for Gojara.

     

    Go to Server-> Server Settings -> Gojara.


    You should check each connected gateway to enable remote roster. Clicking on the symbols in the component bar will expand the bar and display some additional information. Clicking on the Groups icon will let you limit access to this gateway to specific Openfire-groups. This will be explained in more detail in a later section

     

    • General Options:
      • Persistent Roster

    When persistent Roster is enabled, ALL CONTACTS that are "imported" into OF through the gateway will NOT be deleted when you log out again. This makes your roster bloat up quite a bit if you use a lot of transports. Unless you really need / want this somehow, we recommmend NOT enabling persistent Roster.

     

      • Only allow internal Jabber Conferences

    Spectrum 2 might show MUC (Multi User Chat) as a supported feature of some Transports. If this should not be allowed because you only want to use internal Jabber Conferences, check this to make Gojara remove these.

     

    • Client specific Features:

    If you use spark, enable these. For other clients, these shouldn't harm your experience, but you might want to try toggling thes if you experience issues. We work with spark exclusively though, so we didn't really test other clients.

     

     

    Ok! Basic configuration is done! If you set up Spectrum 2 correctly and started it, the gateways should now should show up when you log into your Messenger.

     

     

     

    Configuring Access Control

    1. If you did not already do it, create a Group at Users/Groups -> Groups -> Create new Group, for example ICQWhiteList.
    2. normally you dont want groupmembers to see other groupmembers, so disable contact-list group-sharing.
    3. At Server -> Server Settings -> GoJara add the Group to the corresponding transport-whitelist & save settings.

     

    step_group-sharing.jpgstep_gojara.jpg

     

     

     

    Adding a User

    Best do this from a native client, but most of the times it works fine.

     

    2013-06-27 14-54-02_KN Spark.jpg2013-06-27 14-55-43_Program Manager.jpg

     

     

     

    Unregistering a registration

     

    If you correctly configured Spectrum 2 to include the admin_jid = gojaraadmin@yourdomain then you will be able to unregister a user from Spectrum 2. This means that if the user is currently online, he will be forced offline and will have to REENTER his login credentials.

     

    If a user entered his login-credentials with a wrong password and does not know how to reset his credentials within his messenger, you can still unregister him from Spectrum 2 via the registration Overview. He will then be prompted to enter his credentials again.

     

    Unregistering a user from Spectrum 2 will clear all data Spectrum 2 saved regarding this user.


    Session / Registration Overview + Spectrum 2 Stats

    2013-07-04 13-53-05_Openfire Admin Console_ Spectrum2 gateway stats.png

     

     

    2013-07-04 15-07-31_Openfire Admin Console_ Gateway Sessions - activeSessions.png

     

    2013-07-04 15-20-59_Openfire Admin Console_ GatewaySession Details for_axel.png

     

    2013-07-04 15-37-43_Openfire Admin Console_ Overview of existing Registrations.png

     

     

    Migrating user-credentials from Kraken to Spectrum 2

     

    Holger developed a plugin to migrate existing user-credentials from Kraken to Spectrum 2. You can find the Plugin as well as a detailed description of the necessary steps here: http://community.igniterealtime.org/message/227626#227626

     

    Be sure to use the latest version, currently the one attached to this post: http://community.igniterealtime.org/message/229878#229878

    Clustering Plugin

    $
    0
    0

    A commercial clustering plugin was available some time ago. This plugin was made open source, see http://www.igniterealtime.org/projects/openfire/plugins.jsp without the Coherence files. Currently one does need an old Coherence version to get it running,

     

    If one wants to create a clustering plugin based on an existing clustering solution one does need to look at the packages org.jivesoftware.util.cache and org.jivesoftware.openfire.cluster. In those packages one will find interfaces like:

    • ClusterNodeInfo

    • CacheFactoryStrategy

    • ExternalizableUtilStrategy

    • ClusterTask

    • Cache

     

    References:

    http://www.igniterealtime.org/community/message/174820

    http://www.igniterealtime.org/community/thread/36463

    Handle authorization at DB side, with Dovecot example

    $
    0
    0

    Openfire can be enabled to pass authentication to underlying database.

    This might be useful if passwords stored by mysql PASSWORD function or some other way inaccesible from openfire directly.

     

    There is a library available to enable such behaviour.

    It will pass authentication process to database.

     

    Wiki: https://github.com/pokebadgerswithspoon/openfire-extended-jdbc/wiki

    Source: https://github.com/pokebadgerswithspoon/openfire-extended-jdbc

     

    Remember to build from source, attached file is just a nothing but a recent snapshot (working though).

    See linked wiki for configuration and Dovecot example

    Raptor, traffic control plugin

    $
    0
    0

    raptor_logo80.png

    Raptor allows to monitor traffic and drop or reject selective packets. Basically it is similar than the official PacketFilter plugin, but has much more features. For each packet going through the server it processes a list of Actions. In principle this list is processed from the top down, but branching is also allowed. You can define functions and if-then-else like structures. Even recursion is possible. These features can improve performance and open a complete new world of features. There are Actions for logging, sending Jabber messages and emails. Another key feature are counters. They count packets per JID. This allows you for example to detect abuse or react on something at maximum only once every minute. E.g. if you intercept 100 packets per second you probably don't want 100 log entries per second.

     

    Such sets of actions are called profiles. Profiles can be easily imported and exported in an XML format. You will find it useful to share profiles or parts of them within the community.

     

    You will find much more information about what is possible and how to use Raptor in the online manual included in the packet. Check out the self-explanatory XML examples below to get an idea what is possible with Raptor.

     

    Raptor is clearly targeted to advanced users. Basic programming knowledge is required, some experience with multithreaded applications is recommend.

     

    requirements and license

    • This is an BETA release, be aware of bugs! Use on production systems at your own risk!
    • Openfire 3.5.2 or newer
    • Raptor is licensed under GPLv3.
    • Raptor does not need direct database access, so it should support all databases Openfire supports. Instead profiles are stored by default as XML in "..../openfire/conf/raptor". You may change this directory, see README.
    • Currently there is no editor for profiles, you will need to write XML code by hand. However, an AJAX based editor for admin console is planned for future releases.

     

    changelog

    version 0.2.1 (March 19, 2009)

    • Added XML Viewer with Syntax-Highlight to Admin Console Interface.
    • Traffic to component.your-server.tld was blocked in some examples in manual. You components would not work correctly then.
    • Mentioned email sender properties in manual.
    • Email sender does now default to admin@your-server.tld.

     

    version 0.2 (March 15, 2009)

    • Solved several race condition bugs in Counter. Packets are now synchronized using bare JID strings, instead of using AtomicInteger class.
    • new check:set_count is an atomic combination of check:count and action:set_count. This helps to deal with race conditions at user/profile level. See new examples in manual.
    • check:address does now support checking against a GROUP. If a domain ends with localhost this is automatically replaced with your servername.
    • new action:message can send Jabber messages.
    • new action:email can send emails. New emailmapper can map jabber to email adresses, e.g. you could map username@jabber.example.com to username@example.com.
    • new concept of functions. Functions are similar as the old action:branch, but they can be called multiple times using new action:call. In combination with variables even loops (as recursion) might be possible, if someone finds that useful. New entry point for your program is now a special function named MAIN. Old entry-Action are still supported, but deprecated.
    • Rules are now also Actions (action:rule), so you can place rules everywhere you can place actions. Old action:branch was removed, because there is no more need for them. However, action:branch is still supported when loading old profiles. An action:branch is substituted using an action:rule without Checks. However, it is recommend to rewrite your profiles, since there are many new features now.
    • new concept of variables. Variables allow to store information per packet during processing. Allowed Datatypes are JID and INT. Use this feature with new check:jid and action:set_jid rather new check:int and action:set_int.
    • new check:incoming reads incoming parameter of Openfire's PacketInterceptor.
    • new Raptor icon.
    • updated manual.
    • (for developers) improved usage of M4 macro processor for conditional comments.


    version 0.1 (October 10, 2008)

    • initial version

     

    download

    • raptor-0.2.1-544.tar.gz
    • raptor-0.2.1-544.zip
    • This is an BETA release, be aware of bugs! Use on production systems at your own risk!
    • This download includes compiled JAR file, online manual, source code, javadoc docs, several scripts and used libraries.

     

     

    XML examples

    Several example XML files are attached to this document.

    WebReg (advanced webinterface plugin)

    $
    0
    0

    This is a highly customized version of the registration plugin from Ryan Graham. You can see the interface on jabber.rwth-aachen.de in action. The servlet is integrated via PHP-HttpClient, so the website is able to notice if the server/plugin is down an can show a nice and user friendly error message.

     

    Features

    - registration and activation (email authentication)

    - automatic creation of vCard (fullname and email)

    - a new user can chose if he wants to see a shared group ''Jabber Admins'' in his roster. (one way subscription)

    - ensure user is member of RWTH-Aachen university (has a *rwth-aachen.de email address)

    - ensure strong passwords (sends warning message if user sets a weak password via jabber-client, too)

    - exponential waiting time if entered wrong password

    - change password, lost password (email authentication)

    - invite users by email

    - simple statistics (count of registered and online users)

    - advanced graphical statistics (last 24h, last week, last month), using RRD4J-Library (LGPL Licence) and a background thread.

    - delete account

    - ban users from using webinterface (except account deletion)

    - (

    new

    ) prevent remote users from using components, e.g. transports. You can specify which components should be monitored and whitelist single JIDs or complete remote jabber-servers. Blocked users get a message why their traffic was dropped.

    - GPL License

     

    Important

    This plugin will not run out of the box. If you want to use this plugin you will have to customize it for your needs. At least you will have to setup some hardcoded paths and compile the plugin. Most strings/messages are GERMAN and partially specific for rwth-aachen university. Sourcecode comments and class/variable names are English.

     

    This plugin is open source so everyone can take ideas and source snippets and build his/her own plugin. (in respect of the license)

     

    Links

    - Project site (German)

    - Sourcecode

    - Example how to integrate WebReg into your Webpage

     

    Martin Weusten (Coolcat)


    Helga (a Server-Bot plugin)

    $
    0
    0

    Helga is a powerful Server-Bot. It can be controlled by normal chat messages you send to bot@helga.yourserver.com, helga.yourserver.com or generally something@helga.yourserver.com. You will be automatically registered if you add Helga to your roster. Alternatively you can register via service discovery.

     

    requirements and license

    • Openfire 3.5.x, 3.6.0 or newer
    • MySQL database is fully supported. Microsoft SQL-Server and HSQLDB (embedded-db) databases are reported to work, too. All other databases supported by Openfire are still beta, because completely untested.
    • released under GNU General Public License
    • I use parts of official plugins ( presence and search ) and Openfire itself. I am not the owner of the complete copyright, so I can't release it under any other license for you.

     

    key features

    • advanced shared groups (see below)
    • LaTeX interface: compile LaTeX code into images, using external application.
    • some nice admin commands (e.g. message or email to every registered user, ...)
    • send remind messages to yourself or other users, simple management of this messages
    • import/export your own roster, import nicknames names from vCards (does work with transports, too!)
    • features taken from presence plugin: provide users presence via HTTP-Request, this does only work if the affected user has explicit allowed this.
    • currently available in German and an (maybe bad) English translation. (it would be great if a native English speaking could help translating it)
    • for developers
      • English comments and identifiers in source code (use of JavaDoc)
      • use of i18n files, you can translate Helga in your language
      • use of Openfire's internal database schema manager
      • easy to use base class for commands
      • feature rich utility classes
      • event system, to realize timeouts, callbacks, etc.
      • it should be easy to extend Helga with your ideas!

     

    helga shared groups

    Helga builds an advanced shared group system around the constricted Openfire system. So everything that was possible with Openfire itself, is possible with Helga, too. A more detailed description is available in German language.

    • All group settings are available through Helga chat commands. This should work with ALL jabber clients.
    • different user classes:
      • everyone - just a user who has an account on your server
      • group member - user who is member of a group
      • moderator - moderators for example can kick or ban users. Only serveradmins can give you this rights.
      • serveradmin - member of special group "Jabber Admins", this users can do everything
    • different group types:
      • OPEN - everyone can join this group or invite others. Moderators can kick or ban users. The list of group members is public and the group appears in global group list.
      • MODERATED - everyone can request a join, moderators can accept their request, invite, kick or ban users. The list of group moderators is public, member list is visible for members. The group appears in global group list.
      • CLOSED - users can only join this group, if they got an invitation from a moderator before. Moderators can kick or ban users, too. The list of group moderators is public, member list is visible for members. The group does not appear on global group list.

    commands

    An complete manual to all commands and parameters is currently only available in German language. Also a first steps guide is available in German.

     

    basic commands

    command

    description

    help

    Get a list of all supported commands.

    help [command]

    Get help to an specific command.

    get

    Reads out the current setting of an option. To change a setting, use the 'set'-command.

    latex

    Complies given LaTeX Code to an GIF image, uploaded on the server. Helga provides two links:

    • permanent link to the image

    • always the same link which points always onto your last image.

    See README for more details.

    message

    Send a remind message to someone. This command can be used to send an message to yourself or someone else. You can manage your messages with 'show' and 'remove' commands. The number of messages per user is limited to 10.

    ping

    Simple command which just answers "pong". Helpful to check if your internet connection is still available.

    presence

    Gives the time when an user was last seen or his presence if the user is only at the moment. For security reasons is is only possible to query users who are registered with Helga and have set public setting to 'true'.

    Serveradmins get extended information about users operating system and client.

    remove

    Active events can be removed. The 'remove'-Command removes an specific or all messages. You can only remove your own messages. You can get the MessageID by the 'show'-Command.

    set

    Set an option to an new value. To read out the current setting use the 'get'-command.

    show

    Prints a list of all your active messages.

    time

    Sends current servertime

    welcome

    Sends welcome-message again.

     

    group management

    command

    description

    group add

    This command is only for serveradmins. You can add one ore more users directly to a group. (without user demand)

    group ban

    This command is only for moderators. The user will deleted from the group and append to a ban list, which prevents the user from rejoin to the group. The ban can be revoked with the 'revoke' command. This ban list of a group can be shown using the 'info' command.

    group create

    Serveradmins can create new groups with this command. To change group settings later, use 'update'. Both commands are identically, except that 'create' can only create new groups and 'update' can only change existing groups. (security against typos)

    group decline

    This command has two functions:

    1. You can decline an invitation explicitly. Moderators will noticed about this with a message.

    2. Moderators can decline a join request.

    group delete

    Serveradmins can delete existing groups.

    group find

    This command lists all available groups of type OPEN and MODERATED. Groups of type CLOSED are only showed to serveradmins.

    An optional filter can be used to restrict the search. All groups are listed who have the given filter in their name. The wildcards * and ? are interpreted as usual. The filter is case sensitive.

    group info

    A list of groups you are member of or information to an specific group.

    group invite

    Inside of OPEN groups every member can send invitations. Inside of MODERATED or CLOSED group only moderators are allowed to do this. Make an user an join request, then all moderators will receive a message. By inviting this user a moderator can accept the request. In this case the user will not receive an invite message, but will added to the group directly.

    group join

    With this command you can join a group. If the group is MODERATED, only a join request is made. This request can be accepted by an moderator with an 'invite' or decline with 'decline'. In CLOSED groups you can only join if you have been invited.

    Only serveradmins can 'join' other users.

    group kick

    Groupmembers can leave the group with this command. Moderators can kick other users out of the group.

    group message

    Send a message to all members of a group. Only for group members in case of the group is in ONLYGROUP mode. In all other cases this can only done by group moderators.

    group revoke

    This command is only for moderators. It revokes a ban that was declared using the 'ban' command.

    group update

    see 'create'

     

    roster management

    command

    description

    roster import

    With this command you can add multiple contacts at once to your roster (contactlist). This only makes sence if you want to import many contacts, for example a complete contact list if you are doing a server relocation.

    roster export

    This command does export your roster (contactlist) using the format described under 'import'. Contacts form shared groups where exported, too. Contacts that have a jabberID without a username (e.g. Transports as icq.jabber.rwth-aachen.de) where not exported.

    roster names

    This command iterates through your complete roster and sets nicknames automatically. This could take some seconds, especially if vCard are not locally available and have to be requested from remote.

     

    admin commands

    command

    description

    admin email

    Serveradmins can send an email to all users of your server.

    admin message

    Serveradmins can send a message to all registered users of your server. (really all users, not only available)

     

    changelog

    2.22 -- August 18, 2008
    • Fixed bugs in database scripts for hsqldb. Using HSQLDB (embedded-db) with Helga should work now. (thx @ dfaure)
    • Changed time format for locale EN to 24h clock for usability reasons.
    • Fixed time format bug in 'message' command manpage.
    • Fixed minor leap year bug in 'message' command.
    • New compile script: No longer hardcoded absolute paths. JavaDoc creation should no longer flood with warnings.

    2.21 -- April 8, 2008

    • Applied API changes for Openfire 3.5.0. Set minServerVersion to 3.5.0

    • Fixed some bad quoting bugs in i18n files.

    • Fixed NullPointerException for commands 'group create' and 'group update' if parameter '-g' is not given.

    • Fixed NullPointerException when revoking moderator rights with command 'group update'.

    • command 'presence' does now show also group memberships, if an admin is querying.

    2.20 -- March 13, 2008

    • new command: 'latex' - compiles LaTeX code to images, using an external application.

    2.11 -- March 4, 2008

    • Fixed serveral problems with SQL-server database. SQL-server should work now, but helga's group features are still untested with SQL-server. thx@deafsquad

    • Other databases than MySQL and SQL-server are still Beta. Would be nice if someone could test it and report results to me.

    • Added some linebreaks to in-band-registration-instructions.

    2.1 -- February 21, 2008

    • 'message' command does now check if a local resource is available before sending to it. If the resource is unavailable it redirects to bare JID. For external resources can't checked if they are available, so message were lost, if the external server does not redirect the message.

    • fixed small bug while loading message events from database

    • 'admin message' sends to all connected resources now, not only to the most available resource of each user. Added option not to send to unavailable users, too. This should be equivalent to send a message through the admin console.

    • new command: 'ping' - It just answers "pong". Helpful to check you Internet connection.

    • new alias: (date -> time)

    • removed experimental transport settings, because they didn't work and are not needed anymore. Removed HelgaTransportManager class and related code.

    • Helga should now be able to import nicknames from everything that supports vCards (XEP-0054 vcard-temp). In particular this should work with pyICQt and pyMSNt.

    • command: 'roster names', added an option to restrict work on an specific domain or subdomain.

    • massive changes on database tables. Helga should now support all databases that openfire supports, but everything else than MySQL is still Beta.

    • Helga is now integrated into Openfires database update system. In future database changes can be done automatically. If you are updating from Helga 2.1x execute the following SQL statement before updating to a newer version of Helga:

    INSERTINTO jiveVersion (name, version) VALUES ('helga', 0);
    • If you are updating from 1.xx (before offical release), you have to update manually.

    2.02 -- November 18, 2007

    • compiled with Openfire 3.4.1 and JDK 6u3

    • minor changes

    2.01 -- November 2, 2007

    • nicer presence images, images taken from Psi's "Crystal (Roster)" Icons (Author: Everaldo Coelho, http://www.everaldo.com)

    • changed the way how Helga loads the presence images

    • now an local username is accepted in a HTTP-Request. You can use something like: ...helga/user?jid=user1 instead of ...helga/user?jid=user1@yourserver.com

       

      download

      This complete bundle contains: compiled jar-file, source code, JavaDoc files, some scripts and GPL license text.

       

      helga-2.22-415.tar.gz

      You should read the configuration section in README file before using!

      Do not use on productive systems, if you do not have an MySQL database!

       

       

      If you have questions, improvements, etc. leave a comment on this document.

       

      Martin Weusten (Coolcat)

      Plugins for Openfire 3.6.4

      Jappix for Openfire plugin

      $
      0
      0

      I really like Jappix. It ia fully functional XMPP web client with a lot of features and even looks like Sparkweb

       

      Image1.png

      It has a cool microblog feature like onesocialweb similiar to the one I implemented on a comercial version of SparkWeb using XMPP pubsub. As much as I liked Jappix, I really could not use it. It was developed in PHP and required a second web server with too much fiddly configuration to make Openfire HTTP-BIND run the cross-domain gauntlet. Well that all changed when I discoveredQuercus: Caucho Technology's fast, open-source, 100% Java implementation of the PHP language.

       

      It has enabled me to create an Openfire plugin for Jappix that works out-of-the box. No configuration required.

       

      The main reason for my interest in Jappix was the minichat feature which is like the Facebook IM User Interface and is best for integration with other web applications. I have an immediate requirement to put IM into my Clearspace/Openfire setup and Jappix was just right for this.

      Image4.png

       

      I am posting this here for community members who might have a need for it. I do not plan on doing any development work on the Jappix PHP code, so if you spot a fault, head over to the Jappix project web site and report it. Please don't email me.

       

      How to install and use

      1. Download the appropiate zip file for your Openfire server
      2. Stop Openfire
      3. Unzip jappix.war and copy to your plugins folder
      4. Restart Openfire
      5. Go to http://your-server:7070/jappix

       

      References

      Download for Openfire-Jappix is http://code.google.com/p/openfire-jappix/downloads/list

      Source code is http://code.google.com/p/openfire-jappix/source/checkout

      Project Jappix is https://project.jappix.com/

      Project Quercus is http://www.caucho.com/resin-3.0/quercus/

      Online Users Plugin

      $
      0
      0

      I developed a very small plugin which displays on a web page the number of users currently online.

       

      Take a look here:

      https://github.com/amiadogroup/onlineUsersPlugin

       

      From the readme:

      "The OnlineUsers Plugin exposes the number of currently online users through HTTP.

      Just open http://yourserver:9090/plugins/onlineusers to get it."


      List of online users

      Since version 1.1.0 it's possible to get the list of online users through http://yourserver:9090/plugins/onlineusers/list.

      Standard behaviour is that you have to login in order to access this list. You can change that through the system property plugin.onlineUsers.list.disableAuth (set it to true).

       

      If you change this setting, you have to restart the server (or reload the plugin, but I didn't try that).

       

      Jar is in the "bin" directory.

       

      The plugin is released under GPLv2 and has been developed by me at the Amiado Group.

      Candy plugin for Openfire

      $
      0
      0

      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
      //CandyShop.VoiceBridge.init('sip:1000@192.168.1.96');

      // 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
      //CandyShop.VoiceBridge.init('+447925589467');

      // 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'
      CandyShop.VoiceBridge.init('rtmp:');Candy.Core.connect();

       

      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 http://code.google.com/p/openfire-candy/

       

       

      Candy Plugin Readme

      Installation

      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 www.igniterealtime.org

      Configuration

      Normal

      • Follow steps from https://github.com/candy-chat/candy/wiki/Installing-a-Jabber-server
      • 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.

      Image2.jpg

      Advanced

      • 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
      voicebridge.default.proxy.name<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

       

      Image2.jpg

       

      • 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
      Viewing all 31 articles
      Browse latest View live