massive changes, very broken, do not use (from airport)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3859 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jeremy McNamara
2004-09-30 19:30:49 +00:00
parent 250260064f
commit 76485d3f02
3 changed files with 60 additions and 64 deletions

View File

@@ -37,32 +37,32 @@ endif
# #
# #
# Janus release directives, comment below if your brave enough for Janus # Janus release directives, comment below if your brave enough for Janus
#OSARCH=$(shell uname -s) OSARCH=$(shell uname -s)
#CFLAGS += -DNDEBUG -DDO_CRASH -DDEBUG_THREADS CFLAGS += -DNDEBUG -DDO_CRASH -DDEBUG_THREADS
#CFLAGS += -pipe -Wall -fPIC -Wmissing-prototypes -Wmissing-declarations CFLAGS += -pipe -Wall -fPIC -Wmissing-prototypes -Wmissing-declarations
#CFLAGS += -D_REENTRANT -D_GNU_SOURCE CFLAGS += -D_REENTRANT -D_GNU_SOURCE
#CFLAGS += -I../../include CFLAGS += -I../../include
#CFLAGS += -I$(PWLIBDIR)/include CFLAGS += -I$(PWLIBDIR)/include
#CFLAGS += -I$(OPENH323DIR)/include -Wno-missing-prototypes -Wno-missing-declarations CFLAGS += -I$(OPENH323DIR)/include -Wno-missing-prototypes -Wno-missing-declarations
# Pre Janus release directives # Pre Janus release directives
CFLAGS += -DNDEBUG -DDO_CRASH -DDEBUG_THREADS #CFLAGS += -DNDEBUG -DDO_CRASH -DDEBUG_THREADS
CFLAGS += -pipe -Wall -fPIC #CFLAGS += -pipe -Wall -fPIC
ifeq (${OSARCH},Linux) #ifeq (${OSARCH},Linux)
CFLAGS += -DP_LINUX #CFLAGS += -DP_LINUX
LIBS+=-lpthread #LIBS+=-lpthread
endif #endif
ifeq ($(findstring BSD,${OSARCH}),BSD) #ifeq ($(findstring BSD,${OSARCH}),BSD)
CFLAGS += -pthread #CFLAGS += -pthread
endif #endif
CFLAGS += -D_REENTRANT -D_GNU_SOURCE #CFLAGS += -D_REENTRANT -D_GNU_SOURCE
CFLAGS += -DP_HAS_SEMAPHORES -DP_SSL -DP_PTHREADS #CFLAGS += -DP_HAS_SEMAPHORES -DP_SSL -DP_PTHREADS
CFLAGS += -DPHAS_TEMPLATES -DPTRACING -DP_USE_PRAGMA #CFLAGS += -DPHAS_TEMPLATES -DPTRACING -DP_USE_PRAGMA
CFLAGS += -I../../include #CFLAGS += -I../../include
CFLAGS += -I$(PWLIBDIR)/include/ptlib/unix -I$(PWLIBDIR)/include #CFLAGS += -I$(PWLIBDIR)/include/ptlib/unix -I$(PWLIBDIR)/include
CFLAGS += -I$(OPENH323DIR)/include #CFLAGS += -I$(OPENH323DIR)/include
CFLAGS += -Wno-missing-prototypes -Wno-missing-declarations #CFLAGS += -Wno-missing-prototypes -Wno-missing-declarations
LIBS+= -lcrypto -lssl -lexpat #LIBS+= -lcrypto -lssl -lexpat
all: libchanh323.a all: libchanh323.a
@@ -74,7 +74,11 @@ samples:
ast_h323.o: ast_h323.cpp ast_h323.o: ast_h323.cpp
$(CXX) -g -c -fno-rtti -o $@ $(CFLAGS) $< $(CXX) -g -c -o $@ $(CFLAGS) $<
#ast_h323.o: ast_h323.cpp
# $(CXX) -g -c -fno-rtti -o $@ $(CFLAGS) $<
libchanh323.a: ast_h323.o libchanh323.a: ast_h323.o
ar cr libchanh323.a ast_h323.o ar cr libchanh323.a ast_h323.o

View File

@@ -5,7 +5,7 @@
* By Jeremy McNamara * By Jeremy McNamara
* For The NuFone Network * For The NuFone Network
* *
* This code has been derived from code created by * chan_h323 has been derived from code created by
* Michael Manousos and Mark Spencer * Michael Manousos and Mark Spencer
* *
* This file is part of the chan_h323 driver for Asterisk * This file is part of the chan_h323 driver for Asterisk
@@ -60,11 +60,6 @@ int channelsOpen;
/* DTMF Mode */ /* DTMF Mode */
int mode = H323_DTMF_RFC2833; int mode = H323_DTMF_RFC2833;
/** Options for connections creation */
BOOL noFastStart = TRUE;
BOOL noH245Tunneling;
BOOL noSilenceSuppression;
/** /**
* We assume that only one endPoint should exist. * We assume that only one endPoint should exist.
* The application cannot run the h323_end_point_create() more than once * The application cannot run the h323_end_point_create() more than once
@@ -243,26 +238,27 @@ int MyH323EndPoint::MakeCall(const PString & dest, PString & token, unsigned int
MyH323Connection * connection; MyH323Connection * connection;
/* Determine whether we are using a gatekeeper or not. */ /* Determine whether we are using a gatekeeper or not. */
if (GetGatekeeper() != NULL) { if (!GetGatekeeper()) {
fullAddress = dest; fullAddress = dest;
if (h323debug) if (h323debug) {
cout << " -- Making call to " << fullAddress << " using gatekeeper." << endl; cout << " -- Making call to " << fullAddress << " using gatekeeper." << endl;
}
} else { } else {
fullAddress = dest; /* host */ fullAddress = dest;
if (h323debug) if (h323debug) {
cout << " -- Making call to " << fullAddress << "." << endl; cout << " -- Making call to " << fullAddress << "." << endl;
} }
}
if (!(connection = (MyH323Connection *)H323EndPoint::MakeCallLocked(fullAddress, token))) { if (!(connection = (MyH323Connection *)H323EndPoint::MakeCallLocked(fullAddress, token))) {
if (h323debug) if (h323debug) {
cout << "Error making call to \"" << fullAddress << '"' << endl; cout << "Error making call to \"" << fullAddress << '"' << endl;
}
return 1; return 1;
} }
*callReference = connection->GetCallReference(); *callReference = connection->GetCallReference();
if (callerid) {
if (callerid)
connection->SetLocalPartyName(PString(callerid)); connection->SetLocalPartyName(PString(callerid));
}
if (callername) { if (callername) {
localAliasNames.RemoveAll(); localAliasNames.RemoveAll();
connection->SetLocalPartyName(PString(callername)); connection->SetLocalPartyName(PString(callername));
@@ -272,16 +268,14 @@ int MyH323EndPoint::MakeCall(const PString & dest, PString & token, unsigned int
localAliasNames.RemoveAll(); localAliasNames.RemoveAll();
connection->SetLocalPartyName(PString(callerid)); connection->SetLocalPartyName(PString(callerid));
} }
connection->AST_Outgoing = TRUE; connection->AST_Outgoing = TRUE;
connection->Unlock();
if (h323debug) { if (h323debug) {
cout << " -- " << GetLocalUserName() << " is calling host " << fullAddress << endl; cout << " -- " << GetLocalUserName() << " is calling host " << fullAddress << endl;
cout << " -- " << "Call token is " << (const char *)token << endl; cout << " -- " << "Call token is " << (const char *)token << endl;
cout << " -- Call reference is " << *callReference << endl; cout << " -- Call reference is " << *callReference << endl;
} }
connection->Unlock();
return 0; return 0;
} }
@@ -994,6 +988,7 @@ int h323_set_capability(int cap, int dtmfMode)
} else { } else {
endPoint->SetSendUserInputMode(H323Connection::SendUserInputAsInlineRFC2833); endPoint->SetSendUserInputMode(H323Connection::SendUserInputAsInlineRFC2833);
} }
#if 0
if (cap & AST_FORMAT_SPEEX) { if (cap & AST_FORMAT_SPEEX) {
/* Not real sure if Asterisk acutally supports all /* Not real sure if Asterisk acutally supports all
of the various different bit rates so add them of the various different bit rates so add them
@@ -1005,7 +1000,7 @@ int h323_set_capability(int cap, int dtmfMode)
endPoint->SetCapability(0, 0, new SpeexNarrow5AudioCapability()); endPoint->SetCapability(0, 0, new SpeexNarrow5AudioCapability());
endPoint->SetCapability(0, 0, new SpeexNarrow6AudioCapability()); endPoint->SetCapability(0, 0, new SpeexNarrow6AudioCapability());
} }
#endif
if (cap & AST_FORMAT_G729A) { if (cap & AST_FORMAT_G729A) {
AST_G729ACapability *g729aCap; AST_G729ACapability *g729aCap;
AST_G729Capability *g729Cap; AST_G729Capability *g729Cap;
@@ -1017,13 +1012,13 @@ int h323_set_capability(int cap, int dtmfMode)
H323_G7231Capability *g7231Cap; H323_G7231Capability *g7231Cap;
endPoint->SetCapability(0, 0, g7231Cap = new H323_G7231Capability); endPoint->SetCapability(0, 0, g7231Cap = new H323_G7231Capability);
} }
#if 0
if (cap & AST_FORMAT_GSM) { if (cap & AST_FORMAT_GSM) {
H323_GSM0610Capability *gsmCap; H323_GSM0610Capability *gsmCap;
endPoint->SetCapability(0, 0, gsmCap = new H323_GSM0610Capability); endPoint->SetCapability(0, 0, gsmCap = new H323_GSM0610Capability);
gsmCap->SetTxFramesInPacket(gsmFrames); gsmCap->SetTxFramesInPacket(gsmFrames);
} }
#endif
if (cap & AST_FORMAT_ULAW) { if (cap & AST_FORMAT_ULAW) {
H323_G711Capability *g711uCap; H323_G711Capability *g711uCap;
endPoint->SetCapability(0, 0, g711uCap = new H323_G711Capability(H323_G711Capability::muLaw)); endPoint->SetCapability(0, 0, g711uCap = new H323_G711Capability(H323_G711Capability::muLaw));
@@ -1203,13 +1198,8 @@ int h323_make_call(char *host, call_details_t *cd, call_options_t call_options)
if (!h323_end_point_exist()) { if (!h323_end_point_exist()) {
return 1; return 1;
} }
noFastStart = call_options.noFastStart;
noH245Tunneling = call_options.noH245Tunneling;
res = endPoint->MakeCall(dest, token, &cd->call_reference, call_options.port, call_options.callerid, call_options.callername); res = endPoint->MakeCall(dest, token, &cd->call_reference, call_options.port, call_options.callerid, call_options.callername);
memcpy((char *)(cd->call_token), (const unsigned char *)token, token.GetLength()); memcpy((char *)(cd->call_token), (const unsigned char *)token, token.GetLength());
return res; return res;
}; };

View File

@@ -56,7 +56,8 @@ struct oh323_user {
All peers are registered to a GK if there is one */ All peers are registered to a GK if there is one */
struct oh323_peer { struct oh323_peer {
char name[80]; char name[80];
char context[80]; char mailbox[AST_MAX_EXTENSION];
int capability;
int noFastStart; int noFastStart;
int noH245Tunneling; int noH245Tunneling;
int noSilenceSuppression; int noSilenceSuppression;
@@ -67,6 +68,7 @@ struct oh323_peer {
int dtmfmode; int dtmfmode;
int delme; int delme;
struct sockaddr_in addr; struct sockaddr_in addr;
struct ast_ha *ha;
struct oh323_peer *next; struct oh323_peer *next;
}; };
@@ -114,7 +116,7 @@ typedef struct rtp_info {
/* This is a callback prototype function, called pass /* This is a callback prototype function, called pass
DTMF down the RTP. */ DTMF down the RTP. */
typedef int (*send_digit_cb)(unsigned, char); typedef int (*send_digit_cb)(unsigned, char, const char *);
extern send_digit_cb on_send_digit; extern send_digit_cb on_send_digit;
/* This is a callback prototype function, called to collect /* This is a callback prototype function, called to collect