mod_rayo: dtmf #*A-D was broken
This commit is contained in:
parent
ba6bf28a5e
commit
007ddda560
|
@ -3674,6 +3674,10 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_rayo_load)
|
|||
"<![CDATA[<grammar mode=\"dtmf\"><rule id=\"digits\" scope=\"public\"><item repeat=\"4\"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></item></rule></grammar>]]>"
|
||||
"</grammar></input>"
|
||||
"</prompt>");
|
||||
rayo_add_cmd_alias("input", "<input xmlns=\""RAYO_INPUT_NS"\" mode=\"dtmf\" initial-timeout=\"5000\" inter-digit-timeout=\"3000\">"
|
||||
"<grammar content-type=\"application/srgs+xml\">"
|
||||
"<![CDATA[<grammar mode=\"dtmf\"><rule id=\"digits\" scope=\"public\"><item><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item><item>*</item><item>#</item></one-of></item></rule></grammar>]]>"
|
||||
"</grammar></input>");
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue