Hylafax Developers Mailing List Archives

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

[hylafax-devel] Re: Hylafax's Goals & Suitable Modems



On 23 May 2000 22:42:45 +0400, Dmitry Bely wrote:

Hello Dmitry!

>> I have never understand, what the real problem was :-)
>
>I think I understand the problem now.
>
>T.30 specifies T4 timer, that starts in the begining of "Responce received" 
>subroutine and stops when first HDLC flag is received from the remote. I
>think this cannot be implemented via AT+FRH command, because it prints
>"CONNECT" message immediately after detecting the carrier (and *before* the 
>first flag has arrived), and then outputs the whole HDLC frame *after* all
>flags has been detected and stripped:

Well, fax modems behave different in this situation! But it is quite right, to stop T4 after 
receiving CONNECT message. Try to use AT+FRM (instead of +FRH) and you will receive the original 
signal, without zerostripping. You will see, that reception will start with HDLC flags after 
CONNECT message.

>
>[ from EIA/TIA-578 ]
>...  If the 
>specified carrier is detected, the modem generates the CONNECT message 
>and enters the HDLC receive mode.

Well, in V.21 there is no (or almost no) leading signal (eg only zeros or only ones). V.21 
transmission starts immediatly with HDLC flags, so CONNECT is a sign for receiving flags also.

>In HDLC receive mode, the modem receives HDLC frames from the remote fax 
>machine, strips the flags, performs zero-bit deletion, performs error 
>checking, and handles <DLE><chr> character pairs before passing the data 
>to the DTE.  The modem prefixes each <DLE> character with another <DLE> 
>character before sending it to the DTE.  After the last byte in the 
>frame, the modem sends <DLE><ETX> to the DTE marking the end of the 
>frame.  The modem then generates either the OK message if errors were 
>detected (FCS is incorrect), and returns to command mode.
>[ end of quote ]

Yes, of course, but you can do all the neccessary stripping 'by hand' if using AT+FRM=3 ...

I have tried both methodes, but had found no (significant) difference at all. In ECM mode (data 
carrier) there is in fact a problem, and I have both methodes working, depending on modem typ.

>As a result, Hylafax stops T4 timer, when the modem outputs first non-flag
>HDLC byte after CONNECT -- not acceptable, because this way T4 in fact
>limits the reception of the whole frame.

The proper way is:

send("AT+FRH=3);
start_timer(T4);
for (;;)
	{
	if (timeout(T4))
		return(ERROR);
	res = get_modem_response();
	if (res == "CONNECT") break;
	else return(ERROR);
	}
handle_frame(res);
...

>But we cannot also stop T4 on
>CONNECT, because the modem still has not detected any flag at this moment.

It is not much possible, that modem receives a V.21 carrier without flags.

>AFAIR the is no quite correct solution for this problem, but which one is
>acceptable in your point of view?

Assume, that V.21 reception starts always with flags, so CONNECT is in fact a sign for flags...


Mit herzlichen Gruessen / Yours sincerely

Dr. Harald Pollack

Harald.Pollack@DATAnews.at




____________________ HylaFAX(tm) Developers Mailing List ____________________
 To unsub: mail -s unsubscribe hylafax-devel-request@hylafax.org < /dev/null



Home
Report any problems to webmaster@hylafax.org

HylaFAX is a trademark of Silicon Graphics Corporation.
Internet connectivity for hylafax.org is provided by:
VirtuALL Private Host Services