[Fwd: Vgetty question]

Vandoorselaere Yoann (yoann@coldserver.com)
Mon, 21 Jun 1999 17:49:55 +0000


This is a multi-part message in MIME format.
--------------857D8BC8D15F1834F5603382
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

This is a fwd of a topîc we have currently
with Marc Schaefer...

I'd like to have comment from the vgetty tem

Bye

-- 
             			  -- Yoann
	It is well known that M$ products don't call free() after a malloc().
      The Unix community wish them good luck for their future
developments.
--------------857D8BC8D15F1834F5603382

X-Mozilla-Status2: 00000000
Message-ID: <376A8890.E7D4D9A3@coldserver.com>
Date: Fri, 18 Jun 1999 17:57:36 +0000
From: Vandoorselaere Yoann <yoann@coldserver.com>
X-Mailer: Mozilla 4.6 [en] (X11; I; Linux 2.2.9 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: "mgetty@muc.de" <mgetty@muc.de>
Subject: Vgetty question
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

I'm working on a gui for end user...
It will permit to answer a phone call in voice/data/fax mode.

So my question is :
Is there an library ( written in C ) which could be used
to interact with vgetty ?


-- 
             			  -- Yoann
	It is well known that M$ products don't call free() after a malloc().
      The Unix community wish them good luck for their future
developments.

--------------857D8BC8D15F1834F5603382

X-Mozilla-Status2: 00000000
Message-ID: <376E3034.AFA83C69@coldserver.com>
Date: Mon, 21 Jun 1999 12:29:40 +0000
From: Vandoorselaere Yoann <yoann@coldserver.com>
X-Mailer: Mozilla 4.6 [en] (X11; I; Linux 2.2.9 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Marc SCHAEFER <schaefer@alphanet.ch>
Subject: Re: Vgetty question
References: <376A8890.E7D4D9A3@coldserver.com> <7kf9ke$1fu$1@vulcan.alphanet.ch>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Marc SCHAEFER wrote:
> 
> Vandoorselaere Yoann <yoann@coldserver.com> wrote:
> > Is there an library ( written in C ) which could be used
> > to interact with vgetty ?
> 
> At this time, you can either use the undocumented internal vgetty
> functions (in C), or use the documented voice shell interface
> (in sh, perl or possibly C).

I'm hacking vgetty for 1 week now,
And really, i've got several question...

Excuse me for what i will say,
but vgetty seems to be a software written without thinking to it's
internal design before writing piece of code...

So what i'd like to say is :
All modem driver are in a library... ( libvoice.a which depend on other
librarie...
I was trying to reuse it... it was a pain... so i've started to write an
other library
using piece of your code )...

Why didn't you use module for modem driver: it save lot of memory...
Why AT command for a given modem can't be added by an end user in a text
file...
( without editing the sources )
Why didn't you use standard file locking ?
Why doesn't you act as a server which could serve other applications
using modem
( and no, this is not off topic because vgetty is, as far as i know, the
only software
which has driver for several modem... )
...
Am i wrong ?
Or am i really missing something ?

Here why i've started to hack vgetty :

All started one week ago,
when a friend lent me an Olitec speed voice K56 & V90 modem...
It is a rockwell chipset based modem ).

I've always hated to not use fully the possibility of a given hardware,
so i've said,
I make it work as answering machine / fax / voice conversation... or
i doesn't use it....

My wish, at this moment was to write an gnome application,
which will handle all of that...
( And which will keep the end user which don't know a damn thing
	about what really are computer )..

But here the problem come...
On Unix, you must start with the idea : 
a modem server ( which will handle fax/answering machine )
must be running even if your X window is shutdown...

So, because i doesn't wanted to reinvente the wheel,
i started to check at vgetty...

But it was not done for what i want to do...

I can't share it with another modem application...
Or / And
I can't passe it command from an client application...

>From my point of view,
vgetty should listen on a given port,
waiting for an applications to connect and passes it command...
It should notify the application when it receive a RING...
...

Please, don't blame me,
I'm searching a solution for 1 week now...
And i doesn't want to write code which work only on a single modem...

You have writen modem driver for vgetty...
Share it with other program...

We will not reinvente the wheel.
Here is my problem...

Do you agree ?

Keep in touch...
Bye
-- 
             			  -- Yoann
	It is well known that M$ products don't call free() after a malloc().
      The Unix community wish them good luck for their future
developments.

--------------857D8BC8D15F1834F5603382

X-Mozilla-Status2: 00000000
Message-ID: <376E3FD0.523EFA69@coldserver.com>
Date: Mon, 21 Jun 1999 13:36:16 +0000
From: Vandoorselaere Yoann <yoann@coldserver.com>
X-Mailer: Mozilla 4.6 [en] (X11; I; Linux 2.2.9 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Marc SCHAEFER <schaefer@alphanet.ch>
Subject: Re: Vgetty question
References: <Pine.LNX.3.96.990621130152.9327A-100000@vulcan.alphanet.ch>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Marc SCHAEFER wrote:
> 
> On Mon, 21 Jun 1999, Vandoorselaere Yoann wrote:
> 
> > Excuse me for what i will say, but vgetty seems to be a software written
> > without thinking to it's internal design before writing piece of code...
> 
> It is possible. vgetty is an old project which has been taken over by me.
> The design is simple: it's an add-on to mgetty, and thus it has the
> same design features as mgetty: run by inittab, only running when
> waiting for a call, one instance per modem, etc.
> 
> > Why didn't you use module for modem driver: it save lot of memory...
> 
> Not all OS support dynamic linking; vgetty also run on them. That's
> maybe a reason.
> 
> > Why didn't you use standard file locking ?
> 
> We use mgetty's lock files, which are very good in mgetty application.
> 
> > My wish, at this moment was to write an gnome application,
> > which will handle all of that...
> 
> Already seen kvoice ?  This simply uses vgetty's voice spool. You can
> edit/add/remove messages. It runs asynchronously to vgetty.

You don't understand my point of view...
So ok,
An end user is working on this workstation...
The phone start ringing...
And :
( here's my program )
A window popup : asking
Do you want to answer or to leave the answering machine answer ?
If there no response from the user after X ring, vgetty take the call
( answering machine )...

If the user want to make a dial,
it open the gnome app, enter the number and click on dial..

( i'm talking here ( with dial & answer ) of a real voice communication
)

> 
> > a modem server ( which will handle fax/answering machine )
> > must be running even if your X window is shutdown...
> 
> vgetty, yes, for example.
> 
> > But it was not done for what i want to do...
> 
> What do you exactly want to do ?  If it's a voicemail which can also be
> accessed from X11 graphically to consult/add messages, it already exists.
> Look at http://www-internal.alphanet.ch/~schaefer/mvm/

allready Described 
> 
> > I can't share it with another modem application...
> 
> In my setup, vgetty runs on a ISDN modem (ZyXEL 2864I). It has several
> numbers. Each of those represent a different voicemail (different
> companies). Also, if a user calls fax, modem, or PPP, it will detect it.
> 
> Messages can be read by mail, WWW, or phone.
> 
> > You have writen modem driver for vgetty...
> > Share it with other program...
> 
> Use the shell interface. If you can't do what you want through the shell
> interface (and by shell I mean: pipe interface to either C, sh, or
> perl, python, etc), we will add the needed features.
> 
> The shell interface is documented, notably in:
>    voice/doc/Readme.voice_shell

No !!!
I'm a C coder...
I don't want to make exec call to vm...
I hate frontend...

And, as far as i know vgetty is not capable to handle voice modem
conversation...
( Use your modem to talk with your correspondant )...

> 
> Examples are available, the more complete one being the mvm shell script
> (see above URL), and a Perl module also exists.


Keep in touch...

-- 
             			  -- Yoann
	It is well known that M$ products don't call free() after a malloc().
      The Unix community wish them good luck for their future
developments.

--------------857D8BC8D15F1834F5603382

X-Mozilla-Status2: 00000000
Message-ID: <376E418A.67F11AF1@coldserver.com>
Date: Mon, 21 Jun 1999 13:43:38 +0000
From: Vandoorselaere Yoann <yoann@coldserver.com>
X-Mailer: Mozilla 4.6 [en] (X11; I; Linux 2.2.9 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Marc SCHAEFER <schaefer@alphanet.ch>
Subject: Re: Vgetty question
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

What i suggest :

rewrite all of the vgetty code...
Act as a modem server ( it already does ).
Act as an application server ( application connect to vgetty and passes
their command,
				vgetty simply execute it... )

Exemple :


	call X in voice mode
	use local handset for --->
	communication ( modem
	microphone & speaker )  (vgetty 
                                handle 
                              the command)--->  AT#XXXXX
     
End User application ---------> Vgetty -------------> Modem
********************          ******                ******


Made simple for an user to add a new type of modem...
( We don't have to edit source for such operation )...

If you're understanding what i say,
and you're agree with that, i'm ok
to help implementing such thing ( apps server, modem config... )

Bye...
Really, my only hope is to see good support of all
kind of voice modem thing under UNIX...

Ready to start coding guys :-)

Keep in touch...

-- 
             			  -- Yoann
	It is well known that M$ products don't call free() after a malloc().
      The Unix community wish them good luck for their future
developments.

--------------857D8BC8D15F1834F5603382

X-Mozilla-Status2: 00000000
Message-ID: <376E6064.A6712F43@coldserver.com>
Date: Mon, 21 Jun 1999 15:55:16 +0000
From: Vandoorselaere Yoann <yoann@coldserver.com>
X-Mailer: Mozilla 4.6 [en] (X11; I; Linux 2.2.9 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Marc SCHAEFER <schaefer@alphanet.ch>
Subject: Re: Vgetty question
References: <Pine.LNX.3.96.990621153039.12208A-100000@vulcan.alphanet.ch>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Marc SCHAEFER wrote:
> 
> On Mon, 21 Jun 1999, Vandoorselaere Yoann wrote:
> 
> > An end user is working on this workstation...
> > The phone start ringing...
> 
> At each ring, vgetty launches the cnd program script, which can
> communicate with an X application. After N rings, cnd program
> can decide to take over the call.
> 
> What you say is implementable without changing a line to vgetty,
> just by implementing appropriate cnd program.
> 
> > Do you want to answer or to leave the answering machine answer ?
> 
> How do you answer ?  If it's by phone, it's implementable today. If it's a
> bidirectionnal communication through the modem, vgetty and a sound card,
> it will not work, since
> 
>    1. vgetty does not support bidirectionnal mode
>    2. most modems do not support it either.
> 
> > it open the gnome app, enter the number and click on dial..
> 
> Same problem as above. If it's just to e.g. send a unique voice mail
> message, then it works already, through vm script (which locks the port
> with mgetty/vgetty automatically).
> 
> > And, as far as i know vgetty is not capable to handle voice modem
> > conversation...
> > ( Use your modem to talk with your correspondant )...
> 
> Nor are any modems, or are there any ?


Nope your wrong,
the big majority of *voice* modem support VOICE COMMUNICATION
trought the modem
( and without the sound card... using the modem mic & 
modem speaker)

Eg :
with a realtek based voice modem :

at#cls=8
at#vls=6
ata
and you're ok
-- 
             			  -- Yoann
	It is well known that M$ products don't call free() after a malloc().
      The Unix community wish them good luck for their future
developments.

--------------857D8BC8D15F1834F5603382

X-Mozilla-Status2: 00000000
Message-ID: <376E60D1.895D5361@coldserver.com>
Date: Mon, 21 Jun 1999 15:57:05 +0000
From: Vandoorselaere Yoann <yoann@coldserver.com>
X-Mailer: Mozilla 4.6 [en] (X11; I; Linux 2.2.9 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Marc SCHAEFER <schaefer@alphanet.ch>
Subject: Re: Vgetty question
References: <Pine.LNX.3.96.990621153410.12208B-100000@vulcan.alphanet.ch>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Marc SCHAEFER wrote:
> 
> On Mon, 21 Jun 1999, Vandoorselaere Yoann wrote:
> 
> > rewrite all of the vgetty code...
> 
> If you want to do it, while still remaining compatible with mgetty so that
> fax, data and PPP calls can still be handled automatically, including also
> the use of dial-out programs, feel free to do it.
> 
> However, at this time I prefer to concentrate on making existing tools,
> such as mvm, better, and in fixing the low-level modem library bugs.


Ok !!!
But made an useable library !!!
I don't want to use shell script to communicate with an external X
program...
Cause it will be hard to understand from an "end user" point of view..;

Please, say me what you think...

-- 
             			  -- Yoann
	It is well known that M$ products don't call free() after a malloc().
      The Unix community wish them good luck for their future
developments.

--------------857D8BC8D15F1834F5603382

X-Mozilla-Status2: 00000000
Message-ID: <376E6327.6BFA619C@coldserver.com>
Date: Mon, 21 Jun 1999 16:07:03 +0000
From: Vandoorselaere Yoann <yoann@coldserver.com>
X-Mailer: Mozilla 4.6 [en] (X11; I; Linux 2.2.9 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Marc SCHAEFER <schaefer@alphanet.ch>
Subject: Re: Vgetty question
References: <Pine.LNX.3.96.990621153039.12208A-100000@vulcan.alphanet.ch>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Marc SCHAEFER wrote:
> 
> On Mon, 21 Jun 1999, Vandoorselaere Yoann wrote:
> 
> > An end user is working on this workstation...
> > The phone start ringing...
> 
> At each ring, vgetty launches the cnd program script, which can
> communicate with an X application. After N rings, cnd program
> can decide to take over the call.
> 

Cnd program ?
Never heard anything about that...
What is it ? How do you define it ?



> What you say is implementable without changing a line to vgetty,
> just by implementing appropriate cnd program.
> 
> > Do you want to answer or to leave the answering machine answer ?
> 
> How do you answer ?  If it's by phone, it's implementable today. If it's a
> bidirectionnal communication through the modem, vgetty and a sound card,
> it will not work, since
> 
>    1. vgetty does not support bidirectionnal mode
>    2. most modems do not support it either.

You're missing the point :
1: Ok
2: Completly wrong, Most voice modem support it ( but input sound come
from
	the modem microphone; not from the sound card )
> 
> > it open the gnome app, enter the number and click on dial..
> 
> Same problem as above. If it's just to e.g. send a unique voice mail
> message, then it works already, through vm script (which locks the port
> with mgetty/vgetty automatically).
> 
> > And, as far as i know vgetty is not capable to handle voice modem
> > conversation...
> > ( Use your modem to talk with your correspondant )...
> 
> Nor are any modems, or are there any ?

All USR Sportser *voice* & Rockwell *voice* based modem support it


-- 
             			  -- Yoann
	It is well known that M$ products don't call free() after a malloc().
      The Unix community wish them good luck for their future
developments.

--------------857D8BC8D15F1834F5603382

X-Mozilla-Status2: 00000000
Message-ID: <376E72EF.DE3ED328@coldserver.com>
Date: Mon, 21 Jun 1999 17:14:23 +0000
From: Vandoorselaere Yoann <yoann@coldserver.com>
X-Mailer: Mozilla 4.6 [en] (X11; I; Linux 2.2.9 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Marc SCHAEFER <schaefer@alphanet.ch>
Subject: Re: Vgetty question
References: <Pine.LNX.3.96.990621165241.14149B-100000@vulcan.alphanet.ch>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Marc SCHAEFER wrote:
> 
> On Mon, 21 Jun 1999, Vandoorselaere Yoann wrote:
> 
> > I don't want to use shell script to communicate with an external X
> > program...
> 
> You missed the point. The X program can communicate e.g. to a socket
> endpoint, where SOMETHING is located. The something can be C, shell,
> perl, whatever.
> 
> > Cause it will be hard to understand from an "end user" point of view..;
> 
> Enduser doesn't care about implementation.
> 
> > Please, say me what you think...
> 
> Everything you said *is* implementable *today* within the current vgetty
> design limitations, except bidirectionnal voice support.

But this is what I ( and many end user too ) want to devellop...
Yes voice frame are currently supported  ( send & receive at the same
time )!!!
This is not complicated,
You use the modem LOCAL HANDSET to communicate on the phone line...
( Not the sound card )...

So explain me how i can do, if vgetty run on my system, to communicate
with my modem from another application...
I've tryed, and the application ( read/write ) was fucked up;
as well as vgetty ( but vgetty restored modem state when my apps exit
)...

Please, help to find a way to do this cleanly
:-)

-- 
             			  -- Yoann
	It is well known that M$ products don't call free() after a malloc().
      The Unix community wish them good luck for their future
developments.

--------------857D8BC8D15F1834F5603382

X-Mozilla-Status2: 00000000
Message-ID: <376E7851.B5D4EE8E@coldserver.com>
Date: Mon, 21 Jun 1999 17:37:21 +0000
From: Vandoorselaere Yoann <yoann@coldserver.com>
X-Mailer: Mozilla 4.6 [en] (X11; I; Linux 2.2.9 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Marc SCHAEFER <schaefer@alphanet.ch>
Subject: Re: Vgetty question
References: <Pine.LNX.3.96.990621170010.14238A-100000@vulcan.alphanet.ch>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Marc SCHAEFER wrote:
> 
> On Mon, 21 Jun 1999, Vandoorselaere Yoann wrote:
> 
> > So explain me how i can do, if vgetty run on my system, to communicate
> > with my modem from another application...
> 
> For your application you
>    1. need to enable microphone <-> modem direct link
>       (this is a small change to vgetty presumably, this is much
>        easier/possible than microphone <-> soundcard <-> modem)

	On rockwell, enabling mic -> modem -> phone line
		and phone line -> modem -> speaker
	is done by the command : at#vls=6

>    2. use cnd script with new ring count option
	 Always, i've not saw anything about cnd

>    3. design a small X11 program which is signaled through a socket
>       by cnd script when call arrives, and also can tell cnd script
>       to ignore call, or enable the special microphone mode.

> 
> So, there is some vgetty work involved, basically implementing completely
> the ring count, and the microphone <-> modem special mode. That's all.
> Then you need to implement a C program or shell script for CND program
> functionnality, and the communication method between it and X11 program,
> and the X11 program.
> 
> For dialout, you would use the same voice shell commands (dial, then
> microphone <-> modem), but this time through vm.

Please, we *REALLY NEED* a library :-(
This is really dirty...
You, guy, who know vgetty well...
Just group modem fonction in a library...

Do you think that all modem programmer will bother writing such
implementation
( use another program to call, etc etc...)
Why do not implement a client server in vgetty ???? Damn tell me why (
and i'm ready
to start coding with you, if you want ).

exemple : libmode.so :
		which as function like modem_open(), modem_set_voice().
		and this library is linked to the dependant driver for each modem (
libvoice )
		automatically it select the good driver to use...

> 
> If you don't understand the concept, I suggest you try to play with
> a small voice script (dtmf.sh in contrib).
I'm understanding the concept cause i'm hacking vgetty for 1 week now,
and i'd like to bother me on other thing that are not : "i must find a
solution..."

Keep in touch... What do you think ( as always )

-- 
             			  -- Yoann
	It is well known that M$ products don't call free() after a malloc().
      The Unix community wish them good luck for their future
developments.

--------------857D8BC8D15F1834F5603382--