Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I know that there is a way to make Linux dial out using a modem.

Is there a way to program Linux (using a library/device) to

  1. pick up the modem (record phone calls) etc?
  2. see caller id?
share|improve this question

5 Answers 5

I wouldn't recommend using a typical data/voice modem for this.

Even 15 years ago, when modems were current technology and there was lots of competition for features and technology, they were a pretty low-grade way to do the sorts of things you're asking for. Now, after a decade of race-to-the-bottom activity exemplified by the near universal takeover of softmodems, I think you'll be lucky to even get to the proof-of-concept stage with a consumer grade modem.

Back in the day, we did this sort of thing with Dialogic boards. A great many of the IVR systems you've used were built on Dialogic, so much so that there's still a thriving used-board market for those companies keeping ancient telephony systems going.

The current Dialogic boards most directly relevant to your question appear to be their Diva and Blue lines.

The Diva boards are more like what I'm familiar with from the old days. The fact that they now come in PCIe versions reassures me that Dialogic isn't a shambling zombie company, subsisting on the braaaains outmoded applications of old IVR systems providers. You can get a 2-port board for around $600.

The Blue boards are specifically targeted at Linux boxes running Asterisk. The main problem I see with the Blue boards is that even the entry-level board requires a T1 line. (Or E1, outside North America, Japan and Korea.) That is, a 24-channel digital trunk line from the telephone company. The last I heard, this cost several hundred dollars a month. Unless you're looking to move beyond about 4 lines, there's probably not a good reason to start off at this level. A lot of telephony equipment does start off at this level, though, since automated telephony does usually end up requiring many lines. Bottom line, although an entry-level Blue board is more expensive than the entry-level Diva board linked above, it's a lot cheaper than a T1 Diva board.

share|improve this answer
1  
In all fairness, while I dislike the concept of proprietary software/hardware interfaces as exemplified by softmodems/winmodems, 15 years ago a lot of computers didn't have the raw processing power needed to do digital signal processing reliably at the same time that they did everything else, and the fact that the DSP definitely needed real-time priority caused everything else to stutter. Even cheap computers today can probably do the DSP for a V.90 or V.92 link with both hands tied behind their backs. –  Michael Kjörling Aug 3 '12 at 12:35
1  
You are right in principle, and it is that principle that lets the Dialogic Blue boards be much cheaper than the feature-equivalent in the Diva line. However, it's all about the implementation; that means drivers here. Linux drivers for traditionally Windows-only hardware is often of poor quality, particularly when we're talking about $10 peripherals. There's a lot more margin in Dialogic's product line, so they can afford to pay the software and firmware developers to do things right. –  Warren Young Aug 3 '12 at 13:36

You could try mgetty.

Mgetty is a ‘‘smart’’ getty replacement, designed to be used with hayes compatible data and data/fax modems. Mgetty knows about modem initial- ization, manual modem answering (so your modem doesn’t answer if the machine isn’t ready), UUCP locking (so you can use the same device for dial-in and dial-out). Mgetty provides very extensive logging facili- ties.

Also see Vgetty basically turns your modem into an answering machine and adds capability to mgetty.

Here are other resources on the topic:

share|improve this answer

Run a virtual machine with the serial port passed through to Windows 95 as OS. Set it up to run on an "internal" network, so no one from outside can break into that buggy os.

Most voice-modems came with software for Windows...

Update: Thanks for the downvote.

I had this problem in the past and did try my very best with vgetty. The sad thing about it is that it lacks all the nice features of a integrated solution that was provided by the enclosed windows-software. Back then virtualization was unknown... - that would have been the working solution (with the least effort).

share|improve this answer

The easiest way to use linux to answer the phone is with the Asterisk program. You should be able to yum install asterisk on your linux machine. You then connect an analog adapter to your network and connect your phone line through it. This will allow you to answer the call, see the caller id if the caller id information is sent from your LEC, record the call, and have the caller leave a voice mail message. I have used this setup numerous times to connect analog lines through a linux computer. I do not know of a way to use a standard modem to do this.

share|improve this answer
1  
I thought about Asterisk at first, but apparently you can't use a modem with it (correct me if I'm wrong), you need specific hardware. –  Renan Aug 3 '12 at 2:47
5  
That is correct, you will not be able to use your modem with asterisk, but a basic Linksys SPA 3102 analog adapter will provide you with a great deal of functionality and will ultimately be easier, in my experience, to set up than the modem. Those ATA are less than $50. –  Rmtel Aug 3 '12 at 3:17
    
This is completely anecdotal, but I actually did run an asterisk server using an intel 537 softmodem PCI card, which was basically the same hardware as the Digium X100P. It was slow and buggy, but I got it cheap. I doubt you'd find one of them these days. I'd recommend you use something like the Cisco/Linksys adapter mentioned above. –  jsbillings Aug 3 '12 at 19:35

You could try taking a look at mgetty, though I never tried anything of the sorts.

Smart Modem getty replacement Mgetty is a versatile program to handle all aspects of a modem under Unix. This package includes basic modem data capabilities. Install mgetty-fax to get the additional functionality for fax. Install mgetty-voice to get the functionality to operate voice modems. Mgetty is also configurable to select programs other than login for special connections (eg: uucico, fido or other programs) depending on the login userid. It also supports caller-id if the modem and phone line supply it, and can deny connections based on originating telephone number.

Description taken from http://linux.about.com/cs/linux101/g/mgetty.htm

I know that Debian has it: http://packages.qa.debian.org/m/mgetty.html

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.