diff --git a/src/mod/event_handlers/mod_rayo/mod_rayo.c b/src/mod/event_handlers/mod_rayo/mod_rayo.c
index e6b2d20322..66f59c9def 100644
--- a/src/mod/event_handlers/mod_rayo/mod_rayo.c
+++ b/src/mod/event_handlers/mod_rayo/mod_rayo.c
@@ -3674,6 +3674,10 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_rayo_load)
"- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
]]>"
""
"");
+ rayo_add_cmd_alias("input", ""
+ ""
+ "- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- *
- #
]]>"
+ "");
return SWITCH_STATUS_SUCCESS;
}
diff --git a/src/mod/event_handlers/mod_rayo/nlsml.c b/src/mod/event_handlers/mod_rayo/nlsml.c
index 81f45dc6fb..e446d1bfd0 100644
--- a/src/mod/event_handlers/mod_rayo/nlsml.c
+++ b/src/mod/event_handlers/mod_rayo/nlsml.c
@@ -363,6 +363,37 @@ iks *nlsml_normalize(const char *result)
return result_xml;
}
+/**
+ * @return true if digit is a DTMF
+ */
+static int isdtmf(const char digit)
+{
+ switch(digit) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case '*':
+ case '#':
+ case 'a':
+ case 'A':
+ case 'b':
+ case 'B':
+ case 'c':
+ case 'C':
+ case 'd':
+ case 'D':
+ return 1;
+ }
+ return 0;
+}
+
/**
* Construct an NLSML result for digit match
* @param digits the matching digits
@@ -387,7 +418,7 @@ iks *nlsml_create_dtmf_match(const char *digits)
SWITCH_STANDARD_STREAM(stream);
for (i = 0; i < num_digits; i++) {
- if (isdigit(digits[i])) {
+ if (isdtmf(digits[i])) {
if (first) {
stream.write_function(&stream, "%c", digits[i]);
first = 0;