chan_ooh323: fix h323 log file path

Change h323 log path relative to AST_LOG_DIR instead of
/var/log/asterisk hardcoded
Add return back error message from OOH323EP initialize

ASTERISK-28348 #close

Reported by: Dmitry Shubin

Change-Id: Ib102dd36bbe6c2a7a4ce6870ae9110d9000d7e98
This commit is contained in:
Alexander Anikin 2019-04-11 02:07:18 +03:00
parent dd32c0239f
commit a8f1e26d34
4 changed files with 17 additions and 11 deletions

View File

@ -82,7 +82,7 @@
/* Defaults */
#define DEFAULT_CONTEXT "default"
#define DEFAULT_H323ID "Asterisk PBX"
#define DEFAULT_LOGFILE "/var/log/asterisk/h323_log"
#define DEFAULT_LOGFILE "h323_log"
#define DEFAULT_H323ACCNT "ast_h323"
/* Flags */
@ -346,7 +346,8 @@ void onModeChanged(ooCallData *call, int t38mode);
extern OOH323EndPoint gH323ep;
static char gLogFile[256] = DEFAULT_LOGFILE;
static char gLogFile[PATH_MAX] = DEFAULT_LOGFILE;
static char gInitError[256] = "";
static int gPort = 1720;
static char gIP[2+8*4+7]; /* Max for IPv6 addr */
struct ast_sockaddr bindaddr;
@ -2856,7 +2857,7 @@ int reload_config(int reload)
}
/* Inintialize everything to default */
strcpy(gLogFile, DEFAULT_LOGFILE);
snprintf(gLogFile, sizeof(gLogFile), "%s/%s", ast_config_AST_LOG_DIR, DEFAULT_LOGFILE);
gPort = 1720;
gIP[0] = '\0';
strcpy(gCallerID, DEFAULT_H323ID);
@ -3034,7 +3035,11 @@ int reload_config(int reload)
ast_copy_string(gRASIP, v->value, sizeof(gRASIP));
ast_verb(3, " == Setting RAS IP to %s\n", gRASIP);
} else if (!strcasecmp(v->name, "logfile")) {
ast_copy_string(gLogFile, v->value, sizeof(gLogFile));
if (v->value[0] == '/') {
ast_copy_string(gLogFile, v->value, sizeof(gLogFile));
} else {
snprintf(gLogFile, sizeof(gLogFile), "%s/%s", ast_config_AST_LOG_DIR, v->value);
}
} else if (!strcasecmp(v->name, "context")) {
ast_copy_string(gContext, v->value, sizeof(gContext));
ast_verb(3, " == Setting default context to %s\n", gContext);
@ -3838,9 +3843,9 @@ static int load_module(void)
if (!reload_config(0)) {
/* fire up the H.323 Endpoint */
if (OO_OK != ooH323EpInitialize(OO_CALLMODE_AUDIOCALL, gLogFile)) {
ast_log(LOG_ERROR, "Failed to initialize OOH323 endpoint-"
"OOH323 Disabled\n");
if (OO_OK != ooH323EpInitialize(OO_CALLMODE_AUDIOCALL, gLogFile, gInitError, sizeof(gInitError))) {
ast_log(LOG_ERROR, "Failed to initialize OOH323 endpoint: %s"
"OOH323 Disabled\n", gInitError);
ao2_ref(gCap, -1);
gCap = NULL;
ao2_ref(ooh323_tech.capabilities, -1);

View File

@ -65,6 +65,7 @@
#include "asterisk/udptl.h"
#include "asterisk/stasis_channels.h"
#include "asterisk/format_cache.h"
#include "asterisk/paths.h"
#include "ootypes.h"
#include "ooUtils.h"

View File

@ -34,7 +34,7 @@ ast_mutex_t bindPortLock;
extern DList g_TimerList;
int ooH323EpInitialize
(enum OOCallMode callMode, const char* tracefile)
(enum OOCallMode callMode, const char* tracefile, char* errstr, int errstr_max)
{
memset(&gH323ep, 0, sizeof(ooEndPoint));
@ -46,7 +46,7 @@ int ooH323EpInitialize
{
if(strlen(tracefile)>= MAXFILENAME)
{
printf("Error:File name longer than allowed maximum %d\n",
snprintf(errstr, errstr_max, "Error:File name longer than allowed maximum %d\n",
MAXFILENAME-1);
return OO_FAILED;
}
@ -59,7 +59,7 @@ int ooH323EpInitialize
gH323ep.fptraceFile = fopen(gH323ep.traceFile, "a");
if(gH323ep.fptraceFile == NULL)
{
printf("Error:Failed to open trace file %s for write.\n",
snprintf(errstr, errstr_max, "Error:Failed to open trace file %s for write.\n",
gH323ep.traceFile);
return OO_FAILED;
}

View File

@ -163,7 +163,7 @@ typedef struct OOH323EndPoint {
* @return OO_OK, on success. OO_FAILED, on failure
*/
EXTERN int ooH323EpInitialize
(enum OOCallMode callMode, const char* tracefile);
(enum OOCallMode callMode, const char* tracefile, char* errstr, int errstr_max);
/**
* This function is used to represent the H.323 application endpoint as