Template level External Article ID
KBA00021039
Issue
When upgrading to a new E-9-1-1 Phone system your ANI/ALI vendor may change the format of their data stream to Spillman. These steps will help you modify perl script 'e911form' so it can parse out the data in the new format.
Resolution
- The e911form formats the raw data from the serial port and stores it in a file for CAD to read it from.
- The e911gproc listens to the serial port for data from the ANI/ALI
- The raw data from the ANI/ALI stream is stored in a file under the /tmp directory with the following naming convention
- {PID of the gproc}E9.{nn} example: 4577E9.8
- The e911gproc “spawn” a process for e911form to format that data and stores it in a file for CAD to read it from.
- Then e911read() in e911fetch.c reads it in.
- Newer E911 setups no longer save the raw data to a file without a flag. You will need to set this in the daemon to make sure it saves the raw data to test with here is the info:
- We also added a command line option to keep the temp files
- -k Keep temporary files (Remove this flag and restart the daemon after updating the form. Since tmp files will not be removed automatically)
- The temp file will be in $E911DIR if set, or else in /tmp. And it will be called tmpE9-XXXXXX where the XXXXXX part is random
- The raw data can be viewed with a VI editor. Below is a sample:
207
801-902-1200 11:41:01 12312015
SPILLMAN TECHNOLOGIES INC
4625 BUSN
LAKE PARK BLVD
PL LEC VISTA
SALT LAKE CITY UT
BLDG
UNIT FLR ESN 319
P#801-902-1200 ALT# - -
X Y CF
UNC Z ZUNC
SPILLMAN SHERIFF 902-1712
SPILLMAN FIRE (STAT 8-7444
SPILLMAN EMS 902-1712
- Your ANI/ALI vendor can help you identify the parts of the raw data
- The e911form has a list of parameters that can be read into the Add Call screen. By changing the values of the offsets and lengths, you can pick out data to be assigned to a variable:
# Format Variables: These tell the script where it should look in the input
# file for the fields that CAD will need.
$CITOFF = 0; # Offset to the city
$CITSIZ = 0; # Size of the city
$CUSOFF = 64; # Offset to customer name (caller)
$CUSSIZ = 31; # Size of customer name (caller)
$HMNOFF = 96; # Offset to house number
$HMNSIZ = 10; # Size of house number
$HNSOFF = 249; # Offset to house number suffix
$HNSSIZ = 7; # Size of house number suffix
$INFOFF = 0; # Offset to the information string
$INFSIZ = 0; # Size of the information string
$SNMOFF = 111; # Offset to street name
$SNMSIZ = 48; # Size of street name
$STDOFF = 107; # Offset to street direction
$STDSIZ = 3; # Size of street direction
$TELOFF = 36; # Offset to phone number
$TELSIZ = 8; # Size of phone number
$HRCOFF = 0; # Offset to how‑received field
$HRCSIZ = 0; # Size of how‑received field
# Other Settings:
$AREACODE = “435";# The default area code
- Locate the file e911form. It can be found in $FORCEDIR/ubin or $E911DIR
- This example has a e911form shortcut pointed back to the file in $FORCEDIR/ubin:
- Open the e911form in VI from a terminal emulator program like PuTTY:
- Locate the raw data in the /tmp directory
- Transfer the file to our local workstation and use a program called Notepad++ to determine the offsets and lengths of each section
- These values gathered will be entered in the e911form:
- Using VI from our terminal session open the e911form and locate the beginning of the Setup and Configuration section of the e911form. We will update the gproc paramenters using the steps below:
- Using Notepad++ select the ANI/ALI position by highlighting it.
- We start at position 0 for the first character of the file and note the size selected is 2
- We now find the Offset for the Class of Service:
- Highlight the entire area of the Class to determine the Class Size:
- Select the area from the start of line 2 to the first number of the time stamp to determine the offset to the time:
- Select the Time and date to determine the size of the time:
- Select the area from the start of line 2 to the first number of the telephone number to determine the offset for the phone number:
- Highlight the entire number to determine the size of the phone number:
- Select the area from line 2 to the first letter of the customer name:
- Select the entire section of the Customer Name to determine the size of the Customer Name:
- Select the section from line 2 to the first number of the Street Number for the house number offset:
- Select the entire section of the Number to determine the size of the House Number:
- Select the section from line 2 to the first number of the Street Number for the house number offset:
- Select the entire section of the Street Name to determine the size of the Street Name:
- On your vi session of the e911form navigate to the section for debug and change the value of formdebug to 2:
- Save the file and test it out in the terminal window
You must be shelled out of Spillman and have the raw file you were working on in the $E911DIR directory:
- Change directory to $E911DIR if you're not there yet.
- Run the command "./e911form 4577E9.8 ." (Linux) "perl -MCtperl ./e911form 4577E9.8 ." (Windows)
- If you entered the correct values your raw data should populate correctly like the output in the orange square.