⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 initt2.c

📁 h248另一部分的实现源码
💻 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 + -