[asterisk-commits] bmd: branch group/newcdr r118878 - /team/group/newcdr/channels/chan_sip.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed May 28 20:06:49 CDT 2008


Author: bmd
Date: Wed May 28 20:06:49 2008
New Revision: 118878

URL: http://svn.digium.com/view/asterisk?view=rev&rev=118878
Log:
report some extra info about the transfer.  For blind transfers we say which extension they were referred to.  For assisted transfers we log which linkedid the call is getting merged into

Modified:
    team/group/newcdr/channels/chan_sip.c

Modified: team/group/newcdr/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/group/newcdr/channels/chan_sip.c?view=diff&rev=118878&r1=118877&r2=118878
==============================================================================
--- team/group/newcdr/channels/chan_sip.c (original)
+++ team/group/newcdr/channels/chan_sip.c Wed May 28 20:06:49 2008
@@ -17901,6 +17901,7 @@
 					/* Chan 2: Call from Asterisk to target */
 	int res = 0;
 	struct sip_pvt *targetcall_pvt;
+	char transferer_linkedid[32];
 
 	/* Check if the call ID of the replaces header does exist locally */
 	if (!(targetcall_pvt = get_sip_pvt_byid_locked(transferer->refer->replaces_callid, transferer->refer->replaces_callid_totag, 
@@ -17972,6 +17973,8 @@
 			pbx_builtin_setvar_helper(target.chan2, "BRIDGE_PLAY_SOUND", chan2_attended_sound);
 		}
 	}
+
+	ast_copy_string(transferer_linkedid, transferer->owner->linkedid, sizeof(transferer_linkedid));
 
 	/* Perform the transfer */
 	manager_event(EVENT_FLAG_CALL, "Transfer", "TransferMethod: SIP\r\nTransferType: Attended\r\nChannel: %s\r\nUniqueid: %s\r\nSIP-Callid: %s\r\nTargetChannel: %s\r\nTargetUniqueid: %s\r\n",
@@ -17996,7 +17999,7 @@
 	} else {
 		/* Transfer succeeded! */
 
-		ast_cel_report_event(target.chan1, CEL_ATTENDEDTRANSFER, NULL, NULL, target.chan2);
+		ast_cel_report_event(target.chan1, CEL_ATTENDEDTRANSFER, NULL, transferer_linkedid, target.chan2);
 		
 		/* Tell transferer that we're done. */
 		transmit_notify_with_sipfrag(transferer, seqno, "200 OK", TRUE);
@@ -18335,7 +18338,8 @@
 		/* Success  - we have a new channel */
 		ast_debug(3, "%s transfer succeeded. Telling transferer.\n", p->refer->attendedtransfer? "Attended" : "Blind");
 
-		ast_cel_report_event(current.chan1, p->refer->attendedtransfer? CEL_ATTENDEDTRANSFER : CEL_BLINDTRANSFER, NULL, NULL, current.chan2);
+		/* XXX - what to we put in CEL 'extra' for attended transfers to external systems? NULL for now */
+		ast_cel_report_event(current.chan1, p->refer->attendedtransfer? CEL_ATTENDEDTRANSFER : CEL_BLINDTRANSFER, NULL, p->refer->attendedtransfer ? NULL : p->refer->refer_to, current.chan2);
 		transmit_notify_with_sipfrag(p, seqno, "200 Ok", TRUE);
 		if (p->refer->localtransfer)
 			p->refer->status = REFER_200OK;




More information about the asterisk-commits mailing list