*** app_h324m.c Tue May 6 12:11:11 2008 --- app_h324m_sven.c Tue May 6 12:18:55 2008 *************** *** 184,189 **** --- 184,193 ---- struct ast_frame* send; unsigned char* data = 0; + /* 1st dummy AMR-SID frame (comfort noise) */ + static unsigned char last_amr_sti[6] = { 0x78, 0x46, 0x00, 0x94, 0xA4, 0x07 }; + + /* Get data & size */ unsigned char * framedata = FrameGetData(frame); unsigned int framelength = FrameGetLength(frame); *************** *** 213,218 **** --- 217,233 ---- unsigned char header = framedata[0]; /*Get mode*/ unsigned char mode = header & 0x0F; + + if (mode==8 && framelength==6) { + /* save AMR-SID frame */ + memcpy( last_amr_sti, framedata, 6 ); + } else if (mode==15) { /* AMR No-Data packet --> replace with last AMR-SID */ + mode = 8; + framelength = 6; + framedata = last_amr_sti; + } + + /*Get number of stuffing bits*/ unsigned int stuf = if2stuffing[mode];