VOS_VOID IMSA_ProcImsMsgUssdReasonNotify(const IMSA_IMS_OUTPUT_USSD_EVENT_STRU *pstOutUssdEvt) { IMSA_USSD_MANAGER_STRU *pstUssdManager; TAF_SS_USSD_STRING_STRU stUssdString = {0}; IMSA_INFO_LOG("IMSA_ProcImsMsgUssdReasonNotify is entered"); pstUssdManager = IMSA_USSD_GetEntityAddress(); if (IMSA_USSD_MT_CONN_STATE == pstUssdManager->enUssdState) { IMSA_INFO_LOG("IMSA_ProcImsMsgUssdReasonNotify:state is err"); return; } stUssdString.usCnt = pstOutUssdEvt->usMessageLen; IMSA_MEM_CPY( stUssdString.aucUssdStr, pstOutUssdEvt->aucMessage, pstOutUssdEvt->usMessageLen); if (IMSA_USSD_MO_CONN_STATE == pstUssdManager->enUssdState) { /*停止等待网侧响应定时器*/ IMSA_StopTimer(&(pstUssdManager->stUssdWaitNetRspTimer)); (VOS_VOID)IMSA_SendSpmUssdNotifyIndEvt( pstUssdManager->usClientId, pstUssdManager->ucOpId, pstOutUssdEvt->encType, &stUssdString); } else { /*USSD在状态IMSA_USSD_IDLE_STATE的处理*/ /*网侧主动触发流程*/ (VOS_VOID)IMSA_SendSpmUssdNotifyIndEvt( 0x3fff, 0, pstOutUssdEvt->encType, &stUssdString); } /*启动等待APP响应定时器*/ IMSA_StartTimer(&(pstUssdManager->stUssdWaitAppRspTimer)); pstUssdManager->enUssdState = IMSA_USSD_MT_CONN_STATE; return; }
/***************************************************************************** Function Name : IMSA_SMS_SndMsgDataInd() Description : 发送Data ind消息 Input : ucData MSG内容,ulDataLen MSG长度 Output : VOS_VOID Return Value : VOS_VOID History : 1.sunbing 49683 2013-08-10 Draft Enact *****************************************************************************/ VOS_VOID IMSA_SMS_SndMsgDataInd(const VOS_UINT8* ucData, VOS_UINT32 ulDataLen) { IMSA_MSG_DATA_IND_STRU *pstDataInd; VOS_UINT32 ulMsgDataLen; if(ulDataLen < 4) { ulMsgDataLen = sizeof(IMSA_MSG_DATA_IND_STRU); } else { /*lint -e961*/ ulMsgDataLen = sizeof(IMSA_MSG_DATA_IND_STRU)+ ulDataLen -4; /*lint +e961*/ } /*分配消息空间*/ pstDataInd = (VOS_VOID*)IMSA_ALLOC_MSG(ulMsgDataLen); /*检测是否分配成功*/ if (VOS_NULL_PTR == pstDataInd) { /*打印异常信息*/ IMSA_ERR_LOG("IMSA_SMS_SndMsgDataInd:ERROR:Alloc Msg fail!"); return ; } IMSA_MEM_SET(IMSA_GET_MSG_ENTITY_BY_NAME(pstDataInd),0,\ IMSA_GET_MSG_LENGTH(pstDataInd)); /*lint -e960*/ IMSA_WRITE_MSG_MSG_HEAD(pstDataInd,ID_IMSA_MSG_DATA_IND); /*lint +e960*/ /*短信接受域为PS域*/ pstDataInd->ucRcvDomain = 0; /*填写SMS内容*/ pstDataInd->ulDataLen = ulDataLen; IMSA_MEM_CPY(pstDataInd->aucData,ucData,ulDataLen); /*调用消息发送函数 */ IMSA_SND_MSG(pstDataInd); }
/***************************************************************************** Function Name : IMSA_SMS_SndMsgReportInd() Description : 发送report消息 Input : ucData MSG内容,ulDataLen MSG长度 Output : VOS_VOID Return Value : VOS_VOID History : 1.sunbing 49683 2013-08-10 Draft Enact *****************************************************************************/ VOS_VOID IMSA_SMS_SndMsgReportInd(VOS_UINT32 ulErrCode, const VOS_UINT8* pucData, VOS_UINT32 ulDataLen) { IMSA_MSG_REPORT_IND_STRU *pstReportInd; /*超长短信*/ if(ulDataLen > SMR_SMT_RP_USER_DATA_LENGTH) { /*打印异常信息*/ IMSA_ERR_LOG("IMSA_SMS_SndMsgReportInd:Length is too long!"); return ; } /*分配消息空间*/ pstReportInd = (VOS_VOID*)IMSA_ALLOC_MSG(sizeof(IMSA_MSG_REPORT_IND_STRU)); /*检测是否分配成功*/ if (VOS_NULL_PTR == pstReportInd) { /*打印异常信息*/ IMSA_ERR_LOG("IMSA_SMS_SndMsgReportInd:ERROR:Alloc Msg fail!"); return ; } IMSA_MEM_SET(IMSA_GET_MSG_ENTITY_BY_NAME(pstReportInd),0,\ IMSA_GET_MSG_LENGTH(pstReportInd)); /*lint -e960*/ IMSA_WRITE_MSG_MSG_HEAD(pstReportInd,ID_IMSA_MSG_REPORT_IND); /*lint +e960*/ /*填写SMS内容*/ pstReportInd->enErrorCode = ulErrCode; if(VOS_NULL_PTR != pucData) { pstReportInd->stRpduData.ulDataLen = ulDataLen; IMSA_MEM_CPY(pstReportInd->stRpduData.aucData,pucData,ulDataLen); } /*调用消息发送函数 */ IMSA_SND_MSG(pstReportInd); }
VOS_VOID IMSA_SndMsgRnicPdnActInd(const IMSA_PDP_CNTXT_INFO_STRU *pstPdpInfo) { IMSA_RNIC_PDN_ACT_IND_STRU *pstRnicPdnActInd; VOS_UINT8 aucTemp[IMSA_IPV6_ADDR_PREFIX_LEN] = {0}; IMSA_NORM_LOG("IMSA_SndMsgRnicPdnActInd enter!"); /*分配消息空间*/ pstRnicPdnActInd = (VOS_VOID*)IMSA_ALLOC_MSG(sizeof(IMSA_RNIC_PDN_ACT_IND_STRU)); /*检测是否分配成功*/ if (VOS_NULL_PTR == pstRnicPdnActInd) { /*打印异常信息*/ IMSA_ERR_LOG("IMSA_SndMsgRnicPdnActInd:ERROR:Alloc Msg fail!"); return ; } IMSA_MEM_SET( IMSA_GET_MSG_ENTITY(pstRnicPdnActInd), 0, IMSA_GET_MSG_LENGTH(pstRnicPdnActInd)); IMSA_WRITE_RNIC_MSG_HEAD(pstRnicPdnActInd,ID_IMSA_RNIC_PDN_ACT_IND); /*填写消息内容*/ pstRnicPdnActInd->stPdnInfo.ucRabId = pstPdpInfo->ucPdpId; pstRnicPdnActInd->stPdnInfo.enModemId = MODEM_ID_0; if ((IMSA_IP_TYPE_IPV4 == pstPdpInfo->stPdpAddr.enIpType) || (IMSA_IP_TYPE_IPV4V6 == pstPdpInfo->stPdpAddr.enIpType)) { /* 配置IPV4地址 */ pstRnicPdnActInd->stPdnInfo.bitOpIpv4PdnInfo = IMSA_OP_TRUE; IMSA_MEM_CPY( pstRnicPdnActInd->stPdnInfo.stIpv4PdnInfo.aucIpV4Addr, pstPdpInfo->stPdpAddr.aucIpV4Addr, IMSA_IPV4_ADDR_LEN); /* 配置IPV4 DNS地址 */ pstRnicPdnActInd->stPdnInfo.stIpv4PdnInfo.bitOpDnsPrim = pstPdpInfo->stPdpIpv4Dns.bitOpPriDns; IMSA_MEM_CPY( pstRnicPdnActInd->stPdnInfo.stIpv4PdnInfo.aucDnsPrimAddr, pstPdpInfo->stPdpIpv4Dns.aucPriDns, IMSA_IPV4_ADDR_LEN); pstRnicPdnActInd->stPdnInfo.stIpv4PdnInfo.bitOpDnsSec = pstPdpInfo->stPdpIpv4Dns.bitOpSecDns; IMSA_MEM_CPY( pstRnicPdnActInd->stPdnInfo.stIpv4PdnInfo.aucDnsSecAddr, pstPdpInfo->stPdpIpv4Dns.aucSecDns, IMSA_IPV4_ADDR_LEN); } if ((IMSA_IP_TYPE_IPV6 == pstPdpInfo->stPdpAddr.enIpType) || (IMSA_IP_TYPE_IPV4V6 == pstPdpInfo->stPdpAddr.enIpType)) { if (0 != IMSA_MEM_CMP(aucTemp, pstPdpInfo->stPdpAddr.aucIpV6Addr, IMSA_IPV6_ADDR_PREFIX_LEN)) { /* 配置IPV6地址 */ pstRnicPdnActInd->stPdnInfo.bitOpIpv6PdnInfo = IMSA_OP_TRUE; pstRnicPdnActInd->stPdnInfo.stIpv6PdnInfo.ulBitPrefixLen = IMSA_IPV6_ADDR_PREFIX_BIT_LEN; IMSA_MEM_CPY( pstRnicPdnActInd->stPdnInfo.stIpv6PdnInfo.aucIpV6Addr, pstPdpInfo->stPdpAddr.aucIpV6Addr, IMSA_IPV6_ADDR_LEN); /* 配置IPV6 DNS地址 */ pstRnicPdnActInd->stPdnInfo.stIpv6PdnInfo.bitOpDnsPrim = pstPdpInfo->stPdpIpv6Dns.bitOpPriDns; IMSA_MEM_CPY( pstRnicPdnActInd->stPdnInfo.stIpv6PdnInfo.aucDnsPrimAddr, pstPdpInfo->stPdpIpv6Dns.aucPriDns, IMSA_IPV6_ADDR_LEN); pstRnicPdnActInd->stPdnInfo.stIpv6PdnInfo.bitOpDnsSec = pstPdpInfo->stPdpIpv6Dns.bitOpSecDns; IMSA_MEM_CPY( pstRnicPdnActInd->stPdnInfo.stIpv6PdnInfo.aucDnsSecAddr, pstPdpInfo->stPdpIpv6Dns.aucSecDns, IMSA_IPV6_ADDR_LEN); } } /*调用消息发送函数 */ IMSA_SND_MSG(pstRnicPdnActInd); return; }