logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Device::Modem::FAQ - Frequently Asked Questions list about the "Device::Modem" perl extension

Contents

Name

       Device::Modem::FAQ - Frequently Asked Questions list about the "Device::Modem" perl extension

   Whatis"Device::Modem"?
       "Device::Modem" is a perl extension written in pure perl that allows on to communicate with modems, or
       generically with "AT command set compliant" devices connected to your computer via a serialport.

   Whoistheauthorofthiswork?
       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/BTW,whatisPerl?
       If you are asking that, probably you are in the wrong place.

       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), givesyouenoughropetohangyourself.

       Some starting points:

       •   <http://www.perl.com> - Reference site for Perl programmers

       •   <http://www.perl.org> - Perl Mongers home

       •   <http://cpan.perl.org> - Comprehensive Perl Archive Network

       •   <http://www.perlmonks.org> - Higher Perl souls

       •   <http://use.perl.org> - Large Perl community

   Whatisan"ATcommandset"?
       It  is  a  set  of standard commands, also called "Hayes", in which (almost) all commands begin with "AT"
       prefix and they allow one to control a modem, router, whatever device. Also cellular phones work  with  a
       subset of standard "AT" commands.

   Whatisamodem?
       What the heck are you doing here? http://www.google.com/search?q=Tech+glossary+modem

   Whataretherequisitesof"Device::Modem"?
       You must have:

       •   A working computer with a standard RS-232 serial port

       •   An AT-compliant device (a modem will do perfectly here :-)

       •   A working Perl installation

       •   "Device::SerialPort"  module  installed if you are on some unix platform.  "Win32::SerialPort" module
           installed if you are on Win32 platform.

   Isitmulti-platform?
       "Device::Modem" works close to the serial port communication layer, which varies on  many  platforms.  It
       relies on "Device::SerialPort" and "Win32::SerialPort" modules for all low-level communication layer.

       It  tries  to  build  a platform independent layer above these two low-level modules, so developers don't
       need to distinguish among different platforms.

       It's been reported to work on "Win32", "Linux", "Mac OS X", "FreeBSD", "NetBSD",  "OpenBSD",  "ARM-Linux"
       and "Solaris".

   CanIuseitformycommercialapplication?
       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
       <mailto:cosimo@cpan.org>).  Thank you.

   Whythe[insert_you_preferred_feature_here]doesnotwork?
       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.

       If  you  are  in  this  situation,  please  contact me <mailto:cosimo@cpan.org> and provide the following
       information:

       •   Your operating system version and architecture.  Complete output of "perl -V"  command  is  good  for
           this.

       •   Your perl version.  Again "perl -V".

       •   Your  "Device::Modem", "Device::SerialPort" and (if you are using it) "Device::Gsm" version.  In case
           of doubt, send the output of:

                   perl -MDevice::Modem -le 'print Device::Modem->VERSION'

       Thank you.

   DoXModemtransferswork?
       This is definitely reported to be working by several users, who also contributed patches and  tested  the
       feature.

       Otherwise, just look at Aaron Mitti's Device::SerialPort::Xmodem CPAN module.

   XModemsucks.WhataboutZModem?
       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.

       So, ZModem support has been contributed by a user, and will be added to the main release Soon(tm).

   WhyIkeepgetting"can'topendevice:/dev/xxxxxat.../Modem.pmline468"errors?
       First of all, be sure to use Device::Modemversion1.52+.

       Probably you don't have the correct permissions to access  your  modem  device  (usually  /dev/modem,  or
       /dev/ttyS0  on  unix and COM1/COM2/... on windows).  Or you are trying to use the examples that come with
       Device::Modem distribution with an older version (Device::Modem <= 1.33).

       In this case, you should upgrade to Device::Modem 1.52+.

   WhyIgettheerror"Can'tcallmethod"purge_all"onanundefinedvalueat.../Modem.pmline545"?
       Again, upgradetoDevice::Modemversion1.52+.

       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 "/dev" folder).

       Since  version  1.52,  "Device::Modem::connect()"  will  try  to  automatically  reconnect  if  your port
       connection shuts down, or the "Device::SerialPort", or "Win32::SerialPort" underlying object  is  deleted
       or invalidated.

       You should really upgrade to Device::Modem 1.52+.

   CanImakevoicecallswiththismodem?No.  What you can do, is voice call dialing.  After the dialing though, you have to speak.  Your computer
       can not do that, unless you have a PBX board, at least not with Device::Modem.

   Thismoduleisprettyslow.WhatcanIdo?
       Make sure you are using that latest version. From version 1.30, the main "send-command"  /  "wait-answer"
       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.

       Probably this is the better compromise...

   CanImakea[insert_your_preferred_number_here]eurodonationtoyouforthisfantasticmodule?
       Oh, yes!  Please feel free to contact cosimo@cpan.org to decide details about this... :-)

   Ithinkyouarea?#!x$*z!#(!*andyoursoftwaresucks
       Uh.

       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.

perl v5.30.3                                       2020-06-20                            Device::Modem::FAQ(3pm)

See Also