Operations Documentation Non-Programmer's Guide General Information WCMS Operation Chat Specialized Interfaces Software Development & Scripting

Visit the

  • Developer Center,
  • WebX Harbor, and the
  • Web Crossing Conference
    to find a wealth of WebX info and a community of WebX experts on the Web!
  • Web Crossing® Sysop Documentation

    Table of Contents

    Quick-Start Guide

    Overview

    Web Crossing services

    Customizing Your Site

    Sysop HTML Text

    Managing Your Site

    Data management

    Technical Support & Contact Information


    » Overview

    » Conference organization

    A Web Crossing conference has a hierarchical structure: Folders contain other folders, discussions, links to other places, and chat rooms. Discussions contain messages on the discussion topic.

    There is no limit to the number of folders, discussions, or messages, other than the maximum size of the database (512 Mbytes for Multi versions, or 2 or 4 Gbytes for standard versions depending on the operating system).

    Each folder in the database can be defined as a newsgroup, so that newsreaders can access the discussions and messages in a folder. Each folder can also mirror an external e-mail list server, so that the folder collects and archives all of the list messages, and also forwards posts to the Web Crossing conference to the e-mail list.

    Each location can have any number of site-specific fields. These additional fields are added through the Web Crossing Template Language, and can be used to customize the site.

    » User directory

    Web Crossing provides a built-in user directory. (You can also configure Web Crossing to use an external directory.)

    Each user record stores the user name, password hash, personal information, viewing preferences, subscription list to areas of interest, and tracking for messages read by the user.

    Each user record can also have any number of site-specific fields. These addition fields are added through the Web Crossing Template Language, and can be used to customize the site. For example, you could add work and home phone numbers to the user record.

    The user directory is indexed by user name (last-comma-first format), and can also be indexed on other fields if desired.

    » Access lists and user groups

    Each folder, discussion, or chat room can have a access list attached to it. Access lists specify who may use the resource, and how they are allowed to use it.

    If a location in the conference does not have an access list, then it uses the access list of its parent, and so on. There is no inheritance of access list settings: when you view an access list, you see the access settings in their entirety.

    Access permissions are as follows.
    AccessUsage
    Host Hosts are allowed to add, delete, or edit any items in their area. They are also allowed to approve or reject all moderated messages in their area, and to edit the access list for all items.
    Participant Participants are allowed to add new messages, discussions, folders, and links as permitted by the folder structure controls established by the hosts. Participants posts are not moderated.
    Moderated Moderated users are allowed to add new messages, discussions, folders and links as permitted by the folder structure controls established by the hosts. All messages and new items are subject to moderation rules, and will be checked by a host if they contain possibly objectionable words.
    Read-only Read-only users can browse and read but are not allowed to add new messages, discussions, folders or links.
    No access These users have no access to the area controlled by the access list. In fact, they do not even see the area at all -- its link is not present in its parent folder for this user.

    Access lists can include any number of users or groups and the access they are allowed. If a user is in multiple groups, then they have all the access rights permitted by any group. If a user is in the list explicitly, then they have exactly the specified access, regardless of any group-based access.

    You can create any number of user groups. The members of a group are individual users or other groups.

    Web Crossing provides several built-in user groups, adding a user or other group to one of these groups grants special privileges.

    superhosts A superhost user fits between a sysop and a host: they have full sysop priviledges, except that they cannot change the configuration of how Web Crossing fits into the machine it is running on: IP/port addresses, memory settings, etc. Superhosts are primarily intended for situations where the technical administrator doesn't want the superhost to be able to reconfigure technical settings. Superhosts can also be used to give some hosts special privileges without allowing them to reconfigure services. See the configuration settings in the sysop Registered Users panel to specify a superhost group. Any user put into this group becomes a superhost.
    wctlUser Only members of this group (plus the sysop/superhosts) are allowed to use WCTL anywhere. A host who is not in this group cannot use WCTL in banner/footers, in folder headings, or in discussion heading. Web files that are uploaded/edited by someone who is not in the wctlUsers group will not be evaluated as templates. A user's access rights are checked during imports as well as when creating/editing a location. Members of the superhosts group may set this group in the sysop Registered Users panel.
    cgiUser If the author/editor of a CGI script is not in this group, then the script doesn't run and a 404 error is returned instead. (Files uploaded outside of Web Crossing and found by syching to the host filesystem are considered to have the sysop as their author, so they can always be run as scripts.) Members of the superhosts group may can set this group in the sysop Registered Users panel.


    An access list is automatically added to the superhosts, wctlUsers and cgiUsers groups to only allow the sysop and superhosts to view/edit them.

    » Discussions: conversations and threaded messages

    A discussion is a collection of messages on the discussion topic. Web Crossing supports both conversation and threaded-message presentation of a discussion.

    A conversation is a series of messages displayed in the order they were posted, just as if a group of people were sitting around a table talking. You can read the messages from beginning to end to follow the flow of the discussion. In this model, messages can refer to prior messages if they are commenting on something other than the previous message.

    Threaded messages are presented as a heirarchy of messages. In this model, you can reply to any message, and your reply is indented following the original post. The result is an outline structure, with separate eddies and flows of the conversation. This is similar to a group of people sitting around a table breaking up the main flow of the converation into smaller groups.

    Conversations are excellent for building traffic at a public site, and for holding general discussions.

    Threaded messages are perfect for some kinds of discussions, such as question and answer sessions. They allow the discussion to diverge in a managable way, and effectively self-organize sub-topics as they arise.

    Web Crossing allows you to configure specific areas (folders or discussions) to use a particular model. Or, you can allow users to pick their preferred view. In a discussion that is not forced to a particular model, some users can be following it as a conversation, while others can be viewing it as threaded messages.

    » Tracking messages: subscription lists and bookmarks

    Web Crossing keeps track of messages viewed by each user by keeping a "highwater mark" for each thread. This allows Web Crossing to immediately take a user to the first new message in a conversation, or to highlight new messages in a threaded-message outline.

    When a user clicks on the link to a discussion, they are automatically taken to the first new message, with one old message shown for context. Both conversation and threaded-messages are shown as a list of messages in a single page, so the user can just scroll down to read and follow the discussion.

    Registered users can create their own personalized subscription lists, which allow them to immediately read and respond to new messages in areas of interest. When a user clicks on the Subscribe button, everything in the current area is added to their subscription list; when they click on Cancel Subscription, everything in the current area is removed from their list.

    Once a user has created a subscription list, clicking on New Messages will find the next unread message and show it in context. Because multiple messages are shown in each page, this actually means that a user can catch up on whole discussions at a time, instead of individual messages. This makes the process of checking for new messages very efficient and convenient for the user.

    Web Crossing can also build a personalized list of marks for each user. When a user clicks on the Mark button next to each message, that message is added to their list. Clicking on the Message Center button in the toolbar following each discussion or folder page will display the user's list of conference marked items.

    The Message Center page can also show a complete list of new messages (e.g. one link for each discussion that contains new messages). Because this page can be refreshed periodically, and can beep when new messages are found, it provides an effective way to participate in a discussion in near-real-time: all the user needs to do is bring up their Message Center page, and they will get a beep and a link to follow shortly after a new message is posted.

    » Attachments

    Web Crossing allows attachments to be added to any message or discussion. Attachments can be posted to the server through a Web browser, newsreader, or e-mail attachment. You can configure Web Crossing to enable or disable uploads and downloads for each type of service as desired, set a maximum size for attachments, and control which MIME types are permitted as attachments.

    In a Web browser, when a user clicks on the link to an attachment the attached file is downloaded. If the link is to a GIF or JPEG file, WebX automatically displays the image in a separate window.

    Web Crossing automatically reformats attachments as required for a particular protocol. So you can upload via a newsreader and download through the Web, etc. Note: not all Web browsers support attachment uploads.

    On Windows, both Netscape and Internet Explorer work well for uploads regardless of file size.

    On the Macintosh, both Netscape 4.04 and Internet Explorer 4.0 have serious bugs. Netscape/Mac hangs if you try to upload files that are too large (perhaps 70K), and only uploads the data portion of any file. IE/Mac does not correctly upload files larger than 32K, and corrupts data for any filetypes that it decides to send in MacBinary format. So, on the Mac, you can always upload GIF and JPEG files smaller than 32K, but other files may not upload correctly.

    » Links

    A link can be an alias to any local folder or discussion, or can link to any Internet URL. Users can add links to any Web Crossing folder as enabled by the host; hosts can always add links.

    » Chat rooms

    Web Crossing supports integrated real-time chat rooms using Java applets. For more information on chat, see the Web Crossing/Chat Sysop Documentation.

    » Searching

    All versions of Web Crossing include a high-speed indexed search engine. If indexing is enabled, then all searches use this index and are very fast. The index requires an additional 20% or so of disk space over and above the conference database.

    If the index is disabled, then Web Crossing does a full-text search which is much slower, as it requires checking the text of each message to perform a search.

    Searching is configured in the sysop General Settings control panel.

    Customize searching by using the "stopwords.default" file.

    Indexing the WebCrossing Database greatly reduces searching time. In order to minimize the size of the index file, WebCrossing skips a number of words in each message when building the index. It maintains in the "stopwords.default" file the list of the words to be skipped. This is a text file which may be edited. In other words, you can add or delete entries from the list of the words that WebCrossing will skip the next time it indexes a message.

    There are five steps in modifying this list of skipped words:

    1. Rename the text file "stopwords.default" to "stopwords."
    2. Edit this text file appropriately.
    3. After the file has been edited, restart WebCrossing and login as the "sysop" user.
    4. Enter the "Sysop Control Panel"
    5. Select the "Create Search Index" option.
    Subsequent search indexes will be built using the file "stopwords," omitting the words contained in the file.

    » Spell Checking

    Web Crossing includes a spelling checker, to allow users to check all of their posts and edited messages. The spelling checker is invoked by clicking on the Check Spelling button at the bottom of a new or edited message.

    There is a setting to turn off spell checking, see the Web Crossing sysop General Settings control panel.

    Web Crossing comes with a standard American English dictionary, and you can augment or replace this dictionary as required.

    To replace the current Web Crossing dictionary, build a new word list file and import this via the command in the sysop General Settings control panel.

    To augment the initial Web Crossing dictionary, first export the dictionary to the wordList file using the command in the sysop General Settings control panel, edit the word list file, and then import it to become the new dictionary.

    It is recommended that you export/import the dictionary on a regular periodic basis, so that any user exceptions can be checked and incorporated into the main dictionary. Web Crossing keeps a list of exceptions approved by individual users, and when you export the dictionary you are shown this list for editing and incorporation into the main word list. After you export the dictionary, the saved list of user exceptions is cleared and a new list started.

    The word list file is named wordList and must be placed in the same directory as the Web Crossing program. The file has one line per word. You can use the full ISO-8859-1 character set, including European characters. Note that all word suffixes (for plurals, verb tenses, adjectives and adverbs) must be explicitly included in the word list. The spelling checker algorithm knows about possesives and hyphenated words, but does not automatically generate any other word variants.

    » Services

    Web Crossing can work with an external Web server through CGI, FastCGI, NSAPI, or ISAPI. Web Crossing can also provide direct Web service (HTTP), news service (NNTP), and e-mail services (SMTP and POP3). See the section on Web Crossing services for more information.

    » Customizing

    Web Crossing is highly customizable-- you have control over virtually every character of the user interface, and different areas can each have their own particular customization.

    You can do a great deal of customization through the HTML templates in the sysop control panels and Edit Folder panels. For more control, see the Software Development Kit documentation.

    » Licenses

    The license model in 3.1 and later is based on usage limits (a license certificate allows some maximum number of page-views per day). There is a summary of both today and the month-to-date in the webx-sysop Usage panel.

    A site is granted 10 days of grace for usage overruns. So if you have has a 5K license, allowing up to 5,000 page-views per day, you could serve more than 5,000 page-views on 10 different days before you run out of grace days.

    Each time a site goes over its limit, a warning message is emailed to the sysop, and the sysop banner shows a message with the number of days over the limit and the number of grace days left.

    When the grace days are used up, and the server goes over the limit the next time, all service is shut down for the rest of the day, except to allow the sysop to install a new certificate. To install a new certificate in this case, you have to manually enter the following URL:

    where ".../webx" is whatever your site needs to access its Web Crossing server, and "password" is your sysop password.

    Submitting this URL will display a page saying "bad certificate", with a text-input box for the new certificate. After pasting in the new certificate, click on the "ok" button, and the site will immediately come back to life.

    Installing a new certificate with higher usage limits resets the number of grace days back to 10.

    » webx.set Configuration File

    All of the settings for a Web Crossing conference are stored in the webx.db database file. You can also override these settings with an external webx.set ASCII text file.

    The webx.set file is optional, and all values in it are optional. Any values specified in your webx.set file will override the webx.db settings.

    A new webx.set file is automatically written whenever you use the webx-sysop panel to change any of the settings it controls.

    webx.set can include the following settings:

    Web service
    webEnabled=0/11 if the Web Crossing server will provide direct Web service, otherwise 0
    hostName=domainNamethe Web Crossing server's primary domain name
    hostAliases=listlist of server aliases, either domain names or IP addresses
    webPort=ip:portip is optional, defaults to all IPs on the host machine
    cgiPort=ip:portip is optional, defaults to all IPs on the host machine
    httpBasic=0/11 if the Web Crossing server is running behind a Web server that is doing HTTP Basic authentication for all incoming requests

    Conference service settings
    webxScript=URIfor Web Crossing services
    useTemplates=0/1to enable/disable webx.tpl usage
    useBannerFooter=0/1to enable/disable banner/footer usage
    images=imagesPathpath to Images directory
    help=helpPathpath to Help directory
    useQuickEdit=0/1to enable/disable quick-editor usage

    Cache settings
    smallObjectHeap=sizeInBytesin _bytes_, commas are OK in the number
    diskCache=sizeInPagesin 4K disk pages, commas are OK in the number

    Distributed server master/slave settings
    isMaster=0/11 if this server is the master for redundant servers
    isSlave=0/11 if this server is a slave for redundant servers
    masterIp=ipaddress of master
    slaveIps=ipListaddress of slaves, comma delimited
    masterSlavePort=portfor master and slave servers
    isNameServer=0/11 if this server is the master for distributed name servers
    isNameClient=0/11 if this server is a slave for distributed name servers
    nameServerIp=ipaddress of name server master
    nameClientIps=ipListaddress of name server clients, comma delimited
    nameServerPort=portfor name servers

    Chat settings
    useChat=0/11 if chat is enabled from this WebX server
    isChatControlRoom=0/11 if this site is a control room
    isChatFanout=0/11 if this site is a fanout server
    controlRoomIp=IpIP of control room
    liveServerIp=IpIP of "this" server - used for multi-homing
    liveVirtualIp=Ipexternal IP or domain name of "this" server - only required when your site has NAT (network address translation) mode routers or firewalls
    controlRoomWebXIp=portfor connections from WebX servers to the control room
    controlRoomFanoutIp=portfor connections from chat fanout servers to the control room
    chatClientIp=portfor incoming chat connections to this fanout server
    fanoutRelayIp=portfor incoming connections from relaying fanout servers

    Direct Web Crossing access settings
    directAccessIp=portfor direct-access TCP/IP connections
    directAccessSessions=countfor direct-access TCP/IP connections
    dbAccessAll=0/1allow unrestricted access by all direct access users

    FastCGI service
    useFcgi=0/11 if FastCGI service is enabled
    fcgiIps=ipListlist of IPs that can call FastCGI service, blank or comma delimited
    fcgiPort=ip:portfor FastCgi listens
    fcgiMaxConnects=nnmaximum number of simultaneous FastCGI connections
    fcgiMaxReqPerConnect=nnmaxium requests per connection

    FastCGI routing services
    httpToFcgiPort=ip:portfor http to FastCgi routing service
    httpToFcgiCount=maxnumber of simultaneous http connections
    httpToFcgi=listOf_ip:portfor FastCgiServers

    NNTP (news) service
    useNntp=0/1enable NNTP services
    nntpMirror=0/1enable NNTP mirroring services
    nntpIp=ip:portfor NNTP
    nntp8Bit=0/1use 8bit format for outgoing NNTP messages

    Email mirroring
    emailPush=0/1enable e-mail list post-through
    emailPull=0/1enable e-mail list message fetch service

    Email services
    emailDomains=listlist of local domains and domain-level options
    emailBoxes=0/1enable private e-mail boxes for each user
    webEmail=0/1enable Web-based email viewing etc
    logEmail=0/1enable email log file

    POP3 services
    usePop3=0/1enable POP3 e-mail service
    pop3Ip=ip:portfor POP3 service

    SMTP email services
    useSmtp=0/1enable SMTP e-mail service
    smtpIp=ip:portfor SMTP service
    smtpVrfy=0/1enable SMTP VRFY command
    smtpExpn=0/1enable SMTP EXPN command
    smtpForwarding=0/1enable SMTP forwarding service
    smtp8Bit=0/1use 8bit format for outgoing mail messages

    IMAP email services
    useImap=0/1enable IMAP e-mail service
    imapIp=ip:portfor IMAP service

    Attachment (enclosure) settings
    renameEnclosuresOnDelete=0/1 rename attachments (enclosures) rather than deleting them

    Charset settings
    siteCharset=siteCharsettypically ISO-2022-JP or ISO-8859-1

    Search index settings
    searchIx=0/1enable indexed search

    SSL settings
    secureServer=0/1the "always forward to https" setting in the General Settings panel
    secureLogin=0/1the "all registered user sessions are secure" setting in the Registered Users panel

    Log file settings (logNNN)
    log=1/0master logging switch for logNNN files
    logRequests=1/0log requests
    logPosts=1/0log posts
    logAuthenticates=1/0log authentication changes
    logTimes=1/0log timestamps
    logTcpSessions=1/0log tcp/ip session info, except actual data
    logTcpData=1/0log tcp/ip session data
    logTcpPort=portlog tcp/ip port only, 0 for all, -nn for albut nn
    logSynch=1/0log master-slave synchs

    For example (with 6 Mbytes of small-object cache, 8 Mbytes of disk cache):

    
      cgiPort=3565
    
      webPort=80
    
      httpBasic=0
    
      smallObjectHeap=6,000,000
    
      diskCache=2,000
    
      isMaster=1
    
      isSlave=0
    
      masterIp=12.34.56.78
    
      slaveIps=12.34.56.79 12.34.56.80
    
      masterSlavePort=1431
    
    

    » File-based Configuration

    Some Web Crossing functionality can be set be creating or editing a file with a particular name. In some cases merely the existence of this file-based flag controls the function, in other cases the contents of the file are used. All file-based flags except webx.set (which is created automatically) are optional.

    File nameFunction
    ambiguousPosts If there are multiple users with the same email address/alias as the incoming post, then the user with the most recent registration is used, and the source of the post is set to "amail-ambiguous" instead of "amail"
    dumpTplsCauses the final template source, after all includes have been processed, to be written to disk. If "dumpTpls" is present and there are no encrypted files in the include set, then a file named "webxTpls" is written
    htmlTagsa whitespace/comma/semicolon-delimited list of html tags to recognize and allow, with an optional modifier after each tag describing its use:

    r for a tag to remove
    R for a tag range to remove
    b for a tag that must be balanced
    e for a tag that has embedded syntax, such as embedded syntax such as table or math
    For example, title:bR specifies that title is balanced and that the title range including the tags is to be removed. A default htmlTags is now included in the release.
    indexHtmlCauses html tags to be included in the search index. (You can add html tags to your stop-word list to prevent specific tags/attributes from being indexed.)
    indexFastBuildrebuilds the search index as quickly as possible (which will reduce the amount of CPU available for incoming requests)
    jsGcLastResortEnables the built-in JS last-resort garbage collection machinery. If this file is present the server will perform a garbage collection pass before returning an out-of-memory error. The default is to not do a last-resort garbage collection.
    jsGcThresholdControls the automatic JS garbage collection threshold. If this file is present and contains an integer value, then that value is used as the number of bytes allocated at which to do a garbage collection. The default setting is a function of the small object heap size, and ranges from 1000000 (1 Mbyte) to 4000000 (4 Mbytes)
    logRolloverWhen the current log reaches 1 Gbyte, then it is renamed to logNNN.bak (and any existing logNNN.bak file is deleted)
    noArchiveDisables archiving (useful during other maintenance)
    noDigestsDisables email digest processing (useful during other maintenance)
    noReverseDnsDisables reverse DNS lookups on the external IP of incoming direct HTTP requests
    nosearchDisables searching logic
    nosocketsFor Unix only, Disables socket-based CGI mode
    resynchFileIf present at startup causes a full synchronization to be done with the host filesystem, and the file named webxResynch will be destroyed. This allows updates that replace system files to force a resynch when the new binaries are run.
    stopwordsControls words eliminated from the search index, see Searching for more information
    webxauditIf present at restart, causes Web Crossing to run in common log audit mode
    webx.setContains basic configuration information such as IP addresses and ports, see webx.set Configuration File for more information


    » Web Crossing services

    Web Crossing can provide a variety of services through Web pages, news, and e-mail. You can configure Web Crossing to provide any or all of these services.

    » File System Mirroring

    Web Crossing has the ability to mirror the host-server filesystem. All Web Crossing folders map to a directory in the host filesystem, and can contain both host files and Web Crossing objects. All folders can have an explicit mapping specified to a host directory (contained in webx/... at some level), or have an implicit mapping from the closest parent with an explicit mapping. The top-level Web Crossing root folder must be mapped to some host directory, so that all Web Crossing folders are mapped to some host directory, either absolutely or relative to their parent folder's mapping. Ordinary text/html files can be edited via a textarea, and all file types can be uploaded via a Web browser. Web files are stored in the server filesystem in binary format. Web files (in the host-server filesystem) are shown in the Web Crossing folder hierarchy where they are mapped. For a host user, a button to edit a Web file is shown at the end of its folder item listing. Moving, renaming, or deleting a folder or host file in Web Crossing now renames the underlying directory or file in the host filesystem but if you alter the file system outside of Web Crossing (via a Unix shell, for example) you must click the "resynch" link near the end of the sysop control panel. Web Crossing manages all files through its own hierarchical name space, and it doesn't know about outside changes until you do this. A full synch of host files with the Web Crossing database is done automatically once a day in case a file might be added outside of Web Crossing and the resynch overlooked.

    » Using Web Crossing with an external Web server (CGI)

    When you install Web Crossing, you can configure it for CGI usage. This means that your existing Web server will forward requests to Web Crossing using the industry-standard CGI protocol. Setup for this configuration is automatic, and generally requires no special action on your part.

    » Using FastCGI, NSAPI, or ISAPI

    NSAPI module that is available from Web Crossing, Inc.

    FastCGI must be used when running Web Crossing on a different host than the Web server.

    ISAPI is a proprietary interface for Microsoft Web servers running on Windows NT, and provides much better performance than the standard CGI interface.

    Please see the Specialized Interfaces documentation to configure your site to use one of these faster interfaces.

    » Direct Web service (HTTP)

    You can provide direct Web service from Web Crossing. In this case, requests from a browser are processed directly by Web Crossing without going through an external Web server. This allows Java chat clients to use port 80, so that users behind a firewall can participate in chat sessons. It also produces the best possible performance for Web Crossing requests, by bypassing the overhead of your Web server.

    Web Crossing can be configured for both CGI requests from an external Web server, and to serve requests directly.

    In order to turn on direct Web service, you need to configure the Web server port and settings for Web Crossing, and then restart the Web Crossing server.

    On Windows, use the Web Crossing Config program, see the HTTP Service tab. You can use the Control tab in the same program to restart the Web Crossing server with the desired HTTP port.

    On Unix and MacOS, create a file named WebPort in the same directory as the Web Crossing program (or see the webx.set Configuration File). The WebPort file should contain one line, with the port number for Web Crossing to use for direct HTTP service (normally port 80). When Web Crossing is restarted, it will pick up the HTTP port from this file and start serving direct requests. On Unix, this file can also specify a single IP address on which Web Crossing will listen. For example, setting this file to

    would listen for incoming HTTP (Web) requests on IP=1.2.3.4, Port=80. After editing the WebPort file, restart Web Crossing and you will have direct Web service.

    All of the settings for direct Web service, including enabling/disabling the service, can be set by logging in to Web Crossing as the sysop, and using the sysop Direct Web service control panel -- but you have to have Web access by some data path to access Web Crossing from your Web browser to use this.

    To allow Java chat clients to connect to Web Crossing chat rooms from across a firewall, you need to configure Web Crossing to serve HTTP requests on port 80, and also configure the fanout client port to 80. Then Web Crossing will provide both HTTP and chat service from port 80.

    » News service (NNTP)

    Web Crossing can provide newsreader access to the discussion boards, where each Web Crossing folder is a different newsgroup. When news service is enabled, users can access discussions through both their Web browser and their newsreader.

    To enable newsreader access, use the sysop Newsreader access panel. (This service is called a "private" news server, since it is not part of the public news network. But anyone with a newsreader can connect to your news server and participate in the discussions in this manner.)

    After enabling Newsreader service, you need to set the newsgroup name for each folder that you want to be available. Use the Add Folder and Edit Folder buttons to set these names.

    All of the features of the Web-based access are supported through newsgroups: access lists, moderation, and attachments all work for Web Crossing's newsgroups.

    One caveat: all of the newsgroups are visible to a newsreader, regardless of their access list. This is to make it possible to access restricted newsgroups in some newsreaders. However, if a user doesn't have access to a newsgroup, then he/she won't be able to see anything more than its name.

    Some newsreaders, unlike Web Crossing, do not allow user names to contain blanks. In this case you can use + in place of blanks. For example, John Doe in Web Crossing could login as John+Doe through his newsreader (although John Doe will work in both places if supported by the newsreader).

    » File Transfer Protocol

    Web Crossing provides support for the File Transfer Protocol (FTP) to upload and download files using standard FTP clients. FTP renames and deletes rename or delete the underlying host directory/file. FTP supports relative pathnames starting with any number of ./ or ../ relative specifiers. The resulting pathname is checked for legality so that it cannot be outside the webx directory. Web Crossing access lists control access to files via the FTP protocol.

    » E-mail (SMTP/POP3/IMAP)

    Web Crossing can use e-mail in a variety of ways: to validate the e-mail addresses of new users, to mirror an external e-mail list, and to send e-mail messages from the Web Crossing Template Language.

    To enable e-mail services, Web Crossing needs the IP address of your Domain Name Server (DNS). You can also specify the maximum number of e-mail threads to run at one time. Both of these settings are configured through the sysop General Settings control panel.

    To configure Web Crossing to validate e-mail addresses, use the sysop Registered Users panel. Users are marked as provisional until they have replied to the validation e-mail. You can specify that provisional users have reduced access until their e-mail address has been validated. (The Registered Users panel also lets you reject registration requests from a list of email addresses, so you can keep out unruly users.)

    With e-mail enabled, you can set up any folder to mirror an external e-mail list. Messages posted to the list are pulled down by Web Crossing and placed into the Web Crossing folder. Replies are automatically added to the correct discussion. Posts in Web Crossing can be e-mailed to the list if you like, so that Web Crossing can provide a complete Web-based interface to the list.

    To configure Web Crossing to mirror an e-mail list, create the folder and fill in the e-mail list settings in the Add Folder or Edit Folder forms.


    » Customizing Your Site

    » General settings

    General settings let you specify information about your site.

    Your site name: This is the name of your site. Clicking on it will take you back to the top level page.

    Time zone suffix: This lets you specify the time zone suffix for times displayed in your forum.

    Hours to add to local time for user item display: If you are running a conference for users who are primarily in another time zone, you can adjust your time to theirs. For example, if your site is running on New York time, and you are serving a private conference for users in Texas, you can set this value to -1 to back up your clock by one hour. Or if you are on Greenwich Mean Time, you can use this to adjust your clock to your local time zone.

    Directory for images: Web Crossing references various buttons and icons as part of its user interface. This setting specifies the URL for the directory containing these image files. This value is set during the site setup, and only needs to be changed if you move the directory.

    Directory for help files: Web Crossing's help files are normally kept in the same folder as its buttons and icons. However, you can move the help files to another directory. For example, if you are serving the graphics through Rush Hour on the Macintosh, you need to put your text in another folder because Rush Hour cannot serve text files.

    Sysop e-mail address: This address is used as the mailto: address for the Email to Sysop button.

    Minutes of inactivity until automatic logout: Web Crossing can normally manage user login and new user registration. When a user has not submitted a new request within this automatic logout time, he/she is automatically logged out.

    Show You have guest access... at top of pages for guest users: If you enable guest access, guest users will be able to browse your site without logging in. Web Crossing can supply a line at the top of each page to indicate that the page was prepared for a guest, and to allow the guest to login and register.

    Show time and date: You can suppress time and date stamps on messages, folder headings, and discussion headings.

    Maximum characters to show per page: When Web Crossing prepares a page of messages, it will split them into smaller pieces so that the conference is more responsive. This setting is the maximum number of characters to include in each page. (The actual number of characters may be larger, because Web Crossing never splits up individual messages.)

    Maximum width in characters for text and textarea boxes: Web Crossing will clip all text input fields and all textarea boxes to this maximum width.

    Maximum characters in a title, folder heading, discussion heading, and message: Web Crossing will drop user input past these limits. This allows you to limit the maximum size of a post.

    The Search section enables the built-in search functions and keyword indexing. You can choose to show a search button for the top level and/or for nested items.

    The Moderated posts section lets you specify a list of objectionable words. If you leave this section blank, then all moderated posts will be checked by a moderator before they are added to the conference. If you specify a list of words, then only posts containing one or more of these words will be checked by a moderator; other posts will be added immediately.

    HTML tags to remove from user posts: lets you specify a list of HTML tags to be stripped out of user posts. The tags for TITLE, HEAD, FRAME, STYLE, DIV, BASE, ISINDEX, LINK, META, NEXTID, HTML, BODY, RANGE, and BANNER are unconditionally removed and do not need to be added to this list. Also, tags will automatically be balanced as required.

    Server address: The server address is not normally required, because it is included as part of the standard CGI interface. Web Crossing uses the SERVER_NAME CGI variable to construct a URL for reading subscriptions. If the SERVER_NAME is incorrect, users can not read subscriptions. You may override SERVER_NAME by specifying your server's Internet address, e.g., www.webcrossing.com.

    Host name aliases: Site name aliases (e.g. www.alt.com, www.alt2.com), should be specified if there is more than one host name for your site. Aliases may be separated by blanks and/or commas. It is a good idea to always include your site's IP address in this list. These aliases are used to recognize and update self-referential links.

    If self-referential links are not updated correctly, try setting this field (and also check the host name aliases).

    » User pictures and font sizes

    You can choose to allow user pictures as part of your site. These pictures are stored in the Web Crossing site database. They can be installed by each user as part of the user preferences form, or they can be installed by you for each of your users.

    » Login, greeting, and registration settings

    You can set the "welcome" panel on the login screen. This could be used for news about the conference, or could be a description of the conference and its purpose.

    You can also chose to use a "two-stage" login. A one-stage login puts both the user name and password on one page. A two-stage login puts the user name in the first page, then asks for the password in the second page. A two-stage login can make it easier for someone to come into the conference, by simplifying the choices in the first page. To use a two-stage login, see the Sysop Controls panel, and fill in the second-stage heading in the Login News section.

    You can choose to provide a greeting page that is displayed after each login.

    You can also set the heading in the new user registration page.

    » Banner, footer, background, and top-level page appearance

    The top-level site page has the following components:

    If you choose, you can totally customize the appearance of the top-level page, including explicit links to other locations in your forum.

    » Folder appearance

    The discussion database is organized into folders, similar to directories on a hard disk. Folders may contain subfolders and/or discussions. A folder may have any number of subfolder levels, limited only by the maximum database size and the maximum length of a URL. A folder page has the layout:

    As the sysop, you can specify the background, banner, and footer on a folder-by-folder basis. If you do not specify these, the parent folder or top-level settings will be used.

    The title of the folder is defined by a template, so you can totally control its appearance. The default title includes the current location, so the user can link to any parent folder or to the top-level page.

    As the sysop, you can choose to suppress the automatic list of the folder contents. In this case, you must include explicit links in the folder's heading.

    A user who creates a new folder provides its heading. You can specify a default folder heading to be used if the user does not provide one.

    » Discussion appearance

    Discussions are a series of messages posted by conference users. A discussion may have any number of messages, limited only by the maximum database size. A discussion page has the layout:

    The background, banner, and footer for a discussion are the same as its parent folder. So all discussions that are contained in the same folder will have the same background, banner and footer. (However, you can use template logic to display different banner and footer HTML for the discussions, by having the template check to see if the banner is for a folder or a discussion.)

    A user who creates a new discussion provides its heading. You can specify a default discussion heading to be used if the user does not provide one.

    The Discussions panel also provides top-level threading and conversation settings.

    » Title, toolbar, backpath, and edit help settings

    All folders and discussions share the same title template. You can use conditional sections to display different titles depending on the user and location.

    Again, all folders and discussions share the same toolbar template, but you can use conditional sections in the toolbar. A toolbar has the following sections:

    The default text after the toolbar includes the current location, in order to navigate through parent folders.

    The number of buttons in a toolbar row is not constant in the 3-row toolbar, thus the "number of buttons across" field does not apply to the 3-row toolbar layout.

    You can specify the help text displayed before all message and heading textareas.

    » Custom buttons and icons

    You can change all of the buttons and icons used in the Web Crossing interface by replacing the GIF files in the Images folder. Note that all toolbar buttons must have the same size, and all small in-line buttons must have the same size.

    If you change the size of any of these GIF images, you must enter the new size in the sysop Custom buttons and icons form, or the appearance of the new images will be distorted on most browsers.

    Buttons

    Filename Text Description
    access.gif Access List create or change the access list
    addblog.gif Add Weblog add a blog
    addcat.gif Add Folder add a folder
    addforum.gif Add Discussion add a discussion
    addlink.gif Add Link add a link
    addlive.gif Add Chat add a chat area
    attach.gif Attachment attachment icon for email
    bookmark.gif Message Center and Marks Message center and local bookmarks
    calendar.gif Calendar online personal calendar services
    calendar.gif Calendar online personal calendar services
    cancelsb.gif Cancel Subscripts. cancel subscription (in this folder or discussion)
    chart.gif Chart icon for chart objects
    chkmoder.gif Check Moderated check for messages to moderate
    chksubs.gif Check Subscripts. check for new messages
    cnclsbtp.gif Cancel All Subscripts. cancel all subscription
    confernc.gif Conference return to the conference (from a sysop area)
    delcat.gif Delete Folder delete a folder
    delete.gif Delete confirm deleting a folder or discussion
    delfrm.gif Delete Discussion delete a discussion
    edit.gif Edit after Spell Check
    editcat.gif Edit Folder edit a folder
    editfrm.gif Edit Discussion edit a discussion
    email.gif Email Web-based email pages
    emailr.gif Email Web-based email pages when there are new messages waiting to be read
    emlsuppt.gif Email to Support send e-mail to Web Crossing support
    emlsysop.gif Email to Sysop send e-mail to sysop
    export.gif Export export
    flag.gif Flag Marks email folders with unread messages
    getinfo.gif Get Info Get Info button
    gstlgin.gif Guest Access request guest access
    guide.gif Guide The Guide online documentation
    im.gif Instant Message Instant message services
    imr.gif Instant Message Instant message services (when messages are waiting)
    import.gif Import import
    login.gif Login login as a user
    lstpswd.gif Lost Password send e-mail to sysop about lost password
    newuser.gif Register register as a user
    note.gif Note Marks address book entries that have notes attached to them
    nrwhelp.gif ? help (question mark)
    ok.gif OK accept
    outlinew.gif Outline New Show new messages in outline form (not used in current interface)
    outlnful.gif Outline Full Show all messages in outline form (not used in current interface)
    prefs.gif Preferences change user preferences
    preview.gif Preview Preview a post (not used in current interface)
    pstmsg.gif Post Message post a message (toolbar button)
    pstmymsg.gif Post My Message submit the message
    reply.gif Replied have-replied-to icon for email
    search.gif Search search for text
    setprefs.gif Set Preference confirm preference changes
    smallmsg.gif All Messages small All Messages button
    smbookmk.gif Mark small mark button
    smdel.gif Delete small delete button for messages
    smedit.gif Edit small edit button for messages
    smemlmsg.gif Email small email button
    smhere.gif To Here small button to move selected message(s) to here
    smmore.gif More small button to show more messages
    smmove.gif Move small button to move individual messages
    smnew.gif New small New button
    smoutline.gif Outline small Outline button
    smpostmsg.gif Post Msg small Post Msg button (not used in current interface)
    smprev.gif Previous small button to show previous messages
    smrecent.gif Recent small button to show recent messages
    smreply.gif Reply small button to reply to a specific message
    smtolast.gif To Last small button to show last message
    smtotop.gif To Top small button to show first message
    spellck.gif Check Spelling Check spelling
    subscrib.gif Subscribe subscribe (to this folder or discussion)
    subscrtp.gif Subscribe To All subscribe to everything
    toctrl.gif Control Panel view control panel (sysop only)
    xbox.gif Checked Box checked box image

    Other images and sounds

    calicon.gifcalendar-object icon
    check.gifcheckmark icon
    contain.gifcontainer icon
    converse.gifthe discussion icon
    ding.wavthe sound played by a Message Center page refresh when there are new messages to check
    enevelope.gificon for Webmail items
    guest.gifdefault image for guest posts
    indent.gifindent icon for threaded message
    indent2.gifalternative gray indent icon for threaded messages
    live.gifthe chat icon
    link.gifthe hyperlink icon
    markread.gifmark read icon
    new.gifalternative newburst icon
    newburst.gifnew message icon
    outline.gifthe outline icon displayed next to a discussion in a folder listing
    pathdiv.gifthe path divider icon (in backpath)
    powerby.gifpowered by Web Crossing icon
    site.gificon for backpath display
    t.gif1x1 transparent GIF for spacing
    topic.gifthe folder icon
    topr.gifalternative tops.gif button (round)
    topr2.gifalternative tops.gif button (round and gray)
    tops.giftop-level message icon for threaded messages. Also used by the searchResults page as the message icon
    tops2.gifalternate tops.gif icon in gray

    » Other Settings

    The Other Settings Control Panel controls features enabled by the Web Crossing template extensions file, webxextn.tpl. These features will change with each version of webxextn.tpl.

    » Showing recent posts in a user's personal information page

    Web Crossing can keep track of posts on a per-user basis. You can then link to some recent posts as part of each user's personal information page. This increases the traffic on your site by allowing readers to see posts made by an interesting member.

    To track user posts, you must enable this feature in the sysop Registered User panel.

    To show posts in each user's personal information page, you have to add the userInfo template to your webx.tpl file. There are step-by-step instructions in the Web Crossing Template Language documentation section.


    » Sysop HTML Text

    All text entered in Web Crossing, both for you as the sysop and for regular users, is formatted by the Web Crossing "Web Crossing Template Language document for a complete description.

    Two examples follow of how you can use WCTL.

    » Customizing the current location

    By default, Web Crossing uses a single line to show the current location, something like: You can change the way the current location is displayed by replacing the default Title HTML template in the Sysop Title, Toolbar, Backpath, Edit Help Settings panel.

    For example, you could use a three-level "forum/topic/thread" terminology by changing the Title HTML template to the following:

    This might display as

    » Links into the conference from your login page

    If you want to include links into the conference in your login page, you should edit the Change login heading section of the sysop Login, Greeting, and Registration Settings panel. Use something like the following:

    Now, when a user logs in and they are going to the top level, they will see your normal login heading. If they follow a link from that login page, they will be going to a specific place in the conference, and they will just see the "Please log in" heading.


    » Managing Your Site

    » Backup and recovery

    The Web Crossing database is designed to be very robust, but it is still possible to lose the database for your site for any number of reasons. It is important to back up your database regularly and to keep a copy on removable media or another machine. You should always keep a copy off-site as well.

    The Web Crossing database is kept in a file named webx.db. You can make a backup copy of this file directly if you first shut down Web Crossing. Do not make copies of the webx.db file while Web Crossing is running. If you happen to copy this file during a database save, you will not have a valid database, and your backup efforts will be for naught.

    The preferred method for database backup is to use the Backup panel from the Sysop Control Panel. Bring up the backup panel and click on the Backup button at the bottom of the panel to make a backup file.

    Note that you can configure the backups to happen automatically. By default, a new site is configured to backup once a day, with 2 backup sets.

    The Backup panel makes a new backup named webxdb.1. This file can be copied to removable media or another machine at any time, as it is never modified by Web Crossing after the backup has completed.

    The Backup panel also lets you keep a roll-forward log. This is an ASCII file that keeps a record of all changes to the database following the point in time when the webxdb.1 backup was written. In the event that you lose the main webx.db file for any reason, you can recover all database changes from the backup webxdb.1 and matching roll-forward log webxroll.1.

    Keeping a roll-forward log is highly recommended. The cost is small because only database changes are recorded, and the extra protection it gives your database will be invaluable should you ever need it.

    Do not remove the webxroll.1 file from the Web Crossing directory. Web Crossing will open this file each time it starts up, and will continually append database changes. You may however make a copy of the webxroll.1 at any time, as it is plain ASCII and is written in append mode only.

    Note that the Backup command will automatically rename older backups with the next higher suffix number. So a backup will first rename an existing webxdb.1 and webxroll.1 to webxdb.2 and webxroll.2, and so on. If you have more backup sets than specified in the Backup panel, the oldest sets will be automatically deleted.

    To recover your webx.db file from the roll-forward log, use the following steps:

    Step 1. shut down Web Crossing,
    Step 2. rename the corrupted webx.db file (instead of deleting it, just in case it turns out to contain useful information),
    Step 3. make sure that webxroll.1 and the matching webxdb.1 are present in the same directory as the Web Crossing program,
    Step 4. restart Web Crossing.

    Web Crossing will automatically detect that there is no webx.db file, but that there are webxroll.1 and webxdb.1 files, and will then recover your current database.

    » Authorization

    Web Crossing can support cookies, its own certificate-based authorization, or HTTP Basic Authorization.

    Web Crossing's certificate-based authorization is the default authorization mode. In this mode, Web Crossing creates a unique certificate each time a user logs in. These certificates are dynamically embedded in each URL generated by the Web Crossing server, so the server can identify the originating user when they follow one of these links. Login certificates automatically expires when the user hasn't accessed the conference for some time (the automatic logout interval, which can be set by either the sysop or by each user).

    Cookies can be used to keep track of logged in users. In this mode, Web Crossing sets a cookie at the user's browser each time the user logs in. Subsequent visits to Web Crossing recognize the cookie and use it to identify and authenticate the user.

    You can enable cookies in the sysop Registered User Access panel. Once you enable cookies for the site, then individual users can chose to enable or disable cookies in their preferences panel.

    When you enable cookies, Web Crossing lets you specify the default settings for new and existing users. You can choose to turn on cookies by default, or require that each user turn them on if so desired. If you set the default for existing users to "off," then they will not see any change when you enable cookies for the site, but they will be able to turn on cookies on an individual basis. The default settings for new and existing users are specified in the Registered Users panel.

    Cookies set by Web Crossing are valid for the duration of the client browser session (until the browser is quit). In an environment where machines are shared by multiple users, users must quit the browser before they leave the machine.

    Due to a common browser bug, cookies can cause minor problems for Web Crossing sites which may be reached by multiple hostnames (for example webcrossing.com and www.webcrossing.com). Web servers can send a relative URL in a redirect response, but without the "http://site/" part, browsers don't use the redirect URL in the location field for the page. (Instead they use the URL which returned the redirect.) Therefore redirect responses must use absolute URLs. The Web Crossing Check Messages and Bookmark commands use a redirect response, so for example, if a user logs into the Web Crossing server via webcrossing.com and gets a cookie, then checks messages on the server via www.webcrossing.com, does nothing in Web Crossing until the automatic logout period has passed, and then checks messages again via www.webcrossing.com, they will be asked to log in again, since the browser doesn't have a cookie for www.webcrossing.com. Ordinarily they would not be required to log in again, as the cookie would re-authenticate them automatically.

    HTTP Basic and Digest Authorization use "realms" defined by your Web server. This authorization technique is appropriate when all the people who need access to your Web Crossing conference can be added to an authorization realm on your Web server. This technique is not appropriate if you want guest users to visit, or if you want new users to register automatically without any action on your part.

    To use HTTP Basic Authorization, check the Support HTTP Basic Authorization box in the Web Crossing Sysop Controls / Registered Users form, and click the Update Registered User Settings button at the bottom of the form.

    Define a realm or realms in your Web server, with a username/password pair for each user.

    For each user in your Web Crossing access realm, you can use Sysop Controls / Add User to add the user and specify his/her e-mail address. If you skip this step, then each user will be added automatically the first time they access Web Crossing, but their e-mail address won't be available through the conference database.

    When Basic/Digest mode are enabled and a user needs to login, the login form generates a "401 Unauthorized" response. This causes the Web browser to prompt for the username/password and resend the original request with an additional "Authorization" header that includes either the username:password (Basic) or an MD5 hash of the username:password:otherStuff (Digest). The server validates the Authorization header and allows the request to proceed.

    Following this initial prompt to login, the Web browser will send the appropriate Authorization header on all following requests, and the server will validate them and allow the request to proceed for that user. So with HTTP Basic/Digest authentication, we don't need a cookie and we have the Authentication header override any session information in the request certificate. This means that using someone else's certificate won't work: as soon as you log in as a different user, you are given your own session with its own certificate.

    The actual machinery is a bit complicated:

    o If all logged in users are required to have secure sessions, per the setting in the Registered Users panel, then the original login will be redirected to a secure login, so that the login authentication will be in a secure session. If a logged-in user uses a non-secure request for any reason, that request is redirected to https before returning a response.

    o If both HTTP Basic and HTTP Digest are turned on in the Registered Users panel, then the "401 Unauthorized" response will include both Basic and Digest as OK ways to authenticate the user. If the browser supports both, then it will use Digest mode so that the user's password is protected by being hashed in the Digest-mode response. Some browsers do not support Digest mode, so checking both is recommended.

    o If you really have to keep passwords secure, then we recommend that you check the "Secure sessions" and ONLY "HTTP Basic". While the Basic protocol sends the password in a form where it can easily be extracted from the request, when it comes in on an SSL session it is protected by the SSL encryption. The benefit of HTTP Basic is that it let's us provide better protection of the user's password on the server. (HTTP Digest mode requires the password to be stored in a format where it can be used to authentication the Digest authorization. The password is secure in the request, but ynfortunately, the developers of this protocol didn't give much consideration to keeping the password secure on the server, in case the server's files are obtained in some way.)

    o Because HTTP Digest mode requires us to have access to the original clear-text password, and we don't normally store this in our database, sites that upgrade to HTTP Digest mode will have an extra step for their users to login the first time. When we find that we don't have the password information to validate a particular user, WebX will redirect them to a normal login form, do the login normally to collect the password, then ask the user to login again via the HTTP Digest mechanism. So this means that these users will get

    (1) an HTTP digest login dialog

    (2) a normal login page with a note describing the upgrade and that they have to login the old way one time, then

    (3) another HTTP Digest login dialog.

    o If a user gets a 401 Unauthorized response and logs in correctly, they will be taken directly to the correct page. If they login incorrectly, another 401 Unauthorized response will be sent and they will have another chance. If they cancel the login dialog, then a page will be displayed to let them Register, Enter as Guest, or contact the sysop.

    For complete control over the authorization, login, and registration process, see the Filter macros section in the Web Crossing Template Language document.

    » E-mail validation for new users

    Web Crossing allows you to validate the e-mail addresses of new users as they register.

    With e-mail validation turned on, new users are marked as provisional and an e-mail message is sent to them. A user confirms his/her address by replying to the message. Upon receipt of the reply, Web Crossing upgrades the user to have the full access rights of a registered user.

    To configure e-mail validation you'll need to know the IP address of your DNS server, and you'll need to set up a dedicated e-mail account for this purpose on a POP3 e-mail server.

    E-mail validation is configured in the Registered Users section of the sysop control panel. Add a check to the Validate e-mail for new users box to enable this feature. In the Domain name server (DNS) for e-mail delivery textbox enter the IP address of the DNS server. In the Server's e-mail-box-address textbox, enter the full e-mail account such as webx@yoursite.com. In the Server's e-mail-box password textbox, enter the password for this e-mail account.

    If you enable this feature, you must regularly check the logEmail file, in the same directory as the webx.db database, for any problems that need to be handled manually.

    In conjunction with automatic e-mail validation, you can specify a list of e-mail addresses or domains that are not allowed register. This allows you to eject disruptive users and keep them out permanently and automatically (until they get a new e-mail address). To permanently eject someone with a specific e-mail address, use the List of e-mail addresses that cannot auto-register setting at the end of the Registered user access panel.

    » User access

    You can specify whether guest access is allowed, and the access permissions available to guests. Use the "Guest user access" link in the sysop control panel.

    You can also specify whether automatic user registration is allowed, and the access permissions available to registered users. Use the "Registered user access" link in the sysop control panel.

    You may enter new users manually, and manage some user settings. For example, if a user loses his or her password, and sends you an e-mail to ask for a new one, you can install a new password and send it back. You can also clear user pictures, if they are inappropriate, and you can delete a user so that he or she has no more access to your conference. All of these functions are links from the sysop control panel.

    » User registration tied to user groups

    Web Crossing allows you to automatically add new users to existing user groups as users auto-register.

    This can be useful when users are coming in from different locations, and you have a loose sense of which groups they should belong to based on this initial entry.

    In order to have new users automatically placed into existing groups, use the following steps.

    1. Make up a tag for each different group of users. This tag will be placed in the initial access URLs used by the various groups. Tags should be alphabetic, and they are not case sensitive.
    2. Create the various user groups you will need, if they don't all exist already. Do this by logging in as the sysop and clicking on the Access List button, then the Edit User Groups button, etc.
    3. Edit the webx.tpl file located in the same directory/folder as your webx.db. (If this file does not exist, create it.)
    4. Go to the end of the webx.tpl file, and append a new registerGroups template:

      Substitute your own tag and user group names. You can have as many different groups as you like; this template simply needs to return a list of group names for a particular tag (e.g. certificateIs).

    5. Login as sysop, go to the sysop control panel, and choose the Reset file cache for HTML files and webx.tpl templates command near the end, to bring in your webx.tpl changes.
    6. Link the initial entry for each group as follows (in the Web page from which they will be going to Web Crossing):

      where tag matches the list of groups to be used based on this entry URL.

    7. Register as a dummy user for each different group to check that everything works. If these users don't get automatically added to the right user group(s), then check the tag name versus the registerGroups template entries, and also check the user group names versus these entries.

    » Managing Users

    You can also use the Set a user's preferences, Set a user's password, Remove a user, Clear a user's picture, and Look up a user forms on the control panel to manage user accounts.

    » Controlling the order of discussions in a folder

    You can control the order in which items (discussion, links, chat rooms, or nested folders) are displayed in a folder. As the sysop, you can specify whether the default order is by creation date with oldest first, by creation date with newest first, or by most-recently-modified date with newest first.

    You can also control the position of an item in the list, regardless of its normal placement, by specifying a Sort sequence when you edit it. If you set the sort sequence to positive numbers, the item will move towards the top of the list. If you set the sort sequence to negative numbers, the item will move towards the bottom of the list. For example,

    » Resetting the Images pathname

    It is possible for the Images pathname to become set incorrectly. For example, you could move the Images folder containing the Web Crossing buttons and help to a new location.

    When this happens, you cannot login using a Netscape Web browser, because the "Login" button cannot be found, so you cannot click on it.

    The solution is to login using the URL

    (where "webx" is the name or path you use to access this Web Crossing server). You will be asked to login as sysop, and can then change the Images pathname. (If you changed the sysop pathname, you will get a second login screen for both the sysop name and your password.)

    » Automatic expiration of old discussions

    You can specify that old discussions, which have not been posted to for a while, are to expire automatically. You specify the disposition when a discussion expires: it can be moved to an archive folder, backed up and deleted, or just purged without any backup.

    For example, you might have a very active area with a lot of short discussions. You could set this area up to expire discussions after one week (e.g. expire after 7 days), and move the expired discussions to an archive folder. The archive folder could be configured to hold the discussions for another 3 weeks (e.g. expire after 28 days), and then back them up and delete them.

    Each folder has its own expiration settings. A host or sysop can specify automatic expiration by clicking on the Edit Folder button in the folder's toolbar. Fill in the Expired discussions section and click on the OK button.

    Expiration settings do not propagate to nested folders -- each folder stands alone. If a folder does not have any expiration settings, then discussions in that folder will remain until they are explicitly deleted.

    You can mark individual discussions as permanent, so that they do not expire automatically. A host or sysop can set discussions to permanent, or change them back to normal status, by clicking on the Edit Discussion button in the discussion's toolbar. Check the Permanent setting and click on the OK button.

    The actual archiving is done in the background on a daily basis, starting at 3:00 AM local time.

    » Rearranging your site

    Web Crossing lets you move folders and discussions around as needed to rearrange your site. To move selected items, just click on the Export button in the folder's toolbar, then click on the link to Export, move, delete, or purge selected items from the folder. Fill out the form to select items and move them into place.

    Note that moved items keep their unique IDs, so that any links to them will continue to work.

    You can use the same form to export, delete, or purge selected items in a folder.

    » Serving regular (static) HTML pages

    It is often convenient to be able to serve a normal HTML page and still use WCTL to customize the page based on the current user.

    Web Crossing will serve all pages in the "html" directory contained in the same directory as the webx.db database file. To make a URL to one of these pages, use

    where "http://...webx" is the full URL for someone to reference your Web Crossing server, and "filename" is the name of the HTML file to serve.

    When you include a link to one of these pages from another one, or in your webx.tpl templates, please be sure to include the user's current certificate as

    Including the user's certificate will preserve information about the user and his/her current session. (The %% certificate %% is a Web Crossing Template language directive to embed this in the URL.)

    Files served by Web Crossing can use the full Web Crossing Template Language, and can process form variables.

    In order to give maximum performance, the Web Crossing server caches the "html" files it serves. In order to see new versions of files installed in this directory, use the Reset file cache for HTML files command near the bottom of the sysop control panel.

    » Serving access-controlled static HTML pages

    You can use Web Crossing to limit access to static html pages and other static files. To serve static files with access controls, place the files or directory to be served in the htmlLinks directory, instead of in html, and link to these files from Web Crossing. You can then specify an access list for the link to limit access to individual files or whole directories.

    After you create the htmlLinks directory and move the static files into place, login to Web Crossing as the sysop, click on the Add Link button, and follow directions in this form.

    » CGI Error Messages

    When using the plain CGI interface on Unix or Windows, if the Web Crossing server is not running, the CGI module will look for the file webxoff.htm and return the contents of that file to the user if it is found. Otherwise, the CGI module will return a standard error message indicating that Web Crossing is off.

    » Performance tuning

    The primary performance factor for Web Crossing is the amount of memory allocated versus the size of the conference database. You can tune the amount of memory used by Web Crossing through the sysop Memory usage panel.

    Web Crossing uses a disk cache to keep frequently-accessed database information in memory. If the disk cache is too small to hold the working set for the database, then performance will degrade dramatically as Web Crossing makes multiple disk access per request. You should periodically check the number of disk pages discarded in the Memory usage panel. It is normal for pages to be discarded from the cache to make room for active users. But if this number is growing too rapidly, then increase the size of the disk cache. In general, the cache size is a function of how many users you have at any one time and how much current active content they are using. For databases up to 200 Mbytes, a good rule of thumb is to keep the disk cache at 30% to 40% of the size of your database.

    Web Crossing uses a small-object heap to cache things such as open folders and discussions, user information, login certificates, webx.tpl information, and so on.

    You should periodically check the small-object heap reclaims and try to keep this number zero or very low. If you see the number of heap reclaims growing rapidly, then increase the size of the small-object heap.

    » Stress testing

    Web Crossing includes some tools for stress testing your site. You can use these to test robustness and maximum throughput.

    The stress test uses another copy of Web Crossing, running on another machine, to emulate user requests. The test copy of Web Crossing makes TCP/IP connections, sends HTTP requests to your Web server, and checks the results.

    The test copy (or copies) of Web Crossing do not require an additional license fee as long as they are used only to test your Web Crossing installation.

    To start a set of test clients running, send a URL such as the following to the test copy of Web Crossing:

    where:

    For example,
    will start 2 test clients, run them for 60 seconds, send a request every second from each client, do 20 views to 1 post, and use the /Test folder. Note that the "?" in the folderUrl
    is URL-quoted to %3f in the request, so that it doesn't look like a query delimiter.

    When you send a 204-0 request, you will get a report of the number of connections, views, posts, errors, and average time per request. For example,

    » Log Files

    Web Crossing provides a variety of log files to assist the administrator in monitoring activity and troubleshooting problems.

    common.logThe common log file, if enabled, logs browser access to Web Crossing. The name of this file may be changed by the sysop in the control panel.
    logNNNThis file logs the activity selected by the sysop in the "Web Crossing Log File" section of the control panel. Each time the file is reset a new file is created - log1, log2, etc. Note that if the TCP/IP options are selected the size of this file may grow very rapidly; a Web Crossing server should not be run for an extended period with these options enabled as the file system might be filled.
    logEmail This file logs transmission of email messages and email handling errors.
    logFileOpens This file provides internal server information for tracking down unclosed files.
    logJsErrorsNNN This file logs errors in Web Crossing JavaScript usage. Each access to a JavaScript function or command containing an error creates a new file (logJsErrors1, logJserrors2, etc.
    logLangErrors This file logs missing files and other errors related to the language localization system.
    logRoll This file contains a record of how the roll-forward logs have been used to recover from a problem.
    logUsage This file contains a daily record of overall Web Crossing activity.
    nntp.log This file logs access to Web Crossing by Network News Transfer Protocol client software, i.e. newsreaders.
    webx.log This file is always generated by Web Crossing and contains a record of server starts and stops, server errors and WCTL compilation errors.
    webxroll.NNN These are roll-forward logs and contain a list of all webx.db database changes since the last backup took place. Each time a backup is done, either automatically or manually, a new roll-forward log is created (webxroll.1, webxroll.2, etc.). Roll-forward logs are used to restore a backup (webxdb.1, webxdb.2, etc.) in the event of problem.

    » Data management

    » Export the user directory

    You can export the full Web Crossing user directory as either a tab or comma-delimited ASCII file.

    Use the Export User Directory command in the Sysop Control Panel. This command allows you to specify which user fields are exported, and to specify addition fields you may have defined.

    » Export

    When you login as sysop, you can export any portion of the discussion database to an SGML text file. Just navigate to the folder or discussion to export, and click on the "Export" button which is in the toolbar (only for the sysop).

    When you export a folder, all of its nested folders and discussions are included. When you export from the very top level, the entire discussion database is exported, including all users and the current sysop settings. The export/import logic includes all JavaScript properties of the Node, User, and Document objects in the export/import, including both the nodeExport/folderImport Web Crossing JavaScript functions and the user-interface-level commands.

    The export file formats are in SGML, and use "obvious" tags and structure. Just do an export, and take a look at the output file. The file format is very much like HTML, but with a different set of tags and attributes. When you view one of the export output files, use a text editor with line-wrap turned off, as the output lines can be very long.

    Exports of user information do not preserve subscription lists or highwater marks.

    » Import

    You can import previously exported files, or create your own files to import.

    To import a Web Crossing SGML file, just navigate to the folder in which to place it, and click on the "Import" button which is in the toolbar (only for the sysop).

    You will be asked to provide the filename and some parameters for managing imported users. After the import completes, you can examine the import report to see exactly what came in.

    The import file may contain any combination of sysop settings, users and groups, access lists, folders and discussions.

    Note that two folders may not have the same name. So if the import reports an error, you can rename or delete the existing folder, or edit the import file.

    In addition to the special Web Crossing SGML format, XML-formatted files may also be imported. The XML file must have the same tag structure as the Web Crossing SGML format, but XML rather than SGML coding may be used.

    » Unique IDs

    In many places, Web Crossing uses Unique IDs to locate objects. The concept is to be able to take a short unique ID and map it to the underlying object. For example, users, folders and discussions are all assigned unique IDs when they are created.

    A unique ID is just a 32-bit number in hexadecimal with leading 0's suppressed. Unique IDs start at 250000000L or hex ee6b280. The unique ID for a user has a bias of 250000000L subtracted from it to make it shorter. (The offset allows possible future use of the 0..249999999L range.)

    You can use either full textual pathnames or unique IDs to locate an object. Pathnames are identified by a leading slash, unique IDs by a leading period. So a pathname of "/Current Events/Politics" might be the same as a unique ID of .ee6af23. The advantages of unique IDs are that they don't change when something is renamed, and they are fixed length (a good thing since many Web servers have problems with URIs over 255 characters).

    Note that full textual pathnames in a URL must be URL-quoted, so "/Current Events/Politics" would be "/Current%20Events/Politics" in a URL.

    Each message in a discussion has a unique message number assigned starting with 0 when the message is created. Messages are identified by the discussion unique ID and the message number, as .ee6b3af/2.

    » Export/Import and Unique IDs

    Every folder and discussion has a unique ID that is assigned when it is created. Web Crossing links use these unique IDs, so you can rename items without affecting bookmarks. Unique IDs also keep the length of the link URLs well below the 255 character limit imposed by many Web servers.

    When you export a folder or discussion and then import it to a new location, you will want it to keep the same unique ID so that bookmarks will continue to work.

    Web Crossing includes the each item's unique ID in an export. If that unique ID is not in use when the object is imported, it will be reassigned to the imported document.

    If you rearrange your site by exporting and importing, this means that you should always:

    1. Export
    2. Delete
    3. Import
    to move things around. (You can move things directly through the Export command.)

    If you import content from another database, it may not be possible to keep the same unique IDs. But if you import content into a new database, be sure to keep the <sysop...nextUnique=id> tag in the import file, so that the original unique IDs will be reserved and available.

    To start a new database from an exported file:

    1. Export from the top-level of the existing database.
    2. Edit the export file as desired, but make sure you keep the <sysop...nextUnique=id> tag from the sysop settings at the start of the export file.
    3. Create a new database and import the edited file.
    4. Check that imported items have the same unique ID as in the original database, by looking at the .xxxxx value on the end of each URL.

    » Automatic backup for deleted items

    Every time a discussion or folder is deleted, it is first exported to the end of a file named "deleted," together with information about the delete.

    To recover information which was deleted, just edit this backup file and copy the section you want to recover to a new file. Then import this file into the desired place.

    » Moving folders and discussions

    See the section on rearranging your site.

    » SGML format for users - installing new or existing users

    If you already have a list of existing users for some other service, you can install these users into Web Crossing by converting your user list to the Web Crossing SGML format and importing it.

    Web Crossing keeps all passwords using one-way encryption (as an MD5 signature). When a user's password is exported or imported, this MD5 signature is what is actually visible in the export or import file.

    In order to make it easier to import an existing list of users, Web Crossing allows you to specify passwords for new users in clear text. Instead of "password=...," use "passwordc=..." ("c" for "cleartext"). The password following "passwordc=" will be encrypted into internal format during the import of the new user.

    Each <user> or <guest> entry in an export/import file has the following format:
    deletedPresent only if the user is deleted (so the record is kept only as long as referenced by some prior message);
    IDHexnumber to reference this user as the author of a subsequent heading or message;
    nameUser's name (in either first-last or last-comma-first format);
    emailE-mail address
    showPictures1 or 0 for on or off
    showPictBorders1 or 0 for on or off
    isSysop1 or 0 for yes or no
    logoutTimeSeconds before logout after last access
    maxDatamaxBytes allowed in a discussion page
    homePageHome page URL
    passwordThe user's password MD5 signature
    passwordcThe user's password in clear text (this attribute is never exported, and is only used when importing a new user)
    pictureThe user's picture
    respHeadingSizefontSize for the user name in a message heading
    respInfoSizefontSize for the time/date/2nd-line in a message heading
    respBodySizefontSize for the body of a message
    maxMessagesCount to limit the number of messages in a discussion page
    catForumSeqControls the order in which discussions are listed.
      0 : by creation date, oldest first 1 : by last modified date, newest first 2 : use sysop default sequencing 3 : by creation date, newest first 4 : alphabetically
    secondLineOptional second line of user information
    bioOptional user biography information
    urlsOptional favorite URLs for a user (each URL is a URL followed by an optional comment, each URL is on its own line).
    user_varname Site-specific additional fields defined for this user record. See Defining your own variables - user and author variables.

    For example, the following

    will import a new user named John Smith with an initial password of abcdefxxx, and reasonable values for everything else.

    » SGML format for folders, discussions and messages

    Folders, discussions and messages are exported into SGML with a hierarchical structure. For example, suppose that a folder named "A" contains folders "B" and "C" and a discussion "A1," and that "B" and "C" each contain discussions:
    The tags for folders, discussion, and messages are named <folder>, <discussion>, and <message>. So the preceding example would have a Web Crossing SGML structure as:

    User tags

    Users must be defined in the SGML stream before they can be specified as the author of a folder, discussion, or message item. <user> tags may be intermixed with <folder>, <discussion>, and <message> tags as required.

    The user tag includes an ID attribute that identifies the user within a particular SGML stream, and can be used to specify the author of an item. For example,

    The ID attribute must be unique within the SGML file, so that each author can be uniquely identified during an import. Note that the unique ID assigned to the user in the Web Crossing conference and the ID attribute in the export/import file do not have to be the same, and generally are not.

    Folder <folder> tag

    The <folder> tag specifies a folder. It contains nested folders and discussions, and must be closed with a matching </folder> tag.

    Folder attributes are:
    nameFolder name
    name="Test Export"
    dateLast modified date
    date=04/06/1998.10:26:02
    createdCreation date
    created=04/06/1998.10:25:40
    authorFolder author ID (hexadecimal)
    author=0000820C
    uniqueUnique ID for the folder, reused if not currently assigned
    unique=0EE6B2B2
    flagsFlags for folder settings (hexadecimal, see
    backgroundBackground override for this folder. If empty, then the parent's background is used.
    background=""
    bannerBanner override for this folder. If empty, then the parent's banner is used.
    banner=""
    footerFooter override for this folder. If empty, then the parent's footer is user.
    footer=""
    templateTemplate for this folder. If empty, then the parent's template is used.
    template=""
    path_varname Site-specific additional fields defined for this folder. See Defining your own variables - path or location variables.

    
    

    Discussion <discussion> tag

    The <discussion> tag specifies a discussion. It contains nested messages and must be closed with a matching </discussion> tag.

    Discussion attributes are:
    titleTitle of the discussion
    title="Test discussion"
    dateLast modified date of the discussion
    date=04/06/1998.10:26:14
    createdCreation date of the discussion
    created=04/06/1998.10:26:02
    authorDiscussion author ID (hexadecimal)
    author=0000820C
    uniqueUnique ID for the discussion, reused if not currently assigned
    unique=0EE6B2B2
    flagsFlags for discussion settings (hexadecimal, see
    path_varname Site-specific additional fields defined for this discussion. See Defining your own variables - path or location variables.

    
    

    <message> tag

    The <message> tag specifies a message. It must be nested in a discussion.
    deletedPresent only if the message has been deleted.
    authorMessage author ID (hexadecimal)
    author=0000820C
    createdCreation date of the message
    date=04/06/1998.10:26:14
    content-typeMust be text
    content-type=text
    bodyMessage body text
    body="Test message text"
    path_varname Site-specific additional fields defined for this message. See Defining your own variables - path or location variables.
    
    

    Flag bits

    Folders, discussions, messages, links, and chat tables share the following flags usage:
    NameHexadecimalUsage
    ItemShowAuthor00000001Show author for category/forum
    FolderHideItems00000002Hide items when listing the folder
    LinkShowDescription00000004Show description of link in its folder listing
    LinkToFolder00000008For a link, TRUE iff linked to a folder
    LinkToDiscussion00000010For a link, TRUE iff linked to a discussion
    TableIsAnonymous00000080For a chat table, allow anonymous users
    TablePlayLoopback00000100For a chat table, playback is in loopback mode
    Permanent00000200Marks a discussion as permanent, e.g. it will not automatically expire and be moved or deleted

    » Importing existing content

    You can import an existing non-Web Crossing discussion database by converting it to Web Crossing SGML format and then importing.

    » Credits

    This software uses code from the OpenSSL project, which is subject to the following copyright.
    Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
    All rights reserved.
    
    This package is an Blowfish implementation written
    by Eric Young (eay@cryptsoft.com).
    
    This library is free for commercial and non-commercial use as long as
    the following conditions are aheared to.  The following conditions
    apply to all code found in this distribution.
    
    Copyright remains Eric Young's, and as such any Copyright notices in
    the code are not to be removed.
    
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
    1. Redistributions of source code must retain the copyright
       notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
    3. All advertising materials mentioning features or use of this software
       must display the following acknowledgement:
       This product includes software developed by Eric Young (eay@cryptsoft.com)
    

    » Technical Support & Contact Information

    Technical Support (see Support page)
      Web Forum:Web Crossing Conference
    Frequently Asked
    Questions (FAQ):
    Web Crossing FAQ
    Email:support@webcrossing.com
    Support Requests:Online Support Request Form

    Sales & Business Contact Info
      Email:sales@webcrossing.com
    Telephone:866.725.0030
    Post: Web Crossing, Inc.
    1 Embarcadero, Suite 500
    San Francisco, CA 94111

    Announcement Mailing List

    To receive occasional Web Crossing announcements of new releases and products, add your email address to our mailing list here.


    Copyright © 1996-2003 by Web Crossing, Inc., San Francisco, California.