mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-16 14:58:25 +00:00
Merged revisions 333961-333962 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/10 ................ r333961 | may | 2011-08-31 01:21:53 +0400 (Wed, 31 Aug 2011) | 11 lines Merged revisions 333947 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r333947 | may | 2011-08-31 01:16:30 +0400 (Wed, 31 Aug 2011) | 5 lines cleanups in ACF/ARJ GK replies processing fixed long (24 sec) pause if acf/arj proccessed before ast_cond_wait called to wait this ........ ................ r333962 | may | 2011-08-31 01:53:42 +0400 (Wed, 31 Aug 2011) | 3 lines security fix. really drop call if signalling addr is not same as socket addr ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@333963 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -2266,19 +2266,24 @@ int ooH323MakeCall(char *dest, char *callToken, ooCallOptions *opts)
|
||||
|
||||
if(gH323ep.gkClient && !OO_TESTFLAG(call->flags, OO_M_DISABLEGK))
|
||||
{
|
||||
/* No need to check registration status here as it is already checked for
|
||||
MakeCall command */
|
||||
|
||||
call->callState = OO_CALL_WAITING_ADMISSION;
|
||||
ast_mutex_lock(&call->Lock);
|
||||
ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, call, FALSE);
|
||||
tv = ast_tvnow();
|
||||
ts.tv_sec = tv.tv_sec + 24;
|
||||
ts.tv_nsec = tv.tv_usec * 1000;
|
||||
ast_cond_timedwait(&call->gkWait, &call->Lock, &ts);
|
||||
if (call->callState == OO_CALL_WAITING_ADMISSION)
|
||||
if(gH323ep.gkClient->state == GkClientRegistered) {
|
||||
call->callState = OO_CALL_WAITING_ADMISSION;
|
||||
ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, call, FALSE);
|
||||
tv = ast_tvnow();
|
||||
ts.tv_sec = tv.tv_sec + 24;
|
||||
ts.tv_nsec = tv.tv_usec * 1000;
|
||||
ast_mutex_lock(&call->GkLock);
|
||||
if (call->callState == OO_CALL_WAITING_ADMISSION)
|
||||
ast_cond_timedwait(&call->gkWait, &call->GkLock, &ts);
|
||||
if (call->callState == OO_CALL_WAITING_ADMISSION)
|
||||
call->callState = OO_CALL_CLEAR;
|
||||
ast_mutex_unlock(&call->Lock);
|
||||
ast_mutex_unlock(&call->GkLock);
|
||||
} else {
|
||||
OOTRACEERR1("Error:Aborting outgoing call as not yet"
|
||||
"registered with Gk\n");
|
||||
call->callState = OO_CALL_CLEAR;
|
||||
call->callEndReason = OO_REASON_GK_UNREACHABLE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user