mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-16 23:08:32 +00:00
move ast_cond_signal for admitted call after all data filled/freed
clear all log channels by pointed number not only first free allocated callToken in ooh323_answer git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@331146 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1106,6 +1106,9 @@ static int ooh323_answer(struct ast_channel *ast)
|
|||||||
ast_channel_unlock(ast);
|
ast_channel_unlock(ast);
|
||||||
ooAnswerCall(p->callToken);
|
ooAnswerCall(p->callToken);
|
||||||
}
|
}
|
||||||
|
if (callToken) {
|
||||||
|
free(callToken);
|
||||||
|
}
|
||||||
ast_mutex_unlock(&p->lock);
|
ast_mutex_unlock(&p->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1996,13 +1996,13 @@ int ooGkClientHandleAdmissionConfirm
|
|||||||
pCallAdmInfo->call->callToken);
|
pCallAdmInfo->call->callToken);
|
||||||
|
|
||||||
pCallAdmInfo->call->callState = OO_CALL_CONNECTING;
|
pCallAdmInfo->call->callState = OO_CALL_CONNECTING;
|
||||||
ast_cond_signal(&pCallAdmInfo->call->gkWait);
|
|
||||||
/* ooH323CallAdmitted( pCallAdmInfo->call); */
|
/* ooH323CallAdmitted( pCallAdmInfo->call); */
|
||||||
|
|
||||||
dListRemove(&pGkClient->callsPendingList, pNode);
|
dListRemove(&pGkClient->callsPendingList, pNode);
|
||||||
dListAppend(&pGkClient->ctxt, &pGkClient->callsAdmittedList,
|
dListAppend(&pGkClient->ctxt, &pGkClient->callsAdmittedList,
|
||||||
pNode->data);
|
pNode->data);
|
||||||
memFreePtr(&pGkClient->ctxt, pNode);
|
memFreePtr(&pGkClient->ctxt, pNode);
|
||||||
|
ast_cond_signal(&pCallAdmInfo->call->gkWait);
|
||||||
return OO_OK;
|
return OO_OK;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -284,7 +284,7 @@ int ooClearLogicalChannel(OOH323CallData *call, int channelNo)
|
|||||||
call->callType, call->callToken);
|
call->callType, call->callToken);
|
||||||
|
|
||||||
pLogicalChannel = ooFindLogicalChannelByLogicalChannelNo(call,channelNo);
|
pLogicalChannel = ooFindLogicalChannelByLogicalChannelNo(call,channelNo);
|
||||||
if(!pLogicalChannel)
|
do { if(!pLogicalChannel)
|
||||||
{
|
{
|
||||||
OOTRACEWARN4("Logical Channel %d doesn't exist, in clearLogicalChannel."
|
OOTRACEWARN4("Logical Channel %d doesn't exist, in clearLogicalChannel."
|
||||||
" (%s, %s)\n",
|
" (%s, %s)\n",
|
||||||
@@ -326,6 +326,7 @@ int ooClearLogicalChannel(OOH323CallData *call, int channelNo)
|
|||||||
ooRemoveLogicalChannel(call, channelNo);/* TODO: efficiency - This causes re-search of
|
ooRemoveLogicalChannel(call, channelNo);/* TODO: efficiency - This causes re-search of
|
||||||
of logical channel in the list. Can be
|
of logical channel in the list. Can be
|
||||||
easily improved.*/
|
easily improved.*/
|
||||||
|
} while ((pLogicalChannel = ooFindLogicalChannelByLogicalChannelNo(call,channelNo)));
|
||||||
return OO_OK;
|
return OO_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user