Here are a list of changes from the last released version of the MT5634ZBA-V92 (1.32b). - Per T.6 specification, section 2.4.1.1, there should be 2 EOL's at the end of every coded facsimile block. - Add modifications to repeat DIS and DCS frames in V.34 fax. - In V.17 fax, if we get to +FMS (min. speed) value, stop retransmitting regardlessof how many +FRY values are left. Default for +FMS=0. - Fix up fax delays to better conform to T.30 - Default value of S31 is 3 for Half Duplex Speakerphone. - Fix to kick start fall forward process. Connect at 33.6 and add noise to fall back to 4800, after taking the noise away the modem will only fall forward part way (around 14.4), never all the way back up to 31.2. - When setting for +fclass=2.0 there were numerous problems in going back to data mode whether by ATZ, AT&F or +fclass=0. A number of variables have to be properly set at these transition points to fix problem. Both answer and originate handshakes were failing. - If in V.34 leased line operation and we have dropped 3 2400 baud increments and a 30 minute timer has expired then we do a retrain. This is designed to take care of gradually increasing MSE value on long duration connection. This will be on in standard release firmware. - If the escape sequence was received by a modem in data mode with very short intercharacter delay (string programmed into function key, for instance) the modem could respond with 2 ok's. - If the inter-character delay was too long an LF following a CR on the dialing string would cause character abort of the dial - This fix checks an alternate place to see if carrier has gone away. This fixes a problem where users would get an FHS:E0 error on receiving a fax before the page was received. - This fixes a problem where the modem would get stuck on one block when receiving an ECM fax. It would likely end up with either an FHS:A0 or FHS:A7 error. - Put in a fix that accounts for echo's of V.21 signal when waiting for high speed or low speed signal (like right before the beginning of a page) - Handle ID frames that are too long (> 20 chars) - Adds AT+FDB command so that debug can come out of the serial port - Fixes an answer case where carrier does not go away while waiting for a response and we get a FHNG:0. - This adds S-Registers for fax tweaking - Create +FS4 and +FS5 to lengthen T.30 delay between DCS and TCF and modify the TCF length in class 2/2.x. Default is 0 mS and 0 mS. - Puts a delay in before trying to send a post-page response in V.34 ECM mode. This keeps us from sending an unnecessary RNR after receiving the PPS because we haven't gotten a AT+FDR yet. - Adds AT+FDD command so that +FDB responses can be turned off while leaving T.30 frames in ECM mode on (+FDD=0). With +FDD=1, it puts out both +FDB responses as well as T.30 frames in ECM mode. - Attempt to fix RR-RNR receive loop problems by clearing out the ecm rd count when an RTC is detected so that data that is received after the RTC doesn't cause us not to go on to the next page. - added debug to display how rx tcf went - This fix tries to not hangup when a receiving page or partial page goes bad but instead waits for silence to get back into the command channeland try again. - This monitors RMSE to try to catch the case where the modem loses synchronization but carrier stays high. If RMSE goes bad and carrier and receive signal is still good then we should quit receiving. - This simply stops pack/unpack operation when the DCE rx buffer gets too full to prevent overruns and unnecessary PPRs - Fix the V.34 fax resend bug where we looked at whether carrier was detected so we could send a frame. The V.34 control channel is really full duplex (not half) so we can actually send anytime (within the rules of T.30). - This is to fix a problem where frames received are bad or bizzare. They sometimes contain one frame inside another (a DCS inside of a TSI) or sometimes a DIS is received on a receiver (the same as was sent). - This allows the user to extend the T2 timer to wait longer for after page or partial page frames to arrive. - This controls how long it will wait for carrier to go away after receiving a CRC error. On noisy lines I think 200ms is too long for silence after listen - The +FS6 register controls what the maximum baud rate for non-ecm connections is. Higher baud rates than that have their TCF's rejected until the call drops down to the maximum baud rate or lower. - Don't put out a FHS:0 if receiving a DCN right after page data. - Fix a problem where the modem would hang up with an error code if the page was not detected and the next thing detected was a PPS. - This fixes a problem where a PPS-EOP after a MCF has been sent causes the modem to hang-up in error. - When we receive a DIS on receive, we will just ignore it and see what happens. - All FHS:Bx codes indicate that a DCN was received at an unexpected time. This is so we can infer that the call was aborted by the remote user. - Between pages using WinFaxPro it sends AT+FPS?, we would return 01, WinFaxPro would think the page is bad and retransmit. We call MTS_itoa to return 1. - This fix is to make it so that we don't miss post-page messages because we are still processing page data. - Attempt to receive V.21 frames by re-initializing after a period time and silence to see if we can receive that second or third frame. - We want to ignore frames that we sent and are echoed back to us. - When receiving a 2400 baud fax, if we checked for carrier loss too soon, we would be unable to receive the ECM block. So we now delay checking for carrier loss at the beginning of the block. - This creates a Fax S-Register to control how the modem interprets the loss of the RTC on a page. - Make the ECM no frame timer configurable with AT+FS19. The value indicates the number of seconds to wait before dropping to the control channel. - Don't display JBIG capabilities if in class 2 and not 2.x. - This makes sure that the ID frame contains only printable characters - This attempts to fix V.34 receive issues by restarting the control channel every six seconds if we don't get carrier. - This will force a rate renegotiation if we are not making progress in receiving new frames. - This will allow the modem to survive a 300 ms dropout in non-V.34 mode. It will apply only to ECM mode - Make sure that we don't accept AT commands when we are starting to hangup. - This adds the capability to fall back to V.17 when V.34 phase 3 fails. It adds the command +FFB which when set to a non-zero value will fallback to V.17 after +FFB seconds. This can be tested by having the originate modem built with - We sometimes required ECM in order to negotiate some options not related to ECM (like sub-addressing/password). - Fix another RR-RNR loop - this clears the low bit before comparing against a PPM_EOP. It addresses FHS:A2 errors. - this fixes a problem where the sender resends a RR after we have sent an MCF. This generates FHS:B7 errors after the sender sends RR three times without a response and then sends a DCN. - this fixes a problem where a repeated MPS after an MCF causes PPR's from then on. This could generated a FHS:B7 error after the sender gives up after getting PPR's in response to MPS's. - this fixes a problem where an EOP instead of the page causes a hangup with a FHS:0 even though no page was received. - this fixes a problem where the modem will get stuck off hook if a PPS is received instead of the first block of data in ECM mode. - This checks control channel states so we do not accidently restart the control channel while progressing through the training states.