If you want/need to contact me, i'm at scottf@unr.edu
"Linux Journal" and several other mag's have been printing stories focused on the SOHO (Small-office/Home-office) user, who needs a system that can do books, scheduling, or any other sort of business-related procedures.Admittedly, I'm a voice mail geek. I have gone through demo/trial versions of Talkworks, Bitware, and other voice mail system finding that they all have a somewhat complicated setup, but most importantly run only on Windows.
So, I found vgetty, and several available scripts (mvm is a great set of scripts). Also, I looked at kvoice (another great program). The only thing though is that they probably weren't suited for a novice linux user to setup and maintain a voice-mail system, which seems to be essential today to sound "professional" over the phone.
And so I hatched the idea of a basic voice-mail system using 1 vgetty script and a simple graphical front-end, but then saw that the ability to expan and incorporate the voice-mail system over the network was something that could be EXTREMELY useful. Remote-access to your voice-mail over a network using audio streaming, along with the ability to run it as a simple answering machine.
First off, the non-technical side of potential features:- Ability to handle voice/fax/data calls on a single line
- Unlimited mailboxes
- Extremely flexible and easy mailbox setup
- Graphical front-end for message/fax retrieval
- Ability to access voice/fax messages over the network (remote retrieval) with the possiblity of audio streaming for fast playback.
- Faxback
- E-mail/pager notification if a message is received
- Email-to-voice synthesis to send voice messages from e-mail to a voice mail system (local or remote)
- and whatever else may come up in the process...
The project will probably have 3 main parts:1) script that interacts with vgetty for parsing the mailbox config file, and
handles the calls (DTMF tones, playback/recording, etc...)2) Client GUI (GTK+ preferably) for message retrieval/playback, and
message handling (delete, move, etc...)3) Server (this could probably use the FTP server. add an account to the system
with their ftp root as the message directory.)Other possiblities:
* Web interface
* Fax-back / document retrieval (not too hard to do)Questions:
* it looks like vgetty needs each DTMF signal to be in the form of * + Numbers + #
is there a way for single key-presses so they just need to enter the "Numbers" instead?--------------------------------------------------------------------------
Duties of the vgetty script:
* parse mailbox config file
* play main greeting
* if a branch exists, wait for DTMF for 5 seconds, then if
nothing, replay greeting.
* if no branch exists, send BEEP, record message, and save as
"MonthDayYear-Hour:Minute-Owner.voice" (standard sound
filetype? au? wav? realaudio for streaming over network? >:)
* if a fax call is received, save fax as
"MonthDayYear-Hour:Minute-Owner.fax"
(convert to 1 ps file by combining separate pages using gs)* Interpret global commands:
At any time, the caller can press the following:
* "0" will take them up one mailbox level to where they
came from.
* the mailbox "Number" to access a mailbox directly.-----------------------------------------------------------
mailbox config file
-general setup-
modem=/dev/tty**
modem device
(default = /dev/modem)
autoanswer=yes/no
automatically answer each incoming call?
(default = yes)
rings=#
number of rings for pick-up
(default = 4)
Number Name Owner Greeting Branches
Number Name Owner Greeting Branches
...Where: (* denotes a necessary field) *Number: number of mailbox in the system. should be at least 3 digits so it doesn't conflict with branch numbers. *Name: the name of the mailbox. every system needs a "root" mailbox because that is the first mailbox the person will encounter. *Owner: local user name of the owner of the mailbox. *Greeting: the greeting played when they enter that mailbox. Branches: Mailbox "Name"s that users can access from the current mailbox. the order the names determines whether they press "1", "2", etc. to get to those mailboxes. it starts at "1". Example config file: -- start ------------------------------------------ modem=/dev/ttyS0 autoanswer=yes rings=6 000 root root welcome.au s cott,vince,business 001 business scottf business.au 069 scottf scottf scottmess.au 666 vince vb vincemess.au -- end -------------------------------------------- so, modem (/dev/ttyS0) automaticaly picks up (autoanswer=yes) after 6 rings (rings=6). the root mailbox (#000) is owned by root, will play welcome.au, and then the user can move to mailbox scott (press 1), vince (press 2), or business (press 3). mailbox business (#001) is owned by scottf, and will play business.au when the user enters.mailbox scott (#069) is owned by scottf also, and will play scottmess.au when the user enters.finally, mailbox vince (#666) is owned by vb, and will play scottmess.au when the user enters.since mailboxes business, scott, and vince are "dead-ends" (no branches), they are places where voice-messages can be left (for the owner of the mailbox) run-through: 1) caller rings in and the voice-mail picks up. 2) the "welcome.au" file is played because it's the greeting for the "root" mailbox. * caller can press "1" to leave a message for scott, "2" for vince, and "3" to leave a message for business -or- press the 3-digit mailbox # to move directly to another mailbox. 3) if they pressed "3", then they move to the business mailbox and "business.au" is played. * caller can leave a message for the business -or- they can press "0" to move back up a menu and go back to the "main" mailbox -or- then can press the 3-digit mailbox # of another mailbox to go there. Duties of the gui app -------------------------------------------------------------------------- * Locate messages for the currently logged-in user (parse message filenames and look at the owner field) * Play/Stop/Rewind * Delete * Memo (leave voice memo message in mailbox) * Sending Faxes * Phone Number * Receipient Name * Receipient Address/Location * Subject "Attention", "Confidential", etc... * Note * Receiving Faxes (manually, only if local and root) * Destination Directory * Answer now