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 */
} 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;
#
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
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) $<
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) {
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();
unsigned progressAlert;
RTP_DataFrame::PayloadTypes dtmfCodec;
+
+ PString ast_cid_num;
+ PString ast_cid_name;
};
class MyH323_ExternalRTPChannel : public H323_ExternalRTPChannel {
/** 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;
; 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