From 72aad689653d8a1b5880a8b8e67c542414839f94 Mon Sep 17 00:00:00 2001 From: Chris Rienzo Date: Fri, 28 Jun 2013 11:16:06 -0400 Subject: [PATCH] mod_rayo: dtmf #*A-D was broken --- src/mod/event_handlers/mod_rayo/mod_rayo.c | 4 +++ src/mod/event_handlers/mod_rayo/nlsml.c | 33 +++++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) 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) "0123456789]]>" "" ""); + rayo_add_cmd_alias("input", "" + "" + "0123456789*#]]>" + ""); 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;