basic_callerid_logger

 

Main Page

Linux
News Links
Web
PHP
Game Links
Search
 Google

Food
 Epicurious
 S.O.A.R.

Music
 BMG
 Play

TV/Movies

PDX
Real Estate
Funny
Health
Travel
Stores
Lighting
PIC
Misc.

About This Site

 

 

 

Quick Links:


News
26-Nov-2001 Version 1.0.14
  • NOTE!! Changed it to default to NOT have the socket open, please use -socket now to enable it.
  • Added Pg table definition, ability to connect to remote database (Miles Lott).
  • Added a configuration file. See bcidl.conf for an example.
  • I seem to be having problems with the name in the download directory, please be sure you get 1.0.14 and not an earlier version.
21-May-2001 Version 1.0.13
  • Added '-fixpriv' option to change the 'O' and 'P' numbers to a more human-readable form. Added catch for "MESG" key if the "NAME" key is empty from the modem. (Thanks Alok K. Dhir)
05-May-2001 Version 1.0.12
  • Fixed the $SIG{HUP} line to actually point to a function. (Thanks Charles Galpin.)
10-Jan-2001 Version 1.0.11
  • Updated termios using code from Device::SerialPort.
  • Better modem reading code.
  • Works with RedHat 7.0.

DSS Controll w/Perl + Serial Port (For reference)

16-Aug-2000 Version 1.0.10
  • New (or now functioning) '-nosocket' option if you do not want a port listener.
  • Fixed, again, the interaction with pppd. It seems that in the daemon mode I was closing and unlocking the modem in the parent process.
  • More verbose log files. Now the PID and a date/time are reported.
  • Kludge so that -k does not kill some editing programs looking at the code.
  • The rc script contains the -nosocket by default. I do not want to be mentioned on security focus or bugtrack :) .
26-May-2000 Version 1.0.9
  • New '-nodb' option if you do not want to log the data to a databse.
  • Better DBI error reporting to track down problems.
  • Email! As suggested by Christian Caper you can now send email based on simple rulesets. Run the program with -? to see the syntax. Of note: (1) You can send email to different addresses for different rules. (2) You can send all email to the same address for different rules. Really, I will document this better some day.
03-May-2000 Version 1.0.8
  • More fixes to catch when pppd is running. Specifically, the regex that looks for KEY=VALUE is better (added ^).
  • The signal_handler sets the handler to an anonymous sub that exits so if the user tries to kill the program multiple times it will actuall exit.
20-Apr-2000 Version 1.0.7
  • Now handles split-line modem reads (last fix did not seem to work).
  • The order of the KEY = VALUE data from the modem does not matter.
18-Apr-2000 Version 1.0.6
  • Fixed the problem where the modem would not get set back into line mode after pppd ran and exited.
  • Added command line options for debugging (-d or -debug) and to kill other running processes (-k). Note that you have to have the standard module Getopt::Long installed for this to work but it will still work even if you do not.
13-Apr-2000 Version 1.0.5
More patches from Ryan Ayers:
  • POD udpates.
12-Apr-2000 Version 1.0.4
More patches from Ryan Ayers:
  • Network code clean ups.
  • "-w" warning removal except a nasty one on the POSIX.pm module.
  • "callerid.pl" Tk program for instant notification of new calls on your desktop.
  • Better signal handling.
05-Apr-2000 Version 1.0.2
  • Applied a patch by Ryan Ayers to try to write data to a UNIX file socket so another program can get the caller ID information in near real time. Added his name to the perlpod AUTHORS.
  • Made it so that you can run pppd without having to stop and start basic_callerid_logger.
24-Feb-2000 Version 1.0.0
Ininitial Release.


Notes:

  • This program now detects pppd. It will go in the background while pppd is running. However, the process name must be pppd or it will not catch it. If you have other pppd-like programs you want caught, please let me know and I will do my best to add them.

Here is the man page:



NAME

basic_callerid_log.pl - log calls to a DBI/DBD database.


DESCRIPTION

This program provides basic caller-id logging to a database. It was written to use mysql but as long as you can generate the table for your own database, it should work fine. It puts the data into the table without any format changes: The idea is that an auxiliary program can make the format changes when it displays the data.

There are some example GUI caller-id programs available where you found this. The standard one is called callerid.pl. Later in this documentation is the socket-based API for you to make your own callerid GUI. If you make one, please send it to me, and I'll add it to the ftp.


REQUIREMENTS

The following modules are required for this program. If you did not get them with your perl distribution, you can find them on your favorite CPAN mirror. Or try perl -MCPAN -e shell as root.

Modem

Your modem has to support callerid and you also have to have that service. Usually the phone company charges for it.

DBI

The database independent interface.

DBD

A DBI driver for your favorite database (yfdb).

POSIX

For the termios stuff.

FileHandle

An IO abstraction layer. Standard with most installs of perl.

IO::Socket

For client/server API.

IO::Select

In order to accomodate multiple clients.

Fcntl

For locking. Standard?

Database

Some database for which you have installed the DBD module. The 'CREATE TABLE' definitions are in the source code so do a 'more' on this program to find it. If you design a new schema, please send it to me so I can add it. You can get MySQL from http://www.mysql.com/ .


CLIENT/SERVER API

This API let you program your own callerid GUI. It leaves all the dirty-work to basic_callerid_logger.pl. Below is a step by step explaination of how you need to setup your sockets, and send/recv data on them.

Start a UDP socket on your local port.

  This is for you to receive callerid broadcasts from the server
Make a TCP connection to the server.
Send socket setup information.

  FORMAT: ADD-username=$username&password=$password&
              hostname=$myhostname&port=$myport
Receive confirmation.

  FORMAT: (FAILED|ADDING)
Listen for callerid broadcasts on our local listen port.

  RECV: All callerid information separated by comma's
Send server the remove signal when your done.

  FORMAT: REMOVE-username=$username&password=$password&
              hostname=$myhostname&port=$myport


LICENSE

This program is released under the GNU GPL V2. For the record most of the modem interface code was ported directly from StdModem.C in xcallerid -- which is also a GPL program.


BUGS

Requires a bit of user intervention to set up.


AUTHORS

Bill Adams bill<at>evil<dot>inetarena<dot>com

Ryan Ayers rayers<at>amsales<dot>net

The latest version of this can be found somewhere on http://evil.inetarena.com/.


This page has only been accessed 14 times today by 1 host.
  And 142 times in the past seven days by 1 host during those seven days.

All links and statements are provided on an "As-Is" basis and you use this site, the links, and the information presented at your own risk. Remeber to always take the time to form your own opinion.

Bill Adams
The Email Address Above Works, I just change it every once in a while to cut down on spam.
Last Modified: Wednesday 31st 1970f December 1969 04:00:00 PM PST