VOS_VOID MN_CALL_ProcOmCodecRpt( ID_NAS_OM_INQUIRE_STRU *pstMsg ) { VOS_UINT32 ulMsgLen; VOS_UINT32 ulRet; NAS_OM_CODEC_TYPE_CNF_STRU *pstCodecTypeCnf = VOS_NULL_PTR; MN_CALL_CHANNEL_PARAM_STRU stChannParm; /* 申请内存 */ ulMsgLen = sizeof(NAS_OM_CODEC_TYPE_CNF_STRU) - VOS_MSG_HEAD_LENGTH; pstCodecTypeCnf = (NAS_OM_CODEC_TYPE_CNF_STRU*)PS_ALLOC_MSG(WUEPS_PID_TAF, ulMsgLen); if (VOS_NULL_PTR == pstCodecTypeCnf) { MN_ERR_LOG("MN_CALL_ProcOmCodecRpt:Error: Memory Alloc fail"); return; } /* 初始化 */ PS_MEM_SET((VOS_UINT8*)pstCodecTypeCnf + VOS_MSG_HEAD_LENGTH, 0x00, ulMsgLen); /* 填充消息 */ pstCodecTypeCnf->ulReceiverPid = MSP_PID_DIAG_APP_AGENT; pstCodecTypeCnf->ulMsgId = ID_NAS_OM_CODEC_TYPE_CONFIRM; pstCodecTypeCnf->usOriginalId = pstMsg->usOriginalId; pstCodecTypeCnf->usTerminalId = pstMsg->usTerminalId; pstCodecTypeCnf->ulTimeStamp = pstMsg->ulTimeStamp; pstCodecTypeCnf->ulSN = pstMsg->ulSN; ulRet = MN_CALL_GetTchParm(&stChannParm); if( VOS_OK == ulRet ) { pstCodecTypeCnf->enCurrCodec = MN_CALL_ConvertMnCodecToOmCodec(stChannParm.enCodecType); } else { pstCodecTypeCnf->enCurrCodec = NAS_OM_CODEC_TYPE_BUTT; } pstCodecTypeCnf->enGsmCodecConfig = MN_CALL_ConvertSpeechVers(); /* 发送消息 */ ulRet = PS_SEND_MSG(WUEPS_PID_TAF, pstCodecTypeCnf); if (VOS_OK != ulRet) { MN_WARN_LOG("MN_CALL_ProcOmCodecRpt:Warning Send msg fail."); } return; }
VOS_VOID MN_CALL_ProcOmCodecRpt( ID_NAS_OM_INQUIRE_STRU *pstMsg ) { VOS_UINT32 ulRet; ID_NAS_OM_CNF_STRU *pstNasOmCnf; NAS_OM_CODEC_TYPE_STRU stCodecType; MN_CALL_CHANNEL_PARAM_STRU stChannParm; PS_MEM_SET(&stCodecType, 0x00, sizeof(stCodecType)); pstNasOmCnf = (ID_NAS_OM_CNF_STRU *)PS_ALLOC_MSG_WITH_HEADER_LEN(WUEPS_PID_TAF, (sizeof(ID_NAS_OM_CNF_STRU) + sizeof(NAS_OM_CODEC_TYPE_STRU)) - NAS_OM_DATA_PTR_LEN); /* 申请内存 */ if (VOS_NULL_PTR == pstNasOmCnf) { MN_ERR_LOG("MN_CALL_ProcOmCodecRpt:Error: Memory Alloc fail"); return; } ulRet = MN_CALL_GetTchParm(&stChannParm); if( VOS_OK == ulRet ) { stCodecType.enCurrCodec = MN_CALL_ConvertMnCodecToOmCodec(stChannParm.enCodecType); } else { stCodecType.enCurrCodec = NAS_OM_CODEC_TYPE_BUTT; } stCodecType.enGsmCodecConfig = MN_CALL_ConvertSpeechVers(); PS_MEM_SET(pstNasOmCnf, 0, sizeof(ID_NAS_OM_CNF_STRU)); MN_Com_FillNasOmTransMsgHeader(pstNasOmCnf, ID_NAS_OM_CODEC_TYPE_CONFIRM,pstMsg->usToolsId); PS_MEM_CPY(pstNasOmCnf->aucData, &stCodecType,sizeof(stCodecType)); pstNasOmCnf->usLength = NAS_OM_DATA_OFFSET + sizeof(NAS_OM_CODEC_TYPE_STRU); ulRet = PS_SEND_MSG(WUEPS_PID_TAF, pstNasOmCnf); /* 原语发送 */ if (VOS_OK != ulRet) { MN_WARN_LOG("MN_CALL_ProcOmCodecRpt:Warning Send msg fail."); } }