The ability to launch secondary applications is a very important part of instant messaging because it offers a limitless extension mechanism for interactive collaboration using a variety of tools. Rather than defining a few secondary features, such as file transfer, shared whiteboard, URL sharing, voice chat, etc. and making them part of the protocol, ODSIMS suppports a more generalized, more extensible approach: it allows you to launch external applications or viewers. This approach makes it unnecessary to revise the protocol just to support a new interactive feature.
ODSIMS clients can send each other URLs or more traditionally-formatted commands with arguments. Both types of resources are encoded in message envelops and shipped with the launch request (TX_LAUNCH). When a client receives a launch request (RX_LAUNCH), it decodes the envelop and determines whether it contains a URL or a command. (The difference is easy to detect, since URLs have a very particular format, and only commands can be followed by additional arguments.) Then, it tests the launch request against a series of security checks, such as a list of trusted applications and users, prompting the user for confirmation, etc., before deciding whether or not to actually launch the URL or run the command.
If a URL is being launch, the envelop contains only the URL in standard URL format. Since the first part of the URL names the protocol, the client can consult the user's preferences to determine the preferred application is for that URL.
If a command is being launched, rather than a URL, then the envelop contains the command name and optional parameters, separated by spaces. The command name is not the physical name or path of the application to run, but rather is an alias to the command, a common alias name which both the sender and receiver agree upon. Using aliases for commands instead of the physical program path offers a level of abstraction that allows clients to launch applications for each other without having any knowledge of each other's system's configurations or user preferences. For example, if my favorite editor was vi, and I wanted you to edit a file, I would not send "vi filename", but rather I would send "edit filename", and your client would automatically convert "edit" to your favorite choice of editor.
Third party developers will provide applications with standard command-line interfaces that can be used as ODSIMS "plugins." These applications will offer collaborative features such as file transfer, voice chat, etc. As the superior tools gain popularity and dominance, the market will establish a set of common alias names for the features these tools provide. Later versions of the ODSIMS protocol specification may canonize these names and reserve them for their intended purposes.