[asterisk-commits] pkiefer: trunk r375081 - /trunk/apps/app_alarmreceiver.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue Oct 16 14:26:21 CDT 2012
Author: pkiefer
Date: Tue Oct 16 14:26:20 2012
New Revision: 375081
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=375081
Log:
Fixes two small regressions from ASTERISK-20157
- receive_dtmf_digits had the wrong buffer length
- app_alarmreceiver should wait 100ms before sending the second part of handshake
(closes issue ASTERISK-20484)
Reported by: Jean-Philippe Lord
Tested by: Jean-Philippe Lord, Pedro Kiefer
Patches:
ASTERISK-20484_v2.diff uploaded by Kaloyan Kovachev (license 5506)
Modified:
trunk/apps/app_alarmreceiver.c
Modified: trunk/apps/app_alarmreceiver.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_alarmreceiver.c?view=diff&rev=375081&r1=375080&r2=375081
==============================================================================
--- trunk/apps/app_alarmreceiver.c (original)
+++ trunk/apps/app_alarmreceiver.c Tue Oct 16 14:26:20 2012
@@ -171,6 +171,7 @@
*
* \param chan Asterisk Channel
* \param digit_string Digits String
+ * \param buf_size The size of the Digits String buffer
* \param length Length of the message we expect
* \param fdto First Digit Timeout
* \param sdto Other Digits Timeout
@@ -179,7 +180,7 @@
* \retval 1 if a timeout occurred
* \retval -1 if the caller hung up or on channel errors
*/
-static int receive_dtmf_digits(struct ast_channel *chan, char *digit_string, int length, int fdto, int sdto)
+static int receive_dtmf_digits(struct ast_channel *chan, char *digit_string, int buf_size, int length, int fdto, int sdto)
{
int rtn = 0;
int i = 0;
@@ -188,7 +189,7 @@
struct timeval lastdigittime;
lastdigittime = ast_tvnow();
- while (i < length && i < sizeof(digit_string) - 1) {
+ while (i < length && i < buf_size - 1) {
/* If timed out, leave */
if (ast_tvdiff_ms(ast_tvnow(), lastdigittime) > ((i > 0) ? sdto : fdto)) {
ast_verb(4, "AlarmReceiver: DTMF Digit Timeout on %s\n", ast_channel_name(chan));
@@ -464,7 +465,7 @@
res = send_tone_burst(chan, "1400", 100, tldn, 0);
if (!res) {
ast_verb(4, "AlarmReceiver: Sending 2300Hz 100ms burst (ACK)\n");
- res = send_tone_burst(chan, "2300", 100, tldn, 0);
+ res = send_tone_burst(chan, "2300", 100, tldn, 100);
}
}
if (res) {
@@ -476,7 +477,7 @@
return 0;
}
- res = receive_dtmf_digits(chan, event, sizeof(event) - 1, fdto, sdto);
+ res = receive_dtmf_digits(chan, event, sizeof(event), sizeof(event) - 1, fdto, sdto);
if (res < 0) {
if (events_received == 0) {
/* Hangup with no events received should be logged in the DB */
More information about the asterisk-commits
mailing list