bkiahg has asked for the wisdom of the Perl Monks concerning the following question:
Hello Wise Monks,
I come once again seeking your guidance. I am looking to be pointed in the right direction of some good reading material. What I am trying to do is take control of a modem and whenever someone dials in:
a) Pull the caller id or ani information off of it. and
b) Wait for further touchtone commands.
I did a search on cpan and the ones I looked at really didn't fit my problem. Some would answer but would want and require voice software (Modem::Vgetty) others would take control and dial out (Device::Modem). Any thoughts, ideas, articles, code snippets, insults would be greatly appreciated.
Re: Phone Modem
by BUU (Prior) on Jun 28, 2005 at 19:09 UTC
|
Just a thought, you may way to look in to Asterisk. While it does a lot more than what you've mentioned, it has a very nice interface for doing so. It has a nifty little feature called "AGI" scripts, which are similar to CGI scripts in that it will execute a program every time it gets a phone call, then provides a nice interface for that script to communicate with the caller. | [reply] |
|
I will certainly look into this. Thank you for that direction.
| [reply] |
Re: Phone Modem
by waswas-fng (Curate) on Jun 28, 2005 at 18:38 UTC
|
Welp, you can do "A" just by reading from the comm line -- the modem if it supports CallerID or ANI will spit out the phone number on ring. "B" get more complicated -- on windows there is a API for extended voicemail modems called TAPI. As far as I know there is no direct perl binding to that. An article that talks about managing a modem with perl in windows is here
now, your post makes me think you are trying to do this on unix. in that case Device::vgetty is the way to go. You can get "B" by using the "RECEIVE_DTMF" event. This will tell you what DTMF was received (0-9,*,#). There is a nice example of this in the POD for Modem::Vgetty. "A" then becomes diffucult because I do not think that vgetty reports callerid as an event -- nor have I found a way to pull that from the modem directly when vgetty is in control.
| [reply] |
|
More than likely this is going to go on a windows box. Although if there was an easier solution for Unix it could definitely be moved to a different box.
| [reply] |
Re: Phone Modem
by Anonymous Monk on Jun 28, 2005 at 19:32 UTC
|
I did a search on cpan and the ones I looked at really didn't fit my problem.
Then you need to look for a non-perl solution.
| [reply] |
|
Not necessarily. Just because a search didn’t turn up exactly what I was looking for doesn’t mean I should just give up. I accessed another resource of the vast knowledge of the monks here. Maybe it will turn out that a non-perl answer is best for me. Perl is just my language of choice so I wanted to run down ever angle before abandoning it.
| [reply] |
|
It means you should find a non-perl solution and ducttape it to perl somehow.
| [reply] |
|