| Version 5.4
Introduction
Installation
SysAdmin
Network
Objects
Storage
E-mail
Real-Time
Access
Services
Directory
Clusters
Applications
Miscellaneous
Licensing
WebMail
Pronto!
PBX
Applications | Data | CLI/API | Rules | CG/PL | PBXApp | XIMSS | WebApp | WSSP | Helpers
# Command Line Interface/API CLI Access CLI Syntax Domain Set Administration Domain Administration Account Administration Group Administration Forwarder Administration Named Task Administration Access Rights Administration Mailbox Administration Alert Administration File Storage Administration Mailing Lists Administration Web Skins Administration Web Interface Integration Real-Time Application Administration Real-Time Application Control Account Services Server Settings Monitoring Statistics Directory Administration Miscellaneous Commands Index The CommuniGate Pro Server provides a Command Line Interface (CLI) for Server administrating. This interface can be used as an alternative for the Web Administrator interface. CLI can also be used as the Application Program Interface (API), so the Server can be managed via scripts and other programs that issue the CLI commands to the Server.

## CLI Access

The CommuniGate Pro Server provides several methods to access its CLI:

- using TCP connections to the PWD module (as an extension to the PWD/poppwd protocol)
- using CG/PL `ExecuteCLI` command.
- using the HTTP CLI realm.
- using XIMSS `cliExecute` operation.

When the CLI is used over the PWD connection, the CLI commands are accepted as soon as the user is authenticated. For each CLI command the Server checks the authenticated user access rights.

If a command produces some data, the data is sent after the protocol line with the positive response. The CR-LF combination is sent after the data.

Below is a sample PWD session with CLI commands:
C: telnet servername.com 106
S: 200 CommuniGate Pro at mail.servername.com PWD Server 5.3 ready
C: USER postmaster
S: 300 please send the PASS
C: PASS postmasterpassword
S: 200 login OK
C: CreateAccount "user1"
S: 200 OK
C: CreateAccount "user1"
S: 501 Account with this name already exists
C: RenameAccount "user1" into "user2"
S: 200 OK
C: CreateDomain "client1.com"
S: 200 OK
C: CreateAccount "user1@client1.com" TextMailbox
S: 200 OK
C: ListDomains
S: 200 data follow
S: (mail.servername.com, client1.com, client2.com)
C: QUIT
S: 200 CommuniGate Pro PWD connection closed

The CommuniGate Pro Perl Interface document contains a set of the Perl language utilities that allow a Perl script to access the CommuniGate Pro CLI API via the PWD protocol. The document also contains links to several useful sample Perl scripts (automated Account registration and removal, etc.)

The CommuniGate Pro Java Interface document contains the set of the Java language classes that allow a Java program to access the CommuniGate Pro CLI API via the PWD protocol. The document also contains links to several sample Java programs.

The CommuniGate Pro CLI uses the standard Data Formats to parse commands and to format the output results.

Note: These Dictionary format syntax rules allow you to specify a string without the

## CLI Syntax

The CommuniGate Pro CLI uses the standard Data Formats to parse commands and to format the output results.

Note: These Dictionary format syntax rules allow you to specify a string without the quotation marks if the string contains alphanumerical symbols only. You should use the quotation marks if a string contains the dot (.), comma (,), and other non-alphanumerical symbols.

In spite of the fact that the standard Data formats can use several text lines, all data (including arrays and dictionaries) you specify as CLI parameters should be stored on one command line.

If a CLI command produces some output in the array or dictionary format, the output data can be presented on several lines.

## Domain Set Administration

A user should have the Users Server access right to use the Domain Set Administration CLI commands.

The following commands are available for the System Administrators only:

`LISTDOMAINS`
  Use this command to get the list of domains. The command produces output data - an array with the names of all server domains.
`MAINDOMAINNAME`
  Use this command to get the name of the Main Domain. The command produces output data - a string with the Main Domain name.
`GETDOMAINDEFAULTS`
  Use this command to get the server-wide default Domain Settings. The command produces an output - a dictionary with the default Domain Settings.
`UPDATEDOMAINDEFAULTS newSettings`
  Use this command to change the server-wide default Domain settings.
  `newSettings : dictionary`
    This dictionary is used to update the default Domain settings dictionary. It does not have to contain all settings data, the omitted settings will be left unmodified.
`SETDOMAINDEFAULTS newSettings`
  Use this command to change the server-wide default Domain settings.
  `newSettings : dictionary`
    This dictionary is used to replace the server-wide default Domain settings dictionary.
`GETCLUSTERDOMAINDEFAULTS`
`UPDATECLUSTERDOMAINDEFAULTS newSettings`
`SETCLUSTERDOMAINDEFAULTS newSettings`
  These commands are available in the Dynamic Cluster only.
  Use these commands instead of the [`GET`|`UPDATE`|`SET`]`DOMAINDEFAULTS` commands to work with the cluster-wide default Domain Settings.
`GETSERVERACCOUNTDEFAULTS`
  Use this command to get the server-wide Default Account settings. The command produces an output - a dictionary with the global default Account settings.
`UPDATESERVERACCOUNTDEFAULTS newSettings`
  Use this command to update the server-wide Default Account settings.
  `newSettings : dictionary`
    This dictionary is used to update the Default Account settings dictionary. It does not have to contain all settings data, the omitted settings will be left unmodified.
`SETSERVERACCOUNTDEFAULTS newSettings`
  Use this command to set the server-wide Default Account settings.
  `newSettings : dictionary`
    This dictionary is used to replace the server-wide Default Account settings dictionary.
`GETCLUSTERACCOUNTDEFAULTS`
`UPDATECLUSTERACCOUNTDEFAULTS newSettings`
`SETCLUSTERACCOUNTDEFAULTS newSettings`
  These commands are available in the Dynamic Cluster only.
  Use these commands instead of the [`GET`|`UPDATE`|`SET`]`SERVERACCOUNTDEFAULTS` commands to work with the cluster-wide Default Account settings.
`GETSERVERACCOUNTPREFS`
  Use this command to get the server-wide Default Account Preferences. The command produces an output - a dictionary with the default Preferences.
`SETSERVERACCOUNTPREFS newSettings`
  Use this command to change the server-wide Default Account Preferences.
  `newSettings : dictionary`
    This dictionary is used to replace the server-wide Default Account Preferences. All old server-wide Default Account Preferences are removed.
`UPDATESERVERACCOUNTPREFS newSettings`
  Use this command to change the server-wide Default Account Preferences.
  `newSettings : dictionary`
    This dictionary is used to update the Default Account Preferences. It does not have to contain all settings data, the omitted Preferences will be left unmodified.
`GETCLUSTERACCOUNTPREFS`
`SETCLUSTERACCOUNTPREFS newSettings`
`UPDATECLUSTERACCOUNTPREFS newSettings`
  These commands are available in the Dynamic Cluster only.
  Use these commands instead of the [`GET`|`SET`|`UPDATE`]`SERVERACCOUNTPREFS` commands to work with the cluster-wide Default Account Preferences.
`CREATEDOMAIN domainName [ settings ]`
  Use this command to create a new secondary Domain.
  `domainName : string`
    This parameter specifies the Domain name to create.
  `settings : dictionary`
    This optional parameter specifies the Domain settings.
`RENAMEDOMAIN oldDomainName into newDomainName`
  Use this command to rename a Domain.
  `oldDomainName : string`
    This parameter specifies the name of an existing secondary Domain.
  `newDomainName : string`
    This parameter specifies the new Domain name.
`DELETEDOMAIN oldDomainName [ force ]`
  Use this command to remove a Domain.
  `domainName : string`
    This parameter specifies the name of the Domain to be removed.
  `force`
    This optional parameter specifies that the Domain should be removed even if it is not empty. All Domain objects (Accounts, Groups, etc.) will be removed.
`CREATESHAREDDOMAIN domainName [ settings ]`
  Use this command to create a new shared secondary Domain in a Dynamic Cluster.
  `domainName : string`
    This parameter specifies the Domain name to create.
  `settings : dictionary`
    This optional parameter specifies the Domain settings.
`CREATEDIRECTORYDOMAIN domainName [ settings ]`
  Use this command to create a new directory-based Domain.
  `domainName : string`
    This parameter specifies the Domain name to create.
  `settings : dictionary`
    This optional parameter specifies the Domain settings.
  This operation is allowed only when the Directory-based Domains are enabled.
`RELOADDIRECTORYDOMAINS`
  Use this command to tell the server to scan the Domains Directory subtree so it can find all additional Directory-based Domains created directly in the Directory, bypassing the CommuniGate Pro Server.
  This operation is allowed only when the Directory-based Domains are enabled.
`LISTSERVERTELNUMS [ FILTER filter] limit`
  Use this command to read Telnum numbers created in all (non-clustered) Domains. The command produces an output - a dictionary where each key is a Telnum number, and its value is the Account name it is assigned to. An numeric element for an empty (`""`) key is added, it contains the total number of Telnum numbers created.
  `filter : string`
    If this optional parameter is specified, only the telnum numbers containing the specified string are returned.
  `limit : number`
    The maximum number of Telnum numbers to return.
`LISTCLUSTERTELNUMS [ FILTER filter] limit`
  The same as LISTSERVERTELNUMS, but for shared Cluster Domains.
`GETSERVERTRUSTEDCERTS`
  Use this command to get the server-wide set of Trusted Certificates. The command produces an output - an array of datablocks. Each datablock contains one X.509 certificate data.
`SETSERVERTRUSTEDCERTS newCertificates`
  Use this command to set the server-wide set of Trusted Certificates.
  `newCertificates : array`
    This array should contain datablocks with X.509 certificate data. It is used to replace the server-wide list of Trusted Certificates.
`GETCLUSTERTRUSTEDCERTS`
`SETCLUSTERTRUSTEDCERTS newCertificates`
  These commands are available in the Dynamic Cluster only.
  Use these commands instead of the [`Get`|`Set`]`ServerTrustedCerts` commands to work with the cluster-wide set of Trusted Certificates.
`GETDIRECTORYINTEGRATION`
  Use this command to get the server-wide Directory Integration settings. The command produces an output - a dictionary with the Directory Integration settings.
`SETDIRECTORYINTEGRATION newSettings`
  Use this command to set the server-wide Directory Integration settings.
  `newSettings : dictionary`
    This dictionary is used to replace the server-wide Directory Integration settings dictionary.
`GETCLUSTERDIRECTORYINTEGRATION`
`SETCLUSTERDIRECTORYINTEGRATION newSettings`
  These commands are available in the Dynamic Cluster only.
  Use these commands instead of the [`Get`|`Set`]`DirectoryIntegration` commands to work with the cluster-wide Directory Integration settings.

## Domain Administration

A user should have the Users Server access right or the Domain Administration access right to use the Domain Administration CLI commands.

`GETDOMAINSETTINGS [ domainName ]`
  Use this command to get the Domain settings. The command produces an output - a dictionary with the domainName settings. Only the explicitly set (not the default) settings are included into that dictionary.
  `domainName : string`
    This optional parameter specifies the name of an existing Domain.
`GETDOMAINEFFECTIVESETTINGS [ domainName ]`
  Use this command to get the Domain settings. The command produces an output - a dictionary with the domainName settings. Both the explicitly set and the default settings are included into that dictionary.
  `domainName : string`
    This optional parameter specifies the name of an existing Domain.
`UPDATEDOMAINSETTINGS [ domainName ] newSettings`
  Use this command to update the Domain settings.
  `domainName : string`
    This optional parameter specifies the name of an existing Domain.
  `newSettings : dictionary`
    This dictionary is used to update the Domain settings dictionary. It does not have to contain all settings data, the omitted settings will be left unmodified. If a new setting value is specified as the string `default`, the Domain setting value is removed, so the default Domain settings value will be used.
  If this command is used by a Domain Administrator, it will update only those Domain Settings that this Domain Administrator is allowed to modify.
`GETACCOUNTDEFAULTS [ domainName ]`
  Use this command to get the default Account settings for the specified Domain. The command produces an output - a dictionary with the default settings.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the Administrator Domain.
`UPDATEACCOUNTDEFAULTS [ domainName ] newSettings`
  Use this command to modify the Default Account settings for the specified Domain.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain.
  `newSettings : dictionary`
    This dictionary is used to modify the Domain Default Account settings. The dictionary does not have to contain all settings data, the omitted settings will be left unmodified. If a new setting value is specified as the string `default`, the setting value is removed, so the global Server Default Account Settings will be used.
  If this command is used by a Domain Administrator, it will update only those Default Account settings this Administrator is allowed to modify.
`GETACCOUNTDEFAULTPREFS [ domainName ]`
  Use this command to get the Default Account Preferences for the specified Domain. The command produces an output - a dictionary with the default Preferences.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain.
`SETACCOUNTDEFAULTPREFS [ domainName ] newSettings`
  Use this command to change the Default Account Preferences for the specified Domain.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the authenticated user Domain.
  `newSettings : dictionary`
    This dictionary is used to replace the Default Account Preferences. All old Default Account Preferences are removed.
  This command can be used by Domain Administrators only if they have the `WebUserSettings` access right.
`UPDATEACCOUNTDEFAULTPREFS [ domainName ] newSettings`
  Use this command to change the Default Account Preferences for the specified Domain.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the authenticated user Domain.
  `newSettings : dictionary`
    This dictionary is used to modify the Domain Default Account Preferences. It does not have to contain all Preferences data, the omitted elements will be left unmodified.
    If a new element value is specified as the string `default`, the Default Preferences value is removed, so the default Server-wide (or Cluster-wide) Account Preferences value will be used.
  This command can be used by Domain Administrators only if they have the `WebUserSettings` access right.
`GETACCOUNTTEMPLATE [ domainName ]`
  Use this command to get the Account Template settings. The command produces an output - a dictionary with the Template settings.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain.
`UPDATEACCOUNTTEMPLATE [ domainName ] newSettings`
  Use this command to modify the Account Template settings.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain.
  `newSettings : dictionary`
    This dictionary is used to modify the Domain Account Template. All new Accounts in the specified Domain will be created with the Template settings. The dictionary does not have to contain all settings data, the omitted settings will be left unmodified. If a new setting value is specified as the string `default`, the Template setting value is removed.
  If this command is used by a Domain administrator, it will update only those Template settings that the Domain administrator is allowed to modify.
`GETDOMAINALIASES domainName`
  Use this command to get the list of Domain Aliases. The command produces an output - an array with the Domain alias names.
  `domainName : string`
    This parameter specifies the name of an existing Domain.
`GETDOMAINMAILRULES domainName`
  Use this command to get the list of Domain Queue Rules. The command produces an output - an array of the Queue Rules specified for the Domain.
  `domainName : string`
    This parameter specifies the name of an existing Domain.
`SETDOMAINMAILRULES domainName newRules`
  Use this command to set the Domain Queue Rules.
  `domainName : string`
    This parameter specifies the name of an existing Domain.
  `newRules : array`
    This array should contain the Domain Queue Rules. All old Domain Queue Rules are removed.
  This command can be used by Domain Administrators only if they have the `RulesAllowed` access right.
`GETDOMAINSIGNALRULES domainName`
  Use this command to get the list of Domain Signal Rules. The command produces an output - an array of the Signal Rules specified for the Domain.
  `domainName : string`
    This parameter specifies the name of an existing Domain.
`SETDOMAINSIGNALRULES domainName newRules`
  Use this command to set the Domain Signal Rules.
  `domainName : string`
    This parameter specifies the name of an existing Domain.
  `newRules : array`
    This array should contain the Domain Signal Rules. All old Domain Signal Rules are removed.
  This command can be used by Domain Administrators only if they have the `SignalRulesAllowed` access right.
`LISTADMINDOMAINS [ domainName ]`
  Use this command to get the list of Domains that can be administered by Domain Administrator Accounts in the specified domainName Domain. The command produces an output - an array with the Domain names.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the authenticated user Domain.
`LISTDOMAINOBJECTS domainName [ FILTER filter ] limit [ ACCOUNTS ] [ ALIASES ] [ FORWARDERS ] [COOKIE cookie`
  Use this command to get a list of Domain objects.
  `domainName : string`
    This parameter specifies the Domain name.
  `filter : string`
    This optional parameter specifies a filter string: only objects with names including this string as a substring are listed.
  `limit : numeric string`
    This parameter specifies the maximum number of objects to list.
  `ACCOUNTS, ALIASES, FORWARDERS`
    These keywords specify which Domain objects should be listed.
  `cookie : string`
    This optional parameter specifies a "cookie" string.

  The command produces output data - an array with the following elements:
  - a numeric string with the total number of Domain Accounts
  - a dictionary with Domain Objects. Each dictionary key is a Domain Object name. The dictionary value depends on the Domain Object type:
    Account
      the dictionary object is a string (the Account file extension)
    Account Alias
      the dictionary object is an array. Its only element is a string with the Alias owner (Account) name
    Forwarder
      the dictionary object is an array. Its only element is an array. Its only element is a string with the Forwarder address
  - a numeric string with the total number of Domain Aliases
  - a numeric string with the total number of Domain Forwarders
  - a new "cookie" string (optional, exists only if there was the `COOKIE cookie` part in the command

  To list Objects in large Domains, specify some reasonable limit value (below 10,000) and specify and empty cookie string. If not all Objects are returned, issue the command again, using the new cookie value specified in the response array. When all Objects are returned, the new cookie value in the response is an empty string.
`LISTACCOUNTS [ domainName ]`
  Use this command to get the list of all Accounts in the Domain. The command produces output data - a dictionary with the keys listing all Accounts in the specified (or default) Domain.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain.
`LISTDOMAINTELNUMS domainName [ FILTER filter] limit`
  Use this command to read Telnum numbers created in the specified Domain. The command produces an output - a dictionary where each key is a Telnum number, and its value is the Account name it is assigned to. An numeric element for an empty (`""`) key is added, it contains the total number of Telnum numbers created.
  `domainName : string`
    This parameter specifies the Domain name.
  `filter : string`
    If this optional parameter is specified, only the telnum numbers containing the specified string are returned.
  `limit : number`
    The maximum number of Telnum numbers to return.
`INSERTDIRECTORYRECORDS domainName`
  Use this command to insert records for Domain objects (Accounts, Groups, Mailing Lists, Forwarders) into the Directory.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the authenticated user Domain.
  This command can be used by Domain Administrators only if they have the `CentralDirectory` access right.
`DELETEDIRECTORYRECORDS domainName`
  Use this command to delete Domain object records from the Directory.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the authenticated user Domain.
  This command can be used by Domain Administrators only if they have the `CentralDirectory` access right.

The following commands are available for the System Administrators only:

`SETDOMAINALIASES domainName newAliases`
  Use this command to set the Domain aliases.
  `domainName : string`
    This parameter specifies the name of an existing Domain.
  `newAliases : array`
    This array should contain the Domain alias name strings. All old Domain aliases are removed.
`SETDOMAINSETTINGS domainName newSettings`
  Use this command to change the Domain settings.
  `domainName : string`
    This parameter specifies the name of an existing Domain.
  `newSettings : dictionary`
    This dictionary is used to replace the Domain settings dictionary. All old Domain settings are removed.
`SETACCOUNTDEFAULTS [ domainName ] newSettings`
  Use this command to change the Default Account settings for the specified Domain.
  `domainName : string`
    This parameter specifies the Domain name.
  `newSettings : dictionary`
    This dictionary is used to replace the Domain Default Account settings. All old Account Default settings are removed.
`SETACCOUNTTEMPLATE [ domainName ] newSettings`
  Use this command to change the Account Template settings.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain.
  `newSettings : dictionary`
    This dictionary is used to update the Domain Account Template. All new Accounts in the specified Domain will be created with the Template settings. All old Account Template settings are removed.
`GETDOMAINLOCATION [ domainName ]`
  Use this command to get the Domain file directory path (relative to the Server base directory). The command produces an output - a string with the Domain file path.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain.
`SUSPENDDOMAIN domainName`
  Use this command to suspend a Domain, so all currently active Accounts are closed and no Account can be opened in this Domain.
  `domainName : string`
    This parameter specifies the name of the Domain to be suspended.
`RESUMEDOMAIN domainName`
  Use this command to resume a Domain, so Accounts can be opened in this Domain.
  `domainName : string`
    This parameter specifies the name of the Domain to be resumed.

## Account Administration

A user should have the Users Server access right or the Domain Administration access right to use the Account Administration CLI commands.

`CREATEACCOUNT accountName [accountType] [ LEGACY ] [settings]`
  Use this command to create new accounts.
  `accountName : string`
    This parameter specifies the name for the new Account.
    The name can contain the `@` symbol followed by the Domain name, in this case the Account is created in the specified Domain. If the Domain name is not specified, the command applies to the administrator Domain.
  `accountType : MultiMailbox | TextMailbox | MailDirMailbox | AGrade | BGrade | CGrade`
    This optional parameter specifies the type of the Account to create. If no Account type is specified a `MultiMailbox`-type Account is created.
  `LEGACY`
    This optional flag tells the system to create an Account with a Legacy (visible for legacy mailers) INBOX.
  `settings : dictionary`
    This optional parameter specifies the initial Account settings. Account is created using the settings specified in the Account Template for the target Domain. If the settings parameter is specified, it is used to modify the Template settings.
  This command can be used by Domain Administrators only if they have the `CanCreateAccounts` access right.
  If this command is used by a Domain Administrator, it will use only those Account settings this Administrator is allowed to modify.
`RENAMEACCOUNT oldAccountName into newAccountName`
  Use this command to rename Accounts.
  `oldAccountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `newAccountName : string`
    This parameter specifies the new Account name. The name can include the Domain name (see above).
  This command can be used by Domain Administrators only if they have the `CanCreateAccounts` access right.
`DELETEACCOUNT oldAccountName`
  Use this command to remove Accounts.
  `oldAccountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  This command can be used by Domain Administrators only if they have the `CanCreateAccounts` access right.
`SETACCOUNTTYPE accountName accountType`
  Use this command to change the Account type.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `accountType : MultiMailbox | AGrade | BGrade | CGrade`
    This parameter specifies the new Account type. The current Account type must also belong to this type set.
  This command can be used by Domain Administrators only if they have the `CanCreateAccounts` access right.
`GETACCOUNTSETTINGS accountName`
  Use this command to get the Account settings. The command produces an output - a dictionary with the Account settings. Only the explicitly set (not the default) Account settings are included into the dictionary.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
    You can also specify the single asterisk (`*`) symbol instead of an Account name. This will indicate the current authenticated Account.
  Note: All users can send the `GETACCOUNTSETTINGS` command for their own Accounts.
`UPDATEACCOUNTSETTINGS accountName newSettings`
  Use this command to update the Account settings.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `newSettings : dictionary`
    This dictionary is used to update the Account settings dictionary. It does not have to contain all settings data, the omitted settings will be left unmodified. If a new setting value is specified as the string `default`, the Account setting value is removed, so the default Account setting value will be used.
  If this command is used by a Domain Administrator, it will update only those Account settings this Administrator is allowed to modify.
`GETACCOUNTEFFECTIVESETTINGS accountName`
  Use this command to get the effective Account settings. The command produces an output - a dictionary with the Account settings. Both the explicitly set and the default Account settings are included into the dictionary.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
    You can also specify the single asterisk (`*`) symbol instead of an Account name. This will indicate the current authenticated Account.
  Note: All users can send the `GETACCOUNTEFFECTIVESETTINGS` command for their own Accounts.
`SETACCOUNTPASSWORD accountName PASSWORD newPassword [ METHOD method] [ CHECK ]`
  Use this command to update the Account password.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `newPassword : string`
    This string specifies the new Account password. The new password will be stored using the effective Password Encryption setting of the target Account.
  `method : string`
    This optional parameter specifies the Account Access Mode. If this mode is "SIP", the the Alternative SIP Password Setting is modified, if this mode is RADIUS, then the Alternative RADIUS Password Setting is modified. In all other cases, the CommuniGate Password setting is modified. The new password will be stored using the effective Password Encryption setting of the target Account.
  To use this command, the user should have the "Basic Settings" Domain Administration right for the target Account Domain.
  Any user can modify her own Account password. In this case, or when the `CHECK` keyword is explicitly specified, the operation succeeds only when the Account `CanModifyPassword` effective Setting is enabled.
`VERIFYACCOUNTPASSWORD accountName PASSWORD password`
  Use this command to verify the Account password.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `password : string`
    This string is used to specify the password to check (in the clear text format).
  To use this command, the user should have any Domain Administration right for the target Account Domain.
`GETACCOUNTALIASES accountName`
  Use this command to get the list of Account aliases. The command produces an output - an array with the Account alias names.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
`SETACCOUNTALIASES accountName newAliases`
  Use this command to set the Account aliases.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `newAliases : array`
    This array should contain the Account alias name strings. All old Account aliases are removed.
  This command can be used by Domain Administrators only if they have the `CanCreateAliases` access right.
`GETACCOUNTTELNUMS accountName`
  Use this command to get the list of telephone numbers assigned to the Account. The command produces an output - an array with the assigned numbers.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
`SETACCOUNTTELNUMS accountName newAliases`
  Use this command to assign telephone numbers to the Account.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `newAliases : array`
    This array should contain the telephone number strings. All old numbers assigned to the Account are removed.
  This command can be used by Domain Administrators only if they have the `CanCreateTelnums` access right.
`MODIFYACCOUNTTELNUMS accountName parameters`
  Use this command to change telephone numbers assigned to the Account.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `parameters : dictionary`
    This dictionary should contain the `op` string element specifying the requested operation:
    `add`
      the parameters dictionary must contain the `telnum` string element with a telnum number to be added (atomically) to the set of Telnums assigned to the specified Account. If this set already contains this Telnum, an error code is returned.
    `del`
      the parameters dictionary must contain the `telnum` string element with a telnum number to be removed (atomically) from the set of Telnums assigned to the specified Account. If this set does not contain this Telnum, an error code is returned.
    `pop`
      The parameters dictionary must not contain any other elements. The first Telnum assigned to the specified Account is atomically removed from the Account Telnum set, and copied into the command result dictionary. If the Account Telnum set was empty, no error code is returned, and no element is copied into the command result dictionary.
  The command produces an output - a dictionary. For the `pop` operation, this dictionary can contain the `telnum` string element - the Telnum removed from the Account Telnum set.
  This command can be used by Domain Administrators only if they have the `CanCreateTelnums` access right.
`GETACCOUNTMAILRULES accountName`
  Use this command to get the list of Account Queue Rules. The command produces an output - an array of the Queue Rules specified for the Account.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
`SETACCOUNTMAILRULES accountName newRules`
  Use this command to set the Account Queue Rules.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `newRules : array`
    This array should contain the Account Queue Rules. All old Account Queue Rules are removed.
  This command can be used by Domain Administrators only if they have the `RulesAllowed` access right.
  This command can be used by any Account user to modify own Rules (subject to "allowed actions" restrictions).
`GETACCOUNTSIGNALRULES accountName`
  Use this command to get the list of Account Signal Rules. The command produces an output - an array of the Signal Rules specified for the Account.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
`SETACCOUNTSIGNALRULES accountName newRules`
  Use this command to set the Account Signal Rules.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `newRules : array`
    This array should contain the Account Signal Rules. All old Account Signal Rules are removed.
  This command can be used by Domain Administrators only if they have the `SignalRulesAllowed` access right.
`UPDATEACCOUNTMAILRULE accountName newRule`
`UPDATEACCOUNTMAILRULE accountName DELETE oldRule`
`UPDATEACCOUNTSIGNALRULE accountName newRule`
`UPDATEACCOUNTSIGNALRULE accountName DELETE oldRule`
  Use these commands to update an Account Queue or Signal Rule.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `newRule : array`
    This parameter should be an array, its first element specifies the Rule priority, its second element specifies the Rule name. The optional third, forth, and fifth elements specify the Rule conditions, Rule actions, and Rule comment.
    If the parameter array contains less than 4 elements, the array first element is used to update the priority of the already existing Rule with the name specified as the second array element. If such a Rule does not exist, the command returns an error.
    If the parameter array contains 4 or more elements, the entire parameter array is stored as a new Rule. If there is an existing Rule with the same name, it is removed.
  `oldRule : string`
    This string parameter (specified after the DELETE keyword) specifies a name of the Rule to be removed. If such a Rule does not exist, the command does nothing and it does not return an error.
  The `UpdateAccountMailRule` command can be used by Domain Administrators only if they have the `RulesAllowed` access right.
  The `UpdateAccountSignalRule` command can be used by Domain Administrators only if they have the `SignalRulesAllowed` access right.
  This command can be used by any Account user to modify own Rules (subject to "allowed actions" restrictions).
`GETACCOUNTRPOPS accountName`
  Use this command to get the list of Account RPOP records. The command produces an output - a dictionary with RPOP records specified for the Account.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
`SETACCOUNTRPOPS accountName newRecords`
  Use this command to set the Account RPOP records.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `newRecords : dictionary`
    This dictionary should contain the Account RPOP records. All old Account RPOP records are removed.
  This command can be used by Domain Administrators only if they have the `CanModifyRPOP` access right.
`GETACCOUNTRSIPS accountName`
  Use this command to get the list of Account RSIP records. The command produces an output - a dictionary with RSIP records specified for the Account.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
`SETACCOUNTRSIPS accountName newRecords`
  Use this command to set the Account RSIP records.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `newRecords : dictionary`
    This dictionary should contain the Account RSIP records. All old Account RSIP records are removed.
  This command can be used by Domain Administrators only if they have the `CanModifyRSIP` access right.
`UPDATESCHEDULEDTASK accountName taskData`
  Use this command to set the Account Scheduled Task records.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `taskData : dictionary`
    This dictionary should contain the Scheduled Task data:
    id
      the Scheduled Task name string. If there is no existing task with this name, a new Scheduled Task record is created.
    program
      the Scheduled Task program name string. It should be a name of the Real-Time Application available for the Account Domain environment. If this element is not specfied, an existing Scheduled Task record (if any) is deleted.
    parameter
      an optional simple Object. When the Scheduled Task program is launched, this Object is passed to it as its startParameter element.
    when
      a timestamp (GMT time) specifying when the Scheduled Task should be launched.
    period
      an optional parameter - a day, week, month, or year string, or a number. When specified, the Scheduled Task is automatically re-scheduled after the specified period of time (if this parameter is a number, then it specified the number of seconds).
      If this parameter is not specified, the Scheduled Task record is removed as soon as the Task is launched.
    When a Scheduled Task is launched, its main entry point is launched. The Task startParameter array contains the following elements:
    - startParameter[0] is the Scheduled Task name string
    - startParameter[1] is the timestamp specifying the moment the Task was started
    - startParameter[2] (optional) is the Scheduled Task parameter data
  This command can be used by Domain Administrators with the `CanModifyRSIP` access right for the target Account.
`GETACCOUNTRIGHTS accountName`
  Use this command to get the array of the Server or Domain access rights granted to the specified user. The command produces output data - an array listing all Account Server Access rights.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name.
`GETACCOUNTINFO accountName [Key keyName | ( keyList) ]`
  Use this command to get an element of the Account "info" dictionary. The command produces an output - see below.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above). You can also specify the single asterisk (`*`) symbol instead of an Account name. This will indicate the current authenticated Account.
  `keyList : array`
    This optional parameter specifies the names of the info keys to retrieve.
    Note that when Account "info" data are stored in `.info` dictionary files, the "info" elements have dictionary names starting with the hash (`#`) symbol. You should NOT include the hash symbol into the keyName parameter of the GETACCOUNTINFO command.
    Sample:
    GETACCOUNTINFO "user1@domain1.com" (LastLogin LastLoginAddress)
    Note: the "info" element names are case-sensitive.
    The output is a dictionary with all those "info" elements that exist and are specified in the keyList array.
  `keyName : string`
    This optional parameter specifies the name of the requested "info" element. It can be specified only if the keyList parameter is not specified.
    Note that when Account "info" data are stored in `.info` dictionary files, the "info" elements have dictionary names starting with the hash symbol. You should NOT include the hash symbol into the keyName parameter of the GETACCOUNTINFO command.
    Sample:
    GETACCOUNTINFO "user1@domain1.com" Key LastLogin
    Note: the "info" element names are case-sensitive.
    The output is the specified "info" element. If the element is not found, the output is an empty string - two quotation marks (`""`).
  Note: All users can use the `GETACCOUNTINFO` command to retrieve elements from their own Account "info" data.
`GETACCOUNTPREFS accountName`
  Use this command to get the Account Preferences. The command produces an output - a dictionary with the Account Preferences.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  Note: All users can use the `GETACCOUNTPREFS` command to retrieve their own Account Preferences.
`UPDATEACCOUNTPREFS accountName newSettings`
  Use this command to modify the Account Preferences.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `newSettings : dictionary`
    This dictionary is used to update the Account Preferences dictionary. It does not have to contain all Preferences data, the omitted elements will be left unmodified. If a new Preferences value is specified as the string `default`, the Preferences value is removed, so the default Preferences value will be used.
  This command can be used by Domain Administrators only if they have the `WebUserSettings` access right.
`SETACCOUNTPREFS accountName newSettings`
  Use this command to set the Account Preferences.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  `newSettings : dictionary`
    This dictionary should contain the new Account Preferences. All old Account Preferences are removed.
  This command can be used by Domain Administrators only if they have the `WebUserSettings` access right.
`GETACCOUNTEFFECTIVEPREFS accountName`
  Use this command to get the effective Account Preferences. The command produces an output - a dictionary with Account Preferences. Both the explicitly set and the default settings are included into that dictionary.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  Note: All users can use this command to retrieve their own effective Preferences.
`KILLACCOUNTSESSIONS accountName`
  Use this command to interrupt all Account sessions (POP, IMAP, FTP, WebUser, etc.).
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
  Note: All Domain Administrators can use this command.

The following command manage the Account Access Rights. These command can be used by the Account owner and by Domain Administrators who have the `CanImpersonate` access right.

`GETACCOUNTACL accountName [ AUTH authAccountName]`
  Use this command to get the Account Rights ACLs (Access Control Lists). The command produces an output - a dictionary with the ACL elements.
  `accountName : string`
    This parameter specifies the name of an existing Account (target Account). The asterisk (*) symbol can be used to specify the current authenticated Account.
  `authAccountName : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed. If this name is specified, the ACL info is returned only if the specified Account has the `Admin` access right for the target Account.
`SETACCOUNTACL accountName [ AUTH authAccountName] newACL`
  Use this command to modify the access control list for the Account Access Rights.
  `accountName : string`
    This parameter specifies the name of an existing Account (target Account). The asterisk (*) symbol can be used to specify the current authenticated Account.
  `authAccountName : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed. If this name is specified, the ACL info is updated only if the specified Account has the `Admin` access right for target Account.
  `newACL : dictionary`
    This parameter specifies the access right elements to be modified. Each dictionary key specifies an identifier, and the key value should be a string with access right symbols.
    If the key value string starts with the minus ("-") symbol, access rights specified in the string are removed from the access right element.
    If the key value string starts with the plus ("+") symbol, access rights specified in the string are added to the access right element.
    In other cases, access rights specified in the string replace the set of rights in the access right element.
    If the access right element for the specified key did not exist, it is created.
    If the new access right element has empty set of access rights, the element is removed.
`GETACCOUNTACLRIGHTS accountName AUTH authAccountName`
  This command produces an output - a string with the effective access rights for the given authAccountName.
  `accountName : string`
    This parameter specifies the name of an existing Account (target Account). The asterisk (*) symbol can be used to specify the current authenticated Account.
  `authAccountName : string`
    This parameter specifies the name of an Account whose effective access rights for the target Account should be retrieved.

The following commands are available for the System Administrators only:

`SETACCOUNTSETTINGS accountName newSettings`
  Use this command to change the Account settings.
  `accountName : string`
    This parameter specifies the name of an existing Account.
  `newSettings : dictionary`
    This dictionary is used to replace the Account settings dictionary. All old Account settings are removed.
`GETACCOUNTLOCATION accountName`
  Use this command to get the Account file directory path (for multi-mailbox Accounts) or the Account INBOX Mailbox path (for single-mailbox Accounts). The command produces an output - a string with the Account file path. The path is relative to the file directory of the Account Domain.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).
`GETACCOUNTPRESENCE accountName`
  Use this command to get the Account "presence" status. The command produces an output - a string with the Account presence state or a null-object.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name (see above).

The `AccessMode` Account and Domain Setting specifies Enabled Services. The Setting value can be one of the following:

- The All string: all services are enabled.
- The None string: all services are disabled.
- An array of strings. The first array element is a number or a numeric string, the other array elements are names of the enabled services.
  All services with numbers larger than the value of the first array element are enabled, too.
  The currently supported services (with their numbers) are:
  1:Mail, 2:POP, 3:IMAP, 4:WebMail, 5:PWD, 6:ACAP, 7:WebSite, 8:Relay, 9:Mobile, 10:FTP, 11:MAPI, 12:TLS, 13:S/MIME, 14:LDAP, 15:WebCAL, 16:RADIUS, 17:SIP, 18:PBX, 19:XMPP, 20:XIMSS, 21:Signal, 22:AirSync, 23:HTTP, 24:MobilePBX, 25:XMedia, 26:YMedia, 27:MobilePronto

## Group Administration

A user should have the Users Server access right or the Domain Administration access right to use the Groups Administration CLI commands.

`LISTGROUPS [ domainName ]`
  Use this command to get the list of all Groups in the Domain. The command produces output data - an array with the names of all Groups in the specified (or default) Domain.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain.
`CREATEGROUP groupName [settings]`
  Use this command to create new Groups.
  `groupName : string`
    This parameter specifies the name for the new Group.
    The name can contain the `@` symbol followed by the Domain name, in this case the Group is created in the specified Domain. If the Domain name is not specified, the command applies to the administrator Domain.
  `settings : dictionary`
    This optional parameter specifies the initial Group settings and the members list.
  This command can be used by Domain Administrators only if they have the `CanCreateGroups` access right.
`RENAMEGROUP oldGroupName into newGroupName`
  Use this command to rename Groups.
  `oldGroupName : string`
    This parameter specifies the name of an existing Group. The name can include the Domain name (see above).
  `newGroupName : string`
    This parameter specifies the new Group name. The name can include the Domain name (see above).
  This command can be used by Domain Administrators only if they have the `CanCreateGroups` access right.
`DELETEGROUP groupName`
  Use this command to remove Groups.
  `groupName : string`
    This parameter specifies the name of an existing Group. The name can include the Domain name (see above).
  This command can be used by Domain Administrators only if they have the `CanCreateGroups` access right.
`GETGROUP groupName`
  Use this command to get the Group settings. The command produces an output - a dictionary with the Group settings and members.
  `groupName : string`
    This parameter specifies the name of an existing Group. The name can include the Domain name (see above).
`SETGROUP groupName newSettings`
  Use this command to set the Group settings.
  `groupName : string`
    This parameter specifies the name of an existing Group. The name can include the Domain name (see above).
  `newSettings : dictionary`
    This dictionary is used to replace the Group settings dictionary.
  This command can be used by Domain Administrators only if they have the `CanCreateGroups` access right.

## Forwarder Administration

A user should have the Users Server access right or the Domain Administration access right to use the Forwarders Administration CLI commands.

`LISTFORWARDERS [ domainName ]`
  Use this command to get the list of all Forwarders in the Domain. The command produces output data - an array with the names of all Forwarders in the specified (or default) Domain.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain.
`CREATEFORWARDER forwarderName TO address`
  Use this command to create new Forwarders.
  `forwarderName : string`
    This parameter specifies the name for the new Forwarder.
    The name can contain the `@` symbol followed by the Domain name, in this case the Forwarder is created in the specified Domain. If the Domain name is not specified, the command applies to the administrator Domain.
  `address : string`
    This parameter specifies the E-mail address the Forwarder should reroute E-mail messages and Signals to.
  This command can be used by Domain Administrators only if they have the `CanCreateForwarders` access right.
`RENAMEFORWARDER oldForwarderName INTO newForwarderName`
  Use this command to rename Forwarders.
  `oldForwarderName : string`
    This parameter specifies the name of an existing Forwarder. The name can include the Domain name (see above).
  `newForwarderName : string`
    This parameter specifies the new Forwarder name. The name can include the Domain name (see above).
  This command can be used by Domain Administrators only if they have the `CanCreateForwarders` access right.
`DELETEFORWARDER forwarderName`
  Use this command to remove Forwarders.
  `forwarderName : string`
    This parameter specifies the name of an existing Forwarder. The name can include the Domain name (see above).
  This command can be used by Domain Administrators only if they have the `CanCreateForwarders` access right.
`GETFORWARDER forwarderName`
  Use this command to get the Forwarder address. The command produces an output - a string with the E-mail address this Forwarder reroutes all E-mail messages and Signals to.
  `forwarderName : string`
    This parameter specifies the name of an existing Forwarder. The name can include the Domain name (see above).
`FINDFORWARDERS domainName TO forwarderAddress`
  Use this command to find all Forwarders pointing to the specified address. The command produces an output - an array with the found Forwarder names.
  `domainName : string`
    This parameter specifies the Domain name.
  `forwarderAddress : string`
    This parameter specifies an E-mail address to look for.

## Named Task Administration

A user should have the Users Server access right or the Domain Administration access right to use the Named Task Administration CLI commands.

`LISTDOMAINNAMEDTASKS [ domainName ]`
  Use this command to get the list of all Named Tasks in the Domain. The command produces output data - a dictionary where the keys are the Named Task names, and the values are dictionaries, containing the Task owner name, the task Real Name, and the name of the Real-Time Application program this Named Task runs.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain.
`LISTACCOUNTNAMEDTASKS accountName`
  Use this command to get the list of all Named Tasks owned by the specified Account. The command produces output data - a dictionary containing the same data as the LISTDOMAINNAMEDTASKS command result.
  `accountName : string`
    This parameter specifies the owner Account name.
`CREATENAMEDTASK taskName FOR accountName`
  Use this command to create new Named Tasks.
  `taskName : string`
    This parameter specifies the name for the new Named Task.
    The name can contain the `@` symbol followed by the Domain name, in this case the Group is created in the specified Domain. If the Domain name is not specified, the command applies to the administrator Domain.
  `accountName : string`
    This parameter specifies the owner Account name. It must not contain the `@` symbol and a Domain name, as this owner Account must be in the same Domain as the Named Task itself.
  This command can be used by Domain Administrators only if they have the `CanCreateNamedTasks` access right.
`RENAMENAMEDTASK oldTaskName into newTaskName`
  Use this command to rename Named Tasks.
  `oldTaskName : string`
    This parameter specifies the name of an existing Named Task. The name can include the Domain name (see above).
  `newTaskName : string`
    This parameter specifies the new Named Task name.
  This command can be used by Domain Administrators only if they have the `CanCreateNamedTasks` access right.
`DELETENAMEDTASK taskName`
  Use this command to remove Named Tasks.
  `taskName : string`
    This parameter specifies the name of an existing Named Task. The name can include the Domain name (see above).
  This command can be used by Domain Administrators only if they have the `CanCreateNamedTasks` access right.
`GETNAMEDTASK taskName`
  Use this command to get the Named Task settings. The command produces an output - a dictionary with the Named Task settings.
  `taskName : string`
    This parameter specifies the name of an existing Named Task. The name can include the Domain name (see above).
`UPDATENAMEDTASK taskName newSettings`
  Use this command to set the Group settings.
  `taskName : string`
    This parameter specifies the name of an existing Named Task. The name can include the Domain name (see above).
  `newSettings : dictionary`
    This dictionary is used to update the Named Task settings dictionary.
  This command can be used by Domain Administrators only if they have the `CanCreateNamedTasks` access right.

## Access Rights Administration

A user should have the Master Server access right to use the Access Rights Administration CLI commands.

`SETACCOUNTRIGHTS accountName newRights`
  Use this command to set the Account Server Access rights.
  `accountName : string`
    This parameter specifies the name of an existing Account. The name can include the Domain name.
  `newRights : array`
    This array should contain the Access Right codes. All old Account access rights are removed.
  To set access rights for an Account in a secondary Domain (i.e. Domain Administration Rights), the user may have only the Users Server access right.

## Mailbox Administration

A user should be the Mailbox owner, or should have the Users Server access right or the `CanAccessMailboxes` Domain Administration access right to use the Mailbox Administration CLI commands.

`LISTMAILBOXES accountName [ FILTER filter] [ AUTH authAccountName]`
  Use this command to get the list of Account Mailboxes. The command produces an output - a dictionary.
  each dictionary key specifies a Mailbox name;
  if the authAccountName user is not specified or if the specified user has the `Select` access right for this Mailbox, the key value contains a dictionary with Mailbox information;
  if the specified authAccountName does not have the `Select` access right, the key value contains an empty array;
  if there is a 'mailbox folder' with the dictionary key, but there is no 'regular' Mailbox with that name, the key value is an empty array;
  if there is a 'mailbox folder' with the dictionary key, and there is also a 'regular' Mailbox with that name, the key value is an array with one element - the information for the 'regular' Mailbox (either a dictionary or an empty array).
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `filter : string`
    This optional parameter specifies the filter string to apply to Account Mailbox names. The filter can use the same wildcard symbols "*" and "%" as the IMAP LIST command. If the filter is not specified, the filter string "*" is assumed, and all Account Mailboxes are returned.
  `authAccountName : string`
    This optional parameter specifies the name of an Account on whose behalf the LIST operation should be executed. If this name is specified, the output includes only those Mailboxes for which the specified Account has the `Lookup` Mailbox access right.
`CREATEMAILBOX accountName MAILBOX mailboxName [ CLASS mailboxClass ] [ AUTH authAccountName]`
  Use this command to create a Mailbox in the specified Account.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `mailboxName : string`
    This parameter specifies the name for the new Mailbox.
  `authAccountName : string`
    This optional parameter specifies the name of an Account on whose behalf this operation should be executed.
  `mailboxClass : string`
    This optional parameter specifies the Mailbox class for the new Mailbox
`DELETEMAILBOX accountName MAILBOX mailboxName [ AUTH authAccountName]`
`DELETEMAILBOX accountName MAILBOXES mailboxName [ AUTH authAccountName]`
  Use this command to remove a Mailbox from the specified Account. If the keyword MAILBOXES is used, all nested Mailboxes (submailboxes) are deleted, too.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `mailboxName : string`
    This parameter specifies the name of the Mailbox to be deleted.
  `authaccountname : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed. If this name is specified, the Mailbox is deleted only if the specified Account has the `Create` access right for the 'outer' Mailbox (this means that an Account should have the `Create` access right for the `Archive` Mailbox in order to delete the `Archive/March` Mailbox), and the specified Account should have the `DELETE` right for the specified Mailbox.
`RENAMEMAILBOX accountName MAILBOX mailboxName INTO newMailboxName [ AUTH authAccountName]`
`RENAMEMAILBOX accountName MAILBOXES mailboxName INTO newMailboxName [ AUTH authAccountName]`
  Use this command to rename a Mailbox in the specified Account. If the keyword MAILBOXES is used, all nested Mailboxes (submailboxes) are renamed, too.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `mailboxName : string`
    This parameter specifies the name of the Mailbox to be renamed.
  `newMailboxName : string`
    This parameter specifies the new name for the Mailbox.
  `authaccountname : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed. If this name is specified, the Mailbox is created only if the specified Account has a right to perform the DELETEMAILBOX operation with the original Mailbox name and the CREATEMAILBOX operation with the new Mailbox name (see above).
`GETMAILBOXINFO accountName MAILBOX mailboxName [ AUTH authAccountName]`
  Use this command to get the internal information about the Account Mailbox. The command produces an output - a dictionary with the Mailbox internal information.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `mailboxName : string`
    This parameter specifies the name of an existing Mailbox in the specified Account.
  `authaccountname : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed. If this name is specified, the Mailbox info is returned only if the specified Account has the `Select` Mailbox access right.
`GETMAILBOXACL accountName MAILBOX mailboxName [ AUTH authAccountName]`
  Use this command to get the access control list for the Account Mailbox. The command produces an output - a dictionary with the Mailbox access elements.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `mailboxName : string`
    This parameter specifies the name of an existing Mailbox in the specified Account.
  `authaccountname : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed. If this name is specified, the ACL info is returned only if the specified Account has the `Admin` access right for the specified Mailbox.
`SETMAILBOXACL accountName MAILBOX mailboxName [ AUTH authAccountName] newACL`
  Use this command to modify the access control list for the Account Mailbox.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `mailboxName : string`
    This parameter specifies the name of an existing Mailbox in the specified Account.
  `authaccountname : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed. If this name is specified, the ACL info is updated only if the specified Account has the `Admin` access right for the specified Mailbox.
  `newACL : dictionary`
    This parameter specifies the access right elements to be modified. Each dictionary key specifies an identifier, and the key value should be a string with access right symbols.
    If the key value string starts with the minus ("-") symbol, access rights specified in the string are removed from the access right element.
    If the key value string starts with the plus ("+") symbol, access rights specified in the string are added to the access right element.
    In other cases, access rights specified in the string replace the set of rights in the access right element.
    If the access right element for the specified key did not exist, it is created.
    If the new access right element has empty set of access rights, the element is removed.
`GETMAILBOXRIGHTS accountName MAILBOX mailboxName AUTH authAccountName`
  This command produces an output - a string with the effective Mailbox access rights for the given authAccountName.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `mailboxName : string`
    This parameter specifies the name of an existing Mailbox in the specified Account.
  `authaccountname : string`
    This parameter specifies the name of an Account whose effective access rights should be retrieved.
`SETMAILBOXCLASS accountName MAILBOX mailboxName [ AUTH authAccountName ] CLASS newClass`
  Use this command to set the "class" of an Account Mailbox.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `mailboxName : string`
    This parameter specifies the name of an existing Mailbox in the specified Account.
  `authaccountname : string`
    This optional parameter specifies the name of an Account whose Mailbox access rights should be used.
  `newClass : string`
    The Mailbox class.
`GETMAILBOXSUBSCRIPTION accountName`
  This command produces an output - an array with the list of Account "subscribed Mailboxes".
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
`SETMAILBOXSUBSCRIPTION accountName newSubscription`
  Use this command to set the Account "subscribed Mailboxes" list.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `newSubscription : array`
    The list of subscribed Mailboxes. Each array element should be a string with a Mailbox name.
`GETMAILBOXALIASES accountName`
  This command produces an output - a dictionary. Each dictionary key is the name of an existing Mailbox alias, and the key value is a string with the name of Mailbox this alias points to.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
`SETMAILBOXALIASES accountName newAliases`
  Use this command to set the Account Mailbox aliases.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `newAliases : dictionary`
    The set of new Mailbox aliases.

## Alert Administration

A user should have the Users Server access right or the `CanPostAlerts` Domain Administration access right to use the Alert Administration CLI commands.

`GETDOMAINALERTS [ domainName ]`
  Use this command to get the Domain Alerts. The command produces an output - a dictionary with the Domain alert strings and time stamps.
  `domainName : string`
    This optional parameter specifies the name of an existing Domain.
`SETDOMAINALERTS [ domainName ] newAlerts`
  Use this command to change the Domain alerts.
  `domainName : string`
    This optional parameter specifies the name of an existing Domain.
  `newAlerts : dictionary`
    This dictionary is used to replace the Domain alert dictionary. All old Domain alerts are removed.
`POSTDOMAINALERT domainName ALERT newAlert`
  Use this command to post a Domain-wide alert message.
  `domainName : string`
    This parameter specifies the name of an existing Domain.
  `newAlert : string`
    This string specifies the Alert text.
`REMOVEDOMAINALERT domainName ALERT timeStamp`
  Use this command to remove a Domain-wide alert message.
  `domainName : string`
    This parameter specifies the name of an existing Domain.
  `timeStamp : string`
    This string specifies the time stamp of the Alert message to be removed.
`GETACCOUNTALERTS accountName`
  Use this command to get the Account Alerts. The command produces an output - a dictionary with the Account alert strings and time stamps.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
`SETACCOUNTALERTS accountName newAlerts`
  Use this command to change the Account alerts.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `newAlerts : dictionary`
    This dictionary is used to replace the Account alert dictionary. All old Account alerts are removed.
`POSTACCOUNTALERT accountName ALERT newAlert`
  Use this command to post an Account alert message.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `newAlert : string`
    This string specifies the Alert text.
`REMOVEACCOUNTALERT accountName ALERT timeStamp`
  Use this command to remove an Account alert message.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `timeStamp : string`
    This string specifies the time stamp of the Alert message to be removed.

The following commands are available for the System Administrators only:

`GETSERVERALERTS`
  Use this command to get the list of the server-wide Alerts. The command produces an output - a dictionary with the server alert strings and time stamps.
`SETSERVERALERTS newAlerts`
  Use this command to change the server-wide Alerts.
  `newAlerts : dictionary`
    This dictionary is used to replace the server-wide Alert dictionary. All old server-wide alerts are removed.
`POSTSERVERALERT newAlert`
  Use this command to post a server-wide Alert message.
  `newAlert : string`
    This string specifies the Alert text.
`REMOVESERVERALERT timeStamp`
  Use this command to remove a server-wide Alert message.
  `timeStamp : string`
    This string specifies the time stamp of the Alert message to be removed.
`GETCLUSTERALERTS`
`SETCLUSTERALERTS newAlerts`
`POSTCLUSTERALERT newAlert`
`REMOVECLUSTERALERT timeStamp`
  These commands are available in the Dynamic Cluster only.
  Use these commands instead of the [`Get`|`Set`|`Post`|`Remove`]`ServerAlert`[`s`] commands to work with the cluster-wide Alerts.

## File Storage Administration

The following commands allow an authenticated user to deal with files in the Account File Storage area. To access File Storage:

- authenticated user should be the Account owner, or
- the authenticated user should have the Users Server access right or the `WebSite` Domain Administration access right, or
- the authenticated user should be granted a File Access Right to the specified file or directory (only if `AUTH` parameter is not specified)

If a file name ends with the slash (`/`) symbol, it specifies a file directory name.

`READSTORAGEFILE accountName FILE fileName [ OFFSET position ] [ SIZE sliceSize ] [ AUTH authAccountName]`
  Use this command to retrieve a file from the Account File Storage. This command produces an output - a array of 3 elements. The first element is a datablock with the content of the specified file, the second element is a timestamp with the file modification date, and the third element is a number equal to the current file size.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `fileName : string`
    This parameter specifies the name of the File Storage file to be retrieved.
  `position : number`
    If this parameter is specified the File Storage file is read starting from the specified file position.
  `sliceSize : number`
    If this parameter is specified, no more than the specified number of file data bytes is returned.
  `authAccountName : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed.

The authenticated user should be the Account owner, or should have the Users Server access right or the `CanAccessWebSites` Domain Administration access right to use the following Account File Storage Administration CLI commands.

`WRITESTORAGEFILE accountName FILE fileName [ OFFSET position ] [ AUTH authAccountName] DATA fileData`
  Use this command to store a file in the Account File Storage.
  If a File Storage file with the specified name already exists, the old file is removed.
  If the fileName specifies a directory (it ends with the slash (`/`) symbol) the command creates a directory. In this case, the OFFSET position part must be absent, and the fileData parameter must be an empty datablock.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `fileName : string`
    This parameter specifies the name for the File Storage file.
  `position : offset`
    If this parameter is absent, or it exists and it is the zero number, the existing file (if any) is removed first, and a new file is created.
    If this parameter is a non-zero number, its value must be positive; the File Storage file is rewritten/extended starting from the specified file position. The file should already exist, and the specified position should not be larger than the current file size.
    If this option is `BEG`, then the file should already exist, the file is rewritten from the beginning, but its old data beyond the end of the fileData (if any) is not removed.
    If this option is `END`, then the fileData is appended to the end of the file. If the file does not exist, it is created.
    If this option is `NEW`, then the file must not exist, a new file is created and fileData is stored in it.
  `authAccountName : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed.
  `fileData : datablock`
    This parameter contains the file data.
`RENAMESTORAGEFILE accountName FILE oldFileName INTO newFileName [ AUTH authAccountName]`
  Use this command to rename a file or a file directory in the Account File Storage.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `oldFileName : string`
    This parameter specifies the name of an existing File Storage file or file directory.
  `newFileName : string`
    This parameter specifies the new name for the File Storage file or file directory.
  `authAccountName : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed.
`DELETESTORAGEFILE accountName FILE fileName [ AUTH authAccountName]`
  Use this command to remove a file or a file directory from the Account File Storage.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `fileName : string`
    This parameter specifies the name of an existing File Storage file or file directory.
  `authAccountName : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed.
`LISTSTORAGEFILES accountName [ PATH filePath] [ AUTH authAccountName]`
  Use this command to list all files in the File Storage top directory or in one of its subdirectories. This command produces an output - a dictionary, where each key is a name of the File Storage file, and the key value is a dictionary for a regular file and an empty array for subdirectories.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `filePath : string`
    This optional parameter specifies the name of the File Storage subdirectory. You can omit this parameter along with the PATH keyword, in this case the command returns the list of files in the top File Storage directory.
  `authAccountName : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed.
`GETSTORAGEFILEINFO accountName [ PATH filePath] [ AUTH authAccountName]`
  Use this command to get the statistical information about all files in the Account File Storage. This command produces an output - an array with 2 number elements. The first element contains the total size of all File Storage files, the second element contains the number of files in the File Storage.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `authAccountName : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed.
`READSTORAGEFILEATTR accountName FILE fileName [ attributes ] [ AUTH authAccountName]`
  Use this command to read attributes of an Account File Storage file or file directory. This command produces an output - an array of XML elements containing file or file directory attributes.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `fileName : string`
    This parameter specifies the name of an existing File Storage file or file directory.
  `attributes : array`
    This optional parameter specifies an array of strings. If specified, only file attributes with names included into this array are retrieved.
  `authAccountName : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed.
`UPDATESTORAGEFILEATTR accountName FILE fileName attributes [ AUTH authAccountName]`
  Use this command to update attributes of an Account File Storage file or file directory.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `fileName : string`
    This parameter specifies the name of an existing File Storage file or file directory.
  `attributes : array`
    This parameter specifies an array of XML elements - the new file attribute values.
  `authAccountName : string`
    This optional parameter specifies the name of an Account on whose behalf the operation should be executed.
`GETFILESUBSCRIPTION accountName`
  This command produces an output - an array with the list of Account "subscribed files".
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
`SETFILESUBSCRIPTION accountName newSubscription`
  Use this command to set the Account "subscribed files" list.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `newSubscription : array`
    The list of subscribed files. Each array element should be a string with a file name.

## Mailing Lists Administration

A user should have the Users Server access right or the Domain Administrator access right to use the Mailing List Administration CLI commands.

`LISTLISTS [ domainName ]`
  Use this command to get the list of all mailing lists in the Domain. The command produces output data - an array of strings. Each string is the name of a mailing list in the specified (or default) Domain.
  `domainName : string`
    This optional parameter specifies the Domain name.
`GETDOMAINLISTS [ domainName ]`
  Use this command to get the list of all mailing lists in the Domain. The command produces output data - a dictionary. Each dictionary key is the name of a mailing list in the specified (or default) Domain. The key value is a numeric string with the actual number of the list subscribers ("-1" if the current number of subscribers is not known).
  `domainName : string`
    This optional parameter specifies the Domain name.
`GETACCOUNTLISTS accountName`
  Use this command to get the list of all mailing lists belonging to the specified Account. The command produces output data - a dictionary. Each dictionary key is the name of a mailing list belonging to the specified (or default) Account. The key value is a numeric string with the actual number of the list subscribers ("-1" if the current number of subscribers is not known).
  `accountName : string`
    This parameter specifies the list's owner Account name.
`CREATELIST listName for accountName`
  Use this command to create a mailing list.
  `listName : string`
    This parameter specifies the name of an existing mailing list. It can include the Domain name. If the Domain name is not specified, the user Domain is used by default.
  `accountName : string`
    This parameter specifies the name of the mailing list owner. It should be the name of an already existing Account in the mailing list Domain.
  Domain Administrators can use this command if they have the CanCreateLists Domain access right.
`RENAMELIST listName into newName`
  Use this command to rename a mailing list.
  `listName : string`
    This parameter specifies the name of an existing mailing list. It can include the Domain name. If the Domain name is not specified, the user Domain is used by default.
  `newName : string`
    This parameter specifies the new name for the mailing list (without the Domain part).
  Domain Administrators can use this command if they have the CanCreateLists Domain access right.
`DELETELIST listName`
  Use this command to remove a mailing list.
  `listName : string`
    This parameter specifies the name of an existing mailing list. It can include the Domain name. If the Domain name is not specified, the user Domain is used by default.
  Domain Administrators can use this command if they have the CanCreateLists Domain access right.

The following commands can be used by the mailing list owner, by a Domain Administrator with the CanAccessLists access right, or by a Server Administrator with the Users Server access right.

`GETLIST listName`
  Use this command to retrieve list settings. The command produces an output - a dictionary with the listName mailing list settings.
  `listName : string`
    This parameter specifies the name of an existing mailing list. It can include the Domain name. If the Domain name is not specified, the user Domain is used by default.
`UPDATELIST listName newSettings`
  Use this command to modify list settings.
  `listName : string`
    This parameter specifies the name of an existing mailing list. It can include the Domain name. If the Domain name is not specified, the user Domain is used by default.
  `newSettings : dictionary`
    This dictionary is used to update the mailing list settings dictionary. It does not have to contain all settings data, the omitted settings will be left unmodified.
`LIST listName operation [silently] [confirm] subscriber`
  Use this command to update the subscribers list.
  `listName : string`
    This parameter specifies the name of an existing mailing list. It can include the Domain name. If the Domain name is not specified, the user Domain is used by default.
  `operation : subscribe | feed | digest | index | null | banned | unsubscribe`
    This parameter specifies the operation (see the LIST module section for the details).
  `silently`
    This optional parameter tells the server not to send the Welcome/Bye message to the subscriber.
  `confirm`
    This optional parameter tells the server to send a confirmation request to the subscriber.
  `subscriber : E-mail address`
    The subscriber address. It can include the comment part used as the subscriber's real name.
  Sample:
  LIST MyList@mydomain.com FEED confirm "Bill Jones" <BJones@company.com>
`LISTSUBSCRIBERS listName [ FILTER filter [ limit ] ]`
  Use this command to retrieve list subscribers. The command produces an output - an array with subscribers' E-mail addresses.
  `listName : string`
    This parameter specifies the name of an existing mailing list. It can include the Domain name. If the Domain name is not specified, the user Domain is used by default.
  `filter : string`
    If this optional parameter is specified, only the addresses containing the specified string are returned.
  `limit : number`
    This optional parameter limits the number of subscriber addresses returned.
`READSUBSCRIBERS listName [ FILTER filter [ limit ] ]`
  Use this command to retrieve list subscribers. The command produces an output - an array, where the first element is a number - the total number of list subscribers, and the second element is an array of subscriber descriptor dictionaries.
  `listName : string`
    This parameter specifies the name of an existing mailing list. It can include the Domain name. If the Domain name is not specified, the user Domain is used by default.
  `filter : string`
    If this optional parameter is specified, only subscribers with addresses containing the specified string are returned.
  `limit : number`
    This optional parameter limits the number of subscriber dictionaries returned.

  A dictionary describing a subscriber has the following elements:
  `Sub`
    E-mail address string
  `RealName`
    an optional string with Real name
  `mode`
    a string with subscription mode (index, digest, null, etc.)
  `subscribeTime`
    timestamp data specifying the moment when this user subscribed.
  `posts`
    number of postings on this list
  `lastBounceTime`
    optional timestamp data specifying the last time when messages sent to this user failed.
  `bounces`
    optional numeric data specifying the number of failed delivery reports received for this user.
`GETSUBSCRIBERINFO listName NAME subscriberAddress`
  Use this command to retrieve information about a list subscriber. The command produces an output - a dictionary with subscriber information.
  `listName : string`
    This parameter specifies the name of an existing mailing list. It can include the Domain name. If the Domain name is not specified, the user Domain is used by default.
  `subscriberAddress : string`
    This parameter specifies the E-mail address of the list subscriber.
  If the subscriber does not exist, an empty dictionary is returned. Otherwise, the dictionary contains the following elements:
  `mode`
    This string element specified the subscription mode (`digest`, `index`, etc.) This element is equal to `unsubscribe` if the address has been unsubscribed, but has not been removed from the list. This element is equal to `subscribe` if a user has started subscription, but the subscription has not been confirmed.
  `confirmationID`
    This element contains the subscriber's Confirmation ID string.
  `timeSubscribed`
    This string element specifies when the address was subscribed (in the ACAP date/time format).
  `posts`
    This string element may contain the strings `special`, `moderateAll`, `prohibited`, or the string with the number of messages posted from this address. If the next postings from this address are to be moderated, the element contains an array with one string element that contains the number of postings to be moderated.
  `bounces`
    This optional string element contains the number of bounces received from this address.
  `lastBounced`
    This optional string element specifies the last time when messages to this address bounced were bounced. The data and time are specified in the ACAP format.
  `RealName`
    This optional string element contains the real name of the subscriber.
`SETPOSTINGMODE listName FOR subscriberAddress [ UNMODERATED | MODERATEALL | PROHIBITED | SPECIAL | numberOfModerated ]`
  Use this command to set the posting mode for the specified subscriber.
  `listName : string`
    This parameter specifies the name of an existing mailing list. It can include the Domain name. If the Domain name is not specified, the user Domain is used by default.
  `subscriberAddress : string`
    This parameter specifies the E-mail address of the list subscriber.
  `postingMode : number`
    This optional parameter limits the number of subscriber addresses returned.
  The command sets the posting mode the specified subscriber. If numberOfModerated (a number) is specified, the posting mode set requires moderation of the first numberOfModerated messages from this subscriber.
`PROCESSBOUNCE listName [FATAL] FOR subscriberAddress`
  Use this command to perform the same action the List Manager performs when it receives a bounce message for the subscriber address.
  `listName : string`
    This parameter specifies the name of an existing mailing list. It can include the Domain name. If the Domain name is not specified, the user Domain is used by default.
  `subscriberAddress : string`
    This parameter specifies the E-mail address of the list subscriber.
  Use the `FATAL` keyword to emulate a "fatal" bounce. Otherwise the command emulates a non-fatal bounce.

## Web Skins Administration

The following commands can be used to manage CommuniGate Pro Skins used for the CommuniGate Pro WebUser Interface.

A user should have the Users Server access right or the `CanModifySkins` Domain Administration access right to modify the Domain Skins.

`LISTDOMAINSKINS [domainName]`
  Use this command to list custom Domain Skins. The command produces an output - an array with Skin names.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain.
`CREATEDOMAINSKIN [domainName SKIN] skinName`
  Use this command to create a custom Domain Skin.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain. If it is specified, it should be followed with the SKIN keyword.
  `skinName : string`
    This parameter specifies the name of the new Skin.
  To create the unnamed Domain Skin, specify an empty string as the skinName parameter value.
  A named Domain Skin can be created only when the unnamed Domain Skin exists.
`RENAMEDOMAINSKIN [domainName SKIN] skinName INTO newSkinName`
  Use this command to rename a custom named Domain Skin.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain. If it is specified, it should be followed with the SKIN keyword.
  `skinName : string`
    This parameter specifies the name of an existing named Skin.
  `newSkinName : string`
    This parameter specifies the new name for the Skin.
`DELETEDOMAINSKIN [domainName SKIN] skinName`
  Use this command to delete a custom Domain Skin.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain. If it is specified, it should be followed with the SKIN keyword.
  `skinName : string`
    This parameter specifies the name of the Skin to be deleted.
  To delete the unnamed Domain Skin, specify an empty string as the skinName parameter value.
  The unnamed Domain Skin can be deleted only when no named Domain Skin exists.
`LISTDOMAINSKINFILES` [`domainName SKIN`]`skinName`
  Use this command to list files in a custom Domain Skin. The command produces an output - a dictionary with Skin file names as keys. The dictionary element values are dictionaries with file attributes.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain. If it is specified, it must be followed with the SKIN keyword.
  `skinName : string`
    This parameter specifies the name of an existing Domain Skin.
`READDOMAINSKINFILE` [`domainName SKIN`]`skinName FILE fileName`
  Use this command to read a file from a custom Domain Skin. The command produces an output - an array. The first array element is a datablock with the Skin file content, the second array element is a timestamp with the file modification date.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain. If it is specified, it must be followed with the SKIN keyword.
  `skinName : string`
    This parameter specifies the name of an existing Domain Skin.
  `fileName : string`
    This parameter specifies the name of an existing file in the specified Domain Skin.
`STOREDOMAINSKINFILE` [`domainName SKIN`]`skinName FILE fileName DATA fileContent`
`STOREDOMAINSKINFILE` [`domainName SKIN`]`skinName FILE fileName DELETE`
  Use this command to store a file into a custom Domain Skin, or to delete a file from a custom Domain Skin.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain. If it is specified, it must be followed with the SKIN keyword.
  `skinName : string`
    This parameter specifies the name of an existing Domain Skin.
  `fileName : string`
    This parameter specifies the Skin file name.
  `fileContent : datablock`
    This datablock contains file content. This parameter is specified only if the DATA keyword is used.
  If the DATA keyword is specified and the Skin contains a file with the same name, the old file is deleted. The file with the specified name is removed from the Skin Cache (in the Dynamic Cluster the file is removed from Skin caches on all cluster members).

The following commands are available for the System Administrators only:

`LISTSERVERSKINS`
  Use this command to list custom Server Skins. The command produces an output - an array with Skin names.
`CREATESERVERSKIN skinName`
  Use this command to create a custom Server Skin.
  `skinName : string`
    This parameter specifies the name of the new Skin.
`RENAMESERVERSKIN skinName INTO newSkinName`
  Use this command to rename a custom Server Skin.
  `skinName : string`
    This parameter specifies the name of an existing Skin.
  `newSkinName : string`
    This parameter specifies the new name for the Skin.
`DELETESERVERSKIN skinName`
  Use this command to delete a custom Server Skin.
  `skinName : string`
    This parameter specifies the name of the Skin to be deleted.
`LISTSERVERSKINFILES skinName`
  Use this command to list files in a custom Domain Skin. The command produces an output - a dictionary with Skin file names as keys. The dictionary element values are dictionaries with file attributes.
  `skinName : string`
    This parameter specifies the name of an existing Server Skin.
`READSERVERSKINFILE skinName FILE fileName`
  Use this command to read a file from a custom Server Skin. The command produces an output - an array. The first array element is a datablock with the Skin file content, the second array element is a timestamp with the file modification date.
  `skinName : string`
    This parameter specifies the name of an existing Server Skin.
  `fileName : string`
    This parameter specifies the name of an existing file in the specified Server Skin.
`STORESERVERSKINFILE skinName FILE fileName DATA fileContent`
`STORESERVERSKINFILE skinName FILE fileName DELETE`
  Use this command to store a file into a custom Server Skin, or to delete a file from a custom Server Skin.
  `skinName : string`
    This parameter specifies the name of an existing Server Skin.
  `fileName : string`
    This parameter specifies the Skin file name.
  `fileContent : datablock`
    This datablock contains the file content. This parameter is specified only if the DATA keyword is used.
  If the DATA keyword is specified and the Skin contains a file with the same name, the old file is deleted. The file with the specified name is removed from the Skin Cache (in the Dynamic Cluster the file is removed from Skin caches on all cluster members).
`LISTCLUSTERSKINS`
`CREATECLUSTERSKIN skinName`
`RENAMECLUSTERSKIN skinName INTO newSkinName`
`DELETECLUSTERSKIN skinName`
  These commands are available in the Dynamic Cluster only.
  Use these commands instead of the [`List`|`Create`|`Rename`|`Delete`]`ServerSkin`[`s`] commands to work with the cluster-wide Skins.
`LISTCLUSTERSKINFILES skinName`
`READCLUSTERSKINFILE skinName FILE fileName`
`STORECLUSTERSKINFILE skinName FILE fileName DATA fileContent`
`STORECLUSTERSKINFILE skinName FILE fileName DELETE`
  These commands are available in the Dynamic Cluster only.
  Use these commands instead of the [`List`|`Read`|`Store`]`ServerSkinFile`[`s`] commands to work with files in the cluster-wide Skins.

## Web Interface Integration

The following commands can be used to integrate the CommuniGate Pro WebUser Interface with third-party applications.

`CREATEWEBUSERSESSION accountName ADDRESS ip-address [ FOR orig-address ] [ WML | IMode ] [ SKIN skinName ]`
  Use this command to create a WebUser session for the specified Account. The command produces an output - a string that contains the WebUser Session ID. This string can be used to compose a URL that will allow the client browser to "enter" the WebUser Session. That URL can have the following format:
  http://cgateproserver:port/Session/rrrrrrrrrrrr/Mailboxes.wssp
  where rrrrrrrrrrrr is the Session ID string returned.
  `accountName : string`
    This parameter specifies the Account name.
  `ip-address : string or IP address`
    This parameter specifies the IP address and port of the client browser.
    If the Account has the "Fixed IP" Preference setting enabled, connections to the session will be allowed from this IP address only.
  `orig-address : string`
    This parameter specifies the original IP address of the client browser, if the client connects via a proxy. The ip-address parameter specifies the proxy IP address.
    If the Account has the "Fixed IP" Preference setting enabled, connections to the session will be allowed from the proxy IP address only and only from this original IP address (passed by the proxy in the `X-FORWARDED-FOR` HTTP header field).
  `skinName : string`
    This optional parameter specifies the Skin to use for the newly created session.
  The optional `WML` or `IMode` keywords can be used to emulate login via a WML or I-Mode browser.
  The authenticated user should have the Users Server access right or the `CanCreateWebUserSessions` Domain Administration access right to create WebUser Sessions.
`CREATEXIMSSSESSION accountName ADDRESS ip-address [ FOR orig-address ]`
  Use this command to create a XIMSS session for the specified Account. The command produces an output - a string that contains the XIMSS Session ID. This string can be used to compose a URL that will allow the client browser to work with the XIMSS Session using HTTP Binding.
  `accountName : string`
    This parameter specifies the Account name.
  `ip-address : string`
  `orig-address : string`
    These parameters have the same meaning as for the `CREATEWEBUSERSESSION` command.
  The authenticated user should have the Users Server access right or the `CanCreateWebUserSessions` Domain Administration access right to create XIMSS Sessions.
`FINDACCOUNTSESSION accountName [ ADDRESS ip-address [ FOR proxied-address ] ] [ PROTOCOL protocol ] [ TRANSPORT transport ] [ CLIENT client ]`
  Use this command to find an existing session for the specified Account. The command produces an output - a string that contains the Session ID.
  `accountName : string`
    This parameter specifies the Account name.
  `ip-address : string or IP address`
    This optional parameter specifies the IP address of the client browser. If it is specified, the command will find only those sessions that have the "Fixed IP" Preference disabled or have the same login IP address as the specified one.
  `proxied-address : string`
    This optional parameter specifies the IP address of the client browser, if this browser is located behind an HTTP proxy. The ip-address then specifies the IP address of that proxy.
  `protocol : string`
    This optional parameter specifies the Session protocol (`WebUser`, `XIMSS`, `XMPP`, etc.) If specified, only the sessions created with the specified protocol are searched.
  `transport : string`
    This optional parameter specifies the Session transport (`HTTP`, `XIMSS`, `XMPP`, etc.) If specified, only the sessions created with the specified transport are searched.
  `client : string`
    This optional parameter specifies the Session client. If specified, only the sessions created with the specified client (if the client has informed the session about its name) are searched.
  The authenticated user should have the Users Server access right or the `CanCreateWebUserSessions` Domain Administration access right to use this command.
`GETSESSION sessionID [ DOMAIN domainName ]`
  Use this command to retrieve Session data. The command produces an output - a dictionary with the session dataset (specified in the WSSP section of this manual).
  `sessionID : string`
    This parameter specifies the Session ID.
  `domainName : string`
    This optional parameter specifies the name of Domain the session Account belongs to.
  The authenticated user should have the Users Server access right to retrieve Session data if the domainName parameter is not specified. If the domainName is specified, the authenticated user should have the `CanCreateWebUserSessions` Domain Administration access right for the specified Domain.
  This operation resets the session inactivity timer.
`KILLSESSION sessionID [ DOMAIN domainName ]`
  Use this command to terminate a Session.
  `sessionID : string`
    This parameter specifies the Session ID.
  `domainName : string`
    This optional parameter specifies the name of Domain the session Account belongs to.
  The authenticated user should have the Users Server access right to terminate a Session if the domainName parameter is not specified. If the domainName is specified, the authenticated user should have the `CanCreateWebUserSessions` Domain Administration access right for the specified Domain.

## Real-Time Application Administration

The following commands can be used to manage CommuniGate Pro Real-Time Application Environments.

A user should have the Users Server access right or the `CanModifyPBXApps` Domain Administration access right to modify the Domain Real-Time Application Environment.

`CREATEDOMAINPBX domainName [ FILE language ]`
  Use this command to create the Domain Real-Time Application Environment or to create its national subset.
  `domainName : string`
    This parameter specifies the Domain name.
  `language : language`
    This optional parameter specifies a national subset name.
`DELETEDOMAINPBX domainName FILE language`
  Use this command to remove a national subset from the Domain Real-Time Application Environment.
  `domainName : string`
    This parameter specifies the Domain name.
  `language : language`
    This parameter specifies a national subset name.
`LISTDOMAINPBXFILES domainName [ FILE language ]`
  Use this command to list files in the Domain Real-Time Application Environment. The command produces an output - a dictionary with file names used as keys. The dictionary element values are dictionaries with file attributes.
  `domainName : string`
    This optional parameter specifies the Domain name. If the Domain name is not specified, the command applies to the administrator Domain.
  `language : language`
    This optional parameter specifies a national subset name.
`READDOMAINPBXFILE domainName FILE fileName`
  Use this command to read a file from the Domain Real-Time Application Environment. The command produces an output - a datablock with the file contents.
  `domainName : string`
    This parameter specifies the Domain name.
  `fileName : string`
    This parameter specifies the file name. To retrieve a file from a national subset, specify the name as language/fileName.
`STOREDOMAINPBXFILE domainName FILE fileName DATA fileContent`
`STOREDOMAINPBXFILE domainName FILE fileName DELETE`
  Use this command to store a file into the Domain Real-Time Application Environment, or to delete a file from the Domain Real-Time Application Environment.
  `domainName : string`
    This parameter specifies the Domain name.
  `fileName : string`
    This parameter specifies the file name. To store a file into a national subset, specify the name as language/fileName.
  `fileContent : datablock`
    This parameter is specified only if the DATA keyword is used. It should contain the file contents.
  If the DATA keyword is specified and the environment contains a file with the specified name, the old file is deleted. The file with the specified name is removed from the Environment cache (in the Dynamic Cluster the file is removed from all cluster members caches).

The following commands are available for the System Administrators only:

`CREATESERVERPBX language`
  Use this command to create the Server-wide Real-Time Application Environment or to create its national subset.
  `language : language`
    This parameter specifies a national subset name.
`DELETESERVERPBX language`
  Use this command to remove a national subset of the Server-wide Real-Time Application Environment.
  `language : language`
    This parameter specifies a national subset name.
`LISTSERVERPBXFILES [ language ]`
  Use this command to list files in the Server-wide Real-Time Application Environment. The command produces an output - a dictionary with file names used as keys. The dictionary element values are dictionaries with file attributes.
  `language : string`
    This optional parameter specifies a national subset name.
`READSERVERPBXFILE fileName`
  Use this command to read a file from the Server-wide Real-Time Application Environment. The command produces an output - a datablock with the file contents.
  `fileName : string`
    This parameter specifies the file name. To retrieve a file from a national subset, specify the name as language/fileName.
`STORESERVERPBXFILE fileName DATA fileContent`
`STORESERVERPBXFILE fileName DELETE`
  Use this command to store a file into the Server-wide Real-Time Application Environment, or to delete a file from the Server-wide Real-Time Application Environment.
  `fileName : string`
    This parameter specifies the file name. To store a file into a national subset, specify the name as language/fileName.
  `fileContent : datablock`
    This parameter is specified only if the DATA keyword is used. It should contain the file contents.
  If the DATA keyword is specified and the environment contains a file with the specified name, the old file is deleted. The file with the specified name is removed from the Environment cache (in the Dynamic Cluster the file is removed from all cluster members caches).
`CREATECLUSTERPBX language`
`DELETECLUSTERPBX language`
`LISTCLUSTERPBXFILES [ language ]`
`READCLUSTERPBXFILE fileName`
`STORECLUSTERPBXFILE fileName DATA fileContent`
`STORECLUSTERPBXFILE fileName DELETE`
  These commands are available in the Dynamic Cluster only.
  Use these commands instead of the [`List`|`Read`|`Store`]`ServerPBXFile`[`s`] commands to work with files in the cluster-wide Real-Time Application Environment.

## Real-Time Application Control

The following commands can be used to manage CommuniGate Pro Real-Time Application Tasks.

`STARTPBXTASK accountName PROGRAM programName [ ENTRY entryName ] [ PARAM parameter ]`
  Use this command to start a new PBX Task. The command produces an output - a string with the Task ID.
  `accountName : string`
    This parameter specifies the name of an Account. The Task is started on this Account behalf.
    The name can include the Domain name. If the Domain name is not specified, the current user Domain is used by default.
  `programName : string`
    The name of the program (the .sppr file) to start.
  `entryName : string`
    This optional parameter specifies the program entry point. If this parameter is not specified, the `main` entry point is used.
  `parameter : object`
    This optional parameter specifies the program parameter. The program code can retrieve it using the following code:
    Vars().startParameter
`SENDTASKEVENT taskID EVENT eventName [ PARAM parameter ]`
  Use this command to send an Event to an existing PBX Task.
  `taskID : string`
    This parameter specifies the Task ID.
  `eventName : string`
    The name of the Event to send.
  `parameter : object`
    This optional parameter specifies the Event parameter.
`KILLNODE taskID`
  Use this command to kill an existing PBX Task.
  `taskID : string`
    This parameter specifies the Task ID.
`READNODESTATUS taskID`
  Use this command to read the current application status of an existing PBX Task. The command produces an output - the application status object.
  `taskID : string`
    This parameter specifies the Task ID.

## Account Services

The following commands can be used to manage various CommuniGate Pro Account Services.

`REMOVEACCOUNTSUBSET accountName SUBSET subsetName`
  Use this command to remove an Account "dataset" (such as the `RepliedAddresses` dataset).

  A user should be the Account owner or should have the BasicSettings Domain Administration access right to use this command.

  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `subsetName : string`
    This parameter specifies the name of an existing data subset in the specified Account.
`DATASET accountName parameters`
  Use this command to manage Account "datasets". The command produces an output - a dictionary with the operation results.

  A user should be the Account owner or should have the BasicSettings Domain Administration access right to use this command.

  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `parameters : dictionary`
    This dictionary should contain:
    `subsetName`
      a string element specifying the target dataset or the dataset subset
    `what`
      a string element specifying the operation to apply.
    Other dictionary elements are operation-specific.
  The following is the list of supported operations (the `what` values) and the additional parameters dictionary elements used for each operation:
  `listSubsets`
    this operation lists all subsets of the specified dataset. To list all top-level datasets in the Account, specify the an empty string as the `subsetName` value. The resulting dictionary contains the found subset names as keys and empty strings as values.
  `createSet`
    this operation creates the specified dataset.
  `removeSet`
    this operation removes the specified dataset.
  `listEntries`
    this operation lists subset entries. The resulting dictionary contains the found entry names as keys and the entry attribute name-value dictionaries as values.
    `attribute`, `data`
      optional string elements; they specify the name and the value of an entry attribute. If specified, the result includes only the entries that have the specified attribute with the specified value.
    `mode`
      an optional string element; if it is absent or its value is eq, then the specified attribute should have the specified value;
      if its value is beg, then the beginning of the specified attribute value should match the specified value.
      if its value is end, then the tail of the specified attribute value should match the specified value.
      if its value is incl, then the specified attribute value should include the specified value.
  `setEntry`
    this operation creates a new entry or updates an existing entry.
    `data`
      a dictionary with the attribute name-value pairs; they are used to update an existing entry or to create a new one.
    `entryName`
      the entry name string; if the entry with the specified name does not exist, it is created. If this element is absent, a unique entry name is generated.
    `ifExists`
      if this element exists, then the new entry cannot be created, and only an existing entry can be updated; if this element is absent and the specified dataset is not found, the dataset is created.
  `deleteEntry`
    this operation removes the specified entry from the specified dataset.
    `entryName`
      the entry name string
  `addRandomEntry`
    this operation adds a new entry to the specified dataset or the dataset subset. A unique name is generated and assigned to this entry. If the operation succeeds, the resulting dictionary has the string `entryName` element with the entry name generated.
    `data`
      a dictionary with the attribute name-value pairs. It must contain the addressbook.Email attribute.
    `entryLimit`
      an optional numeric value; if specified and positive, then the operation checks the the current number of subset entries does not exceed this limit.
    If the dataset already contains an entry with the same addressbook.Email attribute value, the dataset is not modified.
  `findAddress`
    this operation finds an entry with the specified addressbook.Email attribute value. The operation result is a dictionary. If an entry is found, its name is returned as the dictionary element with an empty-string name.
    `address`
      a string with an E-mail address to look for
`ROSTER accountName parameters`
  Use this command to manage Account Roster. The command produces an output - a dictionary with the operation results.

  A user should be the Account owner or should have the BasicSettings Domain Administration access right to use this command.

  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `parameters : dictionary`
    This dictionary should contain the `what` string element, specifying the operation to apply: `List`, `Update`, `remove`, `Presence`, `probe`. Other dictionary elements are operation-specific.
`BALANCE accountName parameters`
  Use this command to manage Account Billing Balances. The command produces an output - a dictionary with the operation results (as specified in the Billing section).

  A user should be the Account owner or should have the CanCreditAccounts Domain Administration access right to use this command.

  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `parameters : dictionary`
    This dictionary should contain the `op` string element, specifying the operation to apply: `list`, `reserve`, `release`, `charge`, `credit`, `read`, `readAll`, `history`, `remove`. Other dictionary elements are operation-specific, they are specified in the Billing section.

## Server Settings

A user should have the Settings Server access right to use the Server Settings CLI commands.

`LISTMODULES`
  Use this command to list all Server modules. The command produces an output - an array with all module names.
`GETMODULE moduleName`
  Use this command to get the module settings. The command produces an output - a dictionary with the module settings.
  `moduleName : string`
    This parameter specifies the name of a CommuniGate Pro Server module.
`SETMODULE moduleName newSettings`
  Use this command to set the module settings.
  `moduleName : string`
    This parameter specifies the name of a CommuniGate Pro Server module.
  `newSettings : dictionary`
    This dictionary is used to set the module settings dictionary.
`UPDATEMODULE moduleName newSettings`
  Use this command to update the module settings.
  `moduleName : string`
    This parameter specifies the name of a CommuniGate Pro Server module.
  `newSettings : dictionary`
    This dictionary is used to update the module settings dictionary. It does not have to contain all settings data, the omitted settings will be left unmodified.
`GETQUEUESETTINGS`
  Use this command to get the Queue settings. The command produces an output - a dictionary with the Queue settings.
`SETQUEUESETTINGS newSettings`
  Use this command to set the Queue settings.
  `newSettings : dictionary`
    This dictionary is used to set the Queue settings dictionary.
`GETSIGNALSETTINGS`
  Use this command to get the Signal component settings. The command produces an output - a dictionary with the component settings.
`SETSIGNALSETTINGS newSettings`
  Use this command to set the Signal component settings.
  `newSettings : dictionary`
    This dictionary is used to set the component settings dictionary.
`GETMEDIASERVERSETTINGS`
  Use this command to read the Media Server component settings. The command produces an output - a dictionary with the component settings.
`SETMEDIASERVERSETTINGS newSettings`
  Use this command to set the Media Server component settings.
  `newSettings : dictionary`
    This dictionary is used to set the component settings dictionary.
`GETSESSIONSETTINGS`
  Use this command to get the user Sessions settings. The command produces an output - a dictionary with the Sessions settings.
`SETSESSIONSETTINGS newSettings`
  Use this command to set the user Sessions settings.
  `newSettings : dictionary`
    This dictionary is used to set the Sessions settings dictionary.
`GETCLUSTERSETTINGS`
  Use this command to get the Cluster settings. The command produces an output - a dictionary with the Cluster settings.
`SETCLUSTERSETTINGS newSettings`
  Use this command to set the Cluster settings.
  `newSettings : dictionary`
    This dictionary is used to set the Cluster settings dictionary.
`GETNETWORK`
  Use this command to retrieve the Network settings. The command produces an output - a dictionary with the server Network settings.
`SETNETWORK newSettings`
  Use this command to set the server Network Settings.
  `newSettings : dictionary`
    New server Network settings.
`GETBANNED`
  Use this command to retrieve the Banned Message Lines settings. The command produces an output - a dictionary with the server Banned Message Lines settings.
`SETBANNED newSettings`
  Use this command to set the server Banned Message Line Settings.
  `newSettings : dictionary`
    New server Banned settings.
`GETCLUSTERNETWORK`
`SETCLUSTERNETWORK newSettings`
  Use these commands to retrieve and update the Cluster-wide Network settings.
`GETCLUSTERBANNED`
`SETCLUSTERBANNED newSettings`
  Use these commands to retrieve and update the Cluster-wide Banned Message Lines settings.
`GETSERVERMAILRULES`
  Use this command to read the Server-Wide Automated Mail Processing Rules. The command produces an output - an array of the Server Queue Rules.
`SETSERVERMAILRULES newRules`
  Use this command to set the Server-Wide Automated Mail Processing Rules.
  `newRules : array`
    An array of new Server Queue Rules.
`GETSERVERSIGNALRULES`
  Use this command to read the Server-Wide Automated Signal Processing Rules. The command produces an output - an array of the Server Signal Rules.
`SETSERVERSIGNALRULES newRules`
  Use this command to set the Server-Wide Automated Signal Processing Rules.
  `newRules : array`
    An array of new Server Signal Rules.
`GETCLUSTERMAILRULES`
`SETCLUSTERMAILRULES newRules`
`GETCLUSTERSIGNALRULES`
`SETCLUSTERSIGNALRULES newRules`
  Use these commands to retrieve and update the Cluster-wide Rules.
`GETROUTERTABLE`
  Use this command to read the Router Table. The command produces an output - a (multi-line) string with the Router Table text.
`SETROUTERTABLE newTable`
  Use this command to set the Router Table.
  `newTable : string`
    A (multi-line) string containing the text of the new Router Table
    Note: multiple lines should be separated with the `\e` symbols.
`GETROUTERSETTINGS`
  Use this command to read the Router settings. The command produces an output - a dictionary with the Router settings.
`SETROUTERSETTINGS newSettings`
  Use this command to set the Router settings.
  `newSettings : dictionary`
    A dictionary containing new Router settings.
`GETCLUSTERROUTERTABLE`
`SETCLUSTERROUTERTABLE newTable`
`GETCLUSTERROUTERSETTINGS`
`SETCLUSTERROUTERSETTINGS newSettings`
  Use these commands to deal with the Cluster-Wide Router Table and settings.
`REFRESHOSDATA`
  Use this command to make the Server re-read the IP data from the server OS: the set of the local IP addresses, and the set of the DNS addresses.
`GETLANIPS`
  Use this command to retrieve the set of LAN IP Addresses. The command produces an output - a (multi-line) string with LAN IP addresses and address ranges.
`SETLANIPS newAddresses`
  Use this command to update the set of LAN IP Addresses.
  `newAddresses : string`
    This (multi-line) string parameter contains the set of addresses and address ranges forming the new set of LAN IP Addresses.
`GETCLUSTERLANIPS`
  Use this command to retrieve the set of Cluster-wide LAN IP Addresses. The command produces an output - a (multi-line) string with Cluster-wide LAN IP addresses and address ranges.
`SETCLUSTERLANIPS newAddresses`
  Use this command to update the set of Cluster-wide LAN IP Addresses.
  `newAddresses : string`
    This (multi-line) string parameter contains the set of addresses and address ranges forming the new set of Cluster-wide LAN IP Addresses.

The following command sets have the same parameters and outputs as the `GETLANIPS | SETLANIPS | GETCLUSTERLANIPS | SETCLUSTERLANIPS` command set:

`GETCLIENTIPS`
`SETCLIENTIPS newAddresses`
`GETCLUSTERCLIENTIPS`
`SETCLUSTERCLIENTIPS newAddresses`
  Use these commands to retrieve and set Server-wide and Cluster-wide Client IP Addresses.
`GETBLACKLISTEDIPS`
`SETBLACKLISTEDIPS newAddresses`
`GETCLUSTERBLACKLISTEDIPS`
`SETCLUSTERBLACKLISTEDIPS newAddresses`
  Use these commands to retrieve and set Server-wide and Cluster-wide Blacklisted IP Addresses.
`GETWHITEHOLEIPS`
`SETWHITEHOLEIPS newAddresses`
`GETCLUSTERWHITEHOLEIPS`
`SETCLUSTERWHITEHOLEIPS newAddresses`
  Use these commands to retrieve and set Server-wide and Cluster-wide WhiteHole IP Addresses.
`GETNATEDIPS`
`SETNATEDIPS newAddresses`
`GETCLUSTERNATEDIPS`
`SETCLUSTERNATEDIPS newAddresses`
  Use these commands to retrieve and set Server-wide and Cluster-wide NATed IP Addresses.
`GETNATSITEIPS`
`SETNATSITEIPS newAddresses`
`GETCLUSTERNATSITEIPS`
`SETCLUSTERNATSITEIPS newAddresses`
  Use these commands to retrieve and set Server-wide and Cluster-wide NAT Site IP Addresses.
`GETDEBUGIPS`
`SETDEBUGIPS newAddresses`
`GETCLUSTERDEBUGIPS`
`SETCLUSTERDEBUGIPS newAddresses`
  Use these commands to retrieve and set Server-wide and Cluster-wide Debug IP Addresses.
`GETDENIEDIPS`
`SETDENIEDIPS newAddresses`
`GETCLUSTERDENIEDIPS`
`SETCLUSTERDENIEDIPS newAddresses`
  Use these commands to retrieve and set Server-wide and Cluster-wide Denied IP Addresses.

A user should have the Settings or User Server access right or the to use the following CLI commands.

`ROUTE address [ mail | access | signal ]`
  Use this command to get the routing for the specified address.
  `address : string`
    This parameter specifies the E-mail address to be processed with the CommuniGate Pro Router.
  `mail` or `access` or `signal`
    This optional flag specifies the Routing type (see the Router section for more details). The default mode is `access`.
  This command produces an output - an array of three strings:
  module
    the name of the CommuniGate Pro module the address is routed to, or `SYSTEM` if the address is routed to a built-in destination (like `NULL`).
  host
    the object/queue handled by the specified module: an Internet domain name for the SMTP module, a local Account name for the Local Delivery module, etc.
  address
    the address inside the queue (E-mail address for SMTP, Real-To: address for Local Delivery, etc.)
`GETIPSTATE ip-address [ TEMP ]`
  Use this command to get the type assigned to the specified address. The command produces an output - a string with the IP address type.
  If the TEMP keyword is specified, the temporary Client IP Addresses set is checked.
  `ip-address : string or IP address`
    This parameter specifies the IP Address to check.

A user should have the Master Server access right to use the following CLI commands.

`GETSERVERINTERCEPT`
  Use this command to read the Lawful Intercept settings. The command produces an output - a dictionary with the Intercept settings.
`SETSERVERINTERCEPT newSettings`
  Use this command to set the Lawful Intercept settings.
  `newSettings : dictionary`
    A dictionary containing new Intercept settings.
`GETCLUSTERINTERCEPT`
`SETCLUSTERINTERCEPT newSettings`
  These commands are the same as the GETSERVERINTERCEPT and SETSERVERINTERCEPT commands, but they deal with the Cluster-Wide Lawful Intercept settings.

## Monitoring

A user should have the Monitoring Server access right to use the Server Monitoring CLI commands.

`GETSTATELEMENT ObjectID`
  Use this command to retrieve the current value of a Server statistics (SNMP) element.
  `ObjectID : string`
    The object ID of the Server statistics element (see the Statistics section for more details).
  This command produces an output - a number, string, or other object with the Server statistics element value.

`SETSTATELEMENT ObjectID [ INC | SET ] setValue`
  Use this command to update the current value of a Server statistics (SNMP) element. Only the "Custom" elements can be updated.
  `ObjectID : string`
    The object ID of the Server statistics element (see the Statistics section for more details).
  `setValue : numeric string`
    if the `INC` keyword is used, this value is added to the Element value, if the `SET` keyword is used, this value is assigned to the Element.
`GETNEXTSTATNAME ObjectID`
  Use this command to enumerate available Server statistics (SNMP) elements.
  `ObjectID : string`
    An empty string or the object ID of the already found Server statistics element (see the Statistics section for more details).
  This command produces an output - a string with the ObjectID of the next statistics element.
  If the ObjectID parameter is an empty string, the ObjectID of the first available Server statistics element is returned.
  If a statistics element for the specified ObjectID is not found, or if the found element is the last available one, the command returns an error.
`GETDIALOGINFO DialogID`
  Use this command to retrieve the information about a Signal Dialog object.
  `DialogID : number`
    The Dialog ID.
  This command produces an output - a dictionary with the Dialog status data.
`SHUTDOWN`
  Use this command to stop the CommuniGate Pro Server.

## Statistics

The Account-Level Statistics data is collected if the Account Statistics option is enabled.
To enable this option, open the General pages in the Settings realm of the CommuniGate Pro WebAdmin Interface, and find the Local Account Manager panel on the Other page.

`GETACCOUNTSTAT accountName [ KEY keyName ]`
  Use this command to retrieve statistics data about the specified Account.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `keyName : string`
    This optional parameter specifies the name of the statistical entry to retrieve.
  This command produces an output - a number or a timeStamp with the specified statistical information, or (if the `KEY` keyword and the keyName parameter are not specified) a dictionary with all available statistical data.
  If the statistical data for the specified key does not exist, an empty string is returned.
  To use this command, the user should have the Domain Administration right for the target Account Domain. All users can retrieve the Account statistics data for their own accounts.
`RESETACCOUNTSTAT accountName [ KEY keyName ]`
  Use this command to reset statistics data about the specified Account.
  `accountName : string`
    This parameter specifies the name of an existing Account. The asterisk (*) symbol can be used to specify the current authenticated Account.
  `keyName : string`
    This optional parameter specifies the name of the statistical entry to reset.
  If the `KEY` keyword and the keyName parameter are not specified, all Account statistical entries are reset.
  To use this command, the user should have the "Basic Settings" Domain Administration right for the target Account Domain.

The following Account statistics data keys are implemented:

Key Name |  | Value
`StatReset` |  | The date & time when the last parameterless RESETACCOUNTSTAT command was sent to this Account
`MessagesReceived` |  | The total number of messages delivered to the Account
`BytesReceived` |  | The total size of all messages delivered to the Account
`MessagesSent` |  | The total number of messages sent on the Account behalf
`BytesSent` |  | The total size of all messages sent on the Account behalf
`CallsReceived` |  | The total number of calls received for the Account
`CallsSent` |  | The total number of calls placed on the Account behalf
`Logins` |  | The total number of successful Account authentications

`GETDOMAINSTAT domainName [ KEY keyName ]`
  Use this command to retrieve statistics data about the specified Domain.
  `domainName : string`
    This parameter specifies the name of an existing Domain. The asterisk (*) symbol can be used to specify the Domain of the current authenticated Account.
  `keyName : string`
    This optional parameter specifies the name of the statistical entry to retrieve.
  This command produces an output - a string with the specified statistical information, or (if the `KEY` keyword and the keyName parameter are not specified) a dictionary with all available statistical data.
  To use this command, the user should have the Domain Administration right for the target Domain.
`RESETDOMAINSTAT domainName [ KEY keyName ]`
  Use this command to reset statistics data about the specified Domain.
  `domainName : string`
    This parameter specifies the name of an existing Domain. The asterisk (*) symbol can be used to specify the Domain of the current authenticated Account.
  `keyName : string`
    This optional parameter specifies the name of the statistical entry to reset.
  If the `KEY` keyword and the keyName parameter are not specified, all Domain statistical entries are reset.
  To use this command, the user should have the "Basic Settings" Domain Administration right for the target Domain.

The following Domain statistics data keys are implemented:

Key Name |  | Value
`StatReset` |  | The date & time when the last parameterless RESETDOMAINSTAT command was sent to this Domains
`MessagesReceived` |  | The total number of messages delivered to the Domain Accounts
`BytesReceived` |  | The total size of all messages delivered to the Domain Accounts
`MessagesSent` |  | The total number of messages sent on the Domain Accounts behalf
`BytesSent` |  | The total size of all messages sent on the Domain Accounts behalf

## Directory Administration

A user should have the Directory Server access right to use the Directory Administration CLI commands.

`LISTDIRECTORYUNITS [ SHARED ]`
  Use this command to retrieve the list of all Directory units created. If the SHARED keyword is used, the cluster-wide Units are listed.

  This command produces an output - a dictionary, where the keys are Directory Unit mount points, and the values are Directory Unit names.
`CREATEDIRECTORYUNIT unitName [ SHARED ] [ REMOTE ] mountPoint`
  Use this command to create a new Directory Unit.
  `unitName : string`
    This parameter specifies the new Unit name.
  `mountPoint : string`
    This parameter specifies the new Unit mount point (mount DN).
  If the SHARED keyword is used, a cluster-wide Directory Unit is created.
  If the REMOTE keyword is used, a Remote (LDAP-based) Directory Unit is created, otherwise a Local (File-based) Directory Unit is created.
`RELOCATEDIRECTORYUNIT unitName [ SHARED ] newMountPoint`
  Use this command to re-mount an existing Directory Unit on a different mount point.
  `unitName : string`
    This parameter specifies the Directory Unit name. If the SHARED keyword is used, this is a cluster-wide Directory Unit name.
  `mountPoint : string`
    This parameter specifies the new mount point (mount DN).
`DELETEDIRECTORYUNIT unitName [ SHARED ]`
  Use this command to remove an existing Directory Unit.
  `unitName : string`
    This parameter specifies the Directory Unit name. If the SHARED keyword is used, this is a cluster-wide Directory Unit name.
`GETDIRECTORYUNIT unitName [ SHARED ]`
  Use this command to retrieve the Directory Unit settings.
  `unitName : string`
    This parameter specifies the Directory Unit name. If the SHARED keyword is used, this is a cluster-wide Directory Unit name.
  This command produces an output - a dictionary with the Directory Unit settings.
`SETDIRECTORYUNIT unitName [ SHARED ] newSettings`
  Use this command to remove an existing Directory Unit.
  `unitName : string`
    This parameter specifies the Directory Unit name. If the SHARED keyword is used, this is a cluster-wide Directory Unit name.
  `newSettings : dictionary`
    This parameter specifies the new Directory Unit settings.
`GETDIRECTORYACCESSRIGHTS [ SHARED ]`
  Use this command to retrieve the Directory Access Rights. If the SHARED keyword is used, the cluster-wide Access Rights are retrieved.

  This command produces an output - an array of Access Rights elements.
`SETDIRECTORYACCESSRIGHTS [ SHARED ] newAccessRights`
  Use this command to set the Directory Access Rights. If the SHARED keyword is used, the cluster-wide Access Rights are set.
  `newAccessRights : array`
    This parameter specifies the new Directory Access Rights.

## Miscellaneous Commands

`WRITELOG logLevel logRecord`
  Use this command to store a record into the Server Log.
  `logLevel : number`
    This parameter specifies the record log level.
  `logRecord : string`
    This parameter specifies the string to be placed into the Server Log.
  Log records generated with this command have the `SYSTEM` prefix.
  To use this command, the user should have the "Can Monitor" Server Administration right.
`RELEASESMTPQUEUE queueName`
  Use this command to release an SMTP queue.
  `queueName : string`
    This parameter specifies the queue (domain) name to release.
  In a Dynamic Cluster environment, this command releases the specified SMTP queue on all servers.
  To use this command, the user should have the "Can Monitor" Server Administration right.
`REJECTQUEUEMESSAGE messageID [errorText]`
  Use this command to reject a message from the Server Queue.
  `messageID : number`
    This parameter specifies the message ID.
  `errorText : string`
    This optional parameter specifies the text to be included into the error report (bounce) sent to the message sender. If this parameter is `NONDN`, no DSN report message is generated.
  To use this command, the user should have the "Can Reject Queues" Server Administration right.
`GETMESSAGEQUEUEINFO moduleName QUEUE queueName`
  Use this command to read information about a module message Queue.
  `moduleName : string`
    This parameter specifies the module name.
  `queueName : string`
    This parameter specifies the module queue name.
  This command produces an output - a dictionary with the specified queue information.
  If the module does not have the specified queue, the dictionary is empty. Otherwise it contains the following elements:
  nTotal
    a number - the total number of messages in the queue
  size
    a number - the total size of all messages in the queue
  delayedTill
    (optional) a timestamp - the effective release time for this queue
  lastError
    (optional) a string with the last problem report
`GETCURRENTCONTROLLER`
  Use this command to get the IP address of the current Dynamic Cluster Controller.
  This command produces an output - a string with the Cluster Controller IP Address.
  To use this command, the user should have the "Can Monitor" Server Administration right.
`GETTEMPCLIENTIPS`
  Use this command to retrieve the set of temporary Client IP Addresses. The command produces an output - a string with Temporary Client IP addresses separated with the comma (`,`) symbols.
  To use this command, the user should have the "Can Monitor" Server Administration right.
`GETTEMPBLACKLISTEDIPS`
  Use this command to retrieve the set of Temporary Blacklisted IP Addresses. The command produces an output - a string with Temporary Blacklisted IP addresses separated with the comma (`,`) symbols.
  Each IP address may have a `-nnnn` suffix, where nnnn is either the number of seconds this address will remain blacklisted for, or the `*` symbol indicating permanent address blacklisting.
  To use this command, the user should have the "Can Monitor" Server Administration right.
`SETTEMPBLACKLISTEDIPS addresses`
  Use this command to add addresses to the Temporary Blacklisted IP Addresses list.
  `addresses : number`
    A string with a list of IP addresses, using the output format of the `GetTempBlacklistedIPs` command.
  To use this command, the user should have the "Server Settings" Server Administration right.

## Index

Domain Set Administration
  `LISTDOMAINS`, `MAINDOMAINNAME`
  `GETDOMAINDEFAULTS`, `UPDATEDOMAINDEFAULTS`, `SETDOMAINDEFAULTS`, `GETCLUSTERDOMAINDEFAULTS`, `UPDATECLUSTERDOMAINDEFAULTS`, `SETCLUSTERDOMAINDEFAULTS`
  `GETSERVERACCOUNTDEFAULTS`, `UPDATESERVERACCOUNTDEFAULTS`, `SETSERVERACCOUNTDEFAULTS`, `GETCLUSTERACCOUNTDEFAULTS`, `UPDATECLUSTERACCOUNTDEFAULTS`, `SETCLUSTERACCOUNTDEFAULTS`
  `GETSERVERACCOUNTPREFS`, `SETSERVERACCOUNTPREFS`, `UPDATESERVERACCOUNTPREFS`, `GETCLUSTERACCOUNTPREFS`, `SETCLUSTERACCOUNTPREFS`, `UPDATECLUSTERACCOUNTPREFS`
  `CREATEDOMAIN`, `RENAMEDOMAIN`, `DELETEDOMAIN`, `CREATESHAREDDOMAIN`, `CREATEDIRECTORYDOMAIN`, `RELOADDIRECTORYDOMAINS`
  `LISTSERVERTELNUMS`, `LISTCLUSTERTELNUMS`
  `GETSERVERTRUSTEDCERTS`, `SETSERVERTRUSTEDCERTS`, `GETCLUSTERTRUSTEDCERTS`, `SETCLUSTERTRUSTEDCERTS`
  `GETDIRECTORYINTEGRATION`, `GETCLUSTERDIRECTORYINTEGRATION`, `SETCLUSTERDIRECTORYINTEGRATION`
Domain Administration
  `GETDOMAINSETTINGS`, `GETDOMAINEFFECTIVESETTINGS`, `UPDATEDOMAINSETTINGS`, `SETDOMAINSETTINGS`
  `GETACCOUNTDEFAULTS`, `UPDATEACCOUNTDEFAULTS`, `SETACCOUNTDEFAULTS`
  `GETACCOUNTDEFAULTPREFS`, `UPDATEACCOUNTDEFAULTPREFS`, `SETACCOUNTDEFAULTPREFS`
  `GETDOMAINALIASES`, `SETDOMAINALIASES`
  `GETACCOUNTTEMPLATE`, `UPDATEACCOUNTTEMPLATE`, `SETACCOUNTTEMPLATE`
  `GETDOMAINMAILRULES`, `SETDOMAINMAILRULES`, `GETDOMAINSIGNALRULES`, `SETDOMAINSIGNALRULES`,
  `LISTADMINDOMAINS`
  `LISTDOMAINOBJECTS`, `LISTACCOUNTS`, `LISTDOMAINTELNUMS`
  `INSERTDIRECTORYRECORDS`, `DELETEDIRECTORYRECORDS`
  `GETDOMAINLOCATION`,
  `SUSPENDDOMAIN`, `RESUMEDOMAIN`
Account Administration
  `CREATEACCOUNT`, `RENAMEACCOUNT`, `DELETEACCOUNT`
  `SETACCOUNTTYPE`, `GETACCOUNTSETTINGS`, `UPDATEACCOUNTSETTINGS`, `GETACCOUNTEFFECTIVESETTINGS`, `SETACCOUNTSETTINGS`
  `SETACCOUNTPASSWORD`, `VERIFYACCOUNTPASSWORD`
  `GETACCOUNTALIASES`, `SETACCOUNTALIASES`, `GETACCOUNTTELNUMS`, `SETACCOUNTTELNUMS` `MODIFYACCOUNTTELNUMS`
  `GETACCOUNTMAILRULES`, `SETACCOUNTMAILRULES`, `GETACCOUNTSIGNALRULES`, `SETACCOUNTSIGNALRULES`, `UPDATEACCOUNTMAILRULE`, `UPDATEACCOUNTMAILRULE`, `UPDATEACCOUNTSIGNALRULE`, `UPDATEACCOUNTSIGNALRULE`
  `GETACCOUNTRPOPS`, `SETACCOUNTRPOPS`, `GETACCOUNTRSIPS`, `SETACCOUNTRSIPS`, `UPDATESCHEDULEDTASK`, `GETACCOUNTRIGHTS`, `GETACCOUNTINFO`
  `GETACCOUNTPREFS`, `UPDATEACCOUNTPREFS`, `SETACCOUNTPREFS`, `GETACCOUNTEFFECTIVEPREFS`
  `KILLACCOUNTSESSIONS`
  `GETACCOUNTACL`, `SETACCOUNTACL`, `GETACCOUNTACLRIGHTS`
  `GETACCOUNTLOCATION` `GETACCOUNTPRESENCE`
Group Administration
  `LISTGROUPS`, `CREATEGROUP`, `RENAMEGROUP`, `DELETEGROUP`, `GETGROUP`, `SETGROUP`
Forwarder Administration
  `LISTFORWARDERS`, `CREATEFORWARDER`, `RENAMEFORWARDER`, `DELETEFORWARDER`, `GETFORWARDER` `FINDFORWARDERS`
Named Task Administration
  `LISTDOMAINNAMEDTASKS`, `LISTACCOUNTNAMEDTASKS`, `CREATENAMEDTASK`, `RENAMENAMEDTASK`, `DELETENAMEDTASK`, `GETNAMEDTASK`, `UPDATENAMEDTASK`
Access Rights Administration
  `SETACCOUNTRIGHTS`
Mailbox Administration
  `LISTMAILBOXES`, `CREATEMAILBOX`, `DELETEMAILBOX`, `RENAMEMAILBOX`, `SETMAILBOXCLASS`
  `GETMAILBOXINFO`, `GETMAILBOXACL`, `SETMAILBOXACL`, `GETMAILBOXRIGHTS`
  `GETMAILBOXSUBSCRIPTION`, `SETMAILBOXSUBSCRIPTION`
  `GETMAILBOXALIASES`, `SETMAILBOXALIASES`
Alert Administration
  `GETDOMAINALERTS`, `SETDOMAINALERTS`, `POSTDOMAINALERT`, `REMOVEDOMAINALERT`
  `GETACCOUNTALERTS`, `SETACCOUNTALERTS`, `POSTACCOUNTALERT`, `REMOVEACCOUNTALERT`
  `GETSERVERALERTS`, `SETSERVERALERTS`, `POSTSERVERALERT`, `REMOVESERVERALERT`, `GETCLUSTERALERTS`, `SETCLUSTERALERTS`, `POSTCLUSTERALERT`, `REMOVECLUSTERALERT`
File Storage Administration
  `READSTORAGEFILE`, `WRITESTORAGEFILE`, `RENAMESTORAGEFILE`, `DELETESTORAGEFILE`, `LISTSTORAGEFILES`, `GETSTORAGEFILEINFO` `READSTORAGEFILEATTR` `UPDATESTORAGEFILEATTR` `GETFILESUBSCRIPTION` `SETFILESUBSCRIPTION`
Mailing Lists Administration
  `LISTLISTS`, `GETDOMAINLISTS`, `GETACCOUNTLISTS`
  `CREATELIST`, `RENAMELIST`, `DELETELIST`, `GETLIST`, `UPDATELIST`
  `LIST`, `LISTSUBSCRIBERS`, `READSUBSCRIBERS`
  `GETSUBSCRIBERINFO`, `SETPOSTINGMODE`, `PROCESSBOUNCE`
Web Skins Administration
  `LISTDOMAINSKINS`, `CREATEDOMAINSKIN`, `RENAMEDOMAINSKIN`, `DELETEDOMAINSKIN`, `LISTDOMAINSKINFILES`, `READDOMAINSKINFILE`, `STOREDOMAINSKINFILE`
  `LISTSERVERSKINS`, `CREATESERVERSKIN`, `RENAMESERVERSKIN`, `DELETESERVERSKIN`, `LISTSERVERSKINFILES`, `READSERVERSKINFILE`, `STORESERVERSKINFILE`
  `LISTCLUSTERSKINS`, `CREATECLUSTERSKIN`, `RENAMECLUSTERSKIN`, `DELETECLUSTERSKIN`, `LISTCLUSTERSKINFILES`, `READCLUSTERSKINFILE`, `STORECLUSTERSKINFILE`, `STORECLUSTERSKINFILE`
Web Interface Integration
  `CREATEWEBUSERSESSION`, `CREATEXIMSSSESSION`, `FINDACCOUNTSESSION`, `GETSESSION`, `KILLSESSION`
Real-Time Application Administration
  `CREATEDOMAINPBX`, `DELETEDOMAINPBX`, `LISTDOMAINPBXFILES`, `READDOMAINPBXFILE`, `STOREDOMAINPBXFILE`
  `CREATESERVERPBX`, `DELETESERVERPBX`, `LISTSERVERPBXFILES`, `READSERVERPBXFILE`, `STORESERVERPBXFILE`
  `CREATECLUSTERPBX`, `DELETECLUSTERPBX`, `LISTCLUSTERPBXFILES`, `READCLUSTERPBXFILE`, `STORECLUSTERPBXFILE`
Real-Time Application Control
  `STARTPBXTASK`, `SENDTASKEVENT`, `KILLNODE`, `READNODESTATUS`
Account Services
  `REMOVEACCOUNTSUBSET` `DATASET` `ROSTER` `BALANCE`
Server Settings
  `LISTMODULES`, `GETMODULE`, `SETMODULE`, `UPDATEMODULE`
  `GETQUEUESETTINGS`, `SETQUEUESETTINGS`, `GETSIGNALSETTINGS`, `SETSIGNALSETTINGS`, `GETMEDIASERVERSETTINGS`, `SETMEDIASERVERSETTINGS`
  `GETSESSIONSETTINGS`, `SETSESSIONSETTINGS`
  `GETCLUSTERSETTINGS`, `SETCLUSTERSETTINGS`
  `GETNETWORK`, `SETNETWORK`, `GETCLUSTERNETWORK`, `SETCLUSTERNETWORK`
  `GETBANNED`, `GETCLUSTERBANNED`, `SETBANNED`, `SETCLUSTERBANNED`
  `GETSERVERMAILRULES`, `SETSERVERMAILRULES`, `GETCLUSTERMAILRULES`, `SETCLUSTERMAILRULES`
  `GETSERVERSIGNALRULES`, `SETSERVERSIGNALRULES`, `GETCLUSTERSIGNALRULES`, `SETCLUSTERSIGNALRULES`
  `GETROUTERTABLE`, `SETROUTERTABLE`, `GETCLUSTERROUTERTABLE`, `SETCLUSTERROUTERTABLE`
  `GETROUTERSETTINGS`, `SETROUTERSETTINGS`, `GETCLUSTERROUTERSETTINGS`, `SETCLUSTERROUTERSETTINGS`
  `REFRESHOSDATA`
  `GETLANIPS`, `SETLANIPS`, `GETCLUSTERLANIPS`, `SETCLUSTERLANIPS`
  `GETCLIENTIPS`, `SETCLIENTIPS`, `GETCLUSTERCLIENTIPS`, `SETCLUSTERCLIENTIPS`
  `GETBLACKLISTEDIPS`, `SETBLACKLISTEDIPS`, `GETCLUSTERBLACKLISTEDIPS`, `SETCLUSTERBLACKLISTEDIPS`
  `GETWHITEHOLEIPS`, `SETWHITEHOLEIPS`, `GETCLUSTERWHITEHOLEIPS`, `SETCLUSTERWHITEHOLEIPS`
  `GETNATEDIPS`, `SETNATEDIPS`, `GETCLUSTERNATEDIPS`, `SETCLUSTERNATEDIPS`
  `GETNATSITEIPS`, `SETNATSITEIPS`, `GETCLUSTERNATSITEIPS`, `SETCLUSTERNATSITEIPS`
  `GETDEBUGIPS`, `SETDEBUGIPS`, `GETCLUSTERDEBUGIPS`, `SETCLUSTERDEBUGIPS`
  `GETDENIEDIPS`, `SETDENIEDIPS`, `GETCLUSTERDENIEDIPS`, `SETCLUSTERDENIEDIPS`
  `ROUTE` `GETIPSTATE`
  `GETSERVERINTERCEPT`, `SETSERVERINTERCEPT`, `GETCLUSTERINTERCEPT`, `SETCLUSTERINTERCEPT`
Monitoring
  `GETSTATELEMENT`, `SETSTATELEMENT`, `GETNEXTSTATNAME`, `GETDIALOGINFO`, `SHUTDOWN`
Statistics
  `GETACCOUNTSTAT`, `RESETACCOUNTSTAT`, `GETDOMAINSTAT`, `RESETDOMAINSTAT`
Directory Administration
  `LISTDIRECTORYUNITS`, `CREATEDIRECTORYUNIT`, `RELOCATEDIRECTORYUNIT`, `DELETEDIRECTORYUNIT`, `GETDIRECTORYUNIT`, `SETDIRECTORYUNIT`, `GETDIRECTORYACCESSRIGHTS`, `SETDIRECTORYACCESSRIGHTS`
Miscellaneous Commands
  `WRITELOG`, `RELEASESMTPQUEUE`, `REJECTQUEUEMESSAGE`, `GETMESSAGEQUEUEINFO`, `GETCURRENTCONTROLLER`, `GETTEMPCLIENTIPS`, `GETTEMPBLACKLISTEDIPS`, `SETTEMPBLACKLISTEDIPS`,

CommuniGate® Pro Guide. Copyright © 1998-2012, Stalker Software, Inc.