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.

CCS: Regarding faxlib which supports t.38



Tool/software: Code Composer Studio

 This is the state machine followed by faxlib to support t.38 .Iam sending my pcm samples as input which i recieve from the t.30 fax machine to fmSendIn() Api.Then Iam calling fiuTask() function for t.38 processing and even i wanted to receive thepackets from the network interface so i called fiuReceiveIn().Is this the right way to do ?
In siu_open_fm() and In siu_open_fiu() he is doing the following configuration

fmOpencfg.RxOutSpec.fmReceiveOut = siuPcmInterface_Ch1;
fmOpencfg.SendOutSpec.fmSendOut = fiuSendIn;

fiuCfg.SendOutSpec.fiuSendOut = siuNetInterface;
fiuCfg.ReceiveOutSpec.fiuReceiveOut = fmReceiveIn;

Before  I call fmsendIn()  above funtions are getting initialized.After calling fmsendIn() is it required  to call fiuSendIn() before calling fiuTask?If so what is the input i have to provide ?should i call any Api separately to send the packets to the network interface and to the analog interface or it will be done automatically when i call fiuTask() for network interface and fiuReceiveIn() for analog interface?

  • Hi, Madhuri,

    Could you let me know which specific SoC you are using so that I can direct the issue to the right person? Please expect slow response during the holiday season.

    Rex

  • Iam using TMS320TCI6486 Digital Signal Processor .

  • Hi,

    There is a simulation program inside the faxlib for you to understand how the API was called. Please see the  packages\ti\mas\fiu\test\ccsProjects

    Regards, Eric

  • Do i need to implement fiuSendIn() function to send t.38 Packets(output of fiuTask()) to the network interface?If so for this do i need to modify  siuNetInterface

    function to meet my requirements?

    siuNetInterface accepts packet structure as

    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;

    How the output of fiuTask() is reflecting here?

     

  • Hi,

    We have limited support on T38 faxlib. I thought fiuSendIn() is your fmSendOut(). This is the input to FIU module, where the output of FIU is the network interface.

    /**
    * @brief This function passes a message from a fax modem module (FM) to FIU for processing.
    *
    * The message received from the FM is passed to the FRP module for processing.
    * data is processed by the FRP. The FM to FP message structure is defined in the IFFAX.chm
    *
    * @param[in] message a pointer to the FM to FP message structure.
    * @param[in,out] fiuInst Pointer to FIU instance.
    *
    */
    void fiuSendIn (void *fiuInst, void *message);

    /******************************************************************************
    * GLOBAL FUNCTION DEFINITIONS
    *****************************************************************************/

    /******************************************************************************
    * FUNCTION PURPOSE: Implements fiuSendOut() API function, which sends network
    * packets to the network interface.
    ******************************************************************************
    * DESCRIPTION: Routine called by FIU to send packet(s) toward the network.
    * FIU sends packets out (in the SendOut direction) to whatever
    * packet processing module is tied to fiuSendOut - in this case
    * siuNetInterface, which accepts packets but does no processing.
    * Return value signifies that there was not an error.
    *
    * CALLING FORMAT:
    * siuNetInterface (void *targetInst, - ptr to packet processing module
    * tint npkts, - number of complete network pkts
    * being sent to the network
    * tint pkt_size[], - array specifying the size (in
    * bytes) of each network packet
    * void *packets[]) - array of network packet pointers
    *
    * RETURN VALUES:
    * 0 - Pkt(s) successfully processed
    * by network
    * 1 - network busy; pkt not processed
    *
    *****************************************************************************/

    Regards, Eric