.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Device::Modem::FAQ 3pm" .TH Device::Modem::FAQ 3pm "2020-06-20" "perl v5.30.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Device::Modem::FAQ \- Frequently Asked Questions list about the "Device::Modem" perl extension .ie n .SS "What is ""Device::Modem""?" .el .SS "What is \f(CWDevice::Modem\fP?" .IX Subsection "What is Device::Modem?" \&\f(CW\*(C`Device::Modem\*(C'\fR is a perl extension written in pure perl that allows on to communicate with modems, or generically with \f(CW\*(C`AT command set compliant\*(C'\fR devices connected to your computer via a \fBserial port\fR. .SS "Who is the author of this work?" .IX Subsection "Who is the author of this work?" Cosimo Streppone (cosimo@cpan.org), an Italian guy, who works and enjoys writing perl programs and objects. If you want to know more, go to http://www.streppone.it/cosimo/work/perl/ .SS "\s-1BTW,\s0 what is Perl?" .IX Subsection "BTW, what is Perl?" If you are asking that, probably you are in the wrong place. .PP Perl is a wonderful programming language, that cuts development times, helps developer keep mental health, good life-style, doesn't pollute developer's mind, allows one complete freedom of style, and (from perl manual), \fIgives you enough rope to hang yourself\fR. .PP Some starting points: .IP "\(bu" 4 \- Reference site for Perl programmers .IP "\(bu" 4 \- Perl Mongers home .IP "\(bu" 4 \- Comprehensive Perl Archive Network .IP "\(bu" 4 \- Higher Perl souls .IP "\(bu" 4 \- Large Perl community .ie n .SS "What is an ""AT command set""?" .el .SS "What is an \f(CWAT command set\fP?" .IX Subsection "What is an AT command set?" It is a set of standard commands, also called \f(CW\*(C`Hayes\*(C'\fR, in which (almost) all commands begin with \f(CW\*(C`AT\*(C'\fR prefix and they allow one to control a modem, router, whatever device. Also cellular phones work with a subset of standard \f(CW\*(C`AT\*(C'\fR commands. .SS "What is a modem?" .IX Subsection "What is a modem?" What the heck are you doing here? http://www.google.com/search?q=Tech+glossary+modem .ie n .SS "What are the requisites of ""Device::Modem""?" .el .SS "What are the requisites of \f(CWDevice::Modem\fP?" .IX Subsection "What are the requisites of Device::Modem?" You must have: .IP "\(bu" 4 A working computer with a standard \s-1RS\-232\s0 serial port .IP "\(bu" 4 An AT-compliant device (a modem will do perfectly here :\-) .IP "\(bu" 4 A working Perl installation .IP "\(bu" 4 \&\f(CW\*(C`Device::SerialPort\*(C'\fR module installed if you are on some unix platform. \&\f(CW\*(C`Win32::SerialPort\*(C'\fR module installed if you are on Win32 platform. .SS "Is it multi-platform?" .IX Subsection "Is it multi-platform?" \&\f(CW\*(C`Device::Modem\*(C'\fR works close to the serial port communication layer, which varies on many platforms. It relies on \f(CW\*(C`Device::SerialPort\*(C'\fR and \&\f(CW\*(C`Win32::SerialPort\*(C'\fR modules for all low-level communication layer. .PP It tries to build a platform independent layer above these two low-level modules, so developers don't need to distinguish among different platforms. .PP It's been reported to work on \f(CW\*(C`Win32\*(C'\fR, \f(CW\*(C`Linux\*(C'\fR, \f(CW\*(C`Mac OS X\*(C'\fR, \f(CW\*(C`FreeBSD\*(C'\fR, \&\f(CW\*(C`NetBSD\*(C'\fR, \f(CW\*(C`OpenBSD\*(C'\fR, \f(CW\*(C`ARM\-Linux\*(C'\fR and \f(CW\*(C`Solaris\*(C'\fR. .SS "Can I use it for my commercial application?" .IX Subsection "Can I use it for my commercial application?" Yes, it is allowed by its license, that is the same as Perl language. If you are using it in a commercial package, or plan to do so, please inform the author (Cosimo Streppone, cosimo@cpan.org ). Thank you. .SS "Why the [insert_you_preferred_feature_here] does not work?" .IX Subsection "Why the [insert_you_preferred_feature_here] does not work?" This is an open-source software developed in my little home spare time and for my personal interest and amusement. This module has a test suite, but it is not very extensive, so it is possible that some feature X does not work, or it is not implemented yet or I cannot test it. .PP If you are in this situation, please contact me and provide the following information: .IP "\(bu" 4 Your operating system version and architecture. Complete output of \f(CW\*(C`perl \-V\*(C'\fR command is good for this. .IP "\(bu" 4 Your perl version. Again \f(CW\*(C`perl \-V\*(C'\fR. .IP "\(bu" 4 Your \f(CW\*(C`Device::Modem\*(C'\fR, \f(CW\*(C`Device::SerialPort\*(C'\fR and (if you are using it) \&\f(CW\*(C`Device::Gsm\*(C'\fR version. In case of doubt, send the output of: .Sp .Vb 1 \& perl \-MDevice::Modem \-le \*(Aqprint Device::Modem\->VERSION\*(Aq .Ve .PP Thank you. .SS "Do XModem transfers work?" .IX Subsection "Do XModem transfers work?" This is definitely reported to be working by several users, who also contributed patches and tested the feature. .PP Otherwise, just look at Aaron Mitti's Device::SerialPort::Xmodem \&\s-1CPAN\s0 module. .SS "XModem sucks. What about ZModem?" .IX Subsection "XModem sucks. What about ZModem?" It might seem that XModem and ZModem should be well over dead at this point. But, looks like several old/new devices still support them. .PP So, \fBZModem\fR support has been contributed by a user, and will be added to the main release Soon(tm). .ie n .SS "Why I keep getting ""can't open device: /dev/xxxxx at .../Modem.pm line 468"" errors ?" .el .SS "Why I keep getting ``can't open device: /dev/xxxxx at .../Modem.pm line 468'' errors ?" .IX Subsection "Why I keep getting can't open device: /dev/xxxxx at .../Modem.pm line 468 errors ?" First of all, be sure to use \fBDevice::Modem version 1.52+\fR. .PP Probably you don't have the correct permissions to access your modem device (usually /dev/modem, or /dev/ttyS0 on unix and \s-1COM1/COM2/...\s0 on windows). Or you are trying to use the examples that come with Device::Modem distribution with an older version (Device::Modem <= 1.33). .PP In this case, you should upgrade to Device::Modem 1.52+. .ie n .SS "Why I get the error ""Can't call method ""purge_all"" on an undefined value at .../Modem.pm line 545"" ?" .el .SS "Why I get the error ``Can't call method ''purge_all`` on an undefined value at .../Modem.pm line 545'' ?" .IX Subsection "Why I get the error Can't call method purge_all on an undefined value at .../Modem.pm line 545 ?" Again, \fBupgrade to Device::Modem version 1.52+\fR. .PP If you get this error, it means that the communication port could not be opened. Most probably you don't have permissions to access your serial port, or you have used a wrong device name (check your device entry in \f(CW\*(C`/dev\*(C'\fR folder). .PP Since version 1.52, \f(CW\*(C`Device::Modem::connect()\*(C'\fR will try to automatically reconnect if your port connection shuts down, or the \f(CW\*(C`Device::SerialPort\*(C'\fR, or \f(CW\*(C`Win32::SerialPort\*(C'\fR underlying object is deleted or invalidated. .PP You should really upgrade to Device::Modem 1.52+. .SS "Can I make voice calls with this modem?" .IX Subsection "Can I make voice calls with this modem?" \&\fBNo\fR. What you can do, is voice call \fBdialing\fR. After the dialing though, you have to speak. Your computer can not do that, unless you have a \s-1PBX\s0 board, at least not with Device::Modem. .SS "This module is pretty slow. What can I do?" .IX Subsection "This module is pretty slow. What can I do?" Make sure you are using that latest version. From version 1.30, the main \*(L"send-command\*(R" / \*(L"wait-answer\*(R" cycle has been sensibly improved for speed, though you now have to specify a timeout if you want the module to wait an answer if modem is not ready. .PP Probably this is the better compromise... .SS "Can I make a [insert_your_preferred_number_here] euro donation to you for this fantastic module?" .IX Subsection "Can I make a [insert_your_preferred_number_here] euro donation to you for this fantastic module?" Oh, yes! Please feel free to contact cosimo@cpan.org to decide details about this... :\-) .SS "I think you are a ?#!x$*z!#(!* and your software sucks" .IX Subsection "I think you are a ?#!x$*z!#(!* and your software sucks" Uh. .PP Please contact me, so I can improve my software design, ideas and coding, but only if you explain the reasons of your criticism. Thank you.