Back to other Audrey information
ACID 2.3
Overview
What's New in Version 2.3? |
What's New in Version 2.3?
Palm database lookup is now supported, in addition to the text database lookup. ACID 2.3 can scan the telephone numbers in the Audrey's Palm address book for a match with the incoming call. If a match is found, it will display the name in the Palm database.
The options panels have been extensively rearranged and many new options have been added, include many options that were previously only available on the command line. See the user's manual for details.
The telephone number of an incoming call can now be automatically added to the text database with a button press. This is useful for marking a caller as "known" so that other features depending on caller recognition will work. You can later edit the text database to enter a custom name or custom soundfile.
A custom sound can now be played on each ring if the caller is recognized from the database.
Email can now be sent conditionally if the caller is recognized from the database.
Incoming calls can now trigger the Audrey's LED lights individually, or conditionally depending on whether the caller is known from the database or not. Details are in the user's manual.
ACID can optionally mark unacknowledged calls in the call history list with an asterisk (*). Any unacknowledged calls become acknowledged when the ACID window is touched. This feature is useful for quickly determining which calls have arrived since you last looked at the call list.
The Hide, Quit, and Options buttons have been rearranged to be easier to press. The call history window has been increased in size so that more calls can be seen at a glance. See the screenshots for a preview.
ACID now supports a "test call" feature that sends a fake call (for testing purposes) to the running instance of ACID. See the command line options for details.
You can put "No Data" into the text database, so that a customized sound can play when the modem fails to pick up the caller ID information.
The "unknown symbol: log" error is gone.
In version 2.3a, the following changes were made:
There was a bug in version 2.3 regarding auto-hiding which has been fixed.
There is a new option in the General Options panel to allow auto-hiding even if there are unacknowledged calls.
The Network Options panel now shows the local IP address of the Audrey (thanks to Infinity for the method).
Back to top
Other Features
- Audrey can send email to any address when a telephone call arrives with caller ID information.
- Audrey's LEDs can flash (or light solid) when a call arrives, up until you touch the app.
- Audrey can play a sound either each time the modem hears a ring, or just the first ring on each call.
- You can supply a database that ACID uses to look up custom names and sound effects to use whenever it sees a telephone number specified in the database.
- ACID can act as a network server, broadcasting caller ID info to any listening Audreys or Windows PCs. It can also act as a client to a Windows PC running CID Sentry.
- ACID supports an external modem on the serial port. See the external modem section for details.
- All versions of ACID later than 2.0 are resulting from a merge between ACID v1.0 and Steven Grimm's original "callerid" app for the Audrey.
Back to top
Requirements
1) You need to subscribe to Caller ID service from your phone company. Caller ID service is not usually part of basic phone service, but it is available for a few dollars a month.
2) An active telephone line must be plugged into the lower telephone jack on the back of the Audrey.
3) You need root shell access to your Audrey (the shell with the "#" prompt). You need to be able to set file permissions and run command-line applications on your Audrey. If you are brand new to Audrey and don't have a root shell, start reading here or here.
4) You need some way of getting the ACID app into your Audrey's /nto/photon/bin (or similar) directory. FTP or copying from a mounted share are two possibilities.
5) You need some way of launching ACID on your Audrey. You'll probably want to run it in one of your system start scripts, such as /kojak/go. Make sure you don't run it until after your network filesystems are mounted if you've put it on another computer. If you add it as a line in the startup script, be sure to add a & (ampersand) at the end of the line to make it run as a background process. If this sounds completely foreign to you, you can read about it here or here, or you can just run it manually by typing "acid" in a root shell.
Back to top
Download Version 2.3a
Download ACID application. Note that some web browsers automatically append ".txt" to files that have no extension. If this happens, just rename the file to get rid of the .txt extension. If you are downloading from your Audrey using the Voyager web browser, download this acid.zip and save it as "acid". (Voyager can't handle downloads of files without extensions.) Ultimately, the program file should just be named "acid". See Installation for the next step.
Download sample name database. This is an example of a properly formatted name/number database file. Note that each field is separated by tabs, unlike previous versions that allowed spaces before the name. Download this file and move it to the /nto/acid directory. Edit the names, numbers, and sound effect names to whatever you want. In the options screen, on the "Lookups" panel, choose the option that says "Look up telephone numbers in text database" in the options and fill in the name of the file (e.g. "friends.txt", no path necessary). Then, when an incoming call's phone number matches one from the database, the given name will show up, and the given sound will play (if so chosen).
Developers interested in the source code, click here.
Back to top
Installation
1) Make sure that your Audrey's system software is upgraded to the "FINAL" release, and that you have root shell access to the Audrey. If you haven't gotten this far yet, start reading here or here.
2) Copy or FTP the program to /nto/photon/bin, or some other directory in the path. That way you can just type "acid" (without path info) to run it. If you use FTP, be sure you are transferring the file in binary mode.
3) The file needs to be executable to run on the Audrey. Type "chmod a+x acid" to set the execute permission.
4) If you are upgrading from ACID 2.2, nothing is different with the installation. If you are installing ACID for the first time, or you are upgrading from an older version of ACID, you'll want to let ACID make the default data directory (/nto/acid) or create it yourself ("mkdir /nto/acid"), and then copy your current acidoptions.bin, all .wav sound files, and your name & number database to this directory. Otherwise you'll have to reconfigure your options and specify paths to everything on the command line. If you install a new database file, note that ACID needs to be closed and restarted in order for the changes to take effect.
5) Plug a phone line into the bottom of the two phone jacks on the back of the Audrey. Caller ID service must be enabled on this phone line.
6) Run "acid", and enter the options screen to configure your settings. See the screenshots for information on the screens.
7) You can optionally launch ACID from one of your system start scripts, such as /kojak/go. Make sure you don't run it until after your network filesystems are mounted if you've put it on another computer. If you add it as a line in the startup script, be sure to add a & (ampersand) at the end of the line to make it run as a background process. Be very careful with your startup scripts, as making a mistake may cause your Audrey to become unbootable. If this happens you'll have to reflash with a known good image.
Back to top
This section shows each screen of ACID and fully describes each field or setting.
Main Window
General Options
Lookup Options
Alert Options
Email Options
Network Options
Back to top






Common Problems
I get "No Data" sometimes (or all the time)
This happens when the Audrey detects the ring of the incoming call, but doesn't receive any caller ID data. The modem inside the Audrey is notoriously flaky. It is very sensitive to the quality and noise level of the telephone line connected to it -- way more sensitive than your average caller ID phone or caller ID box. In some cases, even a perfectly noise-free, high quality line is present, and the modem still won't return any caller ID information. This may be the reason the original Audrey didn't ship with a caller ID application.
Some people have had the case where ACID works fine for a few days, and then never again. I have no idea what could be causing that.
Here are some things to try if you can't get caller ID info:
1) If you have distinctive ring enabled on your phone line, you need to run ACID with the -d option, like this "acid -d".
2) As a test, disconnect every phone or device throughout the house from the incoming phone line. Make it so that the only thing on the line is Audrey's modem. The theory here is that any other device may be tapping into the caller ID signal, thus weakening it too much for the Audrey modem to pick it up.
3) If possible, use the phone cord that came with the Audrey. Some people have had success with this cord when others have failed. I haven't inspected the cord closely, but it is possible that it has some more shielding than normal.
4) Plug a normal telephone into the secondary (top) jack on the back of the Audrey. For some reason, this has worked for a few people to improve Audrey's chances of reading the CID info. This may be a case where the signal is too strong, and having this phone in parallel attenuates the signal enough for the Audrey to pick it up.
5) If you have DSL on the same phone line that your caller ID service is on, try moving where the DSL filter is. If it's before the modem, try moving it to after & vice versa. Some people have had luck with this.
6) Reverse the polarity of the line going into the Audrey modem. Sounds strange, but people have reported that this improves the Audrey's chances of seeing the CID info. To do this, you have to be comfortable making your own phone plug. Basically, you chop the plug off the phone cord going into your Audrey, switch the positions of the two center wires, crimp a new RJ11 plastic plug onto the end, and plug it back into the Audrey. I'm not an EE, so I'm not sure of the theory here.
7) Have a close look at the telephone jack the Audrey is plugged into. Sometimes a loose connection or a nicked wire can cause loss of CID info.
8) Try holding the phone line plug firmly in place on the back of the Audrey as you receive a call. A bad connection here could cause CID info to fail to appear.
9) The most drastic step: replace all the telephone wiring leading up to the Audrey. Older houses and apartments usually have very low quality telephone lines feeding them. Caller ID boxes and phones are able to read the caller ID info over these lines, but Audrey's cheap modem sometimes cannot. If you can successfully get CID info on the Audrey when plugged into your telephone demarcation point (or NID), then this may be the solution. Note, if your phone wiring to the street is really old, the fault may lie there and you'll have to complain to the telephone company.
If anyone has this problem and solves it, please email me at the address at the bottom of the page and tell me what worked for you.
As a debugging tool, to determine if the problem is with the modem or not, you can try using the qtalk program, which is already installed on the Audrey by default. Close ACID, and do a cold reboot (unplug, wait 30 seconds, plug back in). If you have ACID starting in your startup scripts, disable that for now. Once rebooted, open a root shell (with the # prompt) and type the following commands:
rsmodem
qtalk -m /dev/modem1
ats0=0+vcid=1
(those 0's are zeros). Now call the line attached to the Audrey. If you see "RING" followed by caller ID data, then your modem is working correctly. If not, then the modem is not getting the caller ID data. Type ctrl-a,q to exit qtalk.
ACID went into "hide" mode and I can't get it back
Simply run the app again. It won't launch another copy -- it will cause the hidden app to come to the front.
ACID isn't showing the name I put in the database file
If you had put a number and a name in the database, yet you don't see it when that person calls, there could be two causes: 1) ACID can't find the database file. It should be in /nto/acid (or other path indicated on the command line). 2) The database file is incorrectly formatted. Note that in versions 2.2 and later, the fields of each entry are required to be separated by tabs, no spaces. See this for a sample database with the correct format. Also note that if you are editing the database file while ACID is running, you will have to close ACID and restart it in order to see the changes.
ACID isn't playing the sound I put in the database file
If you had put a number, name, and sound file in the database, yet you don't hear the sound when that person calls, there could be a few causes: 1) ACID can't find the database file. It should be in /nto/acid (or other path indicated on the command line). 2) The database file is incorrectly formatted. Note that in versions 2.2 and later, the fields of each entry are required to be separated by tabs, no spaces. See this for a sample database with the correct format. 3) The volume on your Audrey is too low. Use the volume control on the back to turn it up. 4) The sound file specified isn't a valid sound file.
The last half-second of the sound gets cut off
This is a known bug in ACID. I haven't had time to look into it, but if you are a programmer, feel free to take a look at the problem and try to fix it.
If you have comments or suggestions, send me email with any problems or ideas regarding the ACID application. Try browsing and searching the Audrey forums here and here first, as someone else might have posted on the same topic.
Back to top
Contributors
Authors
Jim Mazrimas
Steven Grimm
Other Contributors
Alex Knowles wrote the Palm database lookup code for ACID v2.3. His site is here.
Dean Davis has created an ACID and CIDSentry compatible client for the Macintosh called CIDTracker. See a screenshot and download the program here.
My thanks to the contributors and all the people who send suggestions or well-wishes regarding ACID.
Back to top
Command-line Options
Most configuration options are available on the options screens within the application. The following command line options are supported:
-a path Specifies an alternate data path. /nto/acid is the default. The options file (acidoptions.bin), the database file, the call log, and all sound files are expected to be in this directory. -c host Acts as a network client. The modem is not used when this option is specified. Connects to the specified hostname at the port number specified by the "-p" option. See the Network section for examples. -d Enable distinctive ring detection on the modem. By default, no distinctive ring detection occurs. -f dbfile Uses the given phone number database. See the sample database file for formatting information. If an incoming phone number isn't listed in the database file, the name from the caller ID message is used. -i string Uses alternate modem initialization string. The default is "AT S0=0 +VCID=1", or "AT S0=0 +VCID=1 S41=1" if distinctive ring is enabled. -l logfile Logs incoming calls to the specified file. If the filename is "-", logs to standard output. Default is to not log calls. -m modem Uses a modem device other than the default of /dev/modem1. -p port Listens on a UDP port other than the default of 4550 when acting as a server. When acting as a client, this is the port number to connect to on the server. -r secs Reconnects to the server at the specified interval. Only meaningful in client mode. If you don't specify this and the server is restarted, your client won't notice and will never receive any call notifications. Unless it's critical to never miss a call, set this to something like 300 (5 minutes). -s Stealth. Hides window immediately upon launching. -t number Test call. There must be a running instance of ACID already. This sends the given number to the running instances as if it was an incoming call. Useful for testing. -v Spits out verbose status information. -w seconds Wait the given number of seconds before sending the notification email. Default is 30.
Caller ID Over a Network
ACID is compatible with CallerID Sentry, a networked caller ID app for Windows PCs. You can run one caller ID server, whether it's a PC running CIDSentry or an Audrey running ACID, and then have any number of clients (PCs or Audreys) connect to that server to receive the caller ID broadcasts.
Dean Davis has created an ACID and CIDSentry compatible client for the Macintosh called CIDTracker. See a screenshot and download the program here.
The caller ID network settings can be set either on the command line or in the options screens. Below are examples for the command line settings.
When running ACID, the default mode is to run as a server. It listens on the default port of 4550 to any client connection requests. To change the server's listen port, use the -p option like this: "acid -p 2200". Clients will need to connect on that port.
To run ACID as a client, you must specify the -c option along with a server machine or IP address, like this: "acid -c cid.mydomain.com" or "acid -c 192.168.1.102". If the server is listening on anything but the default port (4550), the client needs to specify that port, like this: "acid -c servername -p 3030".
If the server crashes for whatever reason, the client needs a way to reconnect to it when the server starts up again. That's what the -r option is for. It causes the client to force a reconnect to the server at the given period, in seconds. Use it like this: "acid -c servername -r 300" (this reconnects every 5 minutes).
Networked Caller ID and the database file:
You can put a telephone number database on the server, or on the client(s), or everywhere. In all cases, if an Audrey is going to play a sound, that sound file needs to be on that Audrey (or accessible to it via a shared drive, perhaps).
Here are the cases:
Database on server only: Server will look up the new name, play the associated sound, if any, and pass the converted name/number along to the clients. However, the clients will not be able to play sounds, since they won't have the database. Advantage: only need one database file. Disadvantages: clients can't play sound.
Database on clients only: Server will pass along the raw caller ID data, and each client will do the lookup itself, and will play the associated sound (if any). Advantages: All clients will be able to play sounds. Also, you could put a different database on each client if you wanted (for whatever reason). Disadvantages: Hassle to keep all databases in sync with each other. Server won't play sounds or do lookup.
Database on server and on clients: Server will look up the new name, play sound if given, and pass converted name/number along to the clients. The clients then do another lookup of the number to get the name, and they'll also play the sound. This has the advantage of being able to play sounds and have name conversion everywhere, but also requires more trouble to keep all the database files in sync.
The hassle of keeping all Audreys updated goes away if the database and sounds exist on a shared drive. But if you have no shared drive, the easiest thing to do is to just put copies of the same database and all the sounds on each Audrey, and enable lookups everywhere.
Back to top
External Modem
If you can't get the Audrey's internal modem to respond to the caller ID data, you can use an external modem attached to the Audrey's serial port. There are two command line options you'll have to use in order to do this:
The first one (-m device) tells ACID what modem device to talk to. The default is /dev/modem1, which is the internal modem. For an external modem, the device is /dev/ser1.
The second option (-i init_string) causes a custom modem init string to be sent to the modem upon startup. The default string is "ATS0=0+VCID=1", which tells the internal modem to detect caller ID data but don't answer the call. You'll have to research what string will enable caller ID on your external modem. Two common caller ID commands are #VCID=1 and #CID=1. In this string, be sure to specify the standard "S0=0" command, which disables the modem's auto-answer, or else it will pick up the phone when a call comes in.
Once you know the correct init string, the syntax for using ACID with an external modem (a USR Robotics Sportster in this case) is this: "acid -m /dev/ser1 -i ATS0=0#CID=1". Thanks to Jukebox and jhd3rd from the I-Appliance BBS for their research in this area.
For more information on using Audrey with an external modem, see Jukebox's great post on the subject, summarizing everything you need to know.
Back to top
| 2.3a | o Fixed auto-hiding bug |
| o Added option to auto-hide even if there are unacknowledged calls | |
| o IP address now displayed on Network Options panel | |
| 2.3 | o Integrated Palm database lookup |
| o Rearranged and tweaked options panels | |
| o Added ability to instantly store incoming number | |
| o Added flexibility in ring sounds vs. custom sounds | |
| o Added option for email dependent on caller recognition | |
| o Added option for LEDs individually dependent on caller recognition | |
| o Unacknowledged calls can be marked with an asterisk | |
| o Main window buttons rearranged for ease of use on touchscreen | |
| o Main window call history list expanded vertically | |
| o Test call feature added | |
| o "No data" is allowed in database | |
| o "unknown symbol: log" error is gone | |
| 2.2 | o Reworked installation path |
| o Made database tab-delimited, to allow "out of area" in number field | |
| o Custom name/sound for "private" and "out of area" callers | |
| o Does database lookups when acting as a client | |
| o Allows alternate init string on the command line (for external modems) | |
| o Terse email option | |
| o Option to delay email send | |
| o Channel knob scrolls through calls list. Pressing it highlights call | |
| o "Clear Log" button | |
| o "No Data" calls are now logged with system time | |
| o Name/number is displayed in email subject line | |
| o Longer display of caller info when acting as a client | |
| 2.1 | o Made the distinctive ring setting a command-line option (-d) |
| o Added "stealth" mode (-s) which hides the window immediately upon startup | |
| o Fixed a bug where the LED would stay on if you quit the app | |
| o Moved and resized the Quit and Hide buttons (I was hitting them on accident too much) | |
| o Added a "pre-initialization" string sent to the modem, ATZ, which sets its registers back to the default | |
| o Changed slightly how auto-hiding works with the LED. Now, if LED is active (i.e. you have received a call sometime in the past) and you have opted for automatic window hiding, the window won't hide itself until the call is "acknowledged" by tapping the app. After that, the normal timeout period applies before it hides | |
| 2.0 | o Merged with koreth's callerid application, providing compatibility with CallerID Sentry and customized phone number database |
| o Audrey's LED will optionally flash or stay on until you touch the app's window or perform any interaction with it | |
| o Added option to play a ring sound each time ACID hears a ring | |
| o Added option to play a custom sound effect when a friend calls, via the telephone number database | |
| o Added ability to see past calls in larger text by touching the call in the app's call history list. | |
| 1.01 | o -v command line switch added, for verbose mode. Shows some debug output, including all text coming from the modem itself. |
| o Fixed a problem where ACID was expecting name & number in a certain order. Now it no longer matters. | |
| o Changed modem reading to be a bit quicker & more reliable | |
| o Took out accidental debug stuff from 1.00a that caused every call to report 777-1234. Embarrassing! | |
| o Made end-of-call detection more reliable. | |
| o Added possible fix for the RING RING RING problem some people are seeing. | |
| o Tweaked email notification code. | |
| 1.00a | o Quick release to fix 7-digit phone number bug. |
| 1.00 | o Released |
Developers
For Audrey/QNX developers:
Download ACID source code and PhAB project files. Put this file in a directory called "acid" and run "tar -xzvf acid23a.tar.gz". This will create all the directories needed to open the acid project in PhAB (Photon Application Builder), a graphical development interface for QNX and Photon. Note that the source code is copyrighted by me -- Copyright © 2002 James Mazrimas, except for portions used with permission by Steven Grimm, Alex Knowles, Keith_D, and www.qnx.com's public domain code samples.
If you make changes to the source code to improve ACID's performace, add features, or whatever, I'd like to see them. Send me email to discuss merging your changes into the next official version. As a courtesy, please do not release new versions of ACID to the public without consulting me first. I don't want to end up handling technical support emails for a broken version of ACID that someone else released!
You'll need to install the QNX RTP version 6.0 in order to compile ACID. The way I did it was to burn the qnxrtp.iso (make sure you get the 6.0 version) onto a CD, and run the installer from there. It created a filesystem within a file on my Windows PC -- no partitioning necessary to dual-boot into it.
Some possible additions/fixes to be done:
- Add CID compatibility to ACID. CID is another networked caller ID protocol, and TiVoCID is based on it. It would be cool to get the Audrey and the TiVo to talk to each other.
- Fix the bug where certain sound effects get cut off at the last half-second or so. The wave playing code is take straight from the qnx.com sample code. It seems to cut off whether the sound is played in the main thread or a secondary thread. I haven't had the time to really focus on fixing this one.
- Investigate adding voicemail ability to ACID. This would involve researching how to put the modem off-hook and how to stream digitized sound as normal voice data to it. Not sure if the Audrey modem is capable of this.
- Telezapper-like functionality. Similar to the voicemail feature, this involves answering the telephone with the 3-tone SIT signal that indicates a number not in service. It is meant to cause telemarketers to remove your phone number from their call lists.
- Add custom image ability. This would cause a custom image (jpg, gif, whatever) to flash onto the screen when a recognized person calls.
- Add a telephone number dialer. I started adding this, and then backed out when I realized the amount of GUI work it requires, since the user has to be able to choose how to dial the number (with or without the area code, or the 1 prefix, or whatever). The beginnings of this code is in there, commented out.
Back to top
Back to other Audrey information
This page copyright © 2002-2006 James Mazrimas
Send email to