[svn-commits] mmichelson: branch group/CCSS r213249 - /team/group/CCSS/channels/chan_sip.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Thu Aug 20 11:02:36 CDT 2009


Author: mmichelson
Date: Thu Aug 20 11:02:32 2009
New Revision: 213249

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=213249
Log:
Finalize parsing of cc config options in chan_sip

Now you can place cc options in the general section and
have it apply to all peers. Individual options placed
in a peer definition will override the defaults.


Modified:
    team/group/CCSS/channels/chan_sip.c

Modified: team/group/CCSS/channels/chan_sip.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/group/CCSS/channels/chan_sip.c?view=diff&rev=213249&r1=213248&r2=213249
==============================================================================
--- team/group/CCSS/channels/chan_sip.c (original)
+++ team/group/CCSS/channels/chan_sip.c Thu Aug 20 11:02:32 2009
@@ -1239,6 +1239,7 @@
 static int global_qualifyfreq;			/*!< Qualify frequency */
 static int global_qualify_gap;              /*!< Time between our group of peer pokes */
 static int global_qualify_peers;          /*!< Number of peers to poke at a given time */
+struct ast_cc_config_params *global_cc_params;
 
 
 /*! \brief Codecs that we support by default: */
@@ -7082,6 +7083,8 @@
 		ao2_t_ref(p, -1, "Yuck, couldn't allocate cc_params struct. Get rid o' p");
 		return NULL;
 	}
+
+	ast_cc_copy_config_params(p->cc_params, global_cc_params);
 
 	if (req) {
 		set_socket_transport(&p->socket, req->socket.type); /* Later in ast_sip_ouraddrfor we need this to choose the right ip and port for the specific transport */
@@ -23965,6 +23968,7 @@
 	peer->timer_b = global_timer_b;
 	clear_peer_mailboxes(peer);
 	peer->disallowed_methods = sip_cfg.disallowed_methods;
+	ast_cc_copy_config_params(peer->cc_params, global_cc_params);
 }
 
 /*! \brief Create temporary peer (used in autocreatepeer mode) */
@@ -23977,6 +23981,11 @@
 
 	if (ast_string_field_init(peer, 512)) {
 		ao2_t_ref(peer, -1, "failed to string_field_init, drop peer");
+		return NULL;
+	}
+
+	if (!(peer->cc_params = ast_cc_config_params_init())) {
+		ao2_t_ref(peer, -1, "failed to allocate cc_params, drop peer");
 		return NULL;
 	}
 
@@ -24793,6 +24802,13 @@
 	ast_clear_flag(&global_flags[1], SIP_PAGE2_TEXTSUPPORT);
 	ast_clear_flag(&global_flags[1], SIP_PAGE2_IGNORESDPVERSION);
 
+	if (global_cc_params) {
+		ast_cc_config_params_destroy(global_cc_params);
+	}
+
+	if (!(global_cc_params = ast_cc_config_params_init())) {
+		return -1;
+	}
 
 	/* Read the [general] config section of sip.conf (or from realtime config) */
 	for (v = ast_variable_browse(cfg, "general"); v; v = v->next) {
@@ -25217,6 +25233,8 @@
 		} else if (!strcasecmp(v->name, "disallowed_methods")) {
 			char *disallow = ast_strdupa(v->value);
 			mark_parsed_methods(&sip_cfg.disallowed_methods, disallow);
+		} else if (ast_cc_is_config_param(v->name)) {
+			ast_cc_set_param(global_cc_params, v->name, v->value);
 		}
 	}
 




More information about the svn-commits mailing list