[svn-commits] mmichelson: branch group/CCSS r222313 - /team/group/CCSS/apps/app_dial.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Tue Oct 6 15:17:10 CDT 2009


Author: mmichelson
Date: Tue Oct  6 15:17:07 2009
New Revision: 222313

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=222313
Log:
Add TODO item to app_dial.

It's not so vital to take care of since only generic
agents and monitors are currently supported. It can and
will be a problem once native agent code starts getting
written.


Modified:
    team/group/CCSS/apps/app_dial.c

Modified: team/group/CCSS/apps/app_dial.c
URL: http://svnview.digium.com/svn/asterisk/team/group/CCSS/apps/app_dial.c?view=diff&rev=222313&r1=222312&r2=222313
==============================================================================
--- team/group/CCSS/apps/app_dial.c (original)
+++ team/group/CCSS/apps/app_dial.c Tue Oct  6 15:17:07 2009
@@ -1083,6 +1083,30 @@
 					handle_cause(AST_CAUSE_CONGESTION, &num);
 					break;
 				case AST_CONTROL_RINGING:
+					/* XXX TODO This is a tricky area to get right when using a native
+					 * CC agent. The reason is that we do the best we can to send only a
+					 * single ringing notification to the caller. The logic here now will
+					 * send the first ringing notification to the caller and drop all
+					 * others.
+					 *
+					 * This may not work so well when CC is involved. CCNR is typically
+					 * offered during a ringing message. Let's say that party A calls
+					 * parties B, C, and D. B and C do not support CC requests, but D
+					 * does. If we were to receive a ringing notification from B before
+					 * the others, then we would end up sending a ringing message to
+					 * A with no CCNR offer present.
+					 *
+					 * The approach that should be taken is that if we receive a ringing
+					 * response from a party and no CCNR offer is present, we need to
+					 * wait. Specifically, we need to wait until either a) a called party
+					 * offers CCNR in its ringing response or b) all called parties have
+					 * responded in some way to our call and none offers CCNR.
+					 *
+					 * The drawback to this is that if one of the parties has a delayed
+					 * response or, god forbid, one just plain doesn't respond to our
+					 * outgoing call, then this will result in a significant delay between
+					 * when the caller places the call and hears ringback.
+					 */
 					ast_verb(3, "%s is ringing\n", c->name);
 					/* Setup early media if appropriate */
 					if (single && CAN_EARLY_BRIDGE(peerflags, in, c))




More information about the svn-commits mailing list