T h e   U l t i m a t e   T e l e m a r k e t i n g    P C   B o a r d


This is a beta information - 18/Nov/98


Input/Output Addressing Space

The board uses the I/O address 0x280 (hexadecimal). If you have an other device using this address, you MUST change it to other one.
You may not change the board's address. It uses just the address's range 0x280 till 0x28F.

There is a lot of functions that you can access BUT if they are not documented here, do not use, they can hang up your computer and produces
unexpected results which just you are responsible for that.

Due the hurry in those first commercial applications, some functions showed in this demo can not be explained, just do not use it. You are going to
receive an actual information as soon as possible.

For more technical information, request by e-mail.


CyberVox  Block Diagram

 


 Operation  

The board as a connection to the telephone line and a connection to the headset's operator.

Let's see the board as a telephone device that has an extension inside where we are going to refer as the headset connection.

When this virtual telephone is disconnect from telephone line, we are going to assume an ONHOOK condition and when the phone is
ONLINE we are going to call this situation as OFFHOOK. The same can apply about the operator's headset, that behaviors as a regular
telephone extension.

You may put the board connected to the telephone line through the function OffHkLine (remember Off Hook Line). Due the Clipper's
function name restrictions just those first 10 characters are considered. So, we had to decided which best name were chosen to remember
those functions.

Remember when you put the board connected to the phone system, you must always keep a valid connection giving access to the line with
the board or with the headset, otherwise the phone line connection will drop down.

One more time: There's a lot of other function here but do not use it UNLESS they are documented here.
 


What's new ?

New functions

Board()         Rring()    OnHookAll()     OffHookAll()

Functions UpDates

DspVer()        Play()     Rec()     ResetDsp()    Wait4Ring()  


Functions

Function..........  OnHkLine()
Meaning...........  On Hook Line - Simulates a condition like put the phone
                    on hook,
turns off the telephone.
Input Parameter...  none
Output Parameter..  none

Example...........  OnHkLine()
                    quit


Function..........  OffHkLine()
Meaning...........  Off Hook Line - Disconnects the board from the telephone
                    line.
Input Parameter...  none
Output Parameter..  none

Example...........  OffHkLine()
                    quit


Function..........  OnHkHead()
Meaning...........  On Hook HeadSet - Puts the headset connection through
                    the line.

                    It is exactly as a telephone extension.
Input Parameter...  none
Output Parameter..  none

Example...........  OnHkHead()
                    quit


Function..........  OffHkHead()
Meaning...........  Off Hook HeadSet - Puts the headset connection through
                    the line
. Same as you put the telephone extension out off
                    the line

Input Parameter...  none
Output Parameter..  none

Example...........  OffHkHead()
                    quit


Function..........  OnHookAll()
Meaning...........  On Hook Line AND HeadSet - This is the functions OnHkLine()
                    and OnHkHead() executed at same time

Input Parameter...  none
Output Parameter..  none

Example...........  OnHookAll()              // Turns ON both Line and HeadSet
                    quit


Function..........  OffHookAll()
Meaning...........  Off Hook Line AND HeadSet - This is the functions OffHkLine()
                    and OffHkHead() executed at same time

Input Parameter...  none
Output Parameter..  none

Example...........  OffHookAll()              // Turns OFF both Line and HeadSet
                    quit


Function..........  DialPulse( <string> )
Meaning...........  Allows you to make a call to somebody phone number.
                    Please, watch those examples to understand the correct
                    phone timing signaling.
Input Parameter...  The number string to be dialed. You may also have some
                    extra characters to be dialed with special meaning: a comma
                    (,) means a delay of one second and the pound signal (#)
                    means a flash in line (offline, half second delay, online).
                    Some PABXs systems needs this mechanism to get outside line.
Output Parameter..  none

Example...........  OffHkLine()                 // put the line in OffHook
                    inkey(2)                    // wait for dial tone signal
                    DialPulse("5551234")        // dial string 551234
                    OffHkHead()                 // switch to headset
                    inkey(0)                    // wait for a key to hangup
                    OnHookAll()                 // hangup line and headset
                    quit                        // quit program


Function..........  DialTone( <string> [,level] )
Meaning...........  Dial a string number using the Dual Tone Multi Frequency
                    method. Be sure that your local telephony company's
                    central allows that, otherwise, you will not call the
                    desired number, getting a continuos tone line after a
                    string had been dialed.
Input Parameter...  The same facilities from the function DIALPULSE can
                    be used here like comma (,) and the pound signal (#).
                    An optional numeric parameter "level" can be used. This is the
                    audio level to be dialed. Some PABXs can not recognize DTMF
                    tones at full level. You may use the following levels:
                    0 = full level
                    1 = 1/2  level
                    2 = 1/4  level
                    3 = 1/8  level
                    4 = 1/16 level
                    If you do not send this parameter, the function will assume
                    the level 0 (full level).
Output Parameter..  none

Example...........  OffHkLine()                 // put the line in OffHook
                    inkey(2)                    // wait for dial tone signal
                    DialTone("5551234")         // dial string 551234
                    OffHkHead()                 // switch to headset
                    inkey(0)                    // wait for a key to hangup
                    OnHookAll()                 // hangup line and headset
                    quit                        // quit program


Function..........  Ring()
Meaning...........  Detects the ring signal. If somebody is calling you,
                    this function will detect it to you.
Input Parameter...  none
Output Parameter..  returns the number 1 when the ring signal is valid and
                    the number 0 when not.
See Also..........  You may use the Extended Function WAIT4RING()
Observation.......  use this function just if you have the new CyberVox board.
                    See BOARD() function
                    to more details. Any doubt, just use RRING() function.

Example...........  OnHookAll()         // On Hook Line and HeadSet
                    do while ! Ring()   // wait for ring
                       inkey(0.1)       // little delay
                    enddo               //
                    OffHkHead()         // accept the call in HeadSet
                    inkey(0)            // wait for a key
                    OnHkHead()          // Ends the call
                    quit                // quit the program


Function..........  Rring()
Meaning...........  Detects the ring signal. If somebody is calling you,
                    this function will detect it to you.
Input Parameter...  none
Output Parameter..  returns the number 1 when the ring signal is valid and
                    the number 0 when not.
See Also..........  You may use the Extended Function WAIT4RING()
Observation.......  The hardware are different in boards NEW and OLD. The ring
                    detect circuit are a bit different. This function will detect
                    your board and return the correct value.

Example...........  OnHookAll()         // On Hook Line and HeadSet
                    do while ! Rring()  // wait for ring
                       inkey(0.1)       // little delay
                    enddo               //
                    OffHkHead()         // accept the call in HeadSet
                    inkey(0)            // wait for a key
                    OnHkHead()          // Ends the call
                    quit                // quit the program


Function..........  DspVer()
Meaning...........  Returns the DSP's firmware version. You may use this
                    function to determine if the dsp board is installed.
Input Parameter...  none
Output Parameter..  Returns a number about the firmware version. The current
                    version is 8 (November 1998). The function will return a -1
                    if an error occur.
  

Example...........  if DspVer() = -1
                       ? "Error during DspVer() function"
                       quit
                    endif


Function..........  Play( <filename> )
Meaning...........  Plays a file previously recorded
Input Parameter...  filename, a string with the file's name
Output Parameter..  the total bytes played or -1 if an error occur
                    like file not found, board error, diskfull, etc.

Important.........  The board uses a proprietary audio format that can be
                    used with a large of commercial programs. The audio format
                    used by the board is:
                    PCM a-law companded, sampling frequency of 9765 kHz;
                    8 bits; mono, unsigned data.
Observation.......  You may use the keys <SHIFT> to abort the Play function.

Example...........  OnHookAll()                  // On Hook Line and HeadSet
                    do while ! Ring()           // wait for ring
                       inkey(0.1)                // little delay
                    enddo                        //
                    OffHkLine()                  // accept the call in HeadSet
                    inkey(1)                     // wait a second
                    ptime := play("test.vox")   // plays a file previous recorded file
                    if ptime = -1                // check for error
                       ? "Error in Play() function"
                       quit
                    endif
                    OnHkLine()                   // Ends the call

                    quit                         // quit the program


Function..........  Rec( <filename>, TimeLength )
Meaning...........  Records a file during the TimeLegth period which is an
                    32 bits integer that can afford around 109 years time
                    recording !!!
Input Parameter...  filename; time in seconds to record
Output Parameter..  bytes recorded or -1 if an error occur like diskfull, path not
                    found, board error, etc

Observation.......  You may use the keys <SHIFT> to abort the Record function.

Example...........  OnHookAll()               // On Hook Line and HeadSet
                    do while ! Ring()         // wait for ring
                       inkey(0.1)             // little delay
                    enddo                     //
                    OffHkLine()               // accept the call in HeadSet
                    rt := Rec("test.vox", 5)  // records a 5 seconds file
                    if rt = -1
                       ? "Error during Rec() function"
                       quit
                    endif
                    ? rt
                    ?? "  bytes were recorded !"
                    Play("test.vox")           // plays the file

                    OnHkLine()                 // Ends the call
                    quit                       // quit the program


Function..........  ResetDsp()
Meaning...........  Resets the board putting it in a ready mode
Input Parameter...  none
Output Parameter..  .T. if reset was Ok or .F. if an error occur
Observation.......  Some seconds are spended to execute this function until
                    an error are detect. Just wait, your system is not in a
                    HANG condition !

Example...........  if ResetDsp()   // resets the board and leave it in ready mode
                    quit            // quits program


Function..........  Wait4Ring()
Meaning...........  Wait for ring - Waits for n rings until the board
                    accepts the incoming call.
Input Parameter...  number of rings to be accepted
Output Parameter..  .T. if a signal arrived or .F. if ESC key was pressed
                    aborting the function

Example...........  OnHookAll()         // On Hook Line and HeadSet
                    Wait4Ring(2)        // wait for the second ring
                    OffHkHead()         // accept the call in HeadSet
                    inkey(0)            // wait for a key
                    OnHkHead()          // Ends the call
                    quit                // quit the program


Function..........  Board()
Meaning...........  Detects hardware version.
Input Parameter...  none
Output Parameter..  1 for the "small board" produced after 1997.
                    0 to the versions produced before 1997
Observation.......  The hardware difference between both boards is just the RING
                    detect circuit. Use function RING() JUST to the NEW board.
                    The best thing to do is: use the RRING() function that will
                    automatically detects your hardware

Example...........  If Board() = 1      // New board returns 1
                       ? "New Board"
                    else
                       ? "Old Board"
                    endif
                    quit                // quit the program

 


   Back to Main Page  


info@cybervox.freeservers.com