Sonork Instant Messaging
Administrator Guide



February 2003
Product Version: Sonork Server V 1.7




This manual describes the different installation procedures that can be
used to install or update Sonork IM Server to Version 1.7 .



Enterprise Administrator Guide
Copyright Notice


© Copyright GTV Solutions, Inc. 1996, 2003. All rights reserved. May only be used pursuant to a Sonork Messaging Systems Software License Agreement. No part of this publication may be reproduced, transmitted, transcribed, stored in a retrieval system, or translated into any computer language, in any form or by any means, electronic, mechanical, magnetic, optical, chemical, manual, or otherwise, without prior written permission of GTV Solutions, Inc. GTV Solutions, Inc. grants you limited permission to make hardcopy or other reproductions of any machine-readable documentation for your own use, provided that each such reproduction shall carry the GTV Solutions, Inc. notice. No other rights under copyright are granted without prior written permission of GTV Solutions, Inc. The document is not intended for production and is furnished “as is” without warranty of any kind. All warranties on this document are hereby disclaimed, including the warranties of merchantability and fitness for a particular purpose.
U.S. Government Users Restricted Rights—Use, duplication or disclosure restricted, contact GTV Solutions. Inc.

Trademarks
Sonork Messaging System, and the Sonork logo are trademarks or registered trademarks of GTV Solutions, Inc. in the United States, other countries, or both.
Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Other company, product, or service names may be trademarks or service marks of others.

Notices
References in this publication to Sonork systems, products, programs, or services do not imply that they will be available in all countries in which GTV Solutions, Inc. operates. Any reference to these products, programs, or services is not intended to imply that only Sonork systems, products, programs, or services can be used.
Subject to valid intellectual property or other legally protectable right of Sonork, any functionally equivalent product, program, or service can be used instead of the referenced product, program, or service. The evaluation and verification of operation in conjunction with other products, except those expressly designated by GTV Solutions, Inc., are the responsibility of the user. GTV Solutions, Inc. may have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to the Sonork Director of Licensing, GTV Solutions, Inc., 49E. 21st. Street, 9th Floor, New York, NY 10010, United States of America.

© Copyright GTV Solutions, Inc. 2003. All rights reserved.
US Government Users Restricted Rights – Use, duplication or disclosure restricted, contact GTV Solutions, Inc.

About This Manual
This Manual describes the different installation procedures that can be used to install or upgrade Sonork Instant Messaging System to Version 1.7

I. Audience
The target audience for this guide is system administrators responsible for the installation of Sonork products and patches. Users of this guide should have knowledge of the following:

PC operating Systems
Database architecture and concepts
Networking
Graphical user interface

II. Organization
This manual is organized as follows:

Chapter 1: Configuration Utility Overview is an introduction over the Sonork Configuration Utility
Chapter 2: Server Configuration, this chapter explains the options you have to configure the Sonork server.
Chapter 3: Users Configuration, this chapter explains the User Profiles, the Tracker rooms and the Call signs.
Chapter 4: HTTP Server, explains Sonork HTTP Server folders and specials commands
Chapter 5: Web application and Messages Templates, explains how to create template for Web2Sonork
Chapter 6: Creating WebApps, This chapter explains how to create WebApps

III. Related Documents
Sonork provides the following related documentation:

Sonork User’s Guide: may contain important information about anything related to Sonork Server that may affect your installation.
Sonork Release Notes: may contain important undocumented information about anything related to Sonork Server that may affect your installation.

You can also view the Sonork Version 1.7 Technical Update for any additional information not included in this manual. You can access the Technical Update from the following URL: http://www.sonork.com/eng/support.html

IV. Reader’s Comments
Sonork welcomes any comments and suggestions you have on this and other Sonork manuals.
You can send your comments in the following ways:

Fax: 1-212-228-9600 Attn: SLD Publications
Internet electronic mail: readers_comment@sonork.com
Postal Address:

GTV Solutions
Attn: SLD Publications
49 East 21st Street
New York, NY 10010
USA

A Reader’s Comment form is located on your system in the following location:
$SONORK/doc/readers_comment.txt
Please include the following information along with your comments:

The section numbers and page numbers of the information on which you are commenting.
The version of Sonork that you are using.
If known, the type of processor that is running the Sonork Messaging System software.

The Sonork Library Department ( SLD) cannot respond to system problems or technical support inquiries. Please address technical questions to your local system vendor or to the appropriate Sonork technical support office. Information provided with the software media explains how to send problem reports to Sonork.

V. Conventions
This guide uses several typeface conventions for special terms and actions. These conventions have the following meaning:

BOLD Commands, keywords, file names, authorization roles URLs, names of windows and dialogs, other controls, or other information that you must use literally is in bold.
Italics Variables and values that you must provide, new terms, and words and phrases that are emphasized are in italics.

This Guide uses the UNIX convention for specifying environment variables and directory notation:

When using the windows command line, replace $variable with %variable% for environment variables and replace each forward slash (/) with a backslash (\) in directory paths.

VI. Publications On-line
When GTV published an update version of one or more online or hardcopy publications, they are posted to the Sonork Information Center. You can access updated publications in the Sonork Information Center from the following Sonork Customer Support Web Site: http://www.sonork.com/eng/support.html/
The Sonork Information Center contains the most recent version of the books in the product library in PDF or HTML formats, or both. Translated documents are also available for some publications.

VII. Ordering Publications
You can order many Sonork publications online at the following Web site.
http://www.sonork.com/sonork.html
From this Web page, select Publications and follow the instructions.
In other countries, for a list of telephone numbers, see the following Web site: http://www.sonork.com/eng/contact.html

VIII. Customer support
If you have a problem with any Sonork product, you can contact Sonork Customer Support. See the Sonork Customer Support Handbook at the following Web Site: http://www.sonork.com/eng/support.html

Or visit
http://www.sonork.com

Server support
server-support@sonork.com

Client support
client-support@sonork.com

Developer support
developer@sonork.com








Configuration Utility Overview

This chapter describes an overview of the Server Configuration Utility (SCU). The server configuration utility may be accessed from the Windows "Start" menu or by pressing the "Config" button on the server window.



Server Configuration Utility Menu

Server Configuration Utility menu
Figure 1

With this utility you can configure your Sonork Server as well as the management of your user’s profiles.
This program works the same if you use it as a local or remote console to monitor your Sonork Server configuration or activities.


2.1 Server profiles
The configuration profiles represent a server installation: You must select and open a profile in order to use the configuration utility.
Normally, you will only have one profile named "default" unless you administer several Sonork installations.

Server Configuration Profiles
Figure 2

Select the profile and click "Connect". If the profile cannot be opened, a message will be displayed and you should click on "Edit" to modify the settings that are wrong.

NOTE: Do not delete the "default" profile.
Each server profile contains information about the server folders and ODBC data source. Click on the "Edit" button to modify these settings.

If the profile is checked as "Remote installation", the configuration utility will ignore items that do not exist on the local computer (such as folder directories) and use only the ODBC data source.

If you're using a file-driven ODBC data source (such as MS-Access), remote mode is not possible: Remote mode will only work on client/server SQL systems.

Server Profile
Figure 3

The "Host" field should indicate the network address (name or IP) of the Sonork server and is used by the Monitor when online functions (such as sending messages) are required.
The purpose of each folder is explained under "The data folders" in the Enterprise Installation Manual.

2.2 Settings

Server Settings window
Figure 4


This window allows you to tune the server, change configuration parameters and set the server's "Start up" mode.
Each value has a description next to it; more information may be obtained by selecting the value and clicking on "Edit". The most frequently used values are:

2.2.1. NetAddress

TCP ports and address to which the server binds on multi-homed machines

2.2.2. NetExport
Address to use when exporting services. Used for Extranet support

2.2.3. SidTimeout
Session timeouts: Seconds for identification, Ping Rate, Slack.

2.2.4. ServerFlags
Server session logging and automatic authorizations. Controls which services are enabled. Use this option to enable/disable the internal HTTP engine.

2.2.5. SysLogSize
System Log Size: Determines for how long the system log entries are kept in the database.

2.2.6. ServerRegKey
License Activation key: Displays your current license key and allows you to install a new one.

2.2.7. MainMonitor
Controls the frequency the server checks for timed-out sessions and logs statistics.

2.2.8. DataMonitor
Controls how for long a client can open a data connection (used for file transfers) before identifying itself.

2.2.9. TcpConnections
Determines how many connections, in TCP mode, the server will allow on each channel. The main channel is for messaging, the data channel is used for transferring files and the HTTP engine uses the text channel.

2.2.10. FileServer
Determines the behavior of the file exchanger and limits the file repository size.

2.2.11. HttpServer
Determines the behavior of the HTTP engine.

2.2.12. SidQueueLength
Limits the amount of pending requests the server will queue for a session. Used to avoid overflowing the server with requests for a session that is no longer active but has failed to log-off.

2.2.13. SecurityCache
Number of user profile security records that are kept in memory for high-speed retrieval. Frequency at which these records are refreshed.

2.3 Security
Controls what functions the users will be able to execute and from which IPs. These records are separate from the user profile security settings because they apply to unidentified/non-user sessions.

2.3.1. Create user
This option is enabled by default: It allows users to create new Sonork accounts using the messenger. If you allow it, you can restrict it to a set of computers with the IP-access list (described below).

2.3.2. Search user
This option is enabled by default: It allows users to anonymously browse existing accounts. It is needed when an user is trying to "recover" its account. If you allow it, you can restrict it to a set of computers with the IP-access list (described below).
The number of records returned may be limited. (Maximum value is 256; setting 0 will reset the value to the maximum).

2.3.3. Monitor
Enables the online functions of the "Session Monitor" of the configuration utility. You can restrict it to a set of computers with the IP-access list (described below).

2.3.4. IP access lists
The IP access lists are sets of IP and their corresponding network masks that the server uses to deny/allow operations. The lists are evaluated "top-down" and the first match is used. If no match is found, the operation is allowed.
Sonork supports up to 64 entries per access list.

Examples:
a) To allow ONLY my network, which is 10.0.0.1 mask 255.255.255.0, you must add two entries:
1) Allow, IP: 10.0.0.1 Mask: 255.255.255.0
2) Deny, IP: 255.255.255.255 Mask: 255.255.255.255
The special entry where both IP and mask are 255.255.255.255 is a wildcard that matches all values.
b) To allow ONLY the 10.1.1.1 computer use:
1) Allow, IP: 10.1.1.1 Mask: 255.255.255.255
2) Deny, IP: 255.255.255.255 Mask: 255.255.255.255
When the mask is 255.255.255.255, the IP must be matched exactly.

2.4 System Log
The server logs all activity into this system log. You may search for errors, invalid login attempts, and access list of violations from this window.
The size of the system log is controlled by the "SysLogSize" value under "Server" > "Settings" (on the toolbar).

2.5 License
Displays the information about the License key that the installation is using.

2.5.1. Installing a new key
If you purchase a new key, click on "install new key" on this panel. The server must be stoppedgood night during the installation of the key.

NOTE: The license key should never be modified by directly accessing the Sonork database tables: It contains vital configuration information, which is related to other tables. Doing so may leave the installation in an inconsistent and unusable state.

2.6 Network

Extranet Network Mappings
Figure 5

Network mappings are used to discover the address of another user or machine. If a single network composes your installation, you don't need to worry about mappings. But, if you're using your server behind a firewall which maps ports so that Internet users can access the server (Extranets), you will find this section useful.
Sonork's User Transfer System (UTS) is used to establish Peer 2 Peer connections between client applications and for transferring files to/from the server. The conference module of the client uses UTS for chatting with several users at once.

NOTE: Network mapping services are disabled on servers running with a trial key.

Definitions

2.6.1. UTS address
This is the network address of the messenger or service, as seen by the messenger/service itself. It is, in other words, the "local host"

2.6.2. HOST address
This is the network address of the connected messenger, as seen by the server.

2.6.3. Network ID and Mappings
The network ID is an arbitrary number assigned by the network administrator to each set of computers. Mappings are rules that define how one set of computers must connect to another one. The mappings are passed to the client when it connects.

2.6.4. Difference between UTS and HOST addresses
Normally, both UTS and HOST addresses are the same, but in private/extranet environments, there are cases where they differ.
For example: Client "A", in machine 10.1.1.1, connects using a SOCKS server located at 200.1.1.1. The UTS address of "A" will be 10.1.1.1, but the server will "see" the client as 200.1.1.1 because the SOCKS server is establishing the connection on behalf of the client. Thus, the UTS address is 10.1.1.1 and the HOST address is 200.1.1.1
This will also happen if the client is using network address translation (NAT): The server will always "see" the client as the machine that is running the NAT agent.

2.6.5. How to define a network ID
The network administrator must assign an arbitrary network ID, between 0 and 250 to each set of computers. A set should enclose users in a same network.

Example 1 diagram
Figure 6


2.6.5.1. Example #1
The Sonork server runs in a private network, behind a firewall that maps ports, and users from both the Internet and the private network connect to the Sonork server. The administrator should assign an ID to the users connecting from the Internet and another one to the users connecting from within the LAN.

The private network users (ID 0) don't need mappings to connect to the outside users because the Internet users have valid IP addresses. They don't need mappings for the other members of the LAN because they may be accessed using the private network IPs.

However, the Internet users (ID 1) do need mappings because both the UTS and HOST addresses of users in the LAN are private non-routable IPs.

Example 2 diagram
Figure 7

2.6.5.2. Example #2
The Sonork server runs with a valid IP on the Internet. Users connect from Internet (ID 0) and from two private networks: New York (ID 1) and Miami (ID 2).
The network administrator would use mappings to tell Sonork that users in network 1 and network 2 should be accessed using the HOST address instead of the UTS address.
Of course, the HOST address will work only if the firewalls are configured to accept incoming connections and map them to each one of the client machines.
There is no need to map network ID 0 because all users on the Internet have valid IP addresses.

2.6.6. Network mapping record
A record tells Sonork how to connect from an address with Network ID = "Source ID" to an address with Network ID = "Target ID". This record is not symmetric: It is not used by "Target ID" to connect back to "Source ID".

Mapping Record
Figure 8


2.6.6.1. Order

Disabled Sonork does not use this record
Forced Sonork should always use this record. (default)
Suggested Sonork should use this record if it cannot safely determine the target address.

2.6.6.2. Method

Fail: Connection is not possible: Messenger should not try to connect.
Mapper: Sonork should try to connect to the specified address.
UTS: Sonork should use the target's UTS address.
Host: Sonork should use the target's Host address.
Server: Sonork should use the Sonork server's address.
Port offset: when connecting, Sonork should add, "Port offset" to the target's UTS port. For example: If the target messenger has been configured to use ports 100~200 for UTS, and the firewall is mapping ports 1100 ~ 1200 for that target, the Port Offset should be 1000.
Use Socks: The client must connect using SOCKS. If "Override" is not set, the client will use the Socks settings specified in its network configuration panel. If none has been configured, the connection will fail.
Override: The client's SOCKS settings must be overridden. If "Use Socks" is not checked, the client will not use SOCKS to connect, even if its network configuration specifies one.

Examples
In previous example #1 the network administrator should map:
Source: 1, Target: 0, Order: Forced, Method: Server
So that all Internet users (ID 1) try to connect to the private network users using the same address they have used to connect to the server.
In example #2 the network administrator should map:
Source: 0, Target: 1, Order: Forced, Method: Host
Source: 2, Target: 1, Order: Forced, Method: Host
Source: 0, Target: 2, Order: Forced, Method: Host
Source: 1, Target: 2, Order: Forced, Method: Host
So that all attempts to connect to networks 1 and 2 are made using the host address and not UTS. As you might recall, the host address is how the server "sees" the target, which in this case is the firewall the target is using.

2.6.7. The Server's export address
Keep in mind that the Network mappings affect the server's "NetExport" setting, which determines how the server presents its address to the network. The network ID for server services (such as the file transfer module) is by default 0. It may be set to another value by modifying the "NetExport" setting.

2.6.8. Configuring the messenger
The Network ID is set by either using the Messenger's Network configuration panel or by loading a configuration file.

Configure Network
Figure 9

The configuration includes options to tell the messenger the range of ports it should use for the UTS so that they may be properly mapped at the firewall/NAT.
If there is a firewall mapping ports towards the client, the user should select "Mapped" under "UTS Settings" to let Sonork know that Peer 2 Peer connections are possible.
If there is no device mapping the ports, the user must choose "direct" to instruct Sonork that the messenger is unable to accept connections from users that are not in the same network.
If the user wants to disable or is unable to receive incoming UTS connections, he/she must select "Client only": The user will not be able to host conference rooms but he/she will be able to connect to conference rooms hosted by other users.



Users Configuration

3.1 Profiles
Please refer to the "User Profiles" section.

3.1.1. User Setup Profiles
User setup profiles allow the server's administrator to generate files containing profile and network information so that the users can easily load without having to either understand or manually set the messenger's parameters.

User Setup Profiles Window
Figure 10


The configurations may be stored as normal files and sent to the user via e-mail or any other method. Alternatively, they may be stored into the Server's integrated HTTP engine as temporal configuration files and the URL sent to the user.
All the user will need to do is provide the path (or URL) to the file and the messenger will automatically load the settings.
You add users to each profile by dragging the user from any other dialog onto the profile item. Users may belong to more than one profile.
Once all settings for the profile have been loaded and the users added, you may select any of the users into the profile and click on "Generate" to create the user's configuration file.

3.1.2. The setup record

User Setup Profile
Figure 11

The user setup profile screen is similar to what the user will see if he/she selected "Network configuration" from the messenger's menu: It includes the address of the Sonork Server, the protocol that must be used, SOCKS (if any) and the UTS settings. (More information)
Because the UTS port range depends on what machine the user is using, it is modified by clicking "Edit" on the user, and not on the profile item.

User Setup - UTS Window
Figure 12

3.1.3. Generating the file

Generate User Setup File Window
Figure 13

Once all settings for the profile have been loaded and the users added you may select any one of the users in the profile and click on "Generate" to create the user's configuration file.

The generated plain-text file may be either saved to disk or to the HTTP server.
If saved to the HTTP server, the user can retrieve it using the URL shown on screen. The server part of the URL ("http://sonork" in the image above) is the one you loaded for the profile.

If "Copy URL to clipboard" is checked, the URL may be pasted into an email after generation. Because there is only one clipboard, be sure you've pasted the URL before generating another file.

Part of the suggested pin is random, based on the time and the activity of the user running the application - you may change it, but make sure you don't provide the same PIN to two different users.

If "Invalidate on retrieval" is set, the configuration file will be deleted as soon as it is accessed: You should not test the URL yourself because that would delete the file before the intended recipient downloads it.

How the PIN works and where the file is stored is explained under the CFGFILE HTTP command.

Loading the file into the Messenger
From the "Create/Recover Profile" window
This method will load the network configuration and create the user profile if it does not already exist.

From the messenger's main menu:
Select "My Information".
From the "My information" window, click on the "Select profile" button
The profiles window will open, click on "Add".
"Create/Recover profile" window will open, which includes the option "Use file".

NOTES: Profiles cannot be changed while Sonork is connected.

If Sonork does not have a profile opened or detects that there are no profiles created, it will skip some of the steps above. Nevertheless, the sequence will be the same. For example: If there is no profile on the local machine, Sonork will automatically skip to the "Create/Recover profile" step.

3.1.4. From the "Network configuration" window
This method will load the network configuration but will not create any user profiles.
From the messenger's main menu:
Select "Connection > Configure Network"
From the network configuration window, click on "Use file"

NOTES: The Network configuration cannot be changed while Sonork is connected.

3.1.5. Load options

User File Window
Figure 14

3.1.5.1. Configuration name
Sonork allows several network configurations to be stored on the client: Unless changed, configuration files will always add/overwrite the "default" server network configuration.
Alternative network configurations may be used for roaming or to store configurations of other private servers.

3.1.5.2. File
The full path to the file (or URL). If the file name starts with "http://", Sonork will assume a URL.

3.1.5.3. Proxy
Sonork auto-detects the proxy settings. It is used only when the file specifies a URL.

3.2 Add/Search

Users Window
Figure 15

Searches user by id, alias or name. Clicking on "New User" will open a blank user information window to create a Sonork account.
Several other windows require you to drag & drop users: You may use the Add/Search function to list the users you want to drag.
Note: Servers running with a trial key will only accept connections from users with ID lower than 8.

3.3 Fields
User data fields extend the user's information: They complement the standard 'user notes' and allow the server administrator to add specific and arbitrary fields to each user's record.
The value for each field may be entered by the user.

User Data Fields Window
Figure 16

Example:
The administrator may decide to add a 'Telephone' field and let users complete the information for themselves. After including the field in a user-profile, the field becomes standard information for its members.

3.3.1. Making user fields visible
After loading field definitions, you must include them in one or more user profiles so that they apply to the members of those profiles: Open both "User profiles" and the "User data Fields" forms and drag the fields onto the "includes" node of one or more profiles.

Include drag and drop
Figure 17

NOTE: servers running with a trial key ignore User fields.

3.4 Trackers
Displays the list of tracking rooms.
The tracking rooms are similar to a "Global Online List" where users dynamically select in which rooms they will be listed. Its only purpose is to quickly find users in very large networks.
Example: The Internet server tracking rooms.

Tracking Rooms Window
Figure 18

The Tracking rooms under which a user is listed may be configured from the messenger, under "My information". The users listed in a room may be viewed with the "Add/Search user" function of the messenger.

3.5 Call Signs
The call signs are arbitrary names, defined at the server, for groups of users. As with Tracking Rooms, its only purpose is to quickly find users in very large networks.

Example:
The administrator creates a "helpdesk" call sign and includes all technicians in the company so that when a user needs help, he/she can access the "Add/Search" function of the messenger and search with callsign="helpdesk".
The messenger will list all users that belong to that call sign, and show who's online. Furthermore, the user in need of help can use the "Track" button to temporarily open a chat window with an online technician (without adding the other user to his/her list).

Call Signs Window
Figure 19

To add users to a callsign, drag them from another window (such as the "User Search") and drop them onto the callsign.

3.6 User Profiles
User profiles group together attributes such as security records, logging options, web applications, user fields and, optionally, the user list for authenticated users.

Profiles Window
Figure 20

3.6.1. Areas
The profiles are grouped together in "Areas" (in the image, "Sales" and "Support" are areas). Areas don't have any other purpose than to visually group profiles together.

3.6.2. Profiles
A user profile defines the security records, logging options, web applications and, optionally, the user list for authenticated users. In the image, "Corporate" and "End users" are profiles.
Each profile has three sub items:

3.6.3. Members
Lists the users that are affected by the profile's settings.
Includes
The external items the profile is referencing.

3.6.4. User List
The users list that the members will "see".
By default, Sonork lets users manage their own lists from the messenger application itself. With the "Rebuild user list" function (explained later in this section), the administrator can overwrite all lists and make them match the profile's settings.

NOTE: If the "Rebuild user list" function is not used, this node has no use.

3.6.5. Creating Profiles
To create an Area or a Profile:
On the left view, select an existing area and click on "Add" button.

New Profile Item Window
Figure 21

Choose the type of item you whish to create. If you choose "profile", it will be created under the area you selected in the previous step.

3.6.6. Adding/Removing profile members
Users always belong to one, and only one, profile. To add/remove a user to/from a profile, open the "members" node of the user's current profile, then drag the user onto the "members" node of the new profile.

NOTE: When you create a new user account, the user will initially belong to the <default> profile, under the "Root" node.

You cannot drag a user listed under "user list" node onto a "member" node, neither can you do the inverse: The "members" node will only accept users from another "members" node.

3.6.7. Profile settings
On the left view, select a profile and click on the "edit" button.

Security/Logging Administration Window
Figure 22

3.6.7.1. Allowed operations

3.6.7.1.1. Add/Remove users
Allows the user to add or delete other users from its "authorized" list.

3.6.7.1.2. Set alias,name,...
Restricts the fields members may change using the messenger.

3.6.7.1.3. Search user
Allows members to search for other users. If enabled, the “Max results” items will limit the records returned. Maximum records are 256.

3.6.7.1.4. Logging
You may activate the message logging for this profile. When activated the server will place a copy of all messages sent/received by the user in a separate table. (SrkMsgDatLog and SrkMsgHdrLog).

3.6.7.1.5. Disable UTS
This option enables/disables the UTS (User Transfer System) for this profile. The UTS is the peer-2-peer module of the messenger. Because the server can't log messages sent directly between users, you may want to disable UTS if you enable message logging. But keep in mind that the server will have to do extra work.

NOTE: For performance issues, when a user with the "logging" option OFF, sends a message to a user with the logging option "ON", the message will not be logged until the target is notified of the message.

3.6.7.2. Access control
The "Access control" is an IP-Access list that restricts the IP addresses from which members of this profile are allowed to connect.
Changing the setting of several profiles at once
You may open this same dialog for an "Area" and choose to replicate the settings to all profiles inside the area.

3.6.8. Including items into a profile
To include items in a profile, drag the item you wish to include and drop it onto the "includes" node of the profile.
You may add a WebApp group, the "members" node of another profile or user fields.
The purpose of including "members" of other profiles is explained in the next topic.

3.6.9. Modifying the user list
The user list of a profile is generated automatically and composed of the "members" of the profile and the "members" of the included profiles. You cannot manually add/remove users to/from the list.
However, you may rearrange the list by creating groups and moving the existing users into/out of them.
After you have finished arranging the lists, you must regenerate the user list.

3.6.9.1. Creating groups
To create a group and root level, select the "User List" node of the profile and click on the "Add" button. (left view)
To create a group within a group, select the group and select the "Add" button (right view).
Moving users into/out of a group
To move a user into a group, drag it onto the group.
To move a user out of a group, drag it onto another group or onto the "User List" node of the profile.
Deleting groups
On the right view: Select the group, click on the delete button. The group must be empty.

3.6.9.2. User list regeneration
After arranging the profile's user list, you must click on "Regenerate User Lists" (first button from the left) to apply the changes. After regeneration ends, all users will have their lists matching the one of the profile they are members of.
Symmetric lists
Because Sonork user lists are symmetric (is user A has user B in its list, user B also has user A), the regeneration affects all profiles and overwrites all customizations done by users.

NOTE: The regeneration of user list is a complex procedure which, depending on the size of the user database, may take several minutes.

3.7 Sessions
Displays the logged on users.

Active Sessions Window
Figure 23

3.7.1. Status
Displays additional session information:
The first word is the online status (Ready, Invisible, Away, etc.)
"Pub" indicates the user has the "public" option set on the messenger.
"Priv" indicates the user has activated its visibility filter.
"Uts" means the user has enabled UTS (Peer 2 peer) module.
Address
The address is prefixed with "udp" or "tcp" depending on the network configuration of the messenger.

3.7.2. Monitor
Clicking on "Link" will connect to the server in "Monitor" mode. When the monitor is linked, you may disconnect or send messages to the selected user(s). Hold down the shift or control key to select more than one user.
The messages arrive as sent as by the "Sonork" user (ID x.1 where x is the number of your server as specified by you license key). Messages from the "Sonork" user cannot be blocked by the messenger (using the authorization panel).

NOTE: "Monitor" connections may be restricted to certain IPs.

The monitor takes up one seat while connected (If your server supports 10 concurrent connections, it will support only 9 while the monitor is connected).
The monitor will auto disconnect after a while.



HTTP Server

The server includes an HTTP engine that may be used to execute, using nothing but a browser, functions on the server.
For example, users visiting your web site can leave messages to Sonork users, without installing the Sonork messenger or logging on to your private server.
Note: HTTP services are disabled on servers running with a trial key.

4.1 Folders and Port
The HTTP server will only publish the files found in the HTTP published folder and its sub-folders.
The only exceptions to this rule are the CFGFILE and HELP commands
The HTTP engine uses Sonork's "Text" port, as specified by the Server NetAddress setting.

NOTE: Aliases, shortcuts and relative paths are ignored by the server and will always return "file not found", even if the path is valid.

4.2 Requests
Assuming that your
1) Sonork Server runs on the machine with name "server"
2) The Text port is the default one (1506)
3) Your HTTP folder is set to C:\Program Files\SonorkServer\Http

To access the file: C:\Program Files\SonorkServer\http\index.htm
You should use this URL: http://server:1506/index.htm
To access the file: C:\Program Files\SonorkServer\http\john\home.htm
You should use this URL: http://server:1506/john/home.htm
To access the file: C:\Program Files\SonorkServer\index.htm

You cannot use the HTTP server because the file is not inside the HTTP folder.
Neither can the file C:\Program Files\SonorkServer\http\cmd\index.htm be accessed because it would require the URL: http://server:1506/cmd/index.htm and URLs starting with "cmd" are reserved for server commands, as explained in the next topic.

4.3 Special commands
URLs starting with "cmd" are commands for the server, in one of these formats:
http://server:textPort/cmd/command?Parameters
or
http://server:textPort/cmd/command/File
The commands recognized by the server are:

SNDMSG
SIDIMG
CFGFILE
HELP

4.3.1. SNDMSG
The SNDMSG command converts an HTML form into an instant message for one or more Sonork users. The form may reside in any server; it does not need to be in a page hosted by the Sonork Server.
For example: You may want to include a "contact us" form in your company's website where users can send their requests and they are instantly received by all users. Up to 64 recipients may be specified.
Because the sending user is not logged-on, the message appears as sent by "Sonork" (the user ID of the server).

4.3.1.1. Parameters

Parameter
Required
Description
uid1..uid64 At least uid1 The Sonork ID of the user(s) that will receive the message.
pin1..pin64 no The public pin corresponding to each user. Not needed for users that have set their pin to zero (0). The default, when users are created, is zero.
The pin can be set by accessing "My information > Authorizations" on the messenger's console.
fmt yes Template/Format of the message.
Url no URL to which the browser should be redirected after sending the message(s). The URL must be fully qualified: It must include the server and page.


4.3.1.2. The FMT parameter
This parameter specifies the message's text and optionally includes placeholders for the form fields. Placeholders are the name of the form fields enclosed in dollar signs ($). New lines are added with the "\r\n" sequence (without the quotes).

4.3.1.3. Example

<FORM METHOD=POST
ACTION=http://sonork:1506/cmd/sendmsg>
<INPUT TYPE=HIDDEN NAME=FMT
VALUE="Hello!\r\nMy name is $myname$">
<INPUT TYPE=hidden NAME=uid1 VALUE=100.2>
<INPUT TYPE=hidden NAME=url
VALUE="http://www.corp.com/thank-you.htm">
<INPUT TYPE=TEXT NAME=myname
VALUE="complete your name"><BR>
<INPUT TYPE=SUBMIT>
</FORM>

Assuming the visitor completes "Robert" as his name, this form will send an instant message to user 100.2 with text

Hello
My name is Robert

and then redirect the sending user's browser to the URL
http//www.corp.com/thank-you.htm

4.3.1.4. Specifying multiple targets
If more than one user is specified as target, the uid parameter must be in sequence:
<INPUT TYPE=hidden NAME=uid1 VALUE=100.10>
<INPUT TYPE=hidden NAME=uid2 VALUE=100.20>
This will not work:
<INPUT TYPE=hidden NAME=uid1 VALUE=100.10>
<INPUT TYPE=hidden NAME=uid3 VALUE=100.20>
because there is a gap between uid1 and uid3, only uid1 will get the message.

4.3.2. SIDIMG
The SIDIMG command returns a GIF image indicating the status of a user. The images must reside under the folder "cmd/sidimg" of the HTTP publishing directory.
Setup places a default set of images under "/cmd/sidimg/00". These images may be referenced from pages located on other web servers. For example, you may place an image on your institutional web site indicating the status of your sales-people.

4.3.2.1. Parameters

Parameter
Required
Description
UID yes The Sonork ID of the user whose status must be returned.
FMT no The format for the graphic. If omitted, "00" (double zero) is assumed and the default set is returned.


4.3.2.2. Example
To obtain the status image of user 100.2, located in the "/cmd/sidimg/00" folder, use:
URL: http://sonork:1506/cmd/sidimg?uid=100.2
IMG: <img src="http://sonork:1506/cmd/sidimg?uid=100.2">

4.3.2.3. Customizing the images
Create a new folder under "/cmd/sidimg". The folder's name must be at most 16 characters and must contain only letters and numbers.
Place inside your set of images where:

Status Description
Image
(Male)
Image
(Female)
Disconnected
m00.gif
f00.gif
Online/Available m01.gif f01.gif
m01.gif
f01.gif
Busy/Don't disturb m02.gif f02.gif
m02.gif
f02.gif
Working m03.gif f03.gif
m03.gif
f03.gif
Friendly/Available for chat m04.gif f04.gif
m04.gif
f04.gif
Not available/Away m05.gif f05.gif
m05.gif
f05.gif
Invalid uid/inexistent user 000.gif
000.gif
000.gif

To access the status of a user using your custom images, set the "FMT" parameter to the name of your folder.

4.3.2.4. Example
To obtain the status image of user 100.2, located in the "/cmd/sidimg/myset" folder, use:

URL: http://sonork:1506/cmd/sidimg?uid=100.2&fmt=myset
IMG: <img src="http://sonork:1506/cmd/sidimg?uid=100.2&fmt=myset">

4.3.3. CFGFILE
The CFGFILE command returns the file from the TEMP folder located in the server's file repository.

4.3.3.1. FILE
The partial name of the file. The actual file name is the FILE requested with "HTTP" prefix and "CFG" extension. The FILE may contain at most 64 letters and numbers (no path information).
If FILE starts with a tilde (~), the real file is deleted immediately after retrieval.

4.3.3.2. Examples
URL: http://sonork:1506/cmd/cfgfile/0001
Returns the file named http0001.cfg to the "TEMP" folder at the file repository, the file will remain until the garbage collector condemns it. The age at which it will be condemned is controlled by the server's "FileServer" settings.

URL: http://sonork:1506/cmd/cfgfile/~0001
Returns the file named http~0001.cfg in the "TEMP" folder of the file repository and then deletes it.

4.3.3.3. Use
The CFGFILE command is used when generating user setup profiles to temporarily store the files.
By placing the configuration files under the temp folder, the server can:

Use the garbage collector to delete the file automatically after some time.
Ensure that the file is retrieved only once.

4.3.4. HELP
The HELP command returns a file from the HELP folder in the server installation directory

4.3.4.1. FILE
Optional: the name of the file. It may contain at most 64 letters and numbers (no path information).
If omitted, "default.htm" is assumed. If the help file or folder has been deleted it will return a "Not found" error.



Web Applications and Message Templates

Web applications (or WebApps) are URLs that appear on the messenger console and are opened using the messenger's integrated browser (Similar to a browser's 'Favorites' list).
URLs loaded may point to HTML pages, files on shared folders or HTML pages with Sonork-specific tags that work with the messenger's integrated browser.

5.1 Applications
The main use of WebApps is to create forms that send pre-formatted instant messages.
Because WebApps are HTML based, it is unnecessary to learn a new language in order to create them and, in conjunction with web-driven pages (such as ASP or PHP), these forms may also update database records.
A Company can create forms for memos, suggestions and requests instead of sending informal free-styled messages/e-mails or printed-paper. These forms usually contain predefined fields so the sender can see right away what information must be completed.

Because the integrated browser uses the Internet explorer as engine, you can add to your forms just about anything you can add to a web page: JavaScript, Flash, ActiveX, etc.
You may see a real-life example in the Internet version of the Sonork messenger, where the "suggestions" and "bug report" forms feed a database and at the same time send a notification Instant message to our Tech. staff.

5.2 Storage
The Sonork server stores the URLs only; it does not store the web page files. The web pages must be placed on a web server.
Alternatively, you can either:

Use Sonork's integrated HTTP engine. The pages must be placed inside the server's HTTP published folder.
Place the pages on a shared folder and make the URLs point to that shared folder.

The advantages of using a full-scaled web server are that you may use features like ASP, PHP, CGI and ISAPI.
Sonork's integrated HTTP server runs at the port specified by the server's configuration utility (default: 1506), so to access pages placed in the HTTP folder, your URL will look similar to:
http://your-sonork-server:1506/your-page.htm

5.3 Configuring WebApps
To open the WebApps screen, select "Main Server > Web Apps" (on the toolbar of the configuration utility).

Web Applications
Figure 24

5.3.1. Areas
They group together the WebApps. The "Local" Area contains all WebApps defined for your server. You cannot create additional areas: They are created automatically when you import WebApps from other servers.
You may modify the name of the area.

5.3.2. Base Groups
Base groups contain WebApp URLs that execute similar functions. For example: To separate the WebApps that will be used by the "sales people" from those that will be used by the "support staff".
You may modify the name and the path of the base. The base will appear to the user as a "group" and the path will be pre-fixed to the path of the URLs contained in it.

5.3.3. URLs
Each URL represents one WebApp. Sonork prefixes the path of its parent base to the path of the URL to obtain the final full path of the WebApp.
It has an additional attribute: The type, which can be "Application page", "Global context template" or "User context template".
The type determines where and how the WebApps will appear on the messenger.

5.4 WebApp Types

5.4.1. Application Pages & global context templates
Application pages and global templates appear under the "Web Apps" node on the messenger's second tab.
They denote that the URL is intended for a specific user or application.
The difference between both is only visual:
Application pages are used to represent a set of one or more pages of which some can be templates.
Global templates represent a form that is intended for a specific user.

Examples:
The pages to browse through the company's product list should be added as an application.
The form to submit a report should be added as a global context template because it denotes a form and the target cannot be changed.

Sonork Client WebApps
Figure 25

5.4.2. User context templates
URLs of this type appear in the user context menu and denote forms that may be sent to any user.

Examples:
Meeting notifications and memos that may be sent to any user should be added as "user context templates".
The difference with global templates is that user context templates do not have a specific target: The target is the user that has been right-clicked.

Template Option
Figure 26

NOTE: The type of a WebApp is used by Sonork only to determine where to place it and what icon to display, but the HTML tags will define the way the page actually works. So it is perfectly possible to place a form with a predefined target in the user's context menu, but it would not make sense: When the operator right-clicks on "John", he/she is expecting that the receptor will be "John".

5.5 Making WebApps visible to users
After you load your URLs, it is necessary to assign them to the profiles that will "see" these URLs.
To do this, you must open both the "User profiles" page ("Users > Profiles") and the Web Apps page ("Server > Web Apps")

Web App drag and drop
Figure 27

Drag the Group of WebApps onto the "includes" node of the profile that will "see" the dragged set of URLs. The WebApps will now appear to the users listed as "members" of the profile.

NOTE: A user profile may include more than one Web App group and one Web App group may be included in more than one profile.

Users connected at the time the inclusion is done must re-connect to see the changes.



Creating WebApps

Message Templates
A Sonork message template is an HTML form with special name and action:

<FORM NAME="Srk:Form1" ACTION="Srk:SendMsg">

The name must be "Srk:Form1" and the action "Srk:SendMsg" tells Sonork to convert the contents of the form into an instant message. The form's METHOD can be POST or GET.
The form must contain special fields that instruct Sonork on how to send the message contained in the form.

6.1 Hidden fields

6.1.1. SRKTO
Optional, defines the target for the message. If it is omitted, the target will be the user whose menu was clicked to open the template. The format is <SonorkId>+<space>+<Display name>.

<INPUT TYPE=HIDDEN NAME="SrkTo" VALUE="1000.4 Boss">

NOTE: Currently Sonork can send the message to only one user. Developments to enable multiple targets have already started and will soon be available.

6.1.2. SRKPOSTURL
Required, defines the page to which the browser must navigate to after sending the message. The Post URL can be left blank if the browser should remain in the current page after sending the message or can be a Sonork command such as "Srk:Cmd?Id=Close" to close the window. (Sonork commands are explained in the next section)

<INPUT TYPE=HIDDEN NAME="SrkPostUrl" VALUE="./thankyou.html">

6.1.3. SRKTITLE
Optional, the title for the form

<INPUT TYPE=HIDDEN NAME="SrkTitle" VALUE="Suggestion form">

6.1.4. SRKTEST
Optional, if set to 1, Sonork will not send the message and instead will display it on screen. Used to test the form without actually sending the message.

<INPUT TYPE=HIDDEN NAME="SrkTest" VALUE="1">

6.1.5. SRKADDUSER
Optional, if set to 1 and the target user is not in the sender's list, Sonork will add the user under the "Not authorized" list. This enables the sender to access the message that was sent.

<INPUT TYPE=HIDDEN NAME="SrkAddUser" VALUE="1">

6.1.6. SRKNOSTORE
Optional, if set to 1 and the message will not be stored in the sender's message database.

<INPUT TYPE=HIDDEN NAME="SrkNoStore" VALUE="1">

6.1.7. SRKQUERY
Optional, if set to 1 and the message will be sent as a query. (As if the user pressed the "Send as Query" button on the messenger's message console).

<INPUT TYPE=HIDDEN NAME="SrkQuery" VALUE="1">

6.1.8. SRKNOUTS
Optional, if set to 1 and the message will not be sent using UTS. UTS is the peer-to- peer module that Sonork uses in order to lessen the server's work. Because the server cannot log messages sent directly between users, you may want to disable UTS when you've activated "message logging" on the server.

<INPUT TYPE=HIDDEN NAME="SrkNoUts" VALUE="1">

6.1.9. SRKAUTO
Optional, if set to 1 and the message will be sent as soon as the page downloads. It is used for automatic messages that don't need to be filled by the user.
Example: After updating a database record, you can display an automatic form to send a notification to the user that must verify the record.

<INPUT TYPE=HIDDEN NAME="SrkAuto" VALUE="1">

6.1.10. SRKTEXT
Required, defines the text to send. The text will usually contain placeholders for the actual form fields. These placeholders are surrounded with the dollar sign ($). New lines are added as "\r\n".
For example: Assuming your HTML form contains two fields, one named "TextToSend" and another "NameOfSender"

<INPUT TYPE=HIDDEN NAME="SrkText"
VALUE="Text is $TextToSend$\r\nMy name is $NameOfSender$\r\nBye!">
<INPUT TYPE=TEXT NAME="TextToSend">
<INPUT TYPE=TEXT NAME="NameOfSender">

Assuming again that the user completes "hello" in the "TextToSend" field and "Sonork" in the "NameOfSender" field, Sonork will send the following instant message:
Text is hello
My name is Sonork
Bye!

6.1.11. Single click forms (HREF Forms)
Messages templates may be constructed as query strings to include them in a HREF HTML tag.

<A HREF="srk:SendMsg?SrkTo=0.2+migs&SrkPostUrl=thankyou.html&SrkText=
I+was+clicked">Send the message</A>

Will sent a message to user 0.2 with text "I was clicked" and then display the "thankyou.html" page.

6.1.12. Form example

<HTML><BODY>
<FORM NAME="Srk:Form1"
ACTION="Srk:SendMsg" METHOD=POST >
<INPUT TYPE=HIDDEN NAME="SrkTo" VALUE="0.2 Suggestions">
<INPUT TYPE=HIDDEN NAME="SrkPostURL"
VALUE="thankyou.asp?report=suggestion">
<INPUT TYPE=HIDDEN NAME="SrkTitle"
VALUE="Suggestion form">
<INPUT TYPE=HIDDEN NAME="SrkNoUts" VALUE="1">
<INPUT TYPE=HIDDEN NAME="SrkText"
VALUE="SUGGESTION\r\nDescr: $Descr$">
<table width="100%">
<tr><td>
<TEXTAREA STYLE="width:100%" NAME=Descr
COLS=40 ROWS=5>Enter here a description of your suggestion and, if possible, the reason for it.</TEXTAREA></td></tr>
<tr><td align=right><INPUT TYPE=SUBMIT NAME=Ok VALUE=" Send "></td></tr>
</table>
</FORM>
</BODY></HTML>

6.2 Commands
These additional commands may be placed in an HREF tag and execute actions other than sending messages. The commands are prefixed with the "SRK:" characters.

6.2.1. GOTO
Tells the browser to navigate or execute an action. The format is:

<A HREF="Srk:GOTO?ID=CMD">GOTO EXAMPLE</A>

Where CMD is one of the following commands:

CMD Description
Back Navigate back one page in the history
forward Navigate forward one page in the history
Home Navigate to the WebApps initial URL
Close Close the browser

6.2.2. USERINFO

Tells the browser to open the user's information window.

<A HREF="Srk:USERINFO?ID=1000.2">Show User's Info</A>

6.2.3. ADDUSER

Tells Sonork to request an authorization to add the specified user. The command will act as "USERINFO" if the user is already in the "Authorized" list.

<A HREF="Srk:ADDUSER?ID=1000.2">Add this user</A>