📄 initt2.c
字号:
/******************************************************************** * * File: initT2.c * * Description: * Initialization functions specific * for T2 (not used by the loop back) * * Revisions: * 04-may-01 J.H and S.J.M initial version. * * Copyright 2003 Netergy Microelectronics, Inc. All rights reserved. * ********************************************************************/#include "h248app.h"/************************************************************************** * _InitializeNetwork * Initialization of IP protocol stack, IP adress etc... **************************************************************************/void _InitializeNetwork(void){ SetupNetReturn snReturn; char chParamValue[CONFIG_MAXPARAMLENGTH+1]; if (ConfigSetParam("MGCPCCAPITEST","Y")!=CONFIG_OK) { SYSLOG(LOG_ERROR,"ERROR - FLASH IS NOT VALID. Halting program\n"); while(1) {}; } if ((ConfigGetParam("IF0DHCP", chParamValue, CONFIG_MAXPARAMLENGTH) != CONFIG_OK) || ((ConfigGetParam("IF0DHCP", chParamValue, CONFIG_MAXPARAMLENGTH) == CONFIG_OK) && (strcmp(chParamValue,"DHCP")==0))) { HandsetDisplayString("Acquiring IP Address",3); } snReturn=SetupNetStack(SETUPNET_AUTO); ASSERT(snReturn==SETUPNET_OK); snReturn|=SetupNetGetMacAddress(g_oMacAddress); ASSERT(snReturn==SETUPNET_OK); snReturn|=SetupNetGetIPAddress(&g_dwLANIPAddr); ASSERT(snReturn==SETUPNET_OK); if (snReturn != SETUPNET_OK) { HandsetDisplayString("Network failed",3); while(1) {}; } SYSLOG(LOG_INFO,"LAN IP address is %d.%d.%d.%d mac is %x:%x:%x:%x:%x:%x\n", ((OCTET)(g_dwLANIPAddr>>24)&0xff), ((OCTET)(g_dwLANIPAddr>>16)&0xff), ((OCTET)(g_dwLANIPAddr>>8)&0xff), ((OCTET)(g_dwLANIPAddr)&0xff), g_oMacAddress[0], g_oMacAddress[1], g_oMacAddress[2], g_oMacAddress[3], g_oMacAddress[4], g_oMacAddress[5]); #ifdef NETWORK_ROUTER /******************************************** * Start RIP *******************************************/ RIPInit(); /******************************************** * CPE Port forwarding registrations. * (These ports are forwarded up to the CPE) *******************************************/ /* register MGCP call signalling port */ SetupNetRegisterWan2CpePortFwd(2427, 2427, 1); /* register RTP ports */ SetupNetRegisterWan2CpePortFwd(8000, 8015, 1); { LONG lReturn; /* HTTP */ g_bHttpWanAccess = FALSE; lReturn = ConfigGetParam("HTTPWAN", chParamValue, CONFIG_MAXPARAMLENGTH); if (!(lReturn == CONFIG_OK && !strcmp(chParamValue,"NO"))) { /* Allow HTTP access from the WAN (ON by default) */ SetupNetRegisterWan2CpePortFwd(80,80,TRUE); g_bHttpWanAccess = TRUE; } lReturn = ConfigGetParam("HTTPLAN", chParamValue, CONFIG_MAXPARAMLENGTH); if (lReturn == CONFIG_OK && !strcmp(chParamValue,"NO")) { /* Block HTTP access from the LAN (OFF by default) */ SetupNetRegisterLan2CpePortBlock(80,80,TRUE); g_bHttpLanAccess = FALSE; } /* VoIPDiscovery */ g_bVoipDiscWanAccess = FALSE; lReturn = ConfigGetParam("VOIPDISCWAN", chParamValue, CONFIG_MAXPARAMLENGTH); if (!(lReturn == CONFIG_OK && !strcmp(chParamValue,"NO"))) { /* Allow VoipDiscovery access from the WAN (ON by default) */ g_bVoipDiscWanAccess = TRUE; } lReturn = ConfigGetParam("VOIPDISCLAN", chParamValue, CONFIG_MAXPARAMLENGTH); if (lReturn == CONFIG_OK && !strcmp(chParamValue,"NO")) { /* Block VoipDiscovery access from the LAN (OFF by default) */ g_bVoipDiscLanAccess = FALSE; } #ifndef NUSE_SNMP /* SNMP */ g_bSnmpWanAccess = FALSE; lReturn = ConfigGetParam("SNMPWAN", chParamValue, CONFIG_MAXPARAMLENGTH); if (!(lReturn == CONFIG_OK && !strcmp(chParamValue,"NO"))) { /* Allow SNMP access from the WAN (ON by default) */ SetupNetRegisterWan2CpePortFwd(161,161,TRUE); g_bSnmpWanAccess = TRUE; } lReturn = ConfigGetParam("SNMPLAN", chParamValue, CONFIG_MAXPARAMLENGTH); if (lReturn == CONFIG_OK && !strcmp(chParamValue,"NO")) { /* Block SNMP access from the LAN (OFF by default) */ SetupNetRegisterLan2CpePortBlock(161,161,TRUE); g_bSnmpLanAccess = FALSE; }#endif } #endif}LONG _GetMgcIP() { char chParamValue[CONFIG_MAXPARAMLENGTH+1]; LONG lRv = PROTOCOL_NTWK_FAIL; /* get call agent address from configuration table */ if (ConfigGetParam("MGCADDRESS", chParamValue, CONFIG_MAXPARAMLENGTH) == CONFIG_OK){ strcpy(g_sMgcIpAddr,chParamValue); lRv = PROTOCOL_SUCCESS; } else { WORD wCA; DNS_SRV_RECORD* pServers = NULL; PROTOCOL_CALL_CONTROL_AGENT *pxCA; pServers = DnsDiscoveryServerQuery("_megaco._udp","_megaco", &wCA); if (pServers && wCA) { pxCA = calloc(wCA, sizeof(PROTOCOL_CALL_CONTROL_AGENT)); ASSERT(pxCA); /* Sort the list into order of priority */ DnsDiscoverySortSrvRecordByPriority(pServers, wCA); /* Convert srvr record entries to PROTOCOL_CALL_CONTROL_AGENT entries */ DnsDiscoverySrvToCallAgent(pServers, pxCA, wCA); strcpy(g_sMgcIpAddr, pxCA->pcHostName); free(pServers); free(pxCA); lRv = PROTOCOL_SUCCESS; } else { SYSLOG(LOG_ERROR,"DnsDiscoveryServerQuery Error\n"); } } return lRv;}void _InitializeParam(){ int i; char chParamValue[CONFIG_MAXPARAMLENGTH+1]; PROTOCOL_CAP* pCap; WORD wEndPointNumber = HandsetQueryNumberOfLines(); // get MG port if (ConfigGetParam("MGPORT",chParamValue,CONFIG_MAXPARAMLENGTH)==CONFIG_OK){ g_wMgPort = (DWORD)strtoul(chParamValue,NULL,0); } else { g_wMgPort = 55555; ConfigSetParam("MGPORT", "55555"); ConfigCommit(); } APPLOG(LOG_INFO,"MG port is %u\n", g_wMgPort); // get MG DeviceName if (ConfigGetParam("MGDEVICENAME", chParamValue, CONFIG_MAXPARAMLENGTH) == CONFIG_OK){ strcpy(g_sMgDeviceName, chParamValue); } else { memset(g_sMgDeviceName, 0, sizeof(g_sMgDeviceName)); } APPLOG(LOG_INFO,"DeviceName is %s\n", g_sMgDeviceName ); for (i = 0; i < wEndPointNumber; i++) { _InitLineParam(&xEndPoint[i]); } // initialize SIP parameters from flash or with defaults // get Server IP if (PROTOCOL_SUCCESS == _GetMgcIP()) { APPLOG(LOG_INFO,"MGC IP is %s\n", g_sMgcIpAddr); } else { APPLOG(LOG_ERROR,"Server not configured\n"); HandsetDisplayString("MGC ADDR NOT SET", 1); HandsetDisplayString("Gateway IP:", 2); HandsetDisplayString(g_sMgIpAddr, 3); while (1) { msleep(100); }; // hold (web server already running, user must configure) } // get MGC port if (ConfigGetParam("MGCPORT",chParamValue,CONFIG_MAXPARAMLENGTH)==CONFIG_OK){ g_wMgcPort = (WORD)strtoul(chParamValue,NULL,0); } else { g_wMgcPort = 2944; ConfigSetParam("MGCPORT", "2944"); ConfigCommit(); } APPLOG(LOG_INFO,"MGC1: %s:%d\n", g_sMgcIpAddr, g_wMgcPort); pCap = calloc(1,sizeof(PROTOCOL_CAP)); pCap->eMedia = PROTOCOL_MEDIA_AUDIO; pCap->xCmn.oPayload = PROTOCOL_RTPPAYLOAD_PCMU; pCap->u.xAudio.bSilenceSuppression = TRUE; // pCap->u.xAudio.bSilenceSuppression = FALSE; //pCodec->bEchoCancellation = TRUE; pCap->u.xAudio.oPacketization = 30; MediaStreamAddCap(pCap); pCap = calloc(1,sizeof(PROTOCOL_CAP)); pCap->eMedia = PROTOCOL_MEDIA_AUDIO; pCap->xCmn.oPayload = PROTOCOL_RTPPAYLOAD_PCMA; // pCap->u.xAudio.bSilenceSuppression = FALSE; pCap->u.xAudio.bSilenceSuppression = TRUE; //pCodec->bEchoCancellation = TRUE; pCap->u.xAudio.oPacketization = 30; MediaStreamAddCap(pCap);#ifdef AUD_G723 _InitializeCodec( "G723", PROTOCOL_RTPPAYLOAD_G723);#endif#ifdef AUD_G729 _InitializeCodec( "G729", PROTOCOL_RTPPAYLOAD_G729);#endif#ifdef AUD_G726 _InitializeCodec( "G726", PROTOCOL_RTPPAYLOAD_G726);#endif /* OOB Telephone Events */ if ((ConfigGetParam("OOBTELEVENTS", chParamValue, CONFIG_MAXPARAMLENGTH) == CONFIG_OK) && (strcmp(chParamValue,"YES")==0)) { g_bOOBTelephoneEvents = TRUE; /* Get RTP telephone event payload type */ if (ConfigGetParam("TELEVENTPAYLOAD", chParamValue, CONFIG_MAXPARAMLENGTH) == CONFIG_OK) { g_dwTeleventPayload = atoi(chParamValue); } /* Voice during telephone events */ if ((ConfigGetParam("DROPVOICE", chParamValue, CONFIG_MAXPARAMLENGTH) == CONFIG_OK) && (strcmp(chParamValue,"YES")==0)) { g_bDropVoiceDuringEvents = TRUE; } } }void _InitLineParam(END_POINT *pEndPoint){ char chParamValue[CONFIG_MAXPARAMLENGTH+1]; char szTermName[30]; sprintf(szTermName, "TERM%dNAME", pEndPoint->wChannel); // retrieve our phone number if (ConfigGetParam(szTermName, chParamValue, CONFIG_MAXPARAMLENGTH) == CONFIG_OK) { // user specified a number strcpy(pEndPoint->szTermName,chParamValue); } else { char szTermDefault[10]; sprintf(szTermDefault, "term/%d", pEndPoint->wChannel); ConfigSetParam(szTermName, szTermDefault); ConfigCommit(); strcpy(pEndPoint->szTermName,szTermDefault); } APPLOG(LOG_INFO,"Term %d Name is %s\n", pEndPoint->wChannel, pEndPoint->szTermName);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -