[asterisk-commits] rmudgett: trunk r363740 - in /trunk: ./ channels/chan_dahdi.c channels/sig_pri.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Apr 25 15:52:03 CDT 2012
Author: rmudgett
Date: Wed Apr 25 15:51:58 2012
New Revision: 363740
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=363740
Log:
Make DAHDISendCallreroutingFacility wait 5 seconds for a reply before disconnecting the call.
Some switches may not handle the call-deflection/call-rerouting message if
the call is disconnected too soon after being sent. Asteisk was not
waiting for any reply before disconnecting the call.
* Added a 5 second delay before disconnecting the call to wait for a
potential response if the peer does not disconnect first.
(closes issue ASTERISK-19708)
Reported by: mehdi Shirazi
Patches:
jira_asterisk_19708_v1.8.patch (license #5621) patch uploaded by rmudgett
Tested by: rmudgett
........
Merged revisions 363730 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........
Merged revisions 363734 from http://svn.asterisk.org/svn/asterisk/branches/10
Modified:
trunk/ (props changed)
trunk/channels/chan_dahdi.c
trunk/channels/sig_pri.c
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-10-merged' - no diff available.
Modified: trunk/channels/chan_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/trunk/channels/chan_dahdi.c?view=diff&rev=363740&r1=363739&r2=363740
==============================================================================
--- trunk/channels/chan_dahdi.c (original)
+++ trunk/channels/chan_dahdi.c Wed Apr 25 15:51:58 2012
@@ -5985,7 +5985,7 @@
/* Data will be our digit string */
struct dahdi_pvt *pvt;
char *parse;
- int res = -1;
+ int res;
AST_DECLARE_APP_ARGS(args,
AST_APP_ARG(destination);
AST_APP_ARG(original);
@@ -6032,10 +6032,17 @@
args.reason = NULL;
}
- pri_send_callrerouting_facility_exec(pvt->sig_pvt, ast_channel_state(chan), args.destination,
- args.original, args.reason);
-
- return res;
+ res = pri_send_callrerouting_facility_exec(pvt->sig_pvt, ast_channel_state(chan),
+ args.destination, args.original, args.reason);
+ if (!res) {
+ /*
+ * Wait up to 5 seconds for a reply before hanging up this call
+ * leg if the peer does not disconnect first.
+ */
+ ast_safe_sleep(chan, 5000);
+ }
+
+ return -1;
}
#endif /* defined(HAVE_PRI_PROG_W_CAUSE) */
#endif /* defined(HAVE_PRI) */
Modified: trunk/channels/sig_pri.c
URL: http://svnview.digium.com/svn/asterisk/trunk/channels/sig_pri.c?view=diff&rev=363740&r1=363739&r2=363740
==============================================================================
--- trunk/channels/sig_pri.c (original)
+++ trunk/channels/sig_pri.c Wed Apr 25 15:51:58 2012
@@ -9048,7 +9048,7 @@
int pri_send_callrerouting_facility_exec(struct sig_pri_chan *p, enum ast_channel_state chanstate, const char *destination, const char *original, const char *reason)
{
- int res = -1;
+ int res;
sig_pri_lock_private(p);
More information about the asterisk-commits
mailing list