Note: The tutorial below is obsolete as of version 0.30.
We hope to bring back this functionality soon with a much improved plugin system. Thanks!
==
Remobo Plugins
Remobo now supports custom plugins that you can access from the Applications menu. This allows users to integrate a wide range of 3rd party applications to make use of the Remobo instant private network.
Creating a Plugin
Creating a basic plugin is fairly easy...
In this example, our plugin will be called "myplugin"
1. Make a folder to hold your plugin files. Our folder will be called "myplugin"
/myplugin
2. Now create a file named "config.rdf" inside your folder. This is the plugin configuration file and will define how your plugin works.
/myplugin/config.rdf
3. The contents of this file should have the following format:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rpc="http://www.remobo.com/rdf/rpc#">
<rdf:Description rdf:about="urn:remobo:plugin-configuration">
<rpc:id></rpc:id>
<rpc:name></rpc:name>
<rpc:type></rpc:type>
<rpc:versionMajor>1</rpc:versionMajor>
<rpc:versionMinor>0</rpc:versionMinor>
<rpc:description></rpc:description>
<rpc:creator></rpc:creator>
<rpc:homepageURL></rpc:homepageURL>
<rpc:file>
<rdf:Description rdf:about="urn:remobo:plugin:library">
<rpc:lib></rpc:lib>
</rdf:Description>
</rpc:file>
<rpc:client>
<rdf:Description rdf:about="urn:remobo:plugin:client">
<rpc:exe></rpc:exe>
<rpc:cmdline></rpc:cmdline>
<rpc:startup>0</rpc:startup>
</rdf:Description>
</rpc:client>
<rpc:server>
<rdf:Description rdf:about="urn:remobo:plugin:server">
<rpc:exe></rpc:exe>
<rpc:cmdline></rpc:cmdline>
<rpc:startup></rpc:startup>
</rdf:Description>
</rpc:server>
<rpc:targetApplication>
<rdf:Description>
<rpc:id>736626</rpc:id>
<rpc:minVersion>0</rpc:minVersion>
<rpc:maxVersion>99</rpc:maxVersion>
</rdf:Description>
</rpc:targetApplication>
</rdf:Description>
</rdf:RDF>
4. Copy and paste the above file template into "config.rdf" and fill in the necessary fields.
5. Here is a description of the fields and what you need to fill in.
In this example, we will assume you have a program called "myprogram" that you want to add as a plugin. We will also assume that this program requires another program to be running on the computer you are connecting to called "myserver".
<rpc:id>01234</rpc:id>
This is the numeric id for this plugin and is used to find the corresponding plugin on the other end. We will assign you an id if you are creating an official plugin, but if you are just using it privately, then just enter a few digits starting with 0. Remember not to reuse the same id for another plugin or you may have problems.
<rpc:name>My Plugin</rpc:name>
This is the name of your plugin. Keep it short and sweet as it will appear in the GUI menu.
<rpc:type>RemoboGUIDefApplet</rpc:type>
This is the name of your plugin type. For plugins that are integrated purely through executable binaries, you should enter "RemoboGUIDefApplet" to use the default type. If you will be building a dynamically linked library, then you can enter the name of your custom type name here.
<rpc:versionMajor>1</rpc:versionMajor>
<rpc:versionMinor>0</rpc:versionMinor>
This is the version number of your plugin. Enter the major and minor version separately. In this example, we are at version 1.0
<rpc:description>This is my plugin!</rpc:description>
This is a short description of your plugin in case someone wants to read a bit more about it.
<rpc:creator>John Doe</rpc:creator>
Your Name!
<rpc:homepageURL>http://www.remobo.com</rpc:homepageURL>
This is the url to your web site or a web page with more information about the plugin.
<rpc:file>
<rdf:Description rdf:about="urn:remobo:plugin:library">
<rpc:lib></rpc:lib>
</rdf:Description>
</rpc:file>
These fields are used only if you are creating a dynamically linked library. Enter the library name between the "lib" tags. In this example, we will leave it blank.
<rpc:client>
<rdf:Description rdf:about="urn:remobo:plugin:client">
<rpc:exe>myprogram</rpc:exe>
<rpc:cmdline>$ip -other_params</rpc:cmdline>
<rpc:startup>0</rpc:startup>
</rdf:Description>
</rpc:client>
These fields describe the client application you want to run when this plugin is selected. In the "exe" field, enter the name of the executable program, and remember to add any file extensions such as ".exe" if needed. For the "cmdline" field, enter any parameters that should be passed to your program. A common parameter would be the virtual ip address of the other computer. You can specify this using the "$ip" placeholder and Remobo will fill it in automatically. The "startup" field indicates whether you need run this program when Remobo starts. Since we only want to run it when a user clicks on our plugin, we just fill in "0". Enter a "1" otherwise and it will be running as soon as Remobo starts.
<rpc:server>
<rdf:Description rdf:about="urn:remobo:plugin:server">
<rpc:exe>myserver</rpc:exe>
<rpc:cmdline>-p $password -other_params</rpc:cmdline>
<rpc:startup>1</rpc:startup>
</rdf:Description>
</rpc:server>
These fields describe the server application that runs on the remote computer you are trying to connect to. (The plugin needs to be installed on both computers to work.) The fields are very similar to the client ones above. You can use the "$password" placeholder to have Remobo fill in a server password to use when running this server. This way, you can change the server password from within Remobo's settings. In this example, we want the server to run as soon as Remobo starts up (to be ready for any requests) so we have filled in "1" for the "startup" field. The server can also be run only when a client wants to connect, in which case you would fill in "0".
<rpc:targetApplication>
<rdf:Description>
<rpc:id>736626</rpc:id>
<rpc:minVersion>0</rpc:minVersion>
<rpc:maxVersion>99</rpc:maxVersion>
</rdf:Description>
</rpc:targetApplication>
The last section describes the target application, which is Remobo itself. For now, just leave this section as is. In the future, you may have to target your plugins to specific versions of Remobo in case the config format changes, etc.
Installing the Plugin
After you are done with the config file, save it and copy your whole plugin folder "myplugin" into the "plugins" folder for Remobo. The plugins folder will be in different places depending on your OS.
Windows Default Location
c:\Program Files\Remobo\plugins
Mac OS X Default Location
/Applications/Remobo.app/Contents/MacOS/Remobo.app/Contents/Resources/plugins
Linux Default Location
/usr/local/share/remobo/plugins
Then, just restart Remobo and you should see your application plugin in the Apps popup menu!