From a889d8768f1eae05841e5977f07cdf4cb4be72c5 Mon Sep 17 00:00:00 2001 From: Alexandr Anikin Date: Fri, 31 May 2013 08:10:30 +0000 Subject: [PATCH] reject call attempts when gatekeeper is configured but not registered (closes issue ASTERISK-21800) Reported by: Dmitry Melekhov Patches: ASTERISK-21800-1.patch Tested by: Dmitry Melekhov git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@390181 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- addons/chan_ooh323.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/addons/chan_ooh323.c b/addons/chan_ooh323.c index 81839f397f..7ee70c8f68 100644 --- a/addons/chan_ooh323.c +++ b/addons/chan_ooh323.c @@ -286,6 +286,8 @@ int onCallEstablished(ooCallData *call); int onCallCleared(ooCallData *call); void onModeChanged(ooCallData *call, int t38mode); +extern OOH323EndPoint gH323ep; + static char gLogFile[256] = DEFAULT_LOGFILE; static int gPort = 1720; static char gIP[20]; @@ -629,6 +631,7 @@ static struct ast_channel *ooh323_request(const char *type, format_t format, ooh323_destroy(p); ast_mutex_unlock(&iflock); ast_log(LOG_ERROR, "Destination format is not supported\n"); + *cause = AST_CAUSE_INVALID_NUMBER_FORMAT; return NULL; } @@ -672,6 +675,10 @@ static struct ast_channel *ooh323_request(const char *type, format_t format, ooh323_destroy(p); ast_mutex_unlock(&iflock); return NULL; + } else if (gH323ep.gkClient && gH323ep.gkClient->state != GkClientRegistered) { + ast_log(LOG_ERROR, "Gatekeeper client is configured but not registered\n"); + *cause = AST_CAUSE_NORMAL_TEMPORARY_FAILURE; + return NULL; } p->g729onlyA = g729onlyA; p->dtmfmode = gDTMFMode;