dect
/
asterisk
Archived
13
0
Fork 0

Properly deal with Caller*ID, document the new RTP Payload setting, remove compiler option that may confuse g++ and force chan_h323.so to be relinked on every compile

git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4467 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
jeremy 2004-12-16 02:03:19 +00:00
parent d405f48268
commit c704778e2b
6 changed files with 44 additions and 17 deletions

View File

@ -131,9 +131,9 @@ struct oh323_pvt {
char exten[AST_MAX_EXTENSION]; /* Requested extension */
char context[AST_MAX_EXTENSION]; /* Context where to start */
char accountcode[256]; /* Account code */
char cid_num[256]; /* Caller*id number, if available */
char cid_name[256]; /* Caller*id name, if available */
char rdnis[256]; /* Referring DNIS, if available */
char cid_num[80]; /* Caller*id number, if available */
char cid_name[80]; /* Caller*id name, if available */
char rdnis[80]; /* Referring DNIS, if available */
int amaflags; /* AMA Flags */
struct ast_rtp *rtp; /* RTP Session */
int dtmfmode; /* What DTMF Mode is being used */
@ -499,7 +499,15 @@ static int oh323_call(struct ast_channel *c, char *dest, int timeout)
} else {
ast_inet_ntoa(addr, sizeof(addr), pvt->sa.sin_addr);
pvt->options.port = htons(pvt->sa.sin_port);
}
}
if (c->cid.cid_num) {
strncpy(pvt->options.cid_num, c->cid.cid_num, sizeof(pvt->options.cid_num));
}
if (c->cid.cid_name) {
strncpy(pvt->options.cid_name, c->cid.cid_name, sizeof(pvt->options.cid_name));
}
/* indicate that this is an outgoing call */
pvt->outgoing = 1;

View File

@ -37,11 +37,11 @@ endif
#
OSARCH=$(shell uname -s)
CFLAGS += -DNDEBUG -DDO_CRASH -DDEBUG_THREADS
CFLAGS += -pipe -Wall -fPIC -Wmissing-prototypes -Wmissing-declarations
CFLAGS += -pipe -Wall -fPIC -Wmissing-prototypes
CFLAGS += -D_REENTRANT -D_GNU_SOURCE
CFLAGS += -I../../include
CFLAGS += -I$(PWLIBDIR)/include
CFLAGS += -I$(OPENH323DIR)/include -Wno-missing-prototypes -Wno-missing-declarations
CFLAGS += -I$(OPENH323DIR)/include -Wno-missing-prototypes
all: depend libchanh323.a
@ -54,6 +54,7 @@ samples:
libchanh323.a: ast_h323.o
ar cr libchanh323.a ast_h323.o
touch ../chan_h323.c
ast_h323.o: ast_h323.cpp
$(CXX) -g -c -o $@ $(CFLAGS) $<

View File

@ -237,16 +237,15 @@ int MyH323EndPoint::MakeCall(const PString & dest, PString & token, unsigned int
return 1;
}
*callReference = connection->GetCallReference();
if (opts->cid_num) {
connection->ast_cid_num = PString(opts->cid_num);
}
if (opts->cid_name) {
localAliasNames.RemoveAll();
connection->SetLocalPartyName(PString(opts->cid_name));
if (opts->cid_num) {
localAliasNames.AppendString(PString(opts->cid_num));
}
} else if (opts->cid_num) {
localAliasNames.RemoveAll();
connection->SetLocalPartyName(PString(opts->cid_num));
}
connection->ast_cid_name = PString(opts->cid_name);
connection->SetLocalPartyName(connection->ast_cid_name);
}
connection->dtmfCodec = (RTP_DataFrame::PayloadTypes)opts->dtmfcodec;
if (h323debug) {
@ -700,6 +699,15 @@ BOOL MyH323Connection::OnSendSignalSetup(H323SignalPDU & setupPDU)
if (h323debug) {
cout << " -- Sending SETUP message" << endl;
}
if (!ast_cid_num.IsEmpty()) {
setupPDU.GetQ931().SetCallingPartyNumber(ast_cid_num);
}
if (!ast_cid_name.IsEmpty()) {
setupPDU.GetQ931().SetDisplayName(ast_cid_name);
}
sourceAliases = setupPDU.GetSourceAliases();
destAliases = setupPDU.GetDestinationAlias();

View File

@ -188,6 +188,9 @@ class MyH323Connection : public H323Connection {
unsigned progressAlert;
RTP_DataFrame::PayloadTypes dtmfCodec;
PString ast_cid_num;
PString ast_cid_name;
};
class MyH323_ExternalRTPChannel : public H323_ExternalRTPChannel {

View File

@ -31,8 +31,8 @@
/** call_option struct holds various bits
* of information for each call */
typedef struct call_options {
char *cid_num;
char *cid_name;
char cid_num[80];
char cid_name[80];
int noFastStart;
int noH245Tunneling;
int noSilenceSuppression;

View File

@ -31,6 +31,13 @@ allow=gsm ; Always allow GSM, it's cool :)
; default is rfc2833
;dtmfmode=rfc2833
;
; Default RTP Payload to send RFC2833 DTMF on. This is used to
; interoperate with broken gateways which cannot successfully
; negotiate a RFC2833 payload type in the TerminalCapabilitySet.
;
; You may also specify on either a per-peer or per-user basis below.
;dtmfcodec=101
;
; Set the gatekeeper
; DISCOVER - Find the Gk address using multicast
; DISABLE - Disable the use of a GK