mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 03:20:57 +00:00
Merge "chan_ooh323: introduce localras config parameter"
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
strcpy(pGkClient->localRASIP, gH323ep.signallingIP);
|
if (szRasAddr && *szRasAddr) {
|
||||||
|
strcpy(pGkClient->localRASIP, szRasAddr);
|
||||||
|
} else {
|
||||||
|
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
|
||||||
|
Reference in New Issue
Block a user