diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 2e8ab70a95cf2a20b06372e1b3717054aad45826..998ac821767b10f6c3031a6911f67b772874d22b 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -4251,7 +4251,12 @@ static void receive_info(struct sip_pvt *p, struct sip_request *req)
 		if (strlen(buf)) {
 			if (sipdebug)
 				ast_verbose("DTMF received: '%c'\n", buf[0]);
-			event = atoi(buf);
+			if (buf[0] == '*')
+				event = 10;
+			else if (buf[0] == '#')
+				event = 11;
+			else
+				event = atoi(buf);
                         if (event < 10) {
                                 resp = '0' + event;
                         } else if (event < 11) {