diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 18c14eacd3f2cb4da13098b3ca202246a442a584..528403d8a8465689c59c6060469d52fd3c094dd1 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -8553,6 +8553,7 @@ static void change_callid_pvt(struct sip_pvt *pvt, const char *callid)
 {
 	int in_dialog_container;
 	int in_rtp_container;
+	char *oldid = ast_strdupa(pvt->callid);
 
 	ao2_lock(dialogs);
 	ao2_lock(dialogs_rtpcheck);
@@ -8573,6 +8574,10 @@ static void change_callid_pvt(struct sip_pvt *pvt, const char *callid)
 	}
 	ao2_unlock(dialogs_rtpcheck);
 	ao2_unlock(dialogs);
+
+	if (strcmp(oldid, pvt->callid)) {
+		ast_debug(1, "SIP call-id changed from '%s' to '%s'\n", oldid, pvt->callid);
+	}
 }
 
 /*! \brief Build SIP Call-ID value for a REGISTER transaction */
@@ -21553,7 +21558,12 @@ static char *sip_cli_notify(struct ast_cli_entry *e, int cmd, struct ast_cli_arg
 			}
 		}
 
-		/* Recalculate our side, and recalculate Call ID */
+		/* Now that we have the peer's address, set our ip and change callid */
+		ast_sip_ouraddrfor(&p->sa, &p->ourip, p);
+		build_via(p);
+
+		change_callid_pvt(p, NULL);
+
 		ast_cli(a->fd, "Sending NOTIFY of type '%s' to '%s'\n", a->argv[2], a->argv[i]);
 		sip_scheddestroy(p, SIP_TRANS_TIMEOUT);
 		transmit_invite(p, SIP_NOTIFY, 0, 2, NULL);