[asterisk-commits] irroot: branch irroot/patches r334444 - /team/irroot/patches/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Sun Sep 4 07:22:33 CDT 2011


Author: irroot
Date: Sun Sep  4 07:22:23 2011
New Revision: 334444

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=334444
Log:
Round robin routing fix for chan_misdn
Deadlock fix for app_queue
GWtimeout option fixup for res_fax


Modified:
    team/irroot/patches/distrotech-trunk.patch

Modified: team/irroot/patches/distrotech-trunk.patch
URL: http://svnview.digium.com/svn/asterisk/team/irroot/patches/distrotech-trunk.patch?view=diff&rev=334444&r1=334443&r2=334444
==============================================================================
--- team/irroot/patches/distrotech-trunk.patch (original)
+++ team/irroot/patches/distrotech-trunk.patch Sun Sep  4 07:22:23 2011
@@ -1,7 +1,7 @@
 Index: channels/chan_sip.c
 ===================================================================
---- channels/chan_sip.c	(.../trunk)	(revision 333507)
-+++ channels/chan_sip.c	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
+--- channels/chan_sip.c	(.../trunk)	(revision 334442)
++++ channels/chan_sip.c	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
 @@ -5489,17 +5489,23 @@
  
  		if (p->rtp && !p->srtp && setup_srtp(&p->srtp) < 0) {
@@ -88,7 +88,7 @@
  	}
  
  	if (udptlportno == -1) {
-@@ -11096,14 +11118,25 @@
+@@ -11097,14 +11119,25 @@
  	}
  }
  
@@ -116,7 +116,7 @@
  			*a_crypto = sdp_crypto_attrib(srtp->crypto);
  		}
  
-@@ -11271,7 +11304,7 @@
+@@ -11272,7 +11305,7 @@
  		/* Ok, we need video. Let's add what we need for video and set codecs.
  		   Video is handled differently than audio since we can not transcode. */
  		if (needvideo) {
@@ -125,7 +125,7 @@
  			ast_str_append(&m_video, 0, "m=video %d RTP/%s", ast_sockaddr_port(&vdest),
  				v_a_crypto ? "SAVP" : "AVP");
  
-@@ -11288,7 +11321,7 @@
+@@ -11289,7 +11322,7 @@
  		if (needtext) {
  			if (sipdebug_text)
  				ast_verbose("Lets set up the text sdp\n");
@@ -134,7 +134,7 @@
  			ast_str_append(&m_text, 0, "m=text %d RTP/%s", ast_sockaddr_port(&tdest),
  				t_a_crypto ? "SAVP" : "AVP");
  			if (debug) {  /* XXX should I use tdest below ? */
-@@ -11301,7 +11334,7 @@
+@@ -11302,7 +11335,7 @@
  		/* We break with the "recommendation" and send our IP, in order that our
  		   peer doesn't have to ast_gethostbyname() us */
  
@@ -143,7 +143,7 @@
  		ast_str_append(&m_audio, 0, "m=audio %d RTP/%s", ast_sockaddr_port(&dest),
  			a_crypto ? "SAVP" : "AVP");
  
-@@ -22962,7 +22995,8 @@
+@@ -22982,7 +23015,8 @@
  				transmit_response_with_t38_sdp(p, "200 OK", req, (reinvite ? XMIT_RELIABLE : (req->ignore ?  XMIT_UNRELIABLE : XMIT_CRITICAL)));
  			} else if ((p->t38.state == T38_DISABLED) || (p->t38.state == T38_REJECTED)) {
  				/* If this is not a re-invite or something to ignore - it's critical */
@@ -153,7 +153,7 @@
  					ast_log(LOG_WARNING, "Target does not support required crypto\n");
  					transmit_response_reliable(p, "488 Not Acceptable Here (crypto)", req);
  				} else {
-@@ -27132,6 +27166,11 @@
+@@ -27160,6 +27194,11 @@
  		int duplicate = 0;
  		/* remove leading/trailing whitespace from mailbox string */
  		mbox = ast_strip(mbox);
@@ -165,7 +165,7 @@
  		strsep(&context, "@");
  
  		if (ast_strlen_zero(mbox)) {
-@@ -27604,7 +27643,15 @@
+@@ -27632,7 +27671,15 @@
  			} else if (!strcasecmp(v->name, "use_q850_reason")) {
  				ast_set2_flag(&peer->flags[1], ast_true(v->value), SIP_PAGE2_Q850_REASON);
  			} else if (!strcasecmp(v->name, "encryption")) {
@@ -182,7 +182,7 @@
  			} else if (!strcasecmp(v->name, "snom_aoc_enabled")) {
  				ast_set2_flag(&peer->flags[2], ast_true(v->value), SIP_PAGE3_SNOM_AOC);
  			}
-@@ -29542,7 +29589,7 @@
+@@ -29570,7 +29617,7 @@
  		return FALSE;
  	}
  
@@ -191,10 +191,125 @@
  		return FALSE;
  	}
  
+Index: channels/chan_misdn.c
+===================================================================
+--- channels/chan_misdn.c	(.../trunk)	(revision 334442)
++++ channels/chan_misdn.c	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
+@@ -7873,64 +7873,63 @@
+ 		}
+ 
+ 		if (rr) {
+-			int robin_channel = rr->channel;
+ 			int port_start;
+-			int next_chan = 1;
++			int bchan_start;
++			int port_up;
++			int check;
++			int maxbchans;
+ 
+-			do {
+-				port_start = 0;
+-				for (port = misdn_cfg_get_next_port_spin(rr->port); port > 0 && port != port_start;
+-					 port = misdn_cfg_get_next_port_spin(port)) {
++			if (!rr->port) {
++				rr->port = misdn_cfg_get_next_port_spin(0);
++			}
+ 
+-					if (!port_start) {
+-						port_start = port;
+-					}
++			if (!rr->channel) {
++				rr->channel = 1;
++			}
+ 
+-					if (port >= port_start) {
+-						next_chan = 1;
+-					}
++			bchan_start = rr->channel;
++			port_start = rr->port;
++			do {
++				misdn_cfg_get(rr->port, MISDN_CFG_GROUPNAME, cfg_group, sizeof(cfg_group));
++				if (strcasecmp(cfg_group, group)) {
++					rr->port = misdn_cfg_get_next_port_spin(rr->port);
++					rr->channel = 1;
++					continue;
++				}
+ 
+-					if (port <= port_start && next_chan) {
+-						int maxbchans = misdn_lib_get_maxchans(port);
++				misdn_cfg_get(rr->port, MISDN_CFG_PMP_L1_CHECK, &check, sizeof(check));
++				port_up = misdn_lib_port_up(rr->port, check);
+ 
+-						if (++robin_channel >= maxbchans) {
+-							robin_channel = 1;
+-						}
+-						next_chan = 0;
+-					}
++				if (!port_up) {
++					chan_misdn_log(1, rr->port, "L1 is not Up on this Port\n");
++					rr->port = misdn_cfg_get_next_port_spin(rr->port);
++					rr->channel = 1;
++				} else if (port_up < 0) {
++					ast_log(LOG_WARNING, "This port (%d) is blocked\n", rr->port);
++					rr->port = misdn_cfg_get_next_port_spin(rr->port);
++					rr->channel = 1;
++				} else {
++					chan_misdn_log(4, rr->port, "portup\n");
++					maxbchans = misdn_lib_get_maxchans(rr->port);
+ 
+-					misdn_cfg_get(port, MISDN_CFG_GROUPNAME, cfg_group, sizeof(cfg_group));
++					for (;rr->channel <= maxbchans;rr->channel++) {
++						chan_misdn_log(4, rr->port, "Checking channel %d\n",  rr->channel);
+ 
+-					if (!strcasecmp(cfg_group, group)) {
+-						int port_up;
+-						int check;
+-
+-						misdn_cfg_get(port, MISDN_CFG_PMP_L1_CHECK, &check, sizeof(check));
+-						port_up = misdn_lib_port_up(port, check);
+-
+-						if (check && !port_up) {
+-							chan_misdn_log(1, port, "L1 is not Up on this Port\n");
++						if ((newbc = misdn_lib_get_free_bc(rr->port, rr->channel, 0, 0))) {
++							chan_misdn_log(4, rr->port, " Success! Found port:%d channel:%d\n", newbc->port, newbc->channel);
++							rr->channel++;
++							break;
+ 						}
+-
+-						if (check && port_up < 0) {
+-							ast_log(LOG_WARNING, "This port (%d) is blocked\n", port);
+-						}
+-
+-						if (port_up > 0)	{
+-							newbc = misdn_lib_get_free_bc(port, robin_channel, 0, 0);
+-							if (newbc) {
+-								chan_misdn_log(4, port, " Success! Found port:%d channel:%d\n", newbc->port, newbc->channel);
+-								if (port_up) {
+-									chan_misdn_log(4, port, "portup:%d\n",  port_up);
+-								}
+-								rr->port = newbc->port;
+-								rr->channel = newbc->channel;
+-								break;
+-							}
+-						}
+ 					}
++					if (!newbc || (rr->channel > maxbchans)) {
++						rr->port = misdn_cfg_get_next_port_spin(rr->port);
++						rr->channel = 1;
++					}
++
+ 				}
+-			} while (!newbc && robin_channel != rr->channel);
++			} while (!newbc && (rr->port > 0) &&
++				 ((rr->port != port_start) || ((rr->port == port_start) && (rr->channel < bchan_start))));
++
+ 		} else {
+ 			for (port = misdn_cfg_get_next_port(0); port > 0;
+ 				port = misdn_cfg_get_next_port(port)) {
 Index: channels/sip/include/sip.h
 ===================================================================
---- channels/sip/include/sip.h	(.../trunk)	(revision 333507)
-+++ channels/sip/include/sip.h	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
+--- channels/sip/include/sip.h	(.../trunk)	(revision 334442)
++++ channels/sip/include/sip.h	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
 @@ -353,9 +353,11 @@
  
  
@@ -210,8 +325,8 @@
  
 Index: channels/sip/include/sdp_crypto.h
 ===================================================================
---- channels/sip/include/sdp_crypto.h	(.../trunk)	(revision 333507)
-+++ channels/sip/include/sdp_crypto.h	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
+--- channels/sip/include/sdp_crypto.h	(.../trunk)	(revision 334442)
++++ channels/sip/include/sdp_crypto.h	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
 @@ -31,6 +31,7 @@
  #include <asterisk/rtp_engine.h>
  
@@ -245,8 +360,8 @@
  /*! \brief Return the a_crypto value of the sdp_crypto struct
 Index: channels/sip/include/srtp.h
 ===================================================================
---- channels/sip/include/srtp.h	(.../trunk)	(revision 333507)
-+++ channels/sip/include/srtp.h	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
+--- channels/sip/include/srtp.h	(.../trunk)	(revision 334442)
++++ channels/sip/include/srtp.h	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
 @@ -34,6 +34,8 @@
  #define SRTP_ENCR_OPTIONAL	(1 << 1)	/* SRTP encryption optional */
  #define SRTP_CRYPTO_ENABLE	(1 << 2)
@@ -258,8 +373,8 @@
  struct sip_srtp {
 Index: channels/sip/sdp_crypto.c
 ===================================================================
---- channels/sip/sdp_crypto.c	(.../trunk)	(revision 333507)
-+++ channels/sip/sdp_crypto.c	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
+--- channels/sip/sdp_crypto.c	(.../trunk)	(revision 334442)
++++ channels/sip/sdp_crypto.c	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
 @@ -32,6 +32,7 @@
  #include "asterisk/options.h"
  #include "asterisk/utils.h"
@@ -310,8 +425,8 @@
  
 Index: channels/chan_local.c
 ===================================================================
---- channels/chan_local.c	(.../trunk)	(revision 333507)
-+++ channels/chan_local.c	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
+--- channels/chan_local.c	(.../trunk)	(revision 334442)
++++ channels/chan_local.c	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
 @@ -588,6 +588,7 @@
  static int local_write(struct ast_channel *ast, struct ast_frame *f)
  {
@@ -343,8 +458,8 @@
  	if (!ast_test_flag(p, LOCAL_ALREADY_MASQED)) {
 Index: configure.ac
 ===================================================================
---- configure.ac	(.../trunk)	(revision 333507)
-+++ configure.ac	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
+--- configure.ac	(.../trunk)	(revision 334442)
++++ configure.ac	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
 @@ -1721,7 +1721,7 @@
     AST_EXT_LIB_CHECK([SUPPSERV], [suppserv], [encodeFac], [mISDNuser/suppserv.h])
     AST_C_DEFINE_CHECK([MISDN_FAC_RESULT], [Fac_RESULT], [mISDNuser/suppserv.h])
@@ -356,8 +471,8 @@
  
 Index: apps/app_readexten.c
 ===================================================================
---- apps/app_readexten.c	(.../trunk)	(revision 333507)
-+++ apps/app_readexten.c	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
+--- apps/app_readexten.c	(.../trunk)	(revision 334442)
++++ apps/app_readexten.c	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
 @@ -96,24 +96,6 @@
  			</variablelist>
  		</description>
@@ -443,9 +558,38 @@
  
 Index: apps/app_queue.c
 ===================================================================
---- apps/app_queue.c	(.../trunk)	(revision 333507)
-+++ apps/app_queue.c	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
-@@ -5100,8 +5100,26 @@
+--- apps/app_queue.c	(.../trunk)	(revision 334442)
++++ apps/app_queue.c	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
+@@ -4109,6 +4109,7 @@
+ 	struct ao2_iterator queue_iter;	
+ 	
+ 	if (shared_lastcall) {
++		ao2_lock(queues);
+ 		queue_iter = ao2_iterator_init(queues, 0);
+ 		while ((qtmp = ao2_t_iterator_next(&queue_iter, "Iterate through queues"))) {
+ 			ao2_lock(qtmp);
+@@ -4122,6 +4123,7 @@
+ 			queue_t_unref(qtmp, "Done with iterator");
+ 		}
+ 		ao2_iterator_destroy(&queue_iter);
++		ao2_unlock(queues);
+ 	} else {
+ 		ao2_lock(q);
+ 		time(&member->lastcall);
+@@ -4672,9 +4674,10 @@
+ 	orig = to;
+ 	++qe->pending;
+ 	ao2_unlock(qe->parent);
++	if (need_weight) {
++		ao2_unlock(queues);
++	}
+ 	ring_one(qe, outgoing, &numbusies);
+-	if (need_weight)
+-		ao2_unlock(queues);
+ 	lpeer = wait_for_answer(qe, outgoing, &to, &digit, numbusies, ast_test_flag(&(bridge_config.features_caller), AST_FEATURE_DISCONNECT), forwardsallowed, update_connectedline);
+ 	/* The ast_channel_datastore_remove() function could fail here if the
+ 	 * datastore was moved to another channel during a masquerade. If this is
+@@ -5100,8 +5103,26 @@
  		qe->handled++;
  		ast_queue_log(queuename, qe->chan->uniqueid, member->membername, "CONNECT", "%ld|%s|%ld", (long) time(NULL) - qe->start, peer->uniqueid,
  													(long)(orig - to > 0 ? (orig - to) / 1000 : 0));
@@ -476,9 +620,9 @@
  					"Queue: %s\r\n"
 Index: CHANGES
 ===================================================================
---- CHANGES	(.../trunk)	(revision 333507)
-+++ CHANGES	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
-@@ -201,6 +201,8 @@
+--- CHANGES	(.../trunk)	(revision 334442)
++++ CHANGES	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
+@@ -205,6 +205,8 @@
  SIP Changes
  -----------
   * Add T38 support for REJECTED state where T.38 Negotiation is explicitly rejected.
@@ -489,8 +633,8 @@
  -------------
 Index: Makefile
 ===================================================================
---- Makefile	(.../trunk)	(revision 333507)
-+++ Makefile	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
+--- Makefile	(.../trunk)	(revision 334442)
++++ Makefile	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
 @@ -127,7 +127,7 @@
  # Asterisk.conf is located in ASTETCDIR or by using the -C flag
  # when starting Asterisk
@@ -502,8 +646,8 @@
  # If you use Apache, you may determine by a grep 'DocumentRoot' of your httpd.conf file
 Index: funcs/func_dialplan.c
 ===================================================================
---- funcs/func_dialplan.c	(.../trunk)	(revision 333507)
-+++ funcs/func_dialplan.c	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
+--- funcs/func_dialplan.c	(.../trunk)	(revision 334442)
++++ funcs/func_dialplan.c	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
 @@ -51,7 +51,24 @@
  			<para>This function returns <literal>1</literal> if the target exits. Otherwise, it returns <literal>0</literal>.</para>
  		</description>
@@ -600,9 +744,9 @@
  AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Dialplan Context/Extension/Priority Checking Functions");
 Index: main/channel.c
 ===================================================================
---- main/channel.c	(.../trunk)	(revision 333507)
-+++ main/channel.c	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
-@@ -4925,6 +4925,11 @@
+--- main/channel.c	(.../trunk)	(revision 334442)
++++ main/channel.c	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
+@@ -4964,6 +4964,11 @@
  			apply_plc(chan, fr);
  		}
  
@@ -614,7 +758,7 @@
  		/* If the frame is in the raw write format, then it's easy... just use the frame - otherwise we will have to translate */
  		if (ast_format_cmp(&fr->subclass.format, &chan->rawwriteformat) != AST_FORMAT_CMP_NOT_EQUAL)
  			f = fr;
-@@ -7346,6 +7351,8 @@
+@@ -7418,6 +7423,8 @@
  	long time_left_ms=0;
  	char caller_warning = 0;
  	char callee_warning = 0;
@@ -623,7 +767,7 @@
  
  	*fo = NULL;
  
-@@ -7425,6 +7432,17 @@
+@@ -7497,6 +7504,17 @@
  	ast_indicate(c0, AST_CONTROL_SRCUPDATE);
  	ast_indicate(c1, AST_CONTROL_SRCUPDATE);
  
@@ -643,8 +787,8 @@
  		int to;
 Index: configs/sip.conf.sample
 ===================================================================
---- configs/sip.conf.sample	(.../trunk)	(revision 333507)
-+++ configs/sip.conf.sample	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
+--- configs/sip.conf.sample	(.../trunk)	(revision 334442)
++++ configs/sip.conf.sample	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
 @@ -901,6 +901,9 @@
  ;encryption=no                  ; Whether to offer SRTP encrypted media (and only SRTP encrypted media)
                                  ; on outgoing calls to a peer. Calls will fail with HANGUPCAUSE=58 if
@@ -657,9 +801,9 @@
  ; For additional information on ARA, the Asterisk Realtime Architecture,
 Index: res/res_fax.c
 ===================================================================
---- res/res_fax.c	(.../trunk)	(revision 333507)
-+++ res/res_fax.c	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
-@@ -228,10 +228,33 @@
+--- res/res_fax.c	(.../trunk)	(revision 334442)
++++ res/res_fax.c	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
+@@ -225,10 +225,33 @@
  			<ref type="application">SendFax</ref>
  		</see-also>
  	</function>
@@ -693,69 +837,7 @@
  
  struct debug_info_history {
  	unsigned int consec_frames;
-@@ -2423,7 +2446,7 @@
- 	ast_dsp_set_faxmode(gateway->peer_dsp, DSP_FAXMODE_DETECT_V21);
- 
- 	details->caps = AST_FAX_TECH_GATEWAY;
--	if (details->gateway_timeout && !(gateway->s = fax_session_reserve(details, &gateway->token))) {
-+	if (!(gateway->s = fax_session_reserve(details, &gateway->token))) {
- 		details->caps |= ~AST_FAX_TECH_GATEWAY;
- 		ast_log(LOG_ERROR, "Can't reserve a FAX session, gateway attempt failed.\n");
- 		ao2_ref(gateway, -1);
-@@ -2507,7 +2530,6 @@
- 
- 	gateway->t38_state = T38_STATE_NEGOTIATING;
- 	gateway->timeout_start = ast_tvnow();
--	details->gateway_timeout = FAX_GATEWAY_TIMEOUT;
- 
- 	ast_debug(1, "requesting T.38 for gateway session for %s\n", chan->name);
- 	return fp;
-@@ -2600,7 +2622,6 @@
- 			t38_parameters_ast_to_fax(&details->their_t38_parameters, control_params);
- 			gateway->t38_state = T38_STATE_UNKNOWN;
- 			gateway->timeout_start = ast_tvnow();
--			details->gateway_timeout = FAX_GATEWAY_TIMEOUT;
- 			ao2_ref(details, -1);
- 			return f;
- 		} else if (state == T38_STATE_UNAVAILABLE || state == T38_STATE_REJECTED) {
-@@ -2638,7 +2659,6 @@
- 			t38_parameters_ast_to_fax(&details->their_t38_parameters, control_params);
- 			gateway->t38_state = T38_STATE_UNKNOWN;
- 			gateway->timeout_start = ast_tvnow();
--			details->gateway_timeout = FAX_GATEWAY_TIMEOUT;
- 
- 			ast_debug(1, "%s is attempting to negotiate T.38 after we already sent a negotiation request based on v21 preamble detection\n", active->name);
- 			ao2_ref(details, -1);
-@@ -2882,9 +2902,7 @@
- 			return f;
- 		}
- 
--		if (details->gateway_timeout) {
--			gateway->timeout_start = ast_tvnow();
--		}
-+		gateway->timeout_start = ast_tvnow();
- 
- 		/* we are bridged, change r/w formats to SLIN for v21 preamble
- 		 * detection and T.30 */
-@@ -2904,14 +2922,14 @@
- 		gateway->bridged = 1;
- 	}
- 
--	if (gateway->bridged && !ast_tvzero(gateway->timeout_start)) {
-+	if (details->gateway_timeout && gateway->bridged && !ast_tvzero(gateway->timeout_start)) {
- 		if (ast_tvdiff_ms(ast_tvnow(), gateway->timeout_start) > details->gateway_timeout) {
--			ast_debug(1, "no fax activity between %s and %s after %d ms, disabling gateway\n", chan->name, peer->name, FAX_GATEWAY_TIMEOUT);
-+			ast_debug(1, "no fax activity between %s and %s after %d ms, disabling gateway\n", chan->name, peer->name, details->gateway_timeout);
- 			ast_framehook_detach(chan, gateway->framehook);
- 			details->gateway_id = -1;
- 
- 			ast_string_field_set(details, result, "FAILED");
--			ast_string_field_build(details, resultstr, "no fax activity after %d ms", FAX_GATEWAY_TIMEOUT);
-+			ast_string_field_build(details, resultstr, "no fax activity after %d ms", details->gateway_timeout);
- 			ast_string_field_set(details, error, "TIMEOUT");
- 			set_channel_variables(chan, details);
- 			ao2_ref(details, -1);
-@@ -3071,6 +3089,197 @@
+@@ -3068,6 +3091,197 @@
  	return gateway->framehook;
  }
  
@@ -953,7 +1035,7 @@
  /*! \brief hash callback for ao2 */
  static int session_hash_cb(const void *obj, const int flags)
  {
-@@ -3631,6 +3840,10 @@
+@@ -3630,6 +3844,10 @@
  		ast_log(LOG_WARNING, "failed to unregister '%s'\n", app_receivefax);
  	}
  
@@ -964,7 +1046,7 @@
  	if (fax_logger_level != -1) {
  		ast_logger_unregister_level("FAX");
  	}
-@@ -3671,8 +3884,12 @@
+@@ -3670,8 +3888,12 @@
  		return AST_MODULE_LOAD_DECLINE;
  	}
  
@@ -980,8 +1062,8 @@
  	return res;
 Index: contrib/scripts/safe_asterisk
 ===================================================================
---- contrib/scripts/safe_asterisk	(.../trunk)	(revision 333507)
-+++ contrib/scripts/safe_asterisk	(.../team/irroot/distrotech-customers-trunk)	(revision 333507)
+--- contrib/scripts/safe_asterisk	(.../trunk)	(revision 334442)
++++ contrib/scripts/safe_asterisk	(.../team/irroot/distrotech-customers-trunk)	(revision 334442)
 @@ -6,14 +6,14 @@
  ASTVARLOGDIR=__ASTERISK_LOG_DIR__
  
@@ -1024,7 +1106,7 @@
 Added: automerge
    + *
 Added: svnmerge-integrated
-   + /trunk:1-333438
+   + /trunk:1-334370
 Added: automerge-email
    + gregory at distrotech.co.za
 




More information about the asterisk-commits mailing list