The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

VoiceXML::Client::DeviceHandle

NAME

        VoiceXML::Client::DeviceHandle - Encapsulates the communications device (eg Voice Modem)

SYNOPSIS

The VoiceXML::Client::DeviceHandle module is meant to serve as an abstract base class for voice communication devices.

It provides the interface VoiceXML::Client::DeviceHandle::XXX modules are expected to implement.

AUTHOR

LICENSE

    VoiceXML::Client::DeviceHandle module, device handle api based on the VOCP voice messaging system package
    VOCP::Device.
    
    Copyright (C) 2002,2008 Patrick Deegan
    All rights reserved

This file is part of VoiceXML::Client.

    VoiceXML::Client is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    VoiceXML::Client is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with VoiceXML::Client.  If not, see <http://www.gnu.org/licenses/>.

new [PARAMHREF]

Creates a new instance, calling init() with PARAMHREF if passed. Returns a new blessed object.

init PARAMHREF

Called by new(). This method is used in derived classes to perform startup initialisation. Override this method if required.

Subclass method stubs

The following methods are in this parent class (but only implemented as stubs) in order to define a common interface for all VoiceXML::Client::DeviceHandle subclasses.

These methods are actually heavily based on the Modem::Vgetty package methods and the interface should be considered tentative and expected to change as new devices are added (eg a SIP voice over IP interface would be nice).

beep FREQUENCY LENGTH

Sends a beep through the chosen device using given frequency (HZ) and length (in miliseconds). Returns a defined and true value on success.

dial DESTINATION

Connects to destination. Returns defined & true on success.

play PLAYPARAM

plays a sound (file, text-to-speech, whatever is appropriate) base on PLAYPARAM. May or may not block during play depending on device implementation. Returns true on success.

record TOFILE

Records input from user to device to file TOFILE. Returns true on success.

wait TIME

Simply waits for TIME seconds. Device should accept/queue user input during interval.

waitFor STATE

Waits until STATE is reached/returned by device. Device should accept/queue user input during interval.

stop

Immediately stop any current activity (wait, play, record, etc.).

blocking_play PLAYTHIS

play PLAYTHIS and return only when done.

inputMode [MODE]

Returns the current input mode (single- or multi- digit currently supported), optionally setting to MODE, if passed - use the %VoiceXML::Client::DeviceHandle::InputMode hash for valid MODE values.

readnum PLAYTHIS TIMEOUT [REPEATTIMES]

Plays the PLAYTHIS and then waits for the sequence of the digit input finished. If no are entered within TIMEOUT seconds, it re-plays the message again. It returns failure (undefined value) if no digits are entered after the message has been played REPEATTIMES (defaults to 3) times.

It returns a string (a sequence of DTMF tones 0-9,A-D and `*') without the final stop key (normally '#').

validDataFormats

Returns an array ref of valid data formats (eg 'rmd', 'wav', 'au') the device will accept.