diff -u -r1.130 chan_sip.c
--- channels/chan_sip.c	29 Jun 2003 03:25:00 -0000	1.130
+++ channels/chan_sip.c	13 Jul 2003 07:04:34 -0000
@@ -3858,7 +3858,12 @@
 	char *c;
 	/* Try getting the "signal=" part */
 	if (strlen(c = get_sdp(req, "Signal")) || strlen(c = get_sdp(req, "d"))) {
-		strncpy(buf, c, sizeof(buf) - 1);
+		if (!strcasecmp(c, "10"))
+			buf[0] = '*';
+		else if (!strcasecmp(c, "11"))
+			buf[0] = '#';
+		else /* Copy the first character as the digit */
+			strncpy(buf, c, sizeof(buf) - 1);
 	} else if (get_msg_text(buf, sizeof(buf), req)) {
 		/* Normal INFO method */
 		ast_log(LOG_WARNING, "Unable to retrieve text from %s\n", p->callid);
@@ -3868,7 +3873,7 @@
 	if (p->owner) {
 		if (strlen(buf)) {
 			if (sipdebug)
-				ast_verbose("DTMF received: '%c'\n", buf[0]);
+				ast_verbose("DTMF received: '%c' (phone said %s)\n", buf[0], c);
 			memset(&f, 0, sizeof(f));
 			f.frametype = AST_FRAME_DTMF;
 			f.subclass = buf[0];
