wct [--debug | -D] [--help | -h] [--logfile-append | -l <filename>] [--logfile-overwrite | -L <filename>] [--configfile | -C <filename>] [--man | -m] [--set-wc] [--pidfile | -p <filename>] [--discover | --discovery | -d [--discover-loop | --discovery-loop <secs>] [--verbose | -v <1-9>] [--version | -V] [--wchost | -w <address1>[,address2][,...]
This script allows you to interact with a Whozz Calling device in order to view or change its configuration. This script is generic as configuration settings vary depending on the Whozz Calling model and firmware version.
Enter the commands one per line, or simply hit <ENTER> alone to see if there are pending responses.
DO NOT type the '^^Id' prefix as it will be included automatically.
- -w <address1[,address2][,...]>, --wchost <address1[,address2],[,...]>
Specifies the Whozz Calling Ethernet Link Device or devices. Multiple addresses for devices are comma separated.
Input must be <address> or <address1,address2,etc>.
This option is ignored if --discover or --discover-loop is in effect.
- -D, --debug
Debug mode, displays all messages that go into the log file.
- -h, --help
Prints the help message and exits.
- -m, --man
Prints the manual page and exits.
- -C, --configfile <filename>
Specifies the configuration file to use. The program will still run if a configuration file is not found.
If --discover or --discover-loop is in effect, the configuration file will still be processed but any “wcaddr” addresses will be ignored.
Sets the IP address, beginning line number, number of telephone lines and sending port for each Whozz Calling Ethernet Link Device.
It sets the IP address for the WC device from the address for “wcaddr” in the configuration file or --wchost on the command line.
It automatically sets the beginning line number for the WC device which is used as a line label prefixed with “WC”. Each device gets a beginning line number that is the ending line number plus one from the preceeding device, for example; device 1 (WC01 WC02) device 2 (WC03 WC04 WC05 WC06).
NOTE: All devices are automatically configured to send call information on port 3520.
This option is ignored if --discover or --discover-loop is in effect.
- -l, --logfile-append <filename>
- -L, --logfile-overwrite <filename>
Specifies the logfile name to write. The program will still run if it does not have permission to write to it.
If both options are present, --logfile-append takes precedence.
Default: Append to wct.log in your current directory.
- -p, --pidfile <filename>
Specifies the pidfile name to write. The program will still run if it does not have permission to write a pidfile. The pid filename that should be used is /var/run/wc2ncid.pid.
Default: no pidfile
- -d, --discover, --discovery =item --discover-loop <secs>, --discovery-loop <secs>
Force discovery of all powered-on Whozz Calling Ethernet Link Devices. IP addresses in the configuration file, or on the command line, will be ignored.
Using --discover-loop causes continuous looping with a new discovery (“^^IdX”) being sent every <secs> seconds.
Normal invocation of this script functions the same as wc2ncid, including the initialization of each device's configuration “toggles.” Use the --discover or --discover-loop options if you want to bypass this initialization.
- -v, --verbose <1-9>
Output information, used for the logfile and the debug option. Set the level to a higher number for more information. Levels range from 1 to 9, but not all levels are used.
Default: verbose = 1
- -V, --version
Displays the version.
- Start wct and look for all powered-on devices:
- Start wct, set IP address to 192.168.1.90 from command line, set the beginning line number automatically and set the sending Ethernet port to 3520 (the default):
wct --set-wc --wchost 192.168.1.90
Interactive Command Mode
User will be asked for the decimal number to be converted to hex.
An IP address may also be typed (e.g., 192.168.1.90) to show the proper hex digits for the 'D' and 'I' commands.
Displays this interactive command mode help. Press letter 'q' to return to the command prompt at any time.
When multiple Whozz Calling Ethernet Link Devices are being used, allows selecting which one to interact with.
A special “ALL DEVICES” choice is also available, meaning all typed commands will be broadcast to all devices. For example, selecting “ALL DEVICES” and then typing the Z command will cause all powered on devices to be reset to their factory defaults. Use “ALL DEVICES” with care because you could set all devices to have the same IP address, same MAC address, etc.
Entering a single digit changes the verbosity level on-the-fly.
Not all of the commands below are supported by all WC devices.
Single character commands
Set destination IP and MAC addresses to THIS computer.
Show unit#, serial#, network settings. This command can be used to discover all powered-on WC devices. It is the same as runnning wct with the --discover command line option.
Reset unit# to '123' and network settings to factory defaults; does NOT change: toggles, block/pass numbers in memory, date/time or the device's starting line#. See also “Other ways to reset a device” on the last page of this manual.
Settings changed by this command will not be reflected under the 'select' menu until the next time you do an 'X' to discover all available devices.
Two character commands
Causes a device to respond with “#” sign. Can be used for establishing device communication.
Show contents of block/pass numbers stored in memory. Be sure to first set the verbose level to 4 or greater to see the actual numbers.
Perform power-on reset and sets all toggles to uppercase. Leaves network configuration and block/pass memory and the device's starting line# unchanged. See also “Other ways to reset a device” on the last page of this manual.
Where 't' is any single toggle, case sensitive (e.g., -E, -b).
Uppercase usually means the feature/setting is OFF, lowercase means it is ON.
E, e Command echo C, c Leading '$' and dashes in numbers (wc2ncid and wct always strip both) X, x Comprehensive (X) or limited (x) data format U, u Use phone numbers in internal block/pass memory D, d Detail information (rings, hook on/off/flash) A, a Data sent at start AND end of a call S, s See below O, o Only inbound (O) calls reported, or inbound and outbound (o) B, b Suppress first ring (B) or always pass through (b) K, k See below T, t Inbound DTMF monitoring The 'U' and 'A' toggles each have a companion toggle as described below. If 'U' is set, blocking/passing is turned OFF and toggles 'K' and 'k' are ignored. If 'u' is set, blocking/passing is turned ON. The toggle 'K' will pass all calls by default (i.e., only the phone numbers in the internal memory will be blocked) and 'k' will block all calls by default (i.e., only the phone numbers in the internal memory will be passed through). If 'A' is set, data is sent at the start AND end of a call and toggles 'S' and 's' are ignored. If 'a' is set, data is sent only at start(S) or end(s) of a call.
Show processor version, all toggles, line# of channel 1, date, time.
Show internal jumper settings.
Multiple character commands requiring HEX digits.
Numbers in parentheses () indicate required number of hex digits.
Commands I, T and U are typically the only ones that will be used.
Hex digits A - F may be entered in lowercase or uppercase.
Set destination MAC address (12) of the computer to receive WC data (use all 'F's for entire LAN).
Set destination IP address (8) of the computer to receive WC data (use all 'F's for entire LAN).
Set device IP address (8).
Changing the IP address will not be reflected under the 'select' menu until the next time you do an 'X' to discover all available devices.
Set device MAC address (12).
Changing the MAC address will not be reflected under the 'select' menu until the next time you do an 'X' to discover all available devices.
Set destination port number (4 hex digits) of the computer to receive WC data. This is normally 0DC0, or 3520 in decimal.
It is very rare that this command would be used. You most likely would want to use 'Thhhh' instead.
Set device port number (4 hex digits). This is normally 0DC0, or 3520 in decimal.
Changing the port number will not be reflected under the 'select' menu until the next time you do an 'X' to discover all available devices.
Set unit number (12).
Changing the unit number will not be reflected under the 'select' menu until the next time you do an 'X' to discover all available devices.
Note that wc2ncid will change and use the unit number to track the number of telephone lines (2, 4, or 8) that can be connected to the device. This is used when establishing the starting line# of channel#1, i.e., the “L=xx” parameter seen when executing the '-V' command.
Multiple character commands requiring DECIMAL digits.
Normally these require a terminating carriage return character, but the wct script takes care of this for you by sending a terminating carriage return after all commands.
Add a 7 to 12 digit phone number to block/pass memory, maximum of 40 phone numbers.
The WC device will not check to see if the number you're adding is already stored in memory. It lets you add duplicates.
If the memory becomes full, additional numbers will be silently ignored.
Add Out-of-area callers to block/pass memory. '-J' command will list as the letter 'O' (“oh”) and not '66'. This counts against the maximum of 40 phone numbers.
Add Private callers to block/pass memory. '-J' command will list as the letter 'P' and not '77'. This counts against the maximum of 40 phone numbers.
Special undocumented command to set line# of channel#1 instead of using the 'Line No. Select' button on back of the device. And unlike the 'Line No. Select' button, you're not restricted to increments of four. 'nn' is base 16 but accepts digits only (no letters 'A' to 'F'). For example, '-N0000007710' sets line# to '16' not '10'.
The echo toggle ('E') must be OFF for this setting to be saved in the device's memory.
You should wait at least 9 seconds after sending this command before sending the next one. Otherwise, the next command sent may be ignored.
Unlike the other uses of '-N', this special command does not affect the internal block/pass memory.
If toggle 'u' is set, block or pass the real-time inbound call on logical line 'nn'. Note that this is NOT the physical channel# that a phone line is hooked into.
Manually set date and time (24 hour format). Normally the date and time are set automatically by the first incoming ring.
Other ways to reset a device
The download section at CallerID.com has a Windows program called “EL Config”. To use wct to emulate the EL Config reset options, do the following commands:
Config->Reset Unit Defaults
The above sets the line# of channel#1 ('N') to be 1, followed by a power-on reset ('R') that sets all toggles to uppercase. It does not change the network settings nor the block/pass memory.
Config->Reset Ethernet Defaults
DFFFFFFFF U000000000001 IC0A8005A CFFFFFFFFFFFF T0DC0
The above will set the destination IP address ('D') to be the entire LAN, the unit number ('U') to 1, the device's IP address ('I') to 192.168.0.90, the destination MAC address ('C') to be the entire LAN and the device's port# ('T') to 3520. It does not change the device toggles, nor the block/pass memory, nor the device's starting line#.
perl 5.6 or higher, perl(Config::Simple), perl(Data::HexDump)
ncidd(8), wc2ncid.8, wc2ncid.conf(5)