📄 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 2001 Netergy Microelectronics, Inc. All rights reserved. * ********************************************************************/#include "h248app.h"#include "agent_api.h"#include "mib2_api.h"extern void *snmp_handle;/************************************************************************** * _InitializeNetwork * Initialization of IP protocol stack, IP address etc... **************************************************************************/void _InitializeNetwork(){ SetupNetReturn snReturn; char chParamValue[CONFIG_MAXPARAMLENGTH+1]; if (ConfigSetParam("CCAPITEST","Y")!=CONFIG_OK) { APPLOG(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", 1); g_bDHCPMode = TRUE; } snReturn=SetupNetStack(SETUPNET_AUTO); ASSERT(snReturn==SETUPNET_OK); snReturn=SetupNetGetIPAddress(&g_dwLANIPAddr); ASSERT(snReturn==SETUPNET_OK); snReturn=SetupNetGetMacAddress(g_oMacAddress); ASSERT(snReturn==SETUPNET_OK); sprintf(g_sMgIpAddr, "%d.%d.%d.%d", ((OCTET)(g_dwLANIPAddr>>24)&0xff), ((OCTET)(g_dwLANIPAddr>>16)&0xff), ((OCTET)(g_dwLANIPAddr>>8)&0xff), ((OCTET)(g_dwLANIPAddr)&0xff)); sprintf(g_sMacAddr, "%02x:%02x:%02x:%02x:%02x:%02x", g_oMacAddress[0], g_oMacAddress[1], g_oMacAddress[2], g_oMacAddress[3], g_oMacAddress[4], g_oMacAddress[5]); SYSLOG(LOG_INFO,"IP address is %s mac is %s\n", g_sMgIpAddr, g_sMacAddr); snmp_handle = SnmpAgentInit(); SnmpRegisterTcpIp(snmp_handle); Mib2Initialize();}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 server 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(){ char chParamValue[CONFIG_MAXPARAMLENGTH+1]; PROTOCOL_CAP* pCap; // 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 ); _InitLineParam(&xEndPoint[0]); // 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); 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 = 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; //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 + -