--- channels/chan_sip-orig.c	2013-04-12 11:00:22.000000000 -0400
+++ channels/chan_sip.c	2013-04-12 17:18:33.000000000 -0400
@@ -13879,8 +13879,16 @@
 	sipmethod = find_sip_method(msg);
 
 	owner = p->owner;
-	if (owner) 
+	if (owner) {
+		/* Send manager event for sip hangup cause code */
+		if ((resp >= 400) && (resp <= 900))
+			manager_event(EVENT_FLAG_SYSTEM, "SIP-Hangup-Cause", "ChannelDriver: SIP\r\nChannel: %s\r\nCallerIDName: %s\r\nUniqueid: %s\r\nResult: %i|%s\r\n", p->owner->name, p->owner->cid.cid_name, p->owner->uniqueid, resp, rest);
+
 		owner->hangupcause = hangup_sip2cause(resp);
+	} else {
+	if ((resp >= 400) && (resp <= 900))
+		manager_event(EVENT_FLAG_SYSTEM, "SIP-Response", "ChannelDriver: SIP\r\nMethod: %s\r\nResult: %i|%s\r\n", sip_methods[sipmethod].text, resp, rest);
+	}
 
 	/* Acknowledge whatever it is destined for */
 	if ((resp >= 100) && (resp <= 199)) {
