Index: addons/chan_ooh323.c =================================================================== --- addons/chan_ooh323.c (revision 390031) +++ addons/chan_ooh323.c (working copy) @@ -308,6 +308,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[2+8*4+7]; /* Max for IPv6 addr */ @@ -691,6 +693,9 @@ static struct ast_channel *ooh323_request(const ch 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 registered\n"); + return NULL; } p->g729onlyA = g729onlyA; p->dtmfmode = gDTMFMode; @@ -2618,8 +2623,6 @@ static struct ooh323_peer *build_peer(const char * static int ooh323_do_reload(void) { - extern OOH323EndPoint gH323ep; - if (gH323Debug) { ast_verb(0, "--- ooh323_do_reload\n"); } @@ -3372,7 +3375,6 @@ static int ooh323_show_channels(int fd, int argc, static char *handle_cli_ooh323_show_gk(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) { char value[FORMAT_STRING_SIZE]; - extern OOH323EndPoint gH323ep; switch (cmd) { case CLI_INIT: