diff options
Diffstat (limited to 'addons')
-rw-r--r-- | addons/ooh323c/src/ooCalls.c | 9 | ||||
-rw-r--r-- | addons/ooh323c/src/oochannels.c | 3 | ||||
-rw-r--r-- | addons/ooh323c/src/ooh323.c | 2 |
3 files changed, 9 insertions, 5 deletions
diff --git a/addons/ooh323c/src/ooCalls.c b/addons/ooh323c/src/ooCalls.c index 3984abc50..6648c3fe2 100644 --- a/addons/ooh323c/src/ooCalls.c +++ b/addons/ooh323c/src/ooCalls.c @@ -371,10 +371,11 @@ int ooCleanCall(OOH323CallData *call) } } - pctxt = call->msgctxt; - freeContext(pctxt); - free(pctxt); - call->msgctxt = NULL; + if ((pctxt = call->msgctxt) != NULL) { + freeContext(pctxt); + free(pctxt); + call->msgctxt = NULL; + } /* May !!!! Fix it !! */ /* free(pctxt); */ diff --git a/addons/ooh323c/src/oochannels.c b/addons/ooh323c/src/oochannels.c index 2b2f0b493..7d8c1ab72 100644 --- a/addons/ooh323c/src/oochannels.c +++ b/addons/ooh323c/src/oochannels.c @@ -748,8 +748,9 @@ int ooProcessCallFDSETsAndTimers ast_mutex_lock(&call->Lock); ooEndCall(call); ast_mutex_unlock(&call->Lock); - ooStopMonitorCallChannels(call); } + if(call->callState >= OO_CALL_CLEARED) + ooStopMonitorCallChannels(call); } return OO_OK; diff --git a/addons/ooh323c/src/ooh323.c b/addons/ooh323c/src/ooh323.c index 59b6afdb1..6cd3d8812 100644 --- a/addons/ooh323c/src/ooh323.c +++ b/addons/ooh323c/src/ooh323.c @@ -1595,6 +1595,8 @@ int ooHandleH2250Message(OOH323CallData *call, Q931Message *q931Msg) ret = ooH323CallAdmitted (call); } + call->callState = OO_CALL_CONNECTING; + } /* end ret == OO_OK */ break; |