|
|
|
Location:
faxstd.h
Fax client version information. If there are significant differences between versions these will be described in the Developer Library. They are defined in faxstd.h.
The following fax error codes may be returned in the
TRequestStatus status variable passed to the fax thread in the
CFaxTransfer::Start() call. In addition to these codes,
KErrNone or any of the other system-wide error codes may also be
returned.
The action to be taken in the event of receiving an error is dependent both on the error, and on the fax phase when the error was received. If an error occurs in the early phases of transmission then the appropriate action is usually to re-send the fax. If an error occurs when a partial fax has been transferred it may be possible to re-send only part of the fax. If an error is returned in the final phase, then the fax may have been completely sent — so the error can possibly be ignored.
The error descriptions below contain a suggested possible action,
based on the error type and on the fax phase. The description and suggestions
for action are not definitive because communications is not an exact science.
For many of the codes, the phase and page number of the fax — see
RFax::TProgress — should be inspected to determine the
appropriate course of action.
const TInt KFaxErrModemNotWorking
Setup error. This is generated when the modem fails to produce an appropriate response. Most commonly returned after a time-out when waiting for an OK.
Possible action: Ask user to check that the modem is switched on and plugged in — on the assumption that there is a functioning modem which just isn't enabled. The error can also be caused by a faulty port, a faulty cable, or a low modem battery.
const TInt KFaxErrCannotConnect
Phase A error. This occurs when we answer a call to receive a fax but fail to connect to a fax at the other end of the line.
Possible action: Tell the user that the answered call wasn't from a fax. This assumes that the modem would otherwise have worked properly, that the caller didn't hang up, and that the phone lines didn't give problems.
const TInt KFaxErrCSIorCIG
Class 1 messages only. Phase B error. Modem reports an error when sending CSI or CIG.
No user remedy apart from trying again.
const TInt KFaxErrDISorDTC
Class 1 messages only. Phase B error. Modem reports an error when sending DIS or DTC.
No user remedy apart from trying again.
const TInt KFaxErrFrameFail
Class 1 only. Phase B or D error. Modem fails to receive an expected frame. The most common result of a breakdown in the T30 protocol.
No user remedy apart from trying again. If this occurs repeatedly then there may be a timing problem with the hardware.
const TInt KFaxErrAtNegotiatedSpeed
Class 1 only. Phase B or start of phase C error. Usually means that the modem cannot reliably negotiate a transfer speed with the remote fax. Also occurs when a transfer speed is apparently negotiated but fails to work properly.
No user remedy apart from trying again. The establishment of modulations and detection of carriers is a low-level modem function — there is no software cure for bad phone lines.
const TInt KFaxErrCFR
Class 1 only. Phase B error. Modem reports an error when sending CFR. Fax reception cannot begin without a successfully confirmed training frame.
No user remedy apart from trying again.
const TInt KFaxErrMCF
Class 1 only. Phase D error. Modem reports an error when sending MCF. This frame is sent after receiving the last page of a fax as part of phase D of the T.30 protocol. In all likelihood, this is caused by the sender hanging up too early. The last page and the rest of the fax should still be good.
No user remedy needed, but the error should be noted.
const TInt KFaxErrCRP
Class 1 only. Phase B or phase D error. Modem reports an error when sending CRP. It sends this command when the last frame ID could not be interpreted.
No user remedy apart from trying again.
const TInt KFaxErrNoDial
Phase A error. This error occurs when the modem is asked to dial and the dial attempt times out without any modem response (100 seconds).
Possible action: Check phone number, check modem, check phone and try again.
const TInt KFaxErrNoDialTone
Phase A error. The modem responds with NO DIAL TONE when asked to send a fax.
Possible action: Either treat as NO CARRIER or, if the message occurs repeatedly with known good fax numbers, rewrite the modem initialisation string — after checking in the manual.
const TInt KFaxErrBusy
Phase A error. The modem responds with BUSY when asked to send a fax.
Possible action: Either treat as NO CARRIER or, if the message occurs repeatedly with known good fax numbers, rewrite the modem initialisation string — after checking in the manual.
const TInt KFaxErrNoAnswer
Phase A error. The modem responds with NO ANSWER when asked to send a fax.
Possible action: Either treat as NO CARRIER or, if the message occurs repeatedly with known good fax numbers, rewrite the modem initialisation string — after checking in the manual.
const TInt KFaxErrNoCarrier
Phase A error. NO CARRIER message received. This is the normal response from a modem when it cannot establish a connection while being asked to dial or answer.
Possible action: None on reception. Maybe try three times on dialling. The NO CARRIER message will also occur if there are problems linking the modem to the phone network. Problems might include, a faulty phone cable or socket, too many things connecting to the phone socket, pulse dialling when tone should be used, and (of course) the modem may be faulty.
const TInt KFaxErrRemoteCannotReceive
Class 1 only. Phase B error. Occurs when trying to send to a fax machine that cannot receive.
const TInt KFaxErrDCN
Class 1 only. Phase E error. Modem reports an error when sending a DCN. In all likelihood, this is caused by the other fax hanging up too early. The last page and the rest of the fax should still be good.
No user remedy needed, but the error should be noted.
const TInt KFaxErrRemoteDCN
Class 1 only. Phase E error. Modem reports an error when receiving a DCN. In all likelihood, this is caused by the other fax hanging up too early. The last page and the rest of the fax should still be good.
No user remedy needed, but the error should be noted.
const TInt KFaxErrHDLC
Class 1 only. Phase B or phase D error. The modem reports an error when trying to send a negotiation frame.
No user remedy apart from trying again. Could indicate a faulty modem or hardware timing problems if it doesn't go away.
const TInt KFaxErrTrainStop
Class 1 only. Phase B error. A modem fault in which the modem doesn't respond with an OK message after we have sent a training frame.
No user remedy apart from trying again.
const TInt KFaxErrReceiveTimeout
Phase C data reception time-out error. This should never occur in normal use, as the modem should detect fax reception underruns and end the data stream.
Action: tell user to check the modem. A good partial page may have been received, and any earlier pages should also be good.
const TInt KFaxErrCannotEndData
Phase C/D transition error. This is a modem error in which the modem doesn't recognise the end of the datastream, and hence doesn't allow a transition to phase D after receiving or sending fax data.
Action: Tell user to check the modem. The last page sent or received is quite possibly good — though this cannot be determined. Any earlier pages should also be good.
const TInt KFaxErrEOP
Class 1 message. Phase D errors. Modem reports an error when sending EOP.
All faxes are sent blind; either end of document or end of page signals must be transmitted after a page to trigger a post-page response indicating whether the page was received at the other end. This is the normal phase D of the T30 protocol.
Action: The page may have been successfully sent but we can't tell — so there's no user remedy apart from trying again. This problem may be caused by an out of paper at the receiver, or a bad phone line, or some other type of extraneous fault.
const TInt KFaxErrMPS
Class 1 message. Phase D errors. Modem reports an error when sending MPS.
See KFaxErrEOP for explanation/action
information.
const TInt KFaxErrNoReceiveMode
Class 2 message only. Setup error. The modem refuses to receive fax data when instructed to do so — using AT+FCR=1.
const TInt KFaxErrCannotAnswer
Phase A error. This error occurs when the modem is asked to answer the phone and times out without any modem response (35 seconds).
No user action possible.
const TInt KFaxErrPrematureHangup
Class 2 message only. Phase A or phase E. A +FHNG:#: report was received prematurely.
Action: look in SESSION.LOG and find out the FHNG code.
const TInt KFaxErrModemResponse
Class 2 message only. Phase D error. The modem has timed out on
fax reception. This is the class 2 equivalent of
KFaxErrCannotEndData, KFaxErrEOP, and
KFaxErrMPS for class 1.
const TInt KFaxErrPrematureOK
Class 2 message only. Phase D error. The modem has given us an OK message where none was expected.
const TInt KFaxErrNoFinalOK
Class 2 message only. Phase E error. The modem has not given us an OK response when told to hang up.
const TInt KFaxErrUnknownPageCode
Class 2 message only. Phase D error. The modem has given us a phase D report we don't support.
const TInt KFaxErrNoHangup
Class 2 message only. Phase E error. The modem has timed out when told to hang up.
const TInt KFaxErrNoNegotiate
Class 2 message only. Phase B or phase D error. A +FHNG:# report was received.
Action: look in SESSION.LOG and find out the FHNG: code.
const TInt KFaxErrModemDisconnect
Class 2.0 message only. Phase C transmission error. The modem requested that we cancel the session.
const TInt KFaxErrWrongModemType
Setup error. The modem has been told to use an unsupported class. If this occurs on autodetecting, the modem is not a fax modem.
Action: Inform user and treat as
KFaxErrModemNotWorking.
const TInt KFaxErrTrainFail
Class 1 only. Phase B error. If receiving, modem has reported an error when sending FTT. If sending, we have failed to find a compatible speed.
Action: No user remedy apart from trying again.
const TInt KFaxTransmitterStalled
System level error — we cannot transmit data. Possibly caused by line loss when sending phase C data as flow control is switched on at this point.
Action: Inform user and retry from last page.
const TInt KFaxReceiverOverflow
System level error — cannot receive data fast enough. Possibly caused by CPU being overloaded.
const TInt KFaxCannotOpenStore
System level error on opening receive fax store or list of files to send.
const TInt KFaxCancelRequested
User requested termination of the fax session.
Action: do as requested
const TInt KFaxNoClass2Xon
Class 2 only. Phase B/C transition error. The modem has failed to ask us to begin sending data.
Action: inform user and maybe try again.
const TInt KFaxCannotAutodetect
Setup error when autodetecting port.
Action: Treat as KFaxErrModemNotWorking.
const TInt KCannotFindFirstPage
The fax client been asked to send a non-existent fax.
Action: Complain to user
const TInt KFaxBadInitialization
Setup error — modem has failed to completely initialise.
Action: Treat as KFaxErrModemNotWorking.
const TInt KFaxOnlyJustAutoDetected
The fax modem class has been successfully autodetected and the
session can be relaunched using the fax class correctly identified and returned
in TFaxSettings.
const TInt KFaxBelowMinSpeed
Phase B negotiation error. The speed agreed was below the specified minimum speed for the session.
Action: Try again, possibly with a lower minimum speed setting.
const TInt KFaxPollingUnsupported
Class 2 only. An attempt has made to poll when polling is not supported by the modem. This is quite common in class 2 modems.
const TInt KFaxNothingToPoll
The modem has attempted to poll when the polled machine has nothing to send.
const TInt KFaxEtelServerError
System level failure of the ETel server. This might occur if ETel was not installed.