[asterisk-commits] mmichelson: branch group/CCSS r214522 - in /team/group/CCSS: include/asterisk...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Aug 27 16:53:31 CDT 2009


Author: mmichelson
Date: Thu Aug 27 16:53:28 2009
New Revision: 214522

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=214522
Log:
Add interface name to ast_cc_agent and fix compilation errors.


Modified:
    team/group/CCSS/include/asterisk/ccss.h
    team/group/CCSS/main/ccss.c

Modified: team/group/CCSS/include/asterisk/ccss.h
URL: http://svn.asterisk.org/svn-view/asterisk/team/group/CCSS/include/asterisk/ccss.h?view=diff&rev=214522&r1=214521&r2=214522
==============================================================================
--- team/group/CCSS/include/asterisk/ccss.h (original)
+++ team/group/CCSS/include/asterisk/ccss.h Thu Aug 27 16:53:28 2009
@@ -565,6 +565,10 @@
 	struct ast_cc_config_params *cc_params;
 	/*! Data specific to agent implementation */
 	void *private_data;
+	/*! The name of the interface which this agent
+	 * represents/communicates with
+	 */
+	char interface[1];
 };
 
 struct ast_cc_agent_callbacks {

Modified: team/group/CCSS/main/ccss.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/group/CCSS/main/ccss.c?view=diff&rev=214522&r1=214521&r2=214522
==============================================================================
--- team/group/CCSS/main/ccss.c (original)
+++ team/group/CCSS/main/ccss.c Thu Aug 27 16:53:28 2009
@@ -534,11 +534,11 @@
 }
 
 static struct ast_cc_agent *cc_agent_init(struct ast_channel *caller_chan, 
-		const int core_id) 
+		const char * const caller_name, const int core_id) 
 {
 	struct ast_cc_agent *agent;
 
-	if (!(agent = ast_calloc(1, sizeof(*agent)))) {
+	if (!(agent = ast_calloc(1, sizeof(*agent) + strlen(caller_name)))) {
 		return NULL;
 	}
 
@@ -553,6 +553,7 @@
 		ast_free(agent);
 		return NULL;
 	}
+	strcpy(agent->interface, caller_name);
 	ast_cc_copy_config_params(agent->cc_params, ast_channel_get_cc_config_params(caller_chan));
 	if (agent->callbacks->init(agent, caller_chan)) {
 		ast_cc_config_params_destroy(agent->cc_params);
@@ -611,15 +612,13 @@
 	}
 
 	core_instance->core_id = pending_offer->core_id;
-	if (!(core_instance->agent = cc_agent_init(caller_chan, core_instance->core_id))) {
+	if (!(core_instance->agent = cc_agent_init(caller_chan, caller, core_instance->core_id))) {
 		ao2_ref(pending_offer, -1);
 		ao2_ref(core_instance, -1);
 		return -1;
 	}
 
 	ao2_link(cc_core_instances, core_instance);
-
-	/* Finally, start the state machine! */
 
 	return 0;
 }
@@ -715,8 +714,8 @@
 		ast_log(LOG_WARNING, "Someone requested to change to CC_AVAILABLE? Ignoring.\n");
 		break;
 	case CC_CALLER_OFFERED:
-		if (core_instance->state != CC_AVAILABLE) {
-			ast_log(LOG_NOTICE, "Invalid state change request. Cannot go from %d to %d\n", core_instance->state, args->state);
+		if (core_instance->current_state != CC_AVAILABLE) {
+			ast_log(LOG_NOTICE, "Invalid state change request. Cannot go from %d to %d\n", core_instance->current_state, args->state);
 			break;
 		}
 
@@ -735,40 +734,40 @@
 		 * 2. Caller became available, call agent's stop_monitoring callback and
 		 *    call monitor's unsuspend callback.
 		 */
-		if (core_instance->state == CC_CALLER_REQUESTED) {
+		if (core_instance->current_state == CC_CALLER_REQUESTED) {
 			/* Do 1 */
-		} else if (core_instance->state == CC_CALLER_BUSY) {
+		} else if (core_instance->current_state == CC_CALLER_BUSY) {
 			/* Do 2 */
 		} else {
-			ast_log(LOG_NOTICE, "Invalid state change request. Cannot go from %d to %d\n", core_instance->state, args->state);
+			ast_log(LOG_NOTICE, "Invalid state change request. Cannot go from %d to %d\n", core_instance->current_state, args->state);
 		}
 		break;
 	case CC_CALLEE_READY:
 		/* Callee has become available, call agent's status request callback
 		 */
-		if (core_instance->state != CC_ACTIVE) {
-			ast_log(LOG_NOTICE, "Invalid state change request. Cannot go from %d to %d\n", core_instance->state, args->state);
+		if (core_instance->current_state != CC_ACTIVE) {
+			ast_log(LOG_NOTICE, "Invalid state change request. Cannot go from %d to %d\n", core_instance->current_state, args->state);
 		}
 	case CC_CALLER_BUSY:
 		/* Callee was available, but caller was busy, call agent's begin_monitoring callback
 		 * and call monitor's suspend callback.
 		 */
-		if (core_instance->state != CC_CALLEE_READY) {
-			ast_log(LOG_NOTICE, "Invalid state change request. Cannot go from %d to %d\n", core_instance->state, args->state);
+		if (core_instance->current_state != CC_CALLEE_READY) {
+			ast_log(LOG_NOTICE, "Invalid state change request. Cannot go from %d to %d\n", core_instance->current_state, args->state);
 		}
 		break;
 	case CC_RECALLING:
 		/* Both caller and callee are available, call agent's recall callback
 		 */
-		if (core_instance->state != CC_CALLEE_READY) {
-			ast_log(LOG_NOTICE, "Invalid state change request. Cannot go from %d to %d\n", core_instance->state, args->state);
+		if (core_instance->current_state != CC_CALLEE_READY) {
+			ast_log(LOG_NOTICE, "Invalid state change request. Cannot go from %d to %d\n", core_instance->current_state, args->state);
 		}
 		break;
 	case CC_COMPLETE:
 		/* Recall has made progress, call agent and monitor destructor functions
 		 */
-		if (core_instance->state != CC_RECALLING) {
-			ast_log(LOG_NOTICE, "Invalid state change request. Cannot go from %d to %d\n", core_instance->state, args->state);
+		if (core_instance->current_state != CC_RECALLING) {
+			ast_log(LOG_NOTICE, "Invalid state change request. Cannot go from %d to %d\n", core_instance->current_state, args->state);
 		}
 		break;
 	case CC_FAILED:




More information about the asterisk-commits mailing list