Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY RELATING TO SALE AND/OR USE OF INTEL PRODUCTS, INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT, OR OTHER INTELLECTUAL PROPERTY RIGHT.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Contents 1.0 Introduction ............................................................................................................ 7 1.1 1.2 1.3 1.4 General............................................................................................................ 7 Scope .............................................................................................................. 7 Audience ...........................................
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 6.8 6.9 6.10 6.11 6.12 6.13 7.0 Packet Data Interface.........................................................................................36 7.1 7.2 8.0 System Configuration .....................................................................................38 Adding Tones to Tone Generator...................................................................40 Adding Tones to Tone Detector ............................................
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Revision History Date Revision December 2004 008 Updated product branding. September 2004 007 Further updates for the release of Intel® IXP400 DSP Software v2.5. Change bars indicate areas of change. June 2004 006 Updates for the release of Intel® IXP400 DSP Software v2.5. January 2004 005 Updates for the release of Intel® IXP400 DSP Software Version 2.4.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 This page intentionally left blank.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Introduction 1.0 Introduction The Intel® IXP400 DSP Software v2.5 is a software module that provides the basic voice processing functionalities for VoIP residential gateway applications. It can be viewed as a completed media processing layer with control and data interfaces as its API. This document defines the API specifications. 1.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Architectural Overview 2.0 Architectural Overview Intel® IXP400 DSP Software is implemented as an independent module having its own tasks and runtime environment. The software architecture is of a two-layer hierarchy – a control layer that provides the control interface and control logic, and a data processing layer where the media data streams are processed by appropriate algorithms. Figure 1 shows the architecture of the module.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Media Processing Resource Components 3.0 Media Processing Resource Components As shown in Figure 1, the addressable control entities of Intel® IXP400 DSP Software are media processing resource (MPR) components similar to those defined in many Intel Dialogic compute telephony system architecture. There are nine resource components, working together to provide all the media processing needed by a gateway or server channel.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Media Processing Resource Components Parameters Identifier Description, Values XPARMID_RES_STATE Current state (0: idle, 1: active) XPARMID_NET_LP_STREAM The L-Port stream ID. Default: the stream assigned to the IP termination’s TPort of the same channel if exist, otherwise –1. XPARMID_NET_LAW PCM data format on HSS TDM bus. XPARM_NET_ALAW or XPARM_NET_MULAW. Attr.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Media Processing Resource Components Identifier Description and Values RTP payload type for G.726 40-Kbps coder. The payload type is negotiated and set by the call stack. The range of values is 96 to XPARMID_DEC_G726_40_RTP_PLD 127. Attr. Direct Write R/W Y R/W Y R/W Y R/W Y R/W N Default: 96 RTP payload type for G.726 32-Kkbps coder, The payload type is negotiated and set by the call stack.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Media Processing Resource Components Parameters Attr. Direct Write R N R/W N R/W N R/W N R/W N R/W N R/W Y RTP payload type for G.726 40-Kbps coder, The payload type is XPARMID_ENC_G726_40_RTP_PLD negotiated and set by the call stack. The range of values is 96 to 127. Default: 96 R/W Y RTP payload type for G.726 32-Kbps coder, The payload type is XPARMID_ENC_G726_32_RTP_PLD negotiated and set by the call stack.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Media Processing Resource Components 3.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Media Processing Resource Components 3.5 Tone Detection Resource Component Resource Type: XMPR_TNDET Media Processing Functions • Receiving DTMF digits • Detecting individual tone event Resource-Specific Control Messages • • • • XMSG_TD_RCV (inbound) XMSG_TD_RCV_FSK (inbound) XMSG_TD_RCV_CMPLT (outbound) XMSG_TD_RCV_FSK_CMPLT (outbound) Parameters Identifier Description and values Attr.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Media Processing Resource Components Description and values Attr. Direct Write XPARMID_TD_FSK_CS Minimum CS-bit length required by FSK receiver. Default: 200 if country code set to COUNTRY_CODE_US or COUNTRY_CODE_PRC, otherwise 0. R/W Y XPARMID_TD_FSK_MARK Minimum mark-bit length required by FSK receiver. Default: 100 if country code set to COUNTRY_CODE_US or COUNTRY_CODE_PRC, otherwise 60.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Media Processing Resource Components Media Processing Functions Mixing multiple audio streams for three-way call or small audio conference. The maximum number of parties to the mixer is currently five. Resource-Specific Control Messages None. Parameters Identifier Description and values Attr. Direct Write R N XPARMID_RES_STATE Current state (0: idle, 1: active) XPARMID_MIX_LP_STREAM The first L-Port stream ID.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Media Processing Resource Components Identifier Description and Values Attr. Direct Write R/W N R/W N R/W N R/W N Method of modem rate negotiation. XPARMID_T38_RATE_NEG XPARAID_T38_TCF_THRSHLD XPARM_T38_RATE_NEG_LOCAL or XPARM_T38_RATE_NEG_REMOTE. Default:XPARM_T38_RATE_NEG_REMOTE if packet transferred over UDP, otherwise XPARM_T38_RATE_NEG_LOCAL TCF error threshold (in percentage). Default: 5 Protocol used to transfer T.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Message Format and Delivery Mechanism 4.0 Message Format and Delivery Mechanism There are two message queues (in-bound and out-bound) for the user application to send control messages and to receive response and event messages, respectively. The message queues are created from pre-allocated memory buffers in consideration of maximum message size and total number of messages.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Message Format and Delivery Mechanism XStatus_t xMsgWrite (void *pMsgBuf); (Sheet 2 of 2) Return 4.2 • XSUCC — If successful • XERROR — If errors Caution Message buffer requires 4-byte alignment. Note The message buffer can be used for any other purpose, after posting.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Message Format and Delivery Mechanism 4.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Common Control Message 5.0 Common Control Message This section defines the control messages that can be applied to all the resources. 5.1 Reset Message Type XMSG_RESET Direction Inbound Description Stops the current action and resets the resource to idle state.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Common Control Message 5.3 Stop Message Type XMSG_STOP Direction Inbound Description Stops the current action. Format typedef struct{ XMsgHdr_t head; } XMsgStop_t; Macro #define XMSG_MAKE_STOP(pMsg, trans, res, inst)\ {\ XMSG_MAKE_HEAD(pMsg, trans, res, inst, sizeof(XMsgStop_t),\ XMSG_STOP, 0)\ } Response Resource returns the processing results or states, if any, depending on the resources and current actions. 5.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Common Control Message Type XMSG_SET_PARM (Sheet 2 of 2) Format typedef struct{ XMsgHdr_t head; UINT16 parmId; UINT16 value; } XMsgSetParm_t; Macro #define XMSG_MAKE_SET_PARM(pMsg, trans, res, inst, id, val) \ {\ XMSG_MAKE_HEAD(pMsg, trans, res, inst, sizeof(XMsgSetParm_t),\ XMSG_SET_PARM, 0)\ ((XMsgSetParm_t *)(pMsg))->parmId= id;\ ((XMsgSetParm_t *)(pMsg))->value= val;\ } Response 5.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Common Control Message 5.7 Get-Parameter Message Type XMSG_GET_PARM Direction Inbound Description Gets a parameter from a resource. Format typedef struct{ XMsgHdr_t head; UINT16 parmId; } XMsgGetParm_t; Macro #define XMSG_MAKE_GET_PARM(pMsg, trans, res, inst, id) \ {\ XMSG_MAKE_HEAD(pMsg, trans, res, inst, sizeof(XMsgGetParm_t),\ XMSG_GET_PARM, 0)\ ((XMsgGetParm_t *)(pMsg))->parmId= id;\ } Response 5.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Common Control Message Type XMSG_GET_ALLPARMS Format typedef struct{ XMsgHdr_t head; } XMsgGetAllParms_t; Macro #define XMSG_MAKE_GET_ALLPARMS(pMsg, trans, res, inst) \ {\ XMSG_MAKE_HEAD(pMsg, trans, res, inst, sizeof(XMsgGetAllParms_t),\ XMSG_GET_ALLPARMS, 0)\ } Response Specific acknowledgement message (XMSG_GET_ALLPARMS_ACK) 5.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Common Control Message 5.12 Error Message Type XMSG_ERROR Direction Outbound Description Resource reports an error condition. (See constant data section for error codes.) Format typedef struct{ XMsgHdr_t UINT32 UINT32 UINT32 } XMsgError_t; Macro #define XMSG_FIELD_ERROR(pMsg, c, d1, d2)\ {\ c = ((XMsgError_t *)(pMsg))->code;\ d1 = ((XMsgError_t *)(pMsg))->data1;\ d2 = ((XMsgError_t *)(pMsg))->data2;\ } 5.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Resource-Specific Control Messages 6.0 Resource-Specific Control Messages This section defines the resource-specific messages. 6.1 CODEC Start Message Type XMSG_CODER_START Direction Inbound Description Starts a decoder or encoder.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Resource-Specific Control Messages 6.3 Tone Generator Play Message Type XMSG_TG_PLAY Direction Inbound Description Requires Tone Generator to play a tone string. (Tone ID’s are listed in the constant data section.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Resource-Specific Control Messages 6.5 Tone Generator Play-Completed Message Type XMSG_TG_PLAY_CMPLT Direction Outbound Description Tone Generator indicates the completion of playing tones. typedef struct{ XMsgHdr_t head; UINT16 reason; Format UINT8 numTones; } XMsgTGPlayCmplt_t; Macro 6.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Resource-Specific Control Messages 6.7 Tone Detector Receive-Completed Message Type XMSG_TD_RCV_CMPLT Direction Outbound Description Tone detector indicates the completion of receiving DTMF tones.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Resource-Specific Control Messages 6.9 Tone Detector FSK-Receive-Completed Message Type XMSG_TD_RCV_FSK_CMPLT Direction Outbound Description Tone Detector indicates the completion of receiving FSK data Format typedef struct{ XMsgHdr_t head; UINT16 reason; UINT8 numBytes; UINT8 data[XMAX_FSKDATASIZE]; } XMsgTDRcvFskCmplt_t; where the reason may be: #define XMSG_STOP_REASON_EOD #define XMSG_STOP_REASON_TIMEOUT Macro 6.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Resource-Specific Control Messages 6.12 Get-Jitter-Buffer-Statistics Message Type XMSG_GET_JBSTAT Direction Inbound Description Get the jitter buffer statistics from a Decoder instance.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Packet Data Interface 7.0 Packet Data Interface The packet data interface is a protocol for the Intel® IXP400 DSP Software to exchange the encoded data packets with IP stack. This interface is defined as a packet format and two callback functions – one is provided by DSP software release and another is provided by the user (IP stack). 7.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Configuration and Initialization 8.0 Configuration and Initialization The Intel® IXP400 DSP Software is configurable at initialization time, allowing the user to specify the HSS parameters, the number of resource instances to be created and the country-specific features. The user-supplied call back functions are also registered at that time. 8.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Configuration and Initialization Then the array that describes such configuration is given as: XDSPChanTdmSlots_t chanTsMapping[2] = { {0, 16}, /* channel 1 – WB, time slot 0 and 16 */ {2, XCHAN_TDM_SLOT_NULL} /* channel 2 – NB, time slot 2 */ }; If the pChanTsMap field is given a NULL pointer, all the instances of Network Endpoint will be configured to the narrowband mode and are linked to the active time slots sequentially. Warning: 8.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Configuration and Initialization typedef struct { UINT16 repCount; /* UINT16 segType; /* UINT32 durationOn; /* UINT32 durationOff;/* INT16 freqA; /* INT16 freqB; /* INT16 INT16 ampA; ampB; /* /* UINT16 INT16 mode; nextSeg; /* /* repetition number of the segment. 0 means to repeat forever */ signal type (single or dual frequency wave or AM wave ) */ active duration in 1-ms unit. */ silence duration in 1-ms unit.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Configuration and Initialization /* segment data for tone detection template.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Complementary Functions 9.0 Complementary Functions 9.1 Direct Parameter Access The user’s applications can bypass the message and directly access the DSP parameters. This allows quicker access without having to send a message and receive a response. All parameters can be directly read but only some of them can be directly modified.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Complementary Functions Prototype Status_t xFlashHookDetect(UINT16 channel, XHookState_t hookState, XUINT32 transId); Output None Return Description • XSUCC if successful • Otherwise XERROR This function is called by the SLIC driver to report the hook state changes via the event message. If an on-hook transition followed by an off-hook one within the time specified by the XPARMID_NET_FLASH_HK parameter, a flash hook event is reported.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Complementary Functions 9.4 Get Version Number Prototype 46 char * xDspGetVersion(void ); Input None Output None Return Pointer to the version string. Description This function returns a six-digit version string in ASCII format hard coded in each release uniquely. The first two digits give the major version number, the 2 digits in the middle give the minor number and the last two digits give the build number.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Constant Data 10.0 Constant Data This section lists up the definitions for constant data such as error codes and event codes. 10.1 Error Codes Errors are reported via XMSG_ERROR message with an error code and two error data.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Constant Data 10.2 Event Codes Events are reported via XMSG_EVENT message with an event code and two event data. The resource specific event codes are defined as: #define #define #define #define #define #define 10.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.5 Constant Data 10.
Intel® IXP400 Digital Signal Processing (DSP) Software Version 2.