[Asterisk-Dev] Using an additional modem to get CallerID information

Brian West brian at bkw.org
Sat Jan 31 10:41:47 MST 2004


Now thats an ugly hack.  Why not just get an X100P :P

bkw


On Sat, 31 Jan 2004, Jonathan McHarg wrote:

> There are two stages in the process of getting callerID information from a
> standard modem, to be used in Asterisk. The first stage is actually
> capturing the information from the modem, the second stage is importing the
> captured data into Asterisk.
>
> Capturing the caller ID details from the modem
>
> I will presume at this stage, that you have a modem that supports caller ID
> and it is installed and configured to work with your Linux box.
>
> Here is my first script that reads the details in...
>
> #!/usr/bin/perl
> $PortName = "/dev/ttyn00";
> $PortObj =  open(MODEM,$PortName) || die "Can't open $PortName: $!\n";
> while (1==1) {
>   local $/ = "\n";
>   while ($line=<MODEM>) {
>     chomp;
>     if ($line =~ s/NMBR = //) {
>       open(OUTFILE, ">/usr/src/myperl/callerid.txt") or die "Can't open
> callerid.txt: $!";
>       print OUTFILE "$line";
>       close OUTFILE;
>     };
>   }
> }
>
> depending on your setup, you'll need to amend the $portName variable to
> point to the port that you've installed the modem on. You also may want to
> change the path that the callerid.txt file is written to.
>
> Once the script is written, used the chmod A+X callerid.pl to change the
> mode so that the program can be executed.
>
> Finally run the program with & parameter, to spawn the program as a new
> process.
>
>
> Using the callerid.txt file in Asterisk
>
> Once the callerid.pl file has captured the callerid data, the number needs
> to be loaded into asterisk. This is done using AGI functions within
> asterisk.
>
> Firstly create a perl script as follows.
>
> #!/usr/bin/perl
> open(INFILE, "/usr/src/myperl/callerid.txt") or die "cannot open file";
> if ($callerID=<INFILE>) {
>   print "SET CALLERID $callerID"};
> close INFILE;
>
> once created, this script should be placed in the AGI directory.
>
> Finally add a line to your extensions.conf file to call this script, an
> example line would be.
>
> Exten=>_.,1,agi,getcallerid.pl
>
> Hopefully, this should now leave you with CID working !!
>



More information about the asterisk-dev mailing list