From 5e4ee6076c7c67ed21a125ec2c57606c51fde1ad Mon Sep 17 00:00:00 2001 From: Jonathan Rose Date: Wed, 18 Jul 2012 19:48:09 +0000 Subject: callid logging: Issue test events when the callid is changed for a channel Review: https://reviewboard.asterisk.org/r/2054/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@370225 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/channel_internal_api.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'main/channel_internal_api.c') diff --git a/main/channel_internal_api.c b/main/channel_internal_api.c index b91e2e253..ced162884 100644 --- a/main/channel_internal_api.c +++ b/main/channel_internal_api.c @@ -43,6 +43,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/data.h" #include "asterisk/indications.h" #include "asterisk/channel_internal.h" +#include "asterisk/test.h" /*! * \brief Main Channel structure associated with a channel. @@ -846,20 +847,28 @@ struct ast_callid *ast_channel_callid(const struct ast_channel *chan) } void ast_channel_callid_set(struct ast_channel *chan, struct ast_callid *callid) { + char call_identifier_from[AST_CALLID_BUFFER_LENGTH]; + char call_identifier_to[AST_CALLID_BUFFER_LENGTH]; + call_identifier_from[0] = '\0'; + ast_callid_strnprint(call_identifier_to, sizeof(call_identifier_to), callid); if (chan->callid) { - - if ((option_debug >= 3) || (ast_opt_dbg_module && ast_debug_get_by_module(AST_MODULE) >= 3)) { - char call_identifier_from[AST_CALLID_BUFFER_LENGTH]; - char call_identifier_to[AST_CALLID_BUFFER_LENGTH]; - ast_callid_strnprint(call_identifier_from, sizeof(call_identifier_from), chan->callid); - ast_callid_strnprint(call_identifier_to, sizeof(call_identifier_to), callid); - ast_log(LOG_DEBUG, "Channel Call ID changing from %s to %s\n", call_identifier_from, call_identifier_to); - } - + ast_callid_strnprint(call_identifier_from, sizeof(call_identifier_from), chan->callid); + ast_debug(3, "Channel Call ID changing from %s to %s\n", call_identifier_from, call_identifier_to); /* unbind if already set */ ast_callid_unref(chan->callid); } + chan->callid = ast_callid_ref(callid); + + ast_test_suite_event_notify("CallIDChange", + "State: CallIDChange\r\n" + "Channel: %s\r\n" + "CallID: %s\r\n" + "PriorCallID: %s\r\n", + ast_channel_name(chan), + call_identifier_to, + call_identifier_from); + } void ast_channel_state_set(struct ast_channel *chan, enum ast_channel_state value) { -- cgit v1.2.3