/***************************************************************************** Function Name : IMSA_ProcImsMsgStartOrStopCnf() Description : 处理IMS开机或者关机结果 Input : VOS_VOID Output : VOS_VOID Return Value : VOS_VOID History : 1.sunbing 49683 2013-06-24 Draft Enact *****************************************************************************/ VOS_VOID IMSA_ProcImsMsgStartOrStopCnf(VOS_VOID) { IMSA_CONTROL_MANAGER_STRU *pstControlManager; IMSA_NORM_LOG("IMSA_ProcImsMsgStartOrStopCnf: Enter!"); pstControlManager = IMSA_GetControlManagerAddress(); /*停止开关机保护定时器*/ IMSA_StopTimer(&pstControlManager->stProtectTimer); /*关机流程*/ if(pstControlManager->enImsaStatus == IMSA_STATUS_STOPING) { /*清除资源*/ IMSA_ClearResource(); /*进入等待开机状态*/ pstControlManager->enImsaStatus = IMSA_STATUS_NULL; IMSA_SndMmaMsgStopCnf(); } else if(pstControlManager->enImsaStatus == IMSA_STATUS_STARTING) { /*进入开机状态*/ pstControlManager->enImsaStatus = IMSA_STATUS_STARTED; IMSA_SndMmaMsgStartCnf(); /* 给IMS配置UE能力 */ IMSA_ConfigUeCapabilityInfo2Ims(); if ((IMSA_OP_TRUE == pstControlManager->stImsaCommonInfo.stImsaUeId.bitOpImpi) && (IMSA_OP_TRUE == pstControlManager->stImsaCommonInfo.stImsaUeId.bitOpTImpu) && (IMSA_OP_TRUE == pstControlManager->stImsaCommonInfo.bitOpHomeNetDomainName)) { /* config account info to ims */ IMSA_ConfigAccoutInfo2Ims(IMSA_REG_TYPE_NORMAL); /* config account info to ims */ IMSA_ConfigAccoutInfo2Ims(IMSA_REG_TYPE_EMC); } /* set imei */ IMSA_ConfigImei2Ims(); /* set retry time */ IMSA_ConfigTimerLength2Ims(); IMSA_ConfigSipPort2Ims(); /* 给IMS配置SIP信息 */ IMSA_ConfigSipInfo2Ims(); IMSA_ConfigVoipInfo2Ims(); IMSA_ConfigCodeInfo2Ims(); IMSA_ConfigSsConfInfo2Ims(); IMSA_ConfigSecurityInfo2Ims(); } else { IMSA_WARN_LOG("IMSA_ProcImsMsgStartOrStopCnf: err stat!"); } }
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; }