Fix chan_ooh323 so it works on Mac OS X, as well.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@254799 65c4cc65-6c06-0410-ace0-fbb531ad65f3
certified/1.8.6
Russell Bryant 16 years ago
parent 0703c27015
commit b69245f8e3

@ -47,6 +47,5 @@ $(if $(filter format_mp3,$(EMBEDDED_MODS)),modules.link,format_mp3.so): mp3/comm
chan_ooh323.o: _ASTCFLAGS+=$(H323CFLAGS) chan_ooh323.o: _ASTCFLAGS+=$(H323CFLAGS)
$(if $(filter chan_ooh323,$(EMBEDDED_MODS)),modules.link,chan_ooh323.so): _ASTCFLAGS+=$(H323CFLAGS) $(if $(filter chan_ooh323,$(EMBEDDED_MODS)),modules.link,chan_ooh323.so): _ASTCFLAGS+=$(H323CFLAGS)
$(if $(filter chan_ooh323,$(EMBEDDED_MODS)),modules.link,chan_ooh323.so): _ASTLDFLAGS+=-lrt
$(if $(filter chan_ooh323,$(EMBEDDED_MODS)),modules.link,chan_ooh323.so): $(addprefix ooh323c/src/,$(H323OBJS)) chan_ooh323.o ooh323cDriver.o $(if $(filter chan_ooh323,$(EMBEDDED_MODS)),modules.link,chan_ooh323.so): $(addprefix ooh323c/src/,$(H323OBJS)) chan_ooh323.o ooh323cDriver.o
$(addprefix ooh323c/src/,$(H323OBJS)) chan_ooh323.o ooh323cDriver.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,chan_ooh323) $(addprefix ooh323c/src/,$(H323OBJS)) chan_ooh323.o ooh323cDriver.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,chan_ooh323)

@ -1557,6 +1557,7 @@ int ooHandleH2250Message(OOH323CallData *call, Q931Message *q931Msg)
DListNode *pNode = NULL; DListNode *pNode = NULL;
OOTimer *pTimer=NULL; OOTimer *pTimer=NULL;
int type = q931Msg->messageType; int type = q931Msg->messageType;
struct timeval tv;
struct timespec ts; struct timespec ts;
/* checking of message validity for first/next messages of calls */ /* checking of message validity for first/next messages of calls */
@ -1600,8 +1601,9 @@ int ooHandleH2250Message(OOH323CallData *call, Q931Message *q931Msg)
ast_mutex_lock(&call->Lock); ast_mutex_lock(&call->Lock);
ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, call, ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, call,
FALSE); FALSE);
clock_gettime(CLOCK_REALTIME, &ts); tv = ast_tvnow();
ts.tv_sec += 24; ts.tv_sec = tv.tv_sec + 24;
ts.tv_nsec = tv.tv_usec * 1000;
ast_cond_timedwait(&call->gkWait, &call->Lock, &ts); ast_cond_timedwait(&call->gkWait, &call->Lock, &ts);
if (call->callState == OO_CALL_WAITING_ADMISSION) if (call->callState == OO_CALL_WAITING_ADMISSION)
call->callState = OO_CALL_CLEAR; call->callState = OO_CALL_CLEAR;

@ -16,6 +16,7 @@
#include <asterisk.h> #include <asterisk.h>
#include <asterisk/lock.h> #include <asterisk/lock.h>
#include "asterisk/utils.h"
#include <time.h> #include <time.h>
#include "ooq931.h" #include "ooq931.h"
@ -2017,6 +2018,7 @@ int ooH323HandleCallFwdRequest(OOH323CallData *call)
OOCTXT *pctxt; OOCTXT *pctxt;
ooAliases *pNewAlias=NULL, *alias=NULL; ooAliases *pNewAlias=NULL, *alias=NULL;
struct timespec ts; struct timespec ts;
struct timeval tv;
int i=0, irand=0, ret = OO_OK; int i=0, irand=0, ret = OO_OK;
/* Note: We keep same callToken, for new call which is going /* Note: We keep same callToken, for new call which is going
to replace an existing call, thus treating it as a single call.*/ to replace an existing call, thus treating it as a single call.*/
@ -2072,8 +2074,9 @@ int ooH323HandleCallFwdRequest(OOH323CallData *call)
ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, fwdedCall, FALSE); ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, fwdedCall, FALSE);
fwdedCall->callState = OO_CALL_WAITING_ADMISSION; fwdedCall->callState = OO_CALL_WAITING_ADMISSION;
ast_mutex_lock(&fwdedCall->Lock); ast_mutex_lock(&fwdedCall->Lock);
clock_gettime(CLOCK_REALTIME, &ts); tv = ast_tvnow();
ts.tv_sec += 24; ts.tv_sec += tv.tv_sec + 24;
ts.tv_nsec = tv.tv_usec * 1000;
ast_cond_timedwait(&fwdedCall->gkWait, &fwdedCall->Lock, &ts); ast_cond_timedwait(&fwdedCall->gkWait, &fwdedCall->Lock, &ts);
if (fwdedCall->callState == OO_CALL_WAITING_ADMISSION) /* GK is not responding */ if (fwdedCall->callState == OO_CALL_WAITING_ADMISSION) /* GK is not responding */
fwdedCall->callState = OO_CALL_CLEAR; fwdedCall->callState = OO_CALL_CLEAR;
@ -2114,6 +2117,7 @@ int ooH323MakeCall(char *dest, char *callToken, ooCallOptions *opts)
int ret=0, i=0, irand=0; int ret=0, i=0, irand=0;
char tmp[30]="\0"; char tmp[30]="\0";
char *ip=NULL, *port = NULL; char *ip=NULL, *port = NULL;
struct timeval tv;
struct timespec ts; struct timespec ts;
if(!dest) if(!dest)
@ -2195,8 +2199,9 @@ int ooH323MakeCall(char *dest, char *callToken, ooCallOptions *opts)
call->callState = OO_CALL_WAITING_ADMISSION; call->callState = OO_CALL_WAITING_ADMISSION;
ast_mutex_lock(&call->Lock); ast_mutex_lock(&call->Lock);
ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, call, FALSE); ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, call, FALSE);
clock_gettime(CLOCK_REALTIME, &ts); tv = ast_tvnow();
ts.tv_sec += 24; ts.tv_sec = tv.tv_sec + 24;
ts.tv_nsec = tv.tv_usec * 1000;
ast_cond_timedwait(&call->gkWait, &call->Lock, &ts); ast_cond_timedwait(&call->gkWait, &call->Lock, &ts);
if (call->callState == OO_CALL_WAITING_ADMISSION) if (call->callState == OO_CALL_WAITING_ADMISSION)
call->callState = OO_CALL_CLEAR; call->callState = OO_CALL_CLEAR;

@ -111,7 +111,7 @@ void ooTraceLogMessage(const char * logMessage)
struct timeval systemTime; struct timeval systemTime;
gettimeofday(&systemTime, NULL); gettimeofday(&systemTime, NULL);
fprintf(gH323ep.fptraceFile, "%s:%03ld %s", timeString, fprintf(gH323ep.fptraceFile, "%s:%03ld %s", timeString,
systemTime.tv_usec/1000, logMessage); (long) systemTime.tv_usec/1000, logMessage);
} }
else else
fprintf(gH323ep.fptraceFile, "%s", logMessage); fprintf(gH323ep.fptraceFile, "%s", logMessage);

Loading…
Cancel
Save