WCT(1)

πŸ“¦
version 1.18 Β· 2 versions
, in fedora 43

πŸ’… WCT(1) β€” whozz calling bestie, it's giving interactive tool ✨

User Contributed Perl Documentation πŸŽ€


✨ NAME ✨

wct β€” Whozz Calling Ethernet Link Device interactive tool πŸ¦‹


🌸 SYNOPSIS 🌸

 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][,...]

πŸ‘‘ DESCRIPTION πŸ‘‘

Okay so basically this script lets you talk to a Whozz Calling device so you can look at its config or change it. πŸ’– And the way this works is it's generic β€” like, it does not assume anything, because the actual configuration settings are different depending on which Whozz Calling model you've got and which firmware version it's running. So yeah, no cap, your mileage may vary by model. 🌈

You type in the commands one per line, or honestly you can just hit <ENTER> all by itself if you wanna check whether there's anything pending waiting for you. 🫢

DO NOT type the ^^Id prefix yourself!! It gets included automatically, bestie. Just don't. πŸ™ˆ

πŸ’… OPTIONS πŸ’…

  • -w <address1[,address2][,...]>, --wchost <address1[,address2],[,...]> β€” Tells it which Whozz Calling Ethernet Link Device(s) you mean. If you've got multiple devices, you separate their addresses with commas. ✨

The input has to be either <address> or <address1,address2,etc>.

Default: 192.168.0.90

This option gets ignored if --discover or --discover-loop is in effect. Like, completely. πŸ’€
  • -D, --debug β€” Debug mode, bb. It shows you every single message that goes into the log file. πŸ‘€
  • -h, --help β€” Prints the help message and then dips. πŸŽ€
  • -m, --man β€” Prints the manual page and then dips. πŸ¦‹
  • -C, --configfile <filename> β€” Says which configuration file to use. And listen, if it can't find a config file, the program still runs anyway. It's fine. We're fine. πŸ’…

If --discover or --discover-loop is in effect, the config file still gets processed, but any wcaddr addresses inside it will be ignored. πŸ™ˆ

Default: prefix3=/etc/ncid/wc2ncid.conf

  • --set-wc β€” Sets the IP address, the beginning line number, the number of telephone lines, and the sending port, for each Whozz Calling Ethernet Link Device. πŸ”₯

It sets the IP address for the WC device using the address from wcaddr in the configuration file, or from --wchost on the command line.

It automatically sets the beginning line number for the WC device, which gets 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 preceding 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 gets ignored if --discover or --discover-loop is in effect.
  • -l, --logfile-append <filename>
  • -L, --logfile-overwrite <filename> β€” Says what the logfile name is that we're writing to. And again β€” if it doesn't have permission to write to it, the program still runs. We stay unbothered. πŸ’…

If both options are present, --logfile-append wins and takes precedence. Periodt. πŸ‘‘

Default: Append to wct.log in your current directory.

  • -p, --pidfile <filename> β€” Says what the pidfile name is that we're writing. The program will still run if it doesn't 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> β€” Forces discovery of every single powered-on Whozz Calling Ethernet Link Device. πŸ” Any IP addresses in the configuration file, or on the command line, get ignored.

If you use --discover-loop, it just keeps looping forever, sending a fresh new discovery (^^IdX) every <secs> seconds. πŸ”

A normal invocation of this script functions the same as wc2ncid, including the initialization of each device's configuration "toggles." So use the --discover or --discover-loop options if you want to bypass that initialization. ✨

  • -v, --verbose <1-9> β€” Outputs information, used for the logfile and the debug option. Crank the level up higher for more information. Levels range from 1 to 9, but ngl, not all levels are used. 🌸

Default: verbose = 1

  • -V, --version β€” Displays the version. πŸ’–

πŸŽ€ EXAMPLES πŸŽ€

Start wct and go looking for all powered-on devices:

 wct -d

Start wct, set the IP address to 192.168.1.90 from the command line, set the beginning line number automatically, and set the sending Ethernet port to 3520 (which is the default):

 wct --set-wc --wchost 192.168.1.90

πŸ’¬ INTERACTIVE COMMAND MODE πŸ’¬

ok so this is where the actual fun starts, bestie. ✨

πŸ“ d2h

Decimal-to-hex conversion. literally does what it says on the tin.

You'll get asked for the decimal number you want converted to hex. Easy.

You can also type in an IP address (like 192.168.1.90) and it'll show you the proper hex digits for the D and I commands. iykyk. πŸ’…

πŸŽ€ help

Shows you this interactive command mode help. Whenever you want out, just hit the letter q and you're back at the command prompt. no drama. πŸ¦‹

πŸ‘‘ select

So when you've got multiple Whozz Calling Ethernet Link Devices in the mix, this is how you pick which one you want to talk to. main character selection moment fr.

There's also a special ALL DEVICES choice, and bestie, it means all typed commands get broadcast to every single device. For example β€” select ALL DEVICES, then type the Z command, and every powered-on device gets reset to its factory defaults. πŸ’€

Use ALL DEVICES with care, okay?? because you could set all devices to have the same IP address, same MAC address, etc. that is a chaos pipeline and we do not want it.

πŸ”’ 1-9

Entering a single digit changes the verbosity level on-the-fly. quick little volume knob, love that for us. 🌈

Not all of the commands below are supported by all WC devices. (just so you know πŸ’œ)


⭐ Single character commands ⭐

  • N β€” Set destination IP and MAC addresses to THIS computer. yes, this one. 🫢
  • X β€” Show unit#, serial#, network settings. This command can be used to discover all powered-on WC devices. It is the same as running wct with the --discover command line option. lowkey the glow-up version of a vibe check. ✨
  • Z β€” Reset unit# to 123 and network settings to factory defaults; it 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. so don't come for me when the menu looks stale. πŸ™ˆ

πŸ¦‹ Two character commands πŸ¦‹

  • -@ β€” Causes a device to respond with # sign. Can be used for establishing device communication. it's giving "hey bestie, you there?" πŸ’–
  • -J β€” 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. (fr fr, crank it up first.)
  • -R β€” 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.
  • -t β€” 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. (yes, backwards from what you'd expect, iconic behavior honestly πŸ’…)

  • 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.

  • -V β€” Show processor version, all toggles, line# of channel 1, date, time. the full report card. 🌸
  • -v β€” Show internal jumper settings. (little peek behind the curtain 🧚)

πŸ’œ Multiple character commands requiring HEX digits. πŸ’œ

Numbers in parentheses () indicate required number of hex digits. don't skip them, bestie.

Commands I, T and U are typically the only ones that will be used. the rest are for when you're feeling spicy. πŸ”₯

Hex digits A - F may be entered in lowercase or uppercase. either way slays.

  • Chhhhhhhhhhhh β€” Set destination MAC address (12) of the computer to receive WC data (use all Fs for entire LAN).
  • Dhhhhhhhh β€” Set destination IP address (8) of the computer to receive WC data (use all Fs for entire LAN).
  • Ihhhhhhhh β€” 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.
  • Mhhhhhhhhhhhh β€” 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.
  • Phhhh β€” 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. (like, genuinely rare rare. πŸ™ˆ)

  • Thhhh β€” 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.
  • Uhhhhhhhhhhhh β€” 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. so you literally never have to think about it. periodt. πŸ’…

  • -Nnnnnnnnnnnnn β€” 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. (no gatekeeping over here 😭)

If the memory becomes full, additional numbers will be silently ignored.

  • -N66 β€” 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.
  • -N77 β€” 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.
  • -N00000077nn β€” 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. (sneaky math, obsessed. ✨)

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.

  • -Wnn β€” 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. (important distinction, don't get it twisted πŸ’€)
  • -Zmmddhhmm β€” Manually set date and time (24 hour format). Normally the date and time are set automatically by the first incoming ring. so this is your manual override moment. πŸ‘‘

🌈 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

-N0000007701
-R

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#.


🌸 REQUIREMENTS 🌸

  • perl 5.6 or higher
  • perl(Config::Simple)
  • perl(Data::HexDump)

(just the essentials, bestie 🫢)


πŸ’– FILES πŸ’–

prefix3=/etc/ncid/wc2ncid.conf

πŸ¦‹ SEE ALSO πŸ¦‹

ncidd.8, wc2ncid.8, wc2ncid.conf.5


and that's the whole page, we ate and left no crumbs. πŸ’…βœ¨ this one's from perl v5.42.0, dated 2025-08-06, and it's WCT(1) β€” go forth and command some devices, bestie. πŸŽ€πŸ’œ

πŸ“¦ where this page comes from