This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

FAXLIB, xferpktInfo_t packet

Hello everyone,

I'm very confused about the packet info structure xferpktInfo_t that fiuReceiveIn processes.  What is the relationship between the IFP package and the xferpktInfo_t packet? How can i convert a xferpktInfo_t structure packet to a IFP packages ?

And here, I got some xferpktInfo_t structure packets during running  FAXLIB example code in CCS5. I tried to find some messages about CNG tone, v.21 preamble and something else, but failed. What did these packets mean?

0410.1fiuTxOut_3.txt

0525.2fiuTxOut_3.txt

  • xferpktInfo_t defines the generic data structure for components that have packets as their inputs or output. The interface allows for the transport of multiple packets or segments in a single structure. This is accomplished by passing pointers to an array containing a set of packet pointer as well as a pointer to an array containing a set of associated packet  lengths (in bytes). The variable 'npkts' identifies the number of packets being transported. When transporting multiple packets it is assumed that all packets are of the same type. The structure is shown below:

    typedef struct
    {
    xferpktType_t type; /**< Defines the packet type being transported (see @ref xferpktType_t for the list of valid packet types) */
    tuint srcPort; /**< Defines the source port where the packet originated from */
    tint npkts; /**< Defines the number transmission segments being trasnported */
    tint *pktSize; /**< Pointer to segment size array. */
    void **pktIn; /**< Pointer to segment entry array */
    void *suppInfo; /**< Pointer to optional supplemental data may be uninitialized between modules that don’t need it;| must be initialized for modules that need it.*/
    } xferpktInfo_t;
     
    To convert  xferpktInfo_t *pktInfo  packet to T.38 packets:

    for (i=0;i<pktInfo->npkts;i++)

    {

       packets[i]=pktInfo->pktIn[i];

       pkt_size[i]=pktInfo->pktSize[1];

    }

    The Packet format of a T.38 version 0 packet is provided in the Image below.

    Let me know if you need more information.

  • Hi Yogesh,

    Now It seems that my fax code can parse xferpktInfo_t packet, generate CED tone after receiving CED IFP frame. But the fax machine just could not parse my pcm file, the log message as follows:

    [DSP] X(+0000ms)GW1:FIU~ FRP successful startup
    [DSP] X(+0000ms)GW1:FIU~ T.38 version 0
    [DSP] X(+0000ms)GW1:FIU~ FND successful startup: T.38 UDPTL network protocol
    [DSP] X(+0000ms)GW1:FIU~ FIU is opened: frame size = 10 ms
    [DSP] X(+0000ms)GW1:FIU~ FRP has been activated in state: startup
    [DSP] Tone detect control is called.
    [DSP] X(+0000ms)GW2:FM ~ State transition: low speed rx
    [DSP] X(+0000ms)GW2:FM ~ New modulation: V.21 300bps
    [DSP] X(+0000ms)GW2:FM ~ State transition: low speed rx
    [DSP] X(+0000ms)GW1:FIU~ Sent T.38 packet to network: no signal ind
    [DSP] X(+0040ms)GW1:FIU~ Received T.38 packet with new payload type from network: no signal ind
    [DSP] X(+0110ms)GW1:FIU~ Sent T.38 packet to network: CNG ind
    [DSP] X(+0220ms)GW1:FIU~ Received T.38 packet with new payload type from network: CED ind
    [DSP] X(+0220ms)GW1:FIU~ FND T.38 decoder state change: transparent
    [DSP] X(+0240ms)GW1:FIU~ Received T.38 packet with new payload type from network: no signal ind
    [DSP] X(+0320ms)GW1:FIU~ Received T.38 packet with new payload type from network: preamble ind
    [DSP] X(+0320ms)GW1:FIU~ Received T.38 packet with new payload type from network: V.21 data
    [DSP] X(+0320ms)GW1:FIU~ FND T.38 decoder state change: low-speed data
    [DSP] X(+0510ms)GW1:FIU~ Detected tone from remote: CED
    [DSP] X(+0510ms)GW1:FIU~ Start of local tone generation: CED
    [DSP] X(+0510ms)GW1:FIU~ Received ignored network event in current FRP state: FND_FRP_SIGNAL_END
    [DSP] X(+0510ms)GW1:FIU~ Received ignored network event in current FRP state: FND_FRP_PREAMBLE_NOTIF
    [DSP] X(+0520ms)GW2:FM ~ Beginning of the delay message processing: msgData = a28
    [DSP] X(+0520ms)GW1:FIU~ Sent T.38 packet to network: no signal ind
    [DSP] X(+0600ms)GW1:FIU~ FND T.38 decoder state change: transparent
    [DSP] X(+0610ms)GW1:FIU~ FRP state change: remote low-speed receive
    [DSP] X(+0610ms)GW1:FIU~ Received first byte of a low-speed data frame: 0xFF
    [DSP] X(+0640ms)GW1:FIU~ Received the final frame of a low-speed transmission
    [DSP] X(+0670ms)GW1:FIU~ FCF of current frame: DIS (0x1)
    [DSP] X(+0820ms)GW1:FIU~ Received T.38 packet with new payload type from network: no signal ind
    [DSP] X(+0930ms)GW1:FIU~ FRP state change: idle
    [DSP] X(+2150ms)GW1:FIU~ Received ignored modem event in current FRP state: FM_FP_SIGNAL_DETECT
    [DSP] X(+2580ms)GW1:FIU~ Received ignored modem event in current FRP state: FM_FP_SIGNAL_LOSS
    [DSP] X(+3120ms)GW2:FM ~ Beginning of the delay message processing: msgData = 4b
    [DSP] X(+3200ms)GW2:FM ~ State transition: low speed tx flag
    [DSP] X(+3200ms)GW2:FM ~ New modulation: V.21 300bps
    [DSP] X(+3200ms)GW2:FM ~ State transition: low speed tx flag
    [DSP] X(+3230ms)GW2:FM ~ Beginning of the delay message processing: msgData = 352
    [DSP] X(+4110ms)GW2:FM ~ Beginning of data RX or TX during transmission
    [DSP] X(+4110ms)GW2:FM ~ State transition: low speed tx data
    [DSP] X(+4160ms)GW1:FIU~ Received T.38 packet with new payload type from network: preamble ind
    [DSP] X(+4160ms)GW1:FIU~ Received T.38 packet with new payload type from network: V.21 data
    [DSP] X(+4160ms)GW1:FIU~ FND T.38 decoder state change: low-speed data
    [DSP] X(+4160ms)GW1:FIU~ FRP state change: remote low-speed receive
    [DSP] X(+4290ms)GW2:FM ~ State transition: low speed tx flag
    [DSP] X(+4440ms)GW1:FIU~ FND T.38 decoder state change: transparent
    [DSP] X(+4450ms)GW2:FM ~ State transition: low speed tx flag
    [DSP] X(+4450ms)GW2:FM ~ New modulation: V.21 300bps
    [DSP] X(+4450ms)GW1:FIU~ Received first byte of a low-speed data frame: 0xFF
    [DSP] X(+4480ms)GW2:FM ~ Beginning of the delay message processing: msgData = 352
    [DSP] X(+4480ms)GW1:FIU~ Received the final frame of a low-speed transmission
    [DSP] X(+4510ms)GW1:FIU~ FCF of current frame: DIS (0x1)
    [DSP] X(+4660ms)GW1:FIU~ Received T.38 packet with new payload type from network: no signal ind
    [DSP] X(+4770ms)GW1:FIU~ FRP state change: idle
    [DSP] X(+5360ms)GW2:FM ~ Beginning of data RX or TX during transmission
    [DSP] X(+5360ms)GW2:FM ~ State transition: low speed tx data
    [DSP] X(+5650ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+5680ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+5700ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+5730ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+5760ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+5780ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+5810ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+5840ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+5860ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+5890ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+5920ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+5940ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+5970ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6000ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6020ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6050ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6080ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6100ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6130ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6160ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6180ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6210ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6240ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6260ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6290ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6320ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6340ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6370ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6400ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6420ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6450ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6480ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6500ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6530ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6560ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6580ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6610ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6640ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6660ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6690ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6720ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6740ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6770ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6800ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6820ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6850ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6880ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6900ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6930ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6960ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+6980ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7010ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7040ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7060ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7090ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7120ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7140ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7170ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7200ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7220ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7250ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7280ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7300ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7330ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7360ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7380ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7410ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7440ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7460ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7490ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7520ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7540ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7570ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7600ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7620ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7650ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7680ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7700ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7730ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7760ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7780ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7810ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7840ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7860ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7890ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7920ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7940ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+7970ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+8000ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+8000ms)GW1:FIU~ Received T.38 packet with new payload type from network: preamble ind
    [DSP] X(+8000ms)GW1:FIU~ Received T.38 packet with new payload type from network: V.21 data
    [DSP] X(+8000ms)GW1:FIU~ FND T.38 decoder state change: low-speed data
    [DSP] X(+8000ms)GW1:FIU~ FRP state change: remote low-speed receive
    [DSP] X(+8020ms)GW2:FM ~ State transition: low speed tx flag
    [DSP] X(+8180ms)GW2:FM ~ State transition: low speed tx flag
    [DSP] X(+8180ms)GW2:FM ~ New modulation: V.21 300bps
    [DSP] X(+8210ms)GW2:FM ~ Beginning of the delay message processing: msgData = 352
    [DSP] X(+8280ms)GW1:FIU~ FND T.38 decoder state change: transparent
    [DSP] X(+8290ms)GW1:FIU~ Received first byte of a low-speed data frame: 0xFF
    [DSP] X(+8320ms)GW1:FIU~ Received the final frame of a low-speed transmission
    [DSP] X(+8350ms)GW1:FIU~ FCF of current frame: DIS (0x1)
    [DSP] X(+8500ms)GW1:FIU~ Received T.38 packet with new payload type from network: no signal ind
    [DSP] X(+8610ms)GW1:FIU~ FRP state change: idle
    [DSP] X(+9090ms)GW2:FM ~ Beginning of data RX or TX during transmission
    [DSP] X(+9090ms)GW2:FM ~ State transition: low speed tx data
    [DSP] X(+9380ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9410ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9430ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9460ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9490ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9510ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9540ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9570ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9590ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9620ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9650ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9670ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9700ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9730ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9750ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9780ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9810ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9830ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9860ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9890ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9910ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9940ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9970ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+9990ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10020ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10050ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10070ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10100ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10130ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10150ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10180ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10210ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10230ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10260ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10290ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10310ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10340ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10370ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10390ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10420ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10450ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10470ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10500ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10530ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10550ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10580ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10610ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10630ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10660ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10690ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10710ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10740ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10770ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10790ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10820ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10850ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10870ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10900ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10930ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10950ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+10980ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11010ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11030ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11060ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11090ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11110ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11140ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11170ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11190ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11220ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11250ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11270ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11300ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11330ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11350ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11380ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11410ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11430ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11460ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11490ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11510ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11540ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11570ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11590ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11620ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11650ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11670ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11700ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11730ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11750ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11780ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11810ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11830ms)GW2:FM ~ Underrun during data transmission: number of bytes transmitted to modem = 0
    [DSP] X(+11840ms)GW1:FIU~ Received T.38 packet with new payload type from network: preamble ind
    [DSP] X(+11840ms)GW1:FIU~ Received T.38 packet with new payload type from network: V.21 data
    [DSP] X(+11840ms)GW1:FIU~ FND T.38 decoder state change: low-speed data
    [DSP] X(+11840ms)GW1:FIU~ FRP state change: remote low-speed receive
    [DSP] X(+11860ms)GW2:FM ~ State transition: low speed tx flag
    [DSP] X(+11880ms)GW1:FIU~ FND T.38 decoder state change: transparent
    [DSP] X(+12020ms)GW2:FM ~ State transition: low speed tx flag
    [DSP] X(+12020ms)GW2:FM ~ New modulation: V.21 300bps
    [DSP] X(+12050ms)GW2:FM ~ Beginning of the delay message processing: msgData = 352
    [DSP] X(+12130ms)GW1:FIU~ Received first byte of a low-speed data frame: 0xFF
    [DSP] X(+12160ms)GW1:FIU~ Received the final frame of a low-speed transmission
    [DSP] X(+12190ms)GW1:FIU~ FCF of current frame: DCN (0x5F)
    [DSP] X(+12930ms)GW2:FM ~ Beginning of data RX or TX during transmission
    [DSP] X(+12930ms)GW2:FM ~ State transition: low speed tx data
    [DSP] X(+13030ms)GW2:FM ~ TX or RX of a good HDLC frame: number of bytes in the frame = 0
    [DSP] X(+13030ms)GW2:FM ~ State transition: low speed tx flag
    [DSP] X(+13120ms)GW1:FIU~ FIU is closed

  • Hello,

    My linear PCM samples that got from fmReceiveOut routine can't be parsed by fax machine. How to configure the related parameters , so that the output pcm datas can be correctly identified by the fax machine?

    My PCM file and the reference pcm file that my fax machine can parse:

    4336.pcm.zip

  • Buga,

    The FAX module input/output PCM samples are in 8000Hz, 16-bit signed and big endian format (opened with software like Audacity)/Motorola format (opened with software like Adobe Audition). I opened your attachment and they didn't look right. Can you confirm the format? If you want to use this module with a real fax machine, you need do a linear PCM to A-law or u-law convesrsion and vice versa. This is not part of the FAX module.

    Regards, Eric

     

  • Hello Eric,

    I know the FAX module input/output PCM samples are big endian format.  I transformed the output samples into small endian format. The two *.pcm file are small endian format.

    And the Reference.pcm file in my attachment is the correct samples I got when I use SPANDSP instead of FAXLIB. Also, the CED tone part in Mypcm.pcm file can be identifed by fax machine, I can hear the tone from my fax machine. But the other messages like DIS frames as shows in upper log message just could not be parsed by fax machine.

  • Buga,

    I looked your reference, CED is followed by V21+DIS. The gap is 410 ms, the spectrum is clean, this is OK. For the mypcm.pcm, the gap is 83 ms, which also meets the standard. However, the V21+DIS has some 1850 Hz component around 4.1 second, which distorted DIS.

    Let say your have Tx fax machine ------------- Tx GW----------------Rx GW ----------------Rx fax machine setup. This Rx fax machine sent CED + V21 + DIS over the network, I believe your reference/mypcm files are PCM capture sent from Tx GW to Tx fax machine. My question, 1) Does Rx fax machine sent the same PCM to the Rx GW between  spandsp and faxlib? 2) For Tx GW and Rx GW, which uses SPANDSP and which use FAXLIB? 3) what you can send us to duplicate the issue you have on FAXLIB? E.g., do you have the PCM sent from Rx fax machine to Rx GW? Or, do you have the packet capture from Rx GW to Tx GW?

    For this thread, I thought you have the packet capture, then you tried to figure out how this can be fed into the FAXLIB FIU module. Can you describe your set-up and provide the input to our Faxlib?

    Regards, Eric

     

  • Hi Eric,

    Thank you very much. As you suggest I check the packet from Tx GW to Rx GW and  fiuSendOut's output. And I find the cause of the problem. It was due to sending repeated packages to Tx GW. I  gathered 20ms fax samples from TDM each time. So I called the fmSendIn function twice. Next, I send the fiuSendOut's output message to Tx GW directly. Then it result sending repeated packets to Tx GW.

    Thanks again.

    Regards, buga