Hi,
It can be, that in your case the device is simply detecting the FAX tones itself before FS does. When the device sends a ReINVITE to FS FS has no chance to detect CNG anymore and hence never switch to t38.
Maybe you´re right here - or zoiper (http://www.zoiper.com/softphone/classic/ which is a softphone with only t38 fax support [no g711 fallback]) sends the reinvite every time after answer when it is sending a fax.
Just trace the sending FAX-Device for SIP-Signalling and you should se a ReINVITE from FAX-device to FS, if this is true.
Here is a debug with siptrace: http://pastebin.freeswitch.org/15439 If I read the logs in a right way: then FS executes t38_gateway on answer - sends a 200 OK to zoiper - zoiper answers with ACK and then reinvites with t38 - FS answers 100 Trying- And nothing is happening. I´m not sure if this is the scenario you describe below, but shouldn´t FS answer with a t38 sdp so zoiper knows where to send it´s t38 fax??
You should check your t38-Device configuration. See if it is able to let the t38 fax detection job only by FS.
Establish a call from the Fax device to a phone. Can your hear the CNG signal when you pickup the phone? Does it suddenly stop? If so, the FAX device or FS/mod_spandsp has sent a t38-ReINVITE.
Do you see something like "media Bug removed" in FS console (DEBUG level) after 20 seconds of listening to 1100Hz? If so, then FS failed to detect CNG, hence it never received it (or for too short to detect it).
On my Grandstream ATAs this wasn't possible, so I had to search for a hack.
Hope this will light up your problems a little bit.
If so, I´m wondering why rxfax in t38 mode is working fine then - with re-invite. Can't tell you with this, never tried that. sorry.
Thx, clemens