summaryrefslogtreecommitdiff
path: root/addons/ooh323c/src
diff options
context:
space:
mode:
Diffstat (limited to 'addons/ooh323c/src')
-rw-r--r--addons/ooh323c/src/ooGkClient.c7
-rw-r--r--addons/ooh323c/src/ooLogChan.c3
-rw-r--r--addons/ooh323c/src/ooq931.c3
3 files changed, 9 insertions, 4 deletions
diff --git a/addons/ooh323c/src/ooGkClient.c b/addons/ooh323c/src/ooGkClient.c
index e1c57cb5b..36ef8d0c3 100644
--- a/addons/ooh323c/src/ooGkClient.c
+++ b/addons/ooh323c/src/ooGkClient.c
@@ -1947,8 +1947,11 @@ int ooGkClientHandleAdmissionConfirm
ipAddress->ip.data[1],
ipAddress->ip.data[2],
ipAddress->ip.data[3]);
- if(strcmp(ip, "0.0.0.0"))
+ if(strcmp(ip, "0.0.0.0")) {
+/* fix this when gk client will adopt to work with IPv6 */
+ pCallAdmInfo->call->versionIP = 4;
strcpy(pCallAdmInfo->call->remoteIP, ip);
+ }
pCallAdmInfo->call->remotePort = ipAddress->port;
/* Update call model */
if(pAdmissionConfirm->callModel.t == T_H225CallModel_direct)
@@ -1997,13 +2000,13 @@ int ooGkClientHandleAdmissionConfirm
pCallAdmInfo->call->callToken);
pCallAdmInfo->call->callState = OO_CALL_CONNECTING;
- ast_cond_signal(&pCallAdmInfo->call->gkWait);
/* ooH323CallAdmitted( pCallAdmInfo->call); */
dListRemove(&pGkClient->callsPendingList, pNode);
dListAppend(&pGkClient->ctxt, &pGkClient->callsAdmittedList,
pNode->data);
memFreePtr(&pGkClient->ctxt, pNode);
+ ast_cond_signal(&pCallAdmInfo->call->gkWait);
return OO_OK;
break;
}
diff --git a/addons/ooh323c/src/ooLogChan.c b/addons/ooh323c/src/ooLogChan.c
index 63c8fc6f7..d5e8db178 100644
--- a/addons/ooh323c/src/ooLogChan.c
+++ b/addons/ooh323c/src/ooLogChan.c
@@ -284,7 +284,7 @@ int ooClearLogicalChannel(OOH323CallData *call, int channelNo)
call->callType, call->callToken);
pLogicalChannel = ooFindLogicalChannelByLogicalChannelNo(call,channelNo);
- if(!pLogicalChannel)
+ do { if(!pLogicalChannel)
{
OOTRACEWARN4("Logical Channel %d doesn't exist, in clearLogicalChannel."
" (%s, %s)\n",
@@ -326,6 +326,7 @@ int ooClearLogicalChannel(OOH323CallData *call, int channelNo)
ooRemoveLogicalChannel(call, channelNo);/* TODO: efficiency - This causes re-search of
of logical channel in the list. Can be
easily improved.*/
+ } while ((pLogicalChannel = ooFindLogicalChannelByLogicalChannelNo(call,channelNo)));
return OO_OK;
}
diff --git a/addons/ooh323c/src/ooq931.c b/addons/ooh323c/src/ooq931.c
index 352f85ed2..efef2747c 100644
--- a/addons/ooh323c/src/ooq931.c
+++ b/addons/ooh323c/src/ooq931.c
@@ -3624,7 +3624,8 @@ int ooParseDestination
return OO_OK;
}
- if (!ast_parse_arg(dest, PARSE_ADDR, &tmpaddr)) {
+ /* parse direct IP dest */
+ if ((strchr(dest, ':') || strchr(dest,'[') || strchr(dest,'.')) && !ast_parse_arg(dest, PARSE_ADDR, &tmpaddr)) {
if(strlen(dest)+7>len)
{
OOTRACEERR1("Error:Insufficient buffer space for parsed ip - "