Merge "chan_ooh323: introduce localras config parameter"

16.0
Jenkins2 7 years ago committed by Gerrit Code Review
commit 8c1400bb57

@ -355,6 +355,7 @@ static int gDTMFCodec = 101;
static int gFAXdetect = FAXDETECT_CNG; static int gFAXdetect = FAXDETECT_CNG;
static int gT38Support = T38_FAXGW; static int gT38Support = T38_FAXGW;
static char gGatekeeper[100]; static char gGatekeeper[100];
static char gRASIP[2+8*4+7]; /* Max for IPv6 addr */
static enum RasGatekeeperMode gRasGkMode = RasNoGatekeeper; static enum RasGatekeeperMode gRasGkMode = RasNoGatekeeper;
static int gIsGateway = 0; static int gIsGateway = 0;
@ -2721,7 +2722,7 @@ static int ooh323_do_reload(void)
if (gRasGkMode == RasUseSpecificGatekeeper || if (gRasGkMode == RasUseSpecificGatekeeper ||
gRasGkMode == RasDiscoverGatekeeper) { gRasGkMode == RasDiscoverGatekeeper) {
ooGkClientInit(gRasGkMode, (gRasGkMode == RasUseSpecificGatekeeper) ? ooGkClientInit(gRasGkMode, (gRasGkMode == RasUseSpecificGatekeeper) ?
gGatekeeper : 0, 0); gGatekeeper : 0, gRASIP, 0);
ooGkClientStart(gH323ep.gkClient); ooGkClientStart(gH323ep.gkClient);
} }
@ -2864,6 +2865,7 @@ int reload_config(int reload)
gTRCLVL = OOTRCLVLERR; gTRCLVL = OOTRCLVLERR;
gRasGkMode = RasNoGatekeeper; gRasGkMode = RasNoGatekeeper;
gGatekeeper[0] = '\0'; gGatekeeper[0] = '\0';
gRASIP[0] = '\0';
gRTPTimeout = 60; gRTPTimeout = 60;
gNat = FALSE; gNat = FALSE;
gRTDRInterval = 0; gRTDRInterval = 0;
@ -3024,6 +3026,9 @@ int reload_config(int reload)
gRasGkMode = RasUseSpecificGatekeeper; gRasGkMode = RasUseSpecificGatekeeper;
ast_copy_string(gGatekeeper, v->value, sizeof(gGatekeeper)); ast_copy_string(gGatekeeper, v->value, sizeof(gGatekeeper));
} }
} else if (!strcasecmp(v->name, "localras")) {
ast_copy_string(gRASIP, v->value, sizeof(gRASIP));
ast_verb(3, " == Setting RAS IP to %s\n", gRASIP);
} else if (!strcasecmp(v->name, "logfile")) { } else if (!strcasecmp(v->name, "logfile")) {
ast_copy_string(gLogFile, v->value, sizeof(gLogFile)); ast_copy_string(gLogFile, v->value, sizeof(gLogFile));
} else if (!strcasecmp(v->name, "context")) { } else if (!strcasecmp(v->name, "context")) {
@ -3919,9 +3924,9 @@ static int load_module(void)
/* Gatekeeper */ /* Gatekeeper */
if (gRasGkMode == RasUseSpecificGatekeeper) if (gRasGkMode == RasUseSpecificGatekeeper)
ooGkClientInit(gRasGkMode, gGatekeeper, 0); ooGkClientInit(gRasGkMode, gGatekeeper, gRASIP, 0);
else if (gRasGkMode == RasDiscoverGatekeeper) else if (gRasGkMode == RasDiscoverGatekeeper)
ooGkClientInit(gRasGkMode, 0, 0); ooGkClientInit(gRasGkMode, 0, gRASIP, 0);
/* Register callbacks */ /* Register callbacks */
ooH323EpSetH323Callbacks(h323Callbacks); ooH323EpSetH323Callbacks(h323Callbacks);
@ -4008,7 +4013,7 @@ static void *do_monitor(void *data)
ooGkClientDestroy(); ooGkClientDestroy();
ast_verb(0, "Restart stopped gatekeeper client\n"); ast_verb(0, "Restart stopped gatekeeper client\n");
ooGkClientInit(gRasGkMode, (gRasGkMode == RasUseSpecificGatekeeper) ? ooGkClientInit(gRasGkMode, (gRasGkMode == RasUseSpecificGatekeeper) ?
gGatekeeper : 0, 0); gGatekeeper : 0, gRASIP, 0);
ooGkClientStart(gH323ep.gkClient); ooGkClientStart(gH323ep.gkClient);
} }

@ -49,7 +49,7 @@ static ASN1OBJID gProtocolID = {
}; };
int ooGkClientInit(enum RasGatekeeperMode eGkMode, int ooGkClientInit(enum RasGatekeeperMode eGkMode,
char *szGkAddr, int iGkPort ) char *szGkAddr, char *szRasAddr, int iGkPort )
{ {
ooGkClient *pGkClient=NULL; ooGkClient *pGkClient=NULL;
OOInterface *cur=NULL; OOInterface *cur=NULL;
@ -69,7 +69,11 @@ int ooGkClientInit(enum RasGatekeeperMode eGkMode,
pGkClient->rrqRetries = 0; pGkClient->rrqRetries = 0;
pGkClient->grqRetries = 0; pGkClient->grqRetries = 0;
if (szRasAddr && *szRasAddr) {
strcpy(pGkClient->localRASIP, szRasAddr);
} else {
strcpy(pGkClient->localRASIP, gH323ep.signallingIP); strcpy(pGkClient->localRASIP, gH323ep.signallingIP);
}
#ifndef _WIN32 #ifndef _WIN32
if(!strcmp(pGkClient->localRASIP, "0.0.0.0") || if(!strcmp(pGkClient->localRASIP, "0.0.0.0") ||
!strcmp(pGkClient->localRASIP, "127.0.0.1")) !strcmp(pGkClient->localRASIP, "127.0.0.1"))
@ -90,7 +94,6 @@ int ooGkClientInit(enum RasGatekeeperMode eGkMode,
} }
if(cur) if(cur)
{ {
OOTRACEINFO2("Using local RAS Ip address %s\n", cur->addr);
strcpy(pGkClient->localRASIP, cur->addr); strcpy(pGkClient->localRASIP, cur->addr);
} }
else{ else{
@ -98,6 +101,7 @@ int ooGkClientInit(enum RasGatekeeperMode eGkMode,
return OO_FAILED; return OO_FAILED;
} }
} }
OOTRACEINFO2("Using local RAS Ip address %s\n", pGkClient->localRASIP);
#endif #endif
if(OO_OK != ooGkClientSetGkMode(pGkClient, eGkMode, szGkAddr, iGkPort)) if(OO_OK != ooGkClientSetGkMode(pGkClient, eGkMode, szGkAddr, iGkPort))
{ {

@ -223,7 +223,7 @@ struct OOH323CallData;
* *
*/ */
EXTERN int ooGkClientInit EXTERN int ooGkClientInit
(enum RasGatekeeperMode eGkMode, char *szGkAddr, int iGkPort ); (enum RasGatekeeperMode eGkMode, char *szGkAddr, char *szRasAddr, int iGkPort );
/** /**
* This function is used to print the gatekeeper client configuration * This function is used to print the gatekeeper client configuration

Loading…
Cancel
Save