Anyone can help me ? thanks.
My USB MODEM driver work ok on dial-up. but it failed to work with winfax.
with fax’s issue. Sending fax use Winfax or Venta fax.
I find that Winfax return the “AT+FDT” command delay about 5 seconds ,after received the “+FCIS…+FDIS…OK”. so the fax receiver released the network(our driver is used in CDMA network)
But Winfax return the “AT+FDT” command is very quick in 1 second.So it works well.
I have catched many logs. I found after winfax sending ATDT****, my driver received the following string :“+FCON…+FCIS…+FDIS…0K”,about 65 bytes. But my driver received this string not in one URB (when I received data from URB , I complete the read IRP with the data). then after 5 sconds . AT+FDT commands is sent to modem, but it is too late.
Anyone can tell me why the winfax send the “AT+FDT” command so late?
thank you very much.
Denny
huaping jiang wrote:
My USB MODEM driver work ok on dial-up. but it failed to work
with winfax.
When my USB modem driver didn’t work with Winfax, it was because I didn’t implement IOCTL_SERIAL_IMMEDIATE_CHAR. Do you implement that IOCTL in your driver?
Hi Chris Aseltine
I’sorry. I answer the question so late.
I don’t implement the IOCTL_SERIAL_IMMEDIATE_CHAR.
But what is the relation between this IOCTL and this issue.
thank you very much.
Denny jiang
huaping jiang wrote:
I don’t implement the IOCTL_SERIAL_IMMEDIATE_CHAR.
But what is the relation between this IOCTL and this issue.
There may be none. However, what I’m telling you is I know Winfax calls this IOCTL and if you don’t support it, sending or receiving faxes (one of those, or maybe both) will likely not work.
You may also want to look into whether you support the EV_TXEMPTY serial event, Winfax might be waiting for you to signal that also.
You also say “when I receive data from URB, I complete read IRP” – however, you don’t specifically say if you are following the correct MS serial conventions for doing so.
If you are passing back half of the modem’s fax response to Winfax as part of the first completed IRP, it may not be smart enough to issue another read to your driver to get the remainder of the data. It may be issuing you a larger read with a higher timeout, meaning that you should accumulate the results in your driver before you pass everything back to Winfax.