diff options
author | Russell Bryant <russell@russellbryant.com> | 2009-06-26 15:28:53 +0000 |
---|---|---|
committer | Russell Bryant <russell@russellbryant.com> | 2009-06-26 15:28:53 +0000 |
commit | 0264eef1156b8ef7369884dd5c663646f1b2b429 (patch) | |
tree | a28e9113cf1daf97e45a8fc6d41a52c76ac69836 /channels/chan_h323.c | |
parent | e06c6f97c4c222b4c802ac2b85f76a331991dffb (diff) |
Merge the new Channel Event Logging (CEL) subsystem.
CEL is the new system for logging channel events. This was inspired after
facing many problems trying to represent what is possible to happen to a call
in Asterisk using CDR records. For more information on CEL, see the built in
HTML or PDF documentation generated from the files in doc/tex/.
Many thanks to Steve Murphy (murf) and Brian Degenhardt (bmd) for their hard
work developing this code. Also, thanks to Matt Nicholson (mnicholson) and
Sean Bright (seanbright) for their assistance in the final push to get this
code ready for Asterisk trunk.
Review: https://reviewboard.asterisk.org/r/239/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@203638 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_h323.c')
-rw-r--r-- | channels/chan_h323.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/channels/chan_h323.c b/channels/chan_h323.c index fd329538a..a4135a976 100644 --- a/channels/chan_h323.c +++ b/channels/chan_h323.c @@ -230,7 +230,7 @@ static void delete_users(void); static void delete_aliases(void); static void prune_peers(void); -static struct ast_channel *oh323_request(const char *type, int format, void *data, int *cause); +static struct ast_channel *oh323_request(const char *type, int format, const struct ast_channel *requestor, void *data, int *cause); static int oh323_digit_begin(struct ast_channel *c, char digit); static int oh323_digit_end(struct ast_channel *c, char digit, unsigned int duration); static int oh323_call(struct ast_channel *c, char *dest, int timeout); @@ -994,7 +994,7 @@ static int __oh323_rtp_create(struct oh323_pvt *pvt) } /*! \brief Private structure should be locked on a call */ -static struct ast_channel *__oh323_new(struct oh323_pvt *pvt, int state, const char *host) +static struct ast_channel *__oh323_new(struct oh323_pvt *pvt, int state, const char *host, const char *linkedid) { struct ast_channel *ch; char *cid_num, *cid_name; @@ -1012,7 +1012,7 @@ static struct ast_channel *__oh323_new(struct oh323_pvt *pvt, int state, const c /* Don't hold a oh323_pvt lock while we allocate a chanel */ ast_mutex_unlock(&pvt->lock); - ch = ast_channel_alloc(1, state, cid_num, cid_name, pvt->accountcode, pvt->exten, pvt->context, pvt->amaflags, "H323/%s", host); + ch = ast_channel_alloc(1, state, cid_num, cid_name, pvt->accountcode, pvt->exten, pvt->context, linkedid, pvt->amaflags, "H323/%s", host); /* Update usage counter */ ast_module_ref(ast_module_info->self); ast_mutex_lock(&pvt->lock); @@ -1717,7 +1717,7 @@ static int create_addr(struct oh323_pvt *pvt, char *opeer) return 0; } } -static struct ast_channel *oh323_request(const char *type, int format, void *data, int *cause) +static struct ast_channel *oh323_request(const char *type, int format, const struct ast_channel *requestor, void *data, int *cause) { int oldformat; struct oh323_pvt *pvt; @@ -1793,7 +1793,7 @@ static struct ast_channel *oh323_request(const char *type, int format, void *dat ast_mutex_unlock(&caplock); ast_mutex_lock(&pvt->lock); - tmpc = __oh323_new(pvt, AST_STATE_DOWN, tmp1); + tmpc = __oh323_new(pvt, AST_STATE_DOWN, tmp1, requestor ? requestor->linkedid : NULL); ast_mutex_unlock(&pvt->lock); if (!tmpc) { oh323_destroy(pvt); @@ -2277,7 +2277,7 @@ static int answer_call(unsigned call_reference, const char *token) } /* allocate a channel and tell asterisk about it */ - c = __oh323_new(pvt, AST_STATE_RINGING, pvt->cd.call_token); + c = __oh323_new(pvt, AST_STATE_RINGING, pvt->cd.call_token, NULL); /* And release when done */ ast_mutex_unlock(&pvt->lock); |