Whozz Calling? Full-featured series, Lite series and POS series units
(Version 2.2 07/20/10)
Copyright © 2011 CallerID.com
Table of Contents
- 1. Installation Instructions
- 2. Programmers Section
- 3. Typical Caller ID Installations
- 4. Sending and Receiving Commands
- 5. Subnet Determination
- 6. Manufacture's Information
- A. Additional Information on Network Packets
- B. Routers and IP address Assignment
Connect this unit in parallel with the phone lines coming into your building (central office or CO) phone lines before they connect to a telephone switch. Do not connect the device to extension lines from a telephone switch. If you are unfamiliar with these terms, please contact your telephone vendor.
Connect an Ethernet cable to your Local Area Network (LAN) switch or any other LAN connection available and power up the unit.
Place the enclosed CD into your drive. If your CD does not run automatically, browse the CD and run Start.exe. Install CallerID.com's Ethernet Link Software and Tools by selecting:
If you receive any security warnings, simply selectbutton in each case
Run the CallerID.com Software installer and select:
if you already own a software package that has specified the use of CallerID.com equipment.
if you are an advanced user or installer.
only if you DO NOT have an existing application that specifies the use of this equipment and will use the EL Popup program to display Caller ID information. If you have purchased this equipment to popup customer records within your existing application use the selection, Diagnostic Tools Only.
If you selected, you would only need these programs if the Caller ID does not operate in your application software.
If you selected ELPopup program to log and display Caller ID. If you used the default settings while installing, ELPopup will run automatically and the main screen will be shown. Since most users run ELPopup in the background, the program runs from a system tray icon. You will notice a new phone icon in the system tray next to your clock. You can right-mouse-click the icon to see the menu options.installation, chances are, you will be using the
If you are not seeing incoming calls pop up on your computer, you can use the ELConfig diagnostic program. If you have already launched a program that is attempting to communicate with your Ethernet Link Caller ID unit(s), close that program before running ELConfig. ELConfig is located here:
→ → → →
Elconfig should automatically detect all Ethernet Link Caller ID units installed on the LAN. If no units are detected, make sure the Caller ID unit is powered up and connected to a working Ethernet jack. ELConfig has 2 reset options, one to reset the Ethernet defaults and one to reset the unit defaults for Whozz Calling? “full-featured” units.
If no unit is detected try:
→ then select the next to Detected Units
If still no unit is detected please contact CallerID.com for technical support before proceeding to the remaining steps.
Phone Line Testing and Ethernet Configuration
Place a phone call to one of the phone lines connected to an Ethernet Link unit. The Caller ID informaation should appear in the output window at the bottom of the screen. If “No CallerID” appears, check to see if Caller ID service in being provided from the phone company on that line. If nothing appears in the window, contact CallerID.com for technical support.
Test each phone line connected to the Ethernet Link devices(s). If Caller ID information is displayed in the output window then any application designed for use with CallerID.com Ethernet Link products should work properly.
If you are familiar with Ethernet configurations, you may elect to change the IP of the device to match your subnet. If so, make sure you select an IP number that is outside of any automatically assigned IP address range set on your router's DHCP server. For LAN applications do not change the Destination IP address or the Destination MAC address. These would be modified only for applications involving offset monitoring via the internet.
When testing and configuration is complete, exit the ELConfig application. Either run the Ethernet Link Popup application following steps 7 and 8 below, or the run the application purchased from one of our software partners.
If you will be using the CallerID.com free Ethernet Link Popup application, make sure the ELConfig program is closed and run ELPopup. If you will be using one of CallerID.com's software partners applications, then skip this step and step 8.
If ELPopup is not running, it is located here:
→ → →
Place a call to one of the phone lines and the Caller ID information should pop up on your screen. EL popup options can be found by right mouse clicking the program icon in your sytem tray.
If not already accomplished when originally installed, you may want to place ELPopup in your Startup folder
EL Popup can be installed and run on any other computers on the LAN. To avoid other users inadvertently changing Ethernet Link parameters, it is recommended that ELConfig be installed only on the computer accessed by the network administrator.
Both the ELConfig and EL Popup software and source code can be downloaded from the CallerID.com website at http://www.CallerID.com/?page=sourcecode.
Many of the devices within the CallerID.com product line will be available with a built-in network interface card, named Ethernet Link (EL). These products will function virtually the same as standard serial devices with the exception that communication between these EL devices and PCs will be via the Ethernet. These EL devices can send data to multiple PCs within a Local Area Network (LAN), or used to transmit data to a remote PC anywhere on the Internet.
EL devices transmit data in UDP packets each time a telephone event occurs. The data contained within the UDP packet consists of three distinct fields; The Unit number, Serial number, and a stream of ASCII characters. The stream conforms exactly to the standard CallerID.com data formats.
In a typical application, an EL device will be located near the incoming telephone lines and an Ethernet connection. It monitors telephone traffic and when an event occurs (such as a Caller ID signal) it sends a packet of data out the LAN. Multiple computers connected to the LAN will have an application running which will capture the packet, parse the data fields, and process the information. Many programs will use the Caller ID number to look up a customer record in a database and, in turn, “Pop-Up” the customer’s information.
The EL device must be setup with the proper IP address, MAC address, and Port number. Initial setup is accomplished via the Ethernet with provided software using UDP “broadcast” packets. For software companies that elect to build in their own setup program, the command language is explained under the heading Ethernet Link Setup below.
An EL device sends telephone data Packets over a LAN using UDP protocol. Most EL generated UDP packets are 83 characters long. Whozz Calling? “Full-featured” devices are also capable of sending detail records, which are only 52 characters long. There are other packets sent of varying lengths, but are only transmitted when devices boot-up or are invoked by a command sent to the unit. All packets start with an identifier “^^” followed by the unit number and the serial number. A “$” identifies the remainder of the data is a standard CallerID.com data stream. It is sent as ASCII text.
Below is an example of the data contained is a packet:
^^<U>nnnnnn<S>nnnnnn$01 I E 0000 G A2 12/17 04:54 PM 770-263-7111 CALLERID.COM___
^^<U> are ASCII characters, followed by six binary numbers (
nnnnnn), followed by
<S>, followed by six more binary numbers, an ASCII
$ , and finally the ASCII data stream. Note that the 15 character name field is padded with spaces (in this example, 3 spaces).
If you were to look at the actual pack with a network snooper program such as Wireshark, the entire IP packet would look like the following.
The Ethernet header is in red, the IP header is in black, and the UDP header is in green and the UDP data is in blue. As you can see, the binary unit number is 00-00-00-00-89-79 (decimal 35,193) and the serial number is 00-00-00-84-48-84 (decimal 8,669,316).
A free popup program along with source code that parses the Caller ID data packet is available from CallerID.com. The executable and all source code can be distributed royalty-free. The EL Popup application and source code can be downloaded from http://www.CallerID.com/?page=sourcecode.
The UDP data (datagram) coming from an EL device will look similar to the following.
^^<U>xxxxxx<S>xxxxxx$03 I S 0000 G A0 03/26 02:47 PM 555-867-5309 JOHN DOE
Since the actual Caller ID data string within a data packet always begins with a “$” (dollar sign), a common approach is to find the first “$” character in the entire data packet and then read the Caller ID information into the application from that point. Although, this would seem to be a good method to extract the Caller ID data, it will cause your code to fail when used with CallerID.com units produced with specific serial numbers
Since the serial number and unit number headers in each packet are compressed from 12 digits down to 6, the original non-compressed numbers will manifest themselves as different characters in the compressed form. Specifically, when an uncompressed “24” is in a serial number or unit number, there are several instances where a “$” is produced when compressed.
Because the serial number and unit number headers are always the same length, a good method of extracting the Caller ID data from the UPD packet is to start reading after a given number of characters. For example, if your application will not make use of the serial number and unit number, you can elect to start reading the Caller ID data after the 21st character.
An EL device retains a source (its own) IP and MAC address and destination IP and MAC address in nonvolatile memory. The destination addresses are defined as the address the EL device will send Ethernet data. If the data is to be sent to only one computer, the destination address will be the IP and MAC address of that computer. However, it is usually desirable for the EL device to send data to all the computers in a network. In that case, the special IP address of 255.255.255.255 and a MAC address of FF-FF-FF-FF-FFFF are used. These are called “broadcast” addresses.
By default, an EL device has its own IP address (source address) set to 192.168.0.90. Typically, the “subnet” of a LAN will be defined by the first three groups of digits in the IP address (i.e. 192.168.0) of a device connected to the LAN. In this case, the IP addresses of all computers and devices located on a router will have these first three groups of digits the same. During setup, the EL source IP address should be changed to match the subnet. The last group (i.e. 90) can be set to any unique number except 255 or 0, but should be configured to a static IP within the router or set outside the range of the router’s DHCP server. More information on DHCP ranges in routers and subnet identification can be found below in Appendix B, Routers and IP address Assignment.
A port is simply a number that is embedded in a UDP packet header. There is a destination and a source port number in every UDP packet. The destination port is used by a computer to direct incoming packets to the intended program. For example, a program that pops-up Caller ID information could be setup to only allow packets with the port number 3520. It would ignore UDP packets with any other port number. The default factory setting is 3520 for both the destination and source port number. The destination port number can be changed, if needed, using the setup program supplied. In the above Wireshark illustration, the ports are the first four Hex numbers in green;
0D C0 0D C0. The first
0D C0 is the source port binary number; the second
0D C0 is the destination port – both equal 3520 decimal.
An EL device stores a series of operating parameters in non-volatile memory. The most commonly used values are set as the factory default. These values can be easily changed using a program provided by CallerID.com. Some software solution providers may elect to write their own setup program.
Changing a parameter value is accomplished by sending a UDP packet with special commands. All such packets begin with the characters
^^Id, a one character command identifier, and then the value. The structure is:
Where c is a command identifier and he
xxx... is the new value.
For example, sending a UDP packet of:
changes the Unit number to 1234 Hex (or 4660 decimal).
Because the state of the IP address may be unknown, setup commands are sent to the EL device with a broadcast IP address. Details describing this process are explained below.
A free setup program along with source code is available for EL devices from CallerID.com. The executable and all source code can be distributed royalty-free. Ethernet Link setup utility application and source code can be downloaded from http://www.CallerID.com/?page=sourcecode.
The vast majority of Caller ID installations are in multi-user environments. It is common in many of these environments that the incoming phone lines are close proximity to LAN switches or other Ethernet connections. This is a convenient location to connect an EL device. Simply connect the phone lines and then attach an Ethernet cable to either the LAN switch or an available Ethernet jack.
The Caller ID application would reside on each computer intended to receive the data. When the phone rings, the device captures the Caller ID signal and transmits the data through the LAN via a broadcast UDP packet. The application allows each computer to receive the data and reacts appropriately, such as matching the caller phone number to a database record and allowing a pop-up screen.
The above configuration requires the EL to send a broadcast UDP. Set the destination IP address of the device to 255.255.255.255 to send broadcast UDP packets. More on setting EL parameters is described in the section entitled Chapter 4, Sending and Receiving Commands
As with the multiple user installation, the EL device is usually located near both an Ethernet connection and the incoming telephone lines. If the computer receiving the Caller ID information and the EL share the same router or switch as with a Multiple User Installation, the EL can be left in the default mode to send broadcast UDP packets. Alternatively, the destination IP address of the EL device can be set to the specific IP address of the receiving computer.
An EL can transmit on-site phone data to any off-premise computer providing that an internet connection is available. Assume that the EL is connected to a LAN along with a router providing internet access. When a packet sent by the EL specifies an external IP address, the local router transmits it to the remote destination gateway. The port number contained within the packet will be used to direct it to the correct computer on the remote network.
To accomplish this remote transmission, the EL and the remote router will need to be configured very specifically. The EL should be set to the following parameters:
The destination MAC address will be the MAC address of the local router
The destination IP address will be the static IP address assigned to the remote destination. This address can be easily determined by accessing the “What is my IP dot com” website (www.WhatIsMyIP.com) from the remote computer.
The port number set in the EL must match the port number within the remote router programmed to direct that port number to the destination computer. The default port number of 3520 is recommended. Any four digit (in Hex) port number not being used by another application can be employed, but port numbers between 0 and 1023 are reserved for special use.
Most routers contain a “redirection table” which allows it to direct incoming packets to a particular computer. This is accomplished by evaluating the port number within a packet, and based on the redirection table, sending the packet to the proper device. An additional entry would be programmed into the remote router to direct packets with the port number (i.e. 3520) to the receiving computer. Of course, this computer would have suitable software loaded set to the correct port number to accept and read these packets.
Table of Contents
The EL monitors encoded broadcast packets looking for commands directed specifically for it. These packets always start with
^^Id and will be followed with a single character identifier. Some of these commands are simply one character while some commands are followed by data to enter or change the unit’s parameters
Examples of commands accepted by EL:
Resets the unit to all default settings.
Sets the device to port 3520.
The data sent to EL is sent in ASCII Hex. The number of Hex digits must be adhered to. For example, the MAC address is 6 characters, so 6 Hex pairs will be specified in the packet, and twelve Hex pairs will be actually delivered through the Ethernet as seen by a packet monitoring program.
In order to set the IP address to
192.168.0.90 (or in hex:
C0 A8 00 5A) A complete UDP packet would be
The data stream shown by Wireshark, or other packet monitor would be:
5E 5E 49 64 49 43 30 41 38 30 30 35 41
^ ^ I d I C 0 A 8 0 0 5 A
In order to acknowledge the receipt of the packet, EL will return the same packet and substitute an “ok” in place of the “Id”. For example, if
is sent to EL, then
is returned by the EL
^^IdZis sent to EL, then
^^okZis returned by the EL
Set internal MAC address
Set internal IP address
IP address to send data
Destination Port Number
Receiving Port Number (Not used by EL device at this time)
Unit number (preset as
Destination MAC address (preset as
FF FF FF FF FF FFin order for all computers on the LAN to have access to data. Set to a specific address when only one computer will receive the data)
Set the EL to default settings
Return all unit parameters (via UDP packet)
The “X” command will return all parameters in the following form:
Remember that these are 2 character Hex pairs. Therefore, a twelve character stream is actually six, paired Hex numbers.
Make a connection with host computer. The “
N” command can be used to automatically load sender’s IP and MAC address into the memory of the EL. This is a quick method of establishing a data connection to a single computer within a local network
Commands sent with a leading “-” (dash) are used to set parameters, control the block/pass functionality, enter white/black list Caller ID numbers, and manually set the time and date only in Whozz Calling? “full-featured” series units. These can be single character commands used for items such as setting “toggles” (i.e. lower case d - turn on detail mode) within the unit, or multi-character commands for entering a number into the block list. A complete explanation of parameters, toggles, and commands can be found in the standard Whozz Calling? series manuals.
-xDash followed by a single character used to set a “toggle” or request a version string.
-d Set detailed mode on
-b Set first ring suppression off
-o Set outbound monitoring on
-V Request version string
-Cnnnn…<CR>Dash followed by a single letter denoting the type of command, numerical data, and then a Carriage Return (ASCII 13, Hex 0D) terminating the string.
Enter the number 7702637278 into the block/pass list.
Block (or pass) the inbound call on line 3.
Manually set the internal time clock of device to January 8, 1:50pm.
One way to locate an EL in a subnet is to send a UDP broadcast “X”. The device will respond with a list of all its parameters. The response will contain the current IP and MAC addresses within the data sent (naturally these parameters are also sent as part of the Ethernet packet structure). Additional communication is subsequently accomplished using these unique addresses. Note that broadcast messages to the EL can continue to be used if the PC will allow them.
An easy way to determine the IP subnet of the LAN to which the computers of interest are connected. In a command window (formerly called a DOS Shell), simply type: IPconfig. A sample output is shown below:
Windows IP Configuration Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 192.168.0.112 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.0.1
In most cases, the first 3 sets of numbers in the IP Address shown will the subnet. In this example the subnet is
192.168.0. Consequently, it is recommended to set the EL to an IP address containing the subnet address plus any number extension between 1 and 254 that is not used by another device on the LAN. In this case, the EL device could be set to
192.168.0.132 since no other device has a 132 IP extension on this LAN.
In order to find the existing IP address for all devices on the LAN, you will need to access the router that controls your LAN. It will show you all the IP addresses of all computers and devices presently powered up and connected.
Table of Contents
5680 Oakbrook Parkway, Suite 150
Norcross, GA 30093
Technical Support 770-263-7111
Ethernet protocol allows two types of transmission TCP/IP or UDP. TCP/IP is used to establish a single connection between two devices. Using a broadcast protocol, only UDP has the ability to communicate simultaneously to multiple devices on a LAN. Because the vast majority of Caller ID applications are deployed in multi-user environments, UDP is the clear choice of data transmission, and therefore is used for all EL CallerID.com devices.
UDP information is transmitted via containerized packets. Each packet contains layers of headers, checksums, routing instructions, and the actual data. One UDP packet is transmitted from a Caller ID device each time an event occurs, such as Caller ID data on an incoming telephone call. Some CallerID.com products also monitor outbound telephone calls, in addition to, detailed information for every call. A separate UDP packet will be sent immediately for each event, and the data contained will strictly adhere to standard CallerID.com formatting.
All devices and computers that connect to an Ethernet network have a unique MAC address. It is rare, and usually not desirable, for a MAC address of a device to change. An IP address is an assigned number to a specific device. It can be re-assigned to another device at any time. A port number is another specified parameter and is utilized to route Ethernet packets. Routers use port numbers in packets originating outside the LAN to direct them to individual computers within the LAN. Software uses port numbers to route, accept, or reject packets.
Routers and PCs automatically detect and store in a table, the MAC addresses and the corresponding IP addresses of devices connected to the LAN. Therefore, MAC addresses are not important to virtually all software applications; they require only the IP address of the device in order to communicate. When an application creates a packet with the IP address, the network card on the PC references an internal table, adds the MAC address to packet, and subsequently, sends it out on the Ethernet. The packet is presented to all the devices on the LAN, but only the device with the matching MAC address receives it.
PCs and routers use Address Resolution Protocol (ARP) to match IP addresses with MAC addresses. When a packet is seen on the Ethernet with an unknown MAC address, these devices immediately send out an ARP Request packet requesting the MAC address of the sender. The device with the matching IP address will reply with an ARP Response with this parameter. Most computers and routers on the LAN will monitor this exchange and retain the information in its ARP table.
Sometimes a PC will not allow software to send a packet to an IP address which has not been saved in its ARP table. This is sometimes the case when a new device is added to a network but it has not transmitted a packet, thus not evoking an ARP request. In this case, it may be necessary to manually enter the IP and MAC address into the ARP table. EL devices will only accept UDP packets containing its MAC address or UDP broadcast packets which contain a generic broadcast MAC address.
As explained previously, port numbers are used to route packets to the proper computer behind a router and to a specific program running within a computer. In most cases, a PC will be running a number of applications simultaneously and therefore, accept a number of packets on the LAN. Each application will accept only the packets that have a designated port number. On the other hand, routers direct packets arriving from outside the LAN to a specific computer based on the port number.
Occasionally, a PC will not allow a packet to be sent in its own subnet unless the IP and MAC address is setup in its ARP table. The ARP table can be seen in a DOS window. The following commands apply.
ARP –a view the table ARP –s [IP Address] [Mac Address] to add a static entry
ARP –s 192.168.0.1 00-22-A8-B1-99-55
An IP address within a LAN can either be static and defined in a router or they can be distributed dynamically using the router’s DHCP server. If enabled, the DHCP server will most likely be configured to assign IP addresses within a range. Refer to the picture below of a typical router DHCP page.
In this example, some devices are assigned a static IP, while others use the DHCP server to dynamically assign other devices within the range set between 192.168.0.100 and 192.168.0.199. In this LAN environment (and most other simple LANs), the subnet is defined by the first 3 groups of digits, i.e. 192.168.0.
Unfortunately, EL products connected to the LAN will not be recognized by a DHCP server. Therefore, there is a possibility that the DHCP server may assign the same IP address used by an EL unit to another computer or device on the network. To avoid this potential IP conflict, you can manually assign EL units an IP address outside of the DHCP server range, or create a reserved IP address in the DHCP server for each EL unit. Using either method above prevents the DHCP server from automatically assigning the IP address set within an EL unit to another network device.
The EL unit's IP address would be defined with the same subnet, a trailing number between 1 and 254, entered as a reserved static address within the router or a trailing number outside the dynamic range of a DHCP server (in the example above, 192.168.0.90 would work fine).