struct oh323_pvt {
ast_mutex_t lock; /* Channel private lock */
call_options_t calloptions; /* Options to be used during call setup */
- int alreadygone; /* Whether or not we've already been destroyed by or peer */
- int needdestroy; /* if we need to be destroyed */
- call_details_t cd; /* Call details */
+ int alreadygone; /* Whether or not we've already been destroyed by or peer */
+ int needdestroy; /* if we need to be destroyed */
+ call_details_t cd; /* Call details */
struct ast_channel *owner; /* Who owns us */
- int capability; /* Special capability */
- int nonCodecCapability;
- int outgoing; /* Outgoing or incoming call? */
- int nat; /* Are we talking to a NAT EP?*/
- int bridge; /* Determine of we should native bridge or not*/
- char exten[AST_MAX_EXTENSION]; /* Requested extension */
- char context[AST_MAX_EXTENSION]; /* Context where to start */
- char username[81]; /* H.323 alias using this channel */
+ int capability; /* audio capability */
+ int nonCodecCapability; /* non-audio capability */
+ int outgoing; /* Outgoing or incoming call? */
+ int nat; /* Are we talking to a NAT EP?*/
+ int bridge; /* Determine of we should native bridge or not*/
+ char exten[AST_MAX_EXTENSION]; /* Requested extension */
+ char context[AST_MAX_EXTENSION]; /* Context where to start */
+ char username[81]; /* H.323 alias using this channel */
char accountcode[256]; /* Account code */
- int amaflags; /* AMA Flags */
- char callerid[80]; /* Caller*ID if available */
+ int amaflags; /* AMA Flags */
+ char callerid[80]; /* Caller*ID if available */
struct ast_rtp *rtp; /* RTP Session */
- int dtmfmode;
+ int dtmfmode; /* What DTMF Mode is being used */
struct ast_dsp *vad; /* Used for in-band DTMF detection */
struct oh323_pvt *next; /* Next channel in list */
} *iflist = NULL;
h323_set_id(h323id);
}
-
p = oh323_alloc(0);
if (!p) {
/* Assign a default capability */
p->capability = capability;
-
+
if (p->dtmfmode) {
if (p->dtmfmode & H323_DTMF_RFC2833)
p->nonCodecCapability |= AST_RTP_DTMF;
else
p->nonCodecCapability &= ~AST_RTP_DTMF;
}
+ /* pass on our preferred codec to the H.323 stack */
+ h323_set_capability(format, dtmfmode);
if (ext) {
strncpy(p->username, ext, sizeof(p->username) - 1);
struct oh323_alias *alias = NULL;
struct hostent *hp;
char *cat;
- char *utype;
+ char *utype;
cfg = ast_load(config);