Caller ID.com
homeHome contactContact sitemapSite Map
800.240.4637
 

Ethernet Link Supplement

Whozz Calling? Full-featured series, Lite series and POS series units

(Version 2.2 07/20/10)


List of Figures

2.1. Wireshark Packet
B.1. DHCP Configuration

Chapter 1. Installation Instructions

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

  2. Connect an Ethernet cable to your Local Area Network (LAN) switch or any other LAN connection available and power up the unit.

  3. 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:

    Install Software and Tools

    If you receive any security warnings, simply select Run button in each case

  4. Run the CallerID.com Software installer and select:

    1. Diagnostic Tools Only if you already own a software package that has specified the use of CallerID.com equipment.

    2. Custom if you are an advanced user or installer.

    3. Complete 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.

  5. If you selected Diagnostic Tools Only, you would only need these programs if the Caller ID does not operate in your application software.

    If you selected Complete installation, chances are, you will be using the 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.

  6. Troubleshooting

    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:

    StartProgramsCallerID.comToolsELConfig

    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:

    ConfigureReset Ethernet Defaults then select the Refresh Button 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

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

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

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

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

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

    StartProgramsCallerID.comELPopup

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

Chapter 2. Programmers Section

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.

Packet Format

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___

The ^^<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.

Figure 2.1. Wireshark Packet

Wireshark Packet

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.

Programming Note

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.

IP and MAC addresses

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.

Port number

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.

Ethernet Link Setup

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:

^^Idcxxxxxxxxxxxx

Where c is a command identifier and he xxx... is the new value.

For example, sending a UDP packet of:

^^IdU000000001234

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.

Chapter 3. Typical Caller ID Installations

Multiple User Installation

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

Single User Installation

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.

Remote Computer Monitoring

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:

  1. The destination MAC address will be the MAC address of the local router

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

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

Chapter 4. Sending and Receiving Commands

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:

^^IdZ

Resets the unit to all default settings.

^^IdT0DC0

Sets the device to port 3520.

Hex Data Format

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

^^IdIC0A8005A

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

Acknowledgement of Receipt

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

^^IdZ

is sent to EL, then

^^okZ

is returned by the EL

^^IdZ is sent to EL, then ^^okZ is returned by the EL

Commands to Enter or Modify Parameters

Mxxxxxxxxxxxx

Set internal MAC address

Ixxxxxxxx

Set internal IP address

Dxxxxxxxx

IP address to send data

Txxxx

Destination Port Number

Pxxxx

Receiving Port Number (Not used by EL device at this time)

Uxxxxxxxxxxxx

Unit number (preset as 000000000001

Cxxxxxxxxxxxx

Destination MAC address (preset as FF FF FF FF FF FF in 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)

One Character Commands

Z

Set the EL to default settings

X

Return all unit parameters (via UDP packet)

The X command will return all parameters in the following form:

<M>xxxxxxxxxxxx<I>xxxxxxxx<D>xxxxxxxx<P>xxxx<T>xxxx<U>xxxxxxxxxxxx<C>xxxxxxxxxxxx<O>xxxxxxxxxxxx<S>xxxxxxxxxxxx

Remember that these are 2 character Hex pairs. Therefore, a twelve character stream is actually six, paired Hex numbers.

N

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

Setting Parameters in Whozz Calling? Full-featured Series Units

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.

Single Character Command Structure

-x
Dash followed by a single character used to set a toggle or request a version string.

Example Commands:

-d Set detailed mode on

-b Set first ring suppression off

-o Set outbound monitoring on

-V Request version string

Multi-Character Command Structure

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

Example Commands:

-N772637278<CR>

Enter the number 7702637278 into the block/pass list.

-W03

Block (or pass) the inbound call on line 3.

-Z01081350<CR>

Manually set the internal time clock of device to January 8, 1:50pm.

Finding an Ethernet Link Device

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.

Chapter 5. Subnet Determination

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.

Chapter 6. Manufacture's Information

Table of Contents

Technical Contacts:


CallerID.com
5680 Oakbrook Parkway, Suite 150
NorcrossGA 30093

Sales 800-240-4637
Technical Support 770-263-7111
FAX 770-263-0049

Technical Contacts:

Keith Ruehle x109

Grant Sutherland x107

Appendix A. Additional Information on Network Packets

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.

IP Addresses, MAC Addresses, and Port Numbers

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.

Ports

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.

ARP Tables

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

For example:

ARP –s 192.168.0.1 00-22-A8-B1-99-55

Appendix B. Routers and IP address Assignment

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.

Figure B.1. DHCP Configuration

DHCP

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