diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 1921a0e648..3fa7a1977b 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -4139,12 +4139,14 @@ static int sip_show_channel(int fd, int argc, char *argv[])
 {
 	struct sip_pvt *cur;
 	char tmp[256];
+	size_t len;
 	if (argc != 4)
 		return RESULT_SHOWUSAGE;
+	len = strlen(argv[3]);
 	ast_mutex_lock(&iflock);
 	cur = iflist;
 	while(cur) {
-		if (!strcasecmp(cur->callid, argv[3])) {
+		if (!strncasecmp(cur->callid, argv[3],len)) {
 			ast_cli(fd, "Call-ID: %s\n", cur->callid);
 			ast_cli(fd, "Our Codec Capability: %d\n", cur->capability);
 			ast_cli(fd, "Non-Codec Capability: %d\n", cur->noncodeccapability);
@@ -4162,14 +4164,13 @@ static int sip_show_channel(int fd, int argc, char *argv[])
 				strcat(tmp, "info ");
 			if (cur->dtmfmode & SIP_DTMF_INBAND)
 				strcat(tmp, "inband ");
-			ast_cli(fd, "DTMF Mode: %s\n", tmp);
-			break;
+			ast_cli(fd, "DTMF Mode: %s\n\n", tmp);
 		}
 		cur = cur->next;
 	}
 	ast_mutex_unlock(&iflock);
 	if (!cur) 
-		ast_cli(fd, "No such SIP Call ID '%s'\n", argv[3]);
+		ast_cli(fd, "No such SIP Call ID starting with '%s'\n", argv[3]);
 	return RESULT_SUCCESS;
 }