[asterisk-commits] twilson: trunk r352348 - in /trunk: addons/ apps/ channels/ funcs/ include/as...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Jan 24 14:12:17 CST 2012


Author: twilson
Date: Tue Jan 24 14:12:09 2012
New Revision: 352348

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=352348
Log:
Opaquify channel stringfields

Continue channel opaque-ification by wrapping all of the stringfields.
Eventually, we will restrict what can actually set these variables, but
the purpose for now is to hide the implementation and keep people from
adding code that directly accesses the channel structure. Semantic
changes will follow afterward.

Review: https://reviewboard.asterisk.org/r/1661/

Modified:
    trunk/addons/app_saycountpl.c
    trunk/addons/chan_mobile.c
    trunk/addons/chan_ooh323.c
    trunk/apps/app_authenticate.c
    trunk/apps/app_chanspy.c
    trunk/apps/app_confbridge.c
    trunk/apps/app_dial.c
    trunk/apps/app_dictate.c
    trunk/apps/app_directory.c
    trunk/apps/app_disa.c
    trunk/apps/app_dumpchan.c
    trunk/apps/app_externalivr.c
    trunk/apps/app_followme.c
    trunk/apps/app_meetme.c
    trunk/apps/app_minivm.c
    trunk/apps/app_page.c
    trunk/apps/app_parkandannounce.c
    trunk/apps/app_playback.c
    trunk/apps/app_privacy.c
    trunk/apps/app_queue.c
    trunk/apps/app_readexten.c
    trunk/apps/app_record.c
    trunk/apps/app_rpt.c
    trunk/apps/app_sayunixtime.c
    trunk/apps/app_speech_utils.c
    trunk/apps/app_stack.c
    trunk/apps/app_talkdetect.c
    trunk/apps/app_userevent.c
    trunk/apps/app_voicemail.c
    trunk/channels/chan_agent.c
    trunk/channels/chan_alsa.c
    trunk/channels/chan_bridge.c
    trunk/channels/chan_console.c
    trunk/channels/chan_dahdi.c
    trunk/channels/chan_gtalk.c
    trunk/channels/chan_h323.c
    trunk/channels/chan_iax2.c
    trunk/channels/chan_jingle.c
    trunk/channels/chan_local.c
    trunk/channels/chan_mgcp.c
    trunk/channels/chan_misdn.c
    trunk/channels/chan_multicast_rtp.c
    trunk/channels/chan_nbs.c
    trunk/channels/chan_oss.c
    trunk/channels/chan_phone.c
    trunk/channels/chan_sip.c
    trunk/channels/chan_skinny.c
    trunk/channels/chan_unistim.c
    trunk/channels/chan_usbradio.c
    trunk/channels/sig_analog.c
    trunk/channels/sig_pri.c
    trunk/funcs/func_channel.c
    trunk/funcs/func_global.c
    trunk/include/asterisk/channel.h
    trunk/main/aoc.c
    trunk/main/app.c
    trunk/main/cdr.c
    trunk/main/cel.c
    trunk/main/channel.c
    trunk/main/channel_internal_api.c
    trunk/main/cli.c
    trunk/main/dial.c
    trunk/main/features.c
    trunk/main/file.c
    trunk/main/image.c
    trunk/main/manager.c
    trunk/main/pbx.c
    trunk/main/say.c
    trunk/pbx/pbx_realtime.c
    trunk/res/res_agi.c
    trunk/res/res_fax.c
    trunk/res/res_monitor.c
    trunk/res/res_musiconhold.c
    trunk/res/snmp/agent.c

Modified: trunk/addons/app_saycountpl.c
URL: http://svnview.digium.com/svn/asterisk/trunk/addons/app_saycountpl.c?view=diff&rev=352348&r1=352347&r2=352348
==============================================================================
--- trunk/addons/app_saycountpl.c (original)
+++ trunk/addons/app_saycountpl.c Tue Jan 24 14:12:09 2012
@@ -67,13 +67,13 @@
 
 	if (num > 0) {
 		if (num % 1000 == 1) {
-			ast_streamfile(chan, word1, chan->language);
+			ast_streamfile(chan, word1, ast_channel_language(chan));
 			d = ast_waitstream(chan,"");
 		} else if (((num % 10) >= 2) && ((num % 10) <= 4 ) && ((num % 100) < 10 || (num % 100) > 20)) {
-			ast_streamfile(chan, word2, chan->language);
+			ast_streamfile(chan, word2, ast_channel_language(chan));
 			d = ast_waitstream(chan, "");
 		} else {
-			ast_streamfile(chan, word5, chan->language);
+			ast_streamfile(chan, word5, ast_channel_language(chan));
 			d = ast_waitstream(chan, "");
 		}
 	}

Modified: trunk/addons/chan_mobile.c
URL: http://svnview.digium.com/svn/asterisk/trunk/addons/chan_mobile.c?view=diff&rev=352348&r1=352347&r2=352348
==============================================================================
--- trunk/addons/chan_mobile.c (original)
+++ trunk/addons/chan_mobile.c Tue Jan 24 14:12:09 2012
@@ -837,7 +837,7 @@
 	ast_dsp_digitreset(pvt->dsp);
 
 	chn = ast_channel_alloc(1, state, cid_num, pvt->id, 0, 0, pvt->context,
-			requestor ? requestor->linkedid : "", 0,
+			requestor ? ast_channel_linkedid(requestor) : "", 0,
 			"Mobile/%s-%04lx", pvt->id, ast_random() & 0xffff);
 	if (!chn) {
 		goto e_return;
@@ -854,7 +854,7 @@
 	if (state == AST_STATE_RING)
 		chn->rings = 1;
 
-	ast_string_field_set(chn, language, "en");
+	ast_channel_language_set(chn, "en");
 	pvt->owner = chn;
 
 	if (pvt->sco_socket != -1) {

Modified: trunk/addons/chan_ooh323.c
URL: http://svnview.digium.com/svn/asterisk/trunk/addons/chan_ooh323.c?view=diff&rev=352348&r1=352347&r2=352348
==============================================================================
--- trunk/addons/chan_ooh323.c (original)
+++ trunk/addons/chan_ooh323.c Tue Jan 24 14:12:09 2012
@@ -461,7 +461,7 @@
 		}
 
 		if (!ast_strlen_zero(i->accountcode))
-			ast_string_field_set(ch, accountcode, i->accountcode);
+			ast_channel_accountcode_set(ch, i->accountcode);
 		
 		if (i->amaflags)
 			ch->amaflags = i->amaflags;
@@ -701,7 +701,7 @@
 
 
 	chan = ooh323_new(p, AST_STATE_DOWN, p->username, cap,
-				 requestor ? requestor->linkedid : NULL);
+				 requestor ? ast_channel_linkedid(requestor) : NULL);
 	
 	ast_mutex_unlock(&p->lock);
 

Modified: trunk/apps/app_authenticate.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_authenticate.c?view=diff&rev=352348&r1=352347&r2=352348
==============================================================================
--- trunk/apps/app_authenticate.c (original)
+++ trunk/apps/app_authenticate.c Tue Jan 24 14:12:09 2012
@@ -253,10 +253,10 @@
 			ast_cdr_setaccount(chan, passwd);
 			ast_channel_unlock(chan);
 		}
-		if (!(res = ast_streamfile(chan, "auth-thankyou", chan->language)))
+		if (!(res = ast_streamfile(chan, "auth-thankyou", ast_channel_language(chan))))
 			res = ast_waitstream(chan, "");
 	} else {
-		if (!ast_streamfile(chan, "vm-goodbye", chan->language))
+		if (!ast_streamfile(chan, "vm-goodbye", ast_channel_language(chan)))
 			res = ast_waitstream(chan, "");
 		res = -1;
 	}

Modified: trunk/apps/app_chanspy.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_chanspy.c?view=diff&rev=352348&r1=352347&r2=352348
==============================================================================
--- trunk/apps/app_chanspy.c (original)
+++ trunk/apps/app_chanspy.c Tue Jan 24 14:12:09 2012
@@ -800,7 +800,7 @@
 		struct ast_channel *prev = NULL;
 
 		if (!ast_test_flag(flags, OPTION_QUIET) && num_spyed_upon) {
-			res = ast_streamfile(chan, "beep", chan->language);
+			res = ast_streamfile(chan, "beep", ast_channel_language(chan));
 			if (!res)
 				res = ast_waitstream(chan, "");
 			else if (res < 0) {
@@ -960,7 +960,7 @@
 				if (!ast_test_flag(flags, OPTION_NAME) || res < 0) {
 					if (!ast_test_flag(flags, OPTION_NOTECH)) {
 						if (ast_fileexists(peer_name, NULL, NULL) > 0) {
-							res = ast_streamfile(chan, peer_name, chan->language);
+							res = ast_streamfile(chan, peer_name, ast_channel_language(chan));
 							if (!res) {
 								res = ast_waitstream(chan, "");
 							}
@@ -969,11 +969,11 @@
 								break;
 							}
 						} else {
-							res = ast_say_character_str(chan, peer_name, "", chan->language);
+							res = ast_say_character_str(chan, peer_name, "", ast_channel_language(chan));
 						}
 					}
 					if ((num = atoi(ptr)))
-						ast_say_digits(chan, atoi(ptr), "", chan->language);
+						ast_say_digits(chan, atoi(ptr), "", ast_channel_language(chan));
 				}
 			}
 

Modified: trunk/apps/app_confbridge.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_confbridge.c?view=diff&rev=352348&r1=352347&r2=352348
==============================================================================
--- trunk/apps/app_confbridge.c (original)
+++ trunk/apps/app_confbridge.c Tue Jan 24 14:12:09 2012
@@ -546,7 +546,7 @@
 		"CallerIDnum: %s\r\n"
 		"CallerIDname: %s\r\n",
 		ast_channel_name(chan),
-		chan->uniqueid,
+		ast_channel_uniqueid(chan),
 		conf_name,
 		S_COR(chan->caller.id.number.valid, chan->caller.id.number.str, "<unknown>"),
 		S_COR(chan->caller.id.name.valid, chan->caller.id.name.str, "<unknown>")
@@ -562,7 +562,7 @@
 		"CallerIDnum: %s\r\n"
 		"CallerIDname: %s\r\n",
 		ast_channel_name(chan),
-		chan->uniqueid,
+		ast_channel_uniqueid(chan),
 		conf_name,
 		S_COR(chan->caller.id.number.valid, chan->caller.id.number.str, "<unknown>"),
 		S_COR(chan->caller.id.name.valid, chan->caller.id.name.str, "<unknown>")
@@ -606,7 +606,7 @@
 				"")) {
 				return -1;
 			}
-			if (ast_say_number(conference_bridge_user->chan, conference_bridge->users - 1, "", conference_bridge_user->chan->language, NULL)) {
+			if (ast_say_number(conference_bridge_user->chan, conference_bridge->users - 1, "", ast_channel_language(conference_bridge_user->chan), NULL)) {
 				return -1;
 			}
 			if (ast_stream_and_wait(conference_bridge_user->chan,
@@ -1164,7 +1164,7 @@
 	if (!ast_strlen_zero(filename)) {
 		ast_stream_and_wait(conference_bridge->playback_chan, filename, "");
 	} else {
-		ast_say_number(conference_bridge->playback_chan, say_number, "", conference_bridge->playback_chan->language, NULL);
+		ast_say_number(conference_bridge->playback_chan, say_number, "", ast_channel_language(conference_bridge->playback_chan), NULL);
 	}
 
 	ast_debug(1, "Departing underlying channel '%s' from bridge '%p'\n", ast_channel_name(underlying_channel), conference_bridge->bridge);
@@ -1230,7 +1230,7 @@
 	      "Uniqueid: %s\r\n"
 	      "Conference: %s\r\n"
 	      "TalkingStatus: %s\r\n",
-	      ast_channel_name(bridge_channel->chan), bridge_channel->chan->uniqueid, conf_name, talking ? "on" : "off");
+	      ast_channel_name(bridge_channel->chan), ast_channel_uniqueid(bridge_channel->chan), conf_name, talking ? "on" : "off");
 }
 
 static int conf_get_pin(struct ast_channel *chan, struct conference_bridge_user *conference_bridge_user)
@@ -1252,7 +1252,7 @@
 		}
 		ast_streamfile(chan,
 			conf_get_sound(CONF_SOUND_INVALID_PIN, conference_bridge_user->b_profile.sounds),
-			chan->language);
+			ast_channel_language(chan));
 		res = ast_waitstream(chan, AST_DIGIT_ANY);
 		if (res > 0) {
 			/* Account for digit already read during ivalid pin playback
@@ -1284,7 +1284,7 @@
 	}
 	snprintf(user->name_rec_location, sizeof(user->name_rec_location),
 		 "%s/confbridge-name-%s-%s", destdir,
-		 conf_name, user->chan->uniqueid);
+		 conf_name, ast_channel_uniqueid(user->chan));
 
 	res = ast_play_and_record(user->chan,
 		"vm-rec-name",
@@ -1619,7 +1619,7 @@
 	char *file = NULL;
 
 	while ((file = strsep(&file_copy, "&"))) {
-		if (ast_streamfile(bridge_channel->chan, file, bridge_channel->chan->language)) {
+		if (ast_streamfile(bridge_channel->chan, file, ast_channel_language(bridge_channel->chan))) {
 			ast_log(LOG_WARNING, "Failed to playback file %s to channel\n", file);
 			return -1;
 		}

Modified: trunk/apps/app_dial.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_dial.c?view=diff&rev=352348&r1=352347&r2=352348
==============================================================================
--- trunk/apps/app_dial.c (original)
+++ trunk/apps/app_dial.c Tue Jan 24 14:12:09 2012
@@ -806,7 +806,7 @@
 		S_COR(src->caller.id.name.valid, src->caller.id.name.str, "<unknown>"),
 		S_COR(src->connected.id.number.valid, src->connected.id.number.str, "<unknown>"),
 		S_COR(src->connected.id.name.valid, src->connected.id.name.str, "<unknown>"),
-		src->uniqueid, dst->uniqueid,
+		ast_channel_uniqueid(src), ast_channel_uniqueid(dst),
 		dialstring ? dialstring : "");
 }
 
@@ -817,7 +817,7 @@
 		"Channel: %s\r\n"
 		"UniqueID: %s\r\n"
 		"DialStatus: %s\r\n",
-		ast_channel_name(src), src->uniqueid, dialstatus);
+		ast_channel_name(src), ast_channel_uniqueid(src), dialstatus);
 }
 
 /*!
@@ -841,7 +841,7 @@
 	int cause;
 	struct ast_party_caller caller;
 
-	ast_copy_string(tmpchan, c->call_forward, sizeof(tmpchan));
+	ast_copy_string(tmpchan, ast_channel_call_forward(c), sizeof(tmpchan));
 	if ((stuff = strchr(tmpchan, '/'))) {
 		*stuff++ = '\0';
 		tech = tmpchan;
@@ -852,13 +852,13 @@
 		if (ast_strlen_zero(forward_context)) {
 			forward_context = NULL;
 		}
-		snprintf(tmpchan, sizeof(tmpchan), "%s@%s", c->call_forward, forward_context ? forward_context : c->context);
+		snprintf(tmpchan, sizeof(tmpchan), "%s@%s", ast_channel_call_forward(c), forward_context ? forward_context : c->context);
 		ast_channel_unlock(c);
 		stuff = tmpchan;
 		tech = "Local";
 	}
 
-	ast_cel_report_event(in, AST_CEL_FORWARD, NULL, c->call_forward, NULL);
+	ast_cel_report_event(in, AST_CEL_FORWARD, NULL, ast_channel_call_forward(c), NULL);
 
 	/* Before processing channel, go ahead and check for forwarding */
 	ast_verb(3, "Now forwarding %s to '%s/%s' (thanks to %s)\n", ast_channel_name(in), tech, stuff, ast_channel_name(c));
@@ -943,7 +943,7 @@
 			ast_connected_line_copy_from_caller(&c->connected, &in->caller);
 		}
 
-		ast_string_field_set(c, accountcode, in->accountcode);
+		ast_channel_accountcode_set(c, ast_channel_accountcode(in));
 
 		c->appl = "AppDial";
 		c->data = "(Outgoing Line)";
@@ -1133,7 +1133,7 @@
 						OPT_CALLEE_PARK | OPT_CALLER_PARK |
 						OPT_CALLEE_MIXMONITOR | OPT_CALLER_MIXMONITOR |
 						DIAL_NOFORWARDHTML);
-					ast_string_field_set(c, dialcontext, "");
+					ast_channel_dialcontext_set(c, "");
 					ast_copy_string(c->exten, "", sizeof(c->exten));
 				}
 				continue;
@@ -1141,7 +1141,7 @@
 			if (c != winner)
 				continue;
 			/* here, o->chan == c == winner */
-			if (!ast_strlen_zero(c->call_forward)) {
+			if (!ast_strlen_zero(ast_channel_call_forward(c))) {
 				pa->sentringing = 0;
 				if (!ignore_cc && (f = ast_read(c))) {
 					if (f->frametype == AST_FRAME_CONTROL && f->subclass.integer == AST_CONTROL_CC) {
@@ -1207,7 +1207,7 @@
 							OPT_CALLEE_PARK | OPT_CALLER_PARK |
 							OPT_CALLEE_MIXMONITOR | OPT_CALLER_MIXMONITOR |
 							DIAL_NOFORWARDHTML);
-						ast_string_field_set(c, dialcontext, "");
+						ast_channel_dialcontext_set(c, "");
 						ast_copy_string(c->exten, "", sizeof(c->exten));
 						if (CAN_EARLY_BRIDGE(peerflags, in, peer))
 							/* Setup early bridge if appropriate */
@@ -1581,11 +1581,11 @@
 	   time and make the caller believe the peer hasn't picked up yet */
 
 	if (ast_test_flag64(opts, OPT_MUSICBACK) && !ast_strlen_zero(opt_args[OPT_ARG_MUSICBACK])) {
-		char *original_moh = ast_strdupa(chan->musicclass);
+		char *original_moh = ast_strdupa(ast_channel_musicclass(chan));
 		ast_indicate(chan, -1);
-		ast_string_field_set(chan, musicclass, opt_args[OPT_ARG_MUSICBACK]);
+		ast_channel_musicclass_set(chan, opt_args[OPT_ARG_MUSICBACK]);
 		ast_moh_start(chan, opt_args[OPT_ARG_MUSICBACK], NULL);
-		ast_string_field_set(chan, musicclass, original_moh);
+		ast_channel_musicclass_set(chan, original_moh);
 	} else if (ast_test_flag64(opts, OPT_RINGBACK)) {
 		ast_indicate(chan, AST_CONTROL_RINGING);
 		pa->sentringing++;
@@ -1795,7 +1795,7 @@
 					ast_verb(3, "Successfully deleted %s intro file\n", pa->privintro);
 				return -1;
 			}
-			if (!ast_streamfile(chan, "vm-dialout", chan->language) )
+			if (!ast_streamfile(chan, "vm-dialout", ast_channel_language(chan)) )
 				ast_waitstream(chan, "");
 		}
 	}
@@ -2306,11 +2306,11 @@
 
 		tc->dialed.transit_network_select = chan->dialed.transit_network_select;
 
-		if (!ast_strlen_zero(chan->accountcode)) {
-			ast_string_field_set(tc, peeraccount, chan->accountcode);
-		}
-		if (ast_strlen_zero(tc->musicclass))
-			ast_string_field_set(tc, musicclass, chan->musicclass);
+		if (!ast_strlen_zero(ast_channel_accountcode(chan))) {
+			ast_channel_peeraccount_set(tc, ast_channel_accountcode(chan));
+		}
+		if (ast_strlen_zero(ast_channel_musicclass(tc)))
+			ast_channel_musicclass_set(tc, ast_channel_musicclass(chan));
 
 		/* Pass ADSI CPE and transfer capability */
 		tc->adsicpe = chan->adsicpe;
@@ -2329,7 +2329,7 @@
 
 
 		/* Inherit context and extension */
-		ast_string_field_set(tc, dialcontext, ast_strlen_zero(chan->macrocontext) ? chan->context : chan->macrocontext);
+		ast_channel_dialcontext_set(tc, ast_strlen_zero(chan->macrocontext) ? chan->context : chan->macrocontext);
 		if (!ast_strlen_zero(chan->macroexten))
 			ast_copy_string(tc->exten, chan->macroexten, sizeof(tc->exten));
 		else
@@ -2399,10 +2399,10 @@
 		if (ast_test_flag64(outgoing, OPT_MUSICBACK)) {
 			moh = 1;
 			if (!ast_strlen_zero(opt_args[OPT_ARG_MUSICBACK])) {
-				char *original_moh = ast_strdupa(chan->musicclass);
-				ast_string_field_set(chan, musicclass, opt_args[OPT_ARG_MUSICBACK]);
+				char *original_moh = ast_strdupa(ast_channel_musicclass(chan));
+				ast_channel_musicclass_set(chan, opt_args[OPT_ARG_MUSICBACK]);
 				ast_moh_start(chan, opt_args[OPT_ARG_MUSICBACK], NULL);
-				ast_string_field_set(chan, musicclass, original_moh);
+				ast_channel_musicclass_set(chan, original_moh);
 			} else {
 				ast_moh_start(chan, NULL, NULL);
 			}
@@ -2496,7 +2496,7 @@
 			/* we need to stream the announcment while monitoring the caller for a hangup */
 
 			/* stream the file */
-			res = ast_streamfile(peer, opt_args[OPT_ARG_ANNOUNCE], peer->language);
+			res = ast_streamfile(peer, opt_args[OPT_ARG_ANNOUNCE], ast_channel_language(peer));
 			if (res) {
 				res = 0;
 				ast_log(LOG_ERROR, "error streaming file '%s' to callee\n", opt_args[OPT_ARG_ANNOUNCE]);
@@ -2988,8 +2988,8 @@
 		if (res == 0) {
 			if (ast_test_flag64(&peerflags, OPT_DTMF_EXIT)) {
 				if (!ast_strlen_zero(args.announce)) {
-					if (ast_fileexists(args.announce, NULL, chan->language) > 0) {
-						if (!(res = ast_streamfile(chan, args.announce, chan->language)))
+					if (ast_fileexists(args.announce, NULL, ast_channel_language(chan)) > 0) {
+						if (!(res = ast_streamfile(chan, args.announce, ast_channel_language(chan))))
 							ast_waitstream(chan, AST_DIGIT_ANY);
 					} else
 						ast_log(LOG_WARNING, "Announce file \"%s\" specified in Retrydial does not exist\n", args.announce);
@@ -3001,8 +3001,8 @@
 				}
 			} else {
 				if (!ast_strlen_zero(args.announce)) {
-					if (ast_fileexists(args.announce, NULL, chan->language) > 0) {
-						if (!(res = ast_streamfile(chan, args.announce, chan->language)))
+					if (ast_fileexists(args.announce, NULL, ast_channel_language(chan)) > 0) {
+						if (!(res = ast_streamfile(chan, args.announce, ast_channel_language(chan))))
 							res = ast_waitstream(chan, "");
 					} else
 						ast_log(LOG_WARNING, "Announce file \"%s\" specified in Retrydial does not exist\n", args.announce);

Modified: trunk/apps/app_dictate.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_dictate.c?view=diff&rev=352348&r1=352347&r2=352348
==============================================================================
--- trunk/apps/app_dictate.c (original)
+++ trunk/apps/app_dictate.c Tue Jan 24 14:12:09 2012
@@ -79,7 +79,7 @@
 static int play_and_wait(struct ast_channel *chan, char *file, char *digits)
 {
 	int res = -1;
-	if (!ast_streamfile(chan, file, chan->language)) {
+	if (!ast_streamfile(chan, file, ast_channel_language(chan))) {
 		res = ast_waitstream(chan, digits);
 	}
 	return res;
@@ -188,7 +188,7 @@
 						if (speed > 4) {
 							speed = 1;
 						}
-						res = ast_say_number(chan, speed, AST_DIGIT_ANY, chan->language, NULL);
+						res = ast_say_number(chan, speed, AST_DIGIT_ANY, ast_channel_language(chan), NULL);
 						break;
 					case '7':
 						samples -= ffactor;
@@ -275,7 +275,7 @@
 						if (lastop != DFLAG_PLAY) {
 							lastop = DFLAG_PLAY;
 							ast_closestream(fs);
-							if (!(fs = ast_openstream(chan, path, chan->language)))
+							if (!(fs = ast_openstream(chan, path, ast_channel_language(chan))))
 								break;
 							ast_seekstream(fs, samples, SEEK_SET);
 							chan->stream = NULL;

Modified: trunk/apps/app_directory.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_directory.c?view=diff&rev=352348&r1=352347&r2=352348
==============================================================================
--- trunk/apps/app_directory.c (original)
+++ trunk/apps/app_directory.c Tue Jan 24 14:12:09 2012
@@ -273,13 +273,13 @@
 		/* If Option 'e' was specified, also read the extension number with the name */
 		if (ast_test_flag(flags, OPT_SAYEXTENSION)) {
 			ast_stream_and_wait(chan, "vm-extension", AST_DIGIT_ANY);
-			res = ast_say_character_str(chan, ext, AST_DIGIT_ANY, chan->language);
+			res = ast_say_character_str(chan, ext, AST_DIGIT_ANY, ast_channel_language(chan));
 		}
 	} else {
-		res = ast_say_character_str(chan, S_OR(name, ext), AST_DIGIT_ANY, chan->language);
+		res = ast_say_character_str(chan, S_OR(name, ext), AST_DIGIT_ANY, ast_channel_language(chan));
 		if (!ast_strlen_zero(name) && ast_test_flag(flags, OPT_SAYEXTENSION)) {
 			ast_stream_and_wait(chan, "vm-extension", AST_DIGIT_ANY);
-			res = ast_say_character_str(chan, ext, AST_DIGIT_ANY, chan->language);
+			res = ast_say_character_str(chan, ext, AST_DIGIT_ANY, ast_channel_language(chan));
 		}
 	}
 
@@ -383,15 +383,15 @@
 
 			snprintf(buf, sizeof(buf), "digits/%d", i + 1);
 			/* Press <num> for <name>, [ extension <ext> ] */
-			res = ast_streamfile(chan, "dir-multi1", chan->language);
+			res = ast_streamfile(chan, "dir-multi1", ast_channel_language(chan));
 			if (!res)
 				res = ast_waitstream(chan, AST_DIGIT_ANY);
 			if (!res)
-				res = ast_streamfile(chan, buf, chan->language);
+				res = ast_streamfile(chan, buf, ast_channel_language(chan));
 			if (!res)
 				res = ast_waitstream(chan, AST_DIGIT_ANY);
 			if (!res)
-				res = ast_streamfile(chan, "dir-multi2", chan->language);
+				res = ast_streamfile(chan, "dir-multi2", ast_channel_language(chan));
 			if (!res)
 				res = ast_waitstream(chan, AST_DIGIT_ANY);
 			if (!res)
@@ -404,7 +404,7 @@
 
 		/* Press "9" for more names. */
 		if (!res && count > limit) {
-			res = ast_streamfile(chan, "dir-multi9", chan->language);
+			res = ast_streamfile(chan, "dir-multi9", ast_channel_language(chan));
 			if (!res)
 				res = ast_waitstream(chan, AST_DIGIT_ANY);
 		}
@@ -710,7 +710,7 @@
 	}
 
 	if (count < 1) {
-		res = ast_streamfile(chan, "dir-nomatch", chan->language);
+		res = ast_streamfile(chan, "dir-nomatch", ast_channel_language(chan));
 		goto exit;
 	}
 
@@ -742,7 +742,7 @@
 	}
 
 	if (!res) {
-		res = ast_streamfile(chan, "dir-nomore", chan->language);
+		res = ast_streamfile(chan, "dir-nomore", ast_channel_language(chan));
 	}
 
 exit:

Modified: trunk/apps/app_disa.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_disa.c?view=diff&rev=352348&r1=352347&r2=352348
==============================================================================
--- trunk/apps/app_disa.c (original)
+++ trunk/apps/app_disa.c Tue Jan 24 14:12:09 2012
@@ -377,7 +377,7 @@
 			}
 
 			if (!ast_strlen_zero(acctcode))
-				ast_string_field_set(chan, accountcode, acctcode);
+				ast_channel_accountcode_set(chan, acctcode);
 
 			if (special_noanswer) cdr_flags.flags = 0;
 			ast_cdr_reset(chan->cdr, &cdr_flags);

Modified: trunk/apps/app_dumpchan.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_dumpchan.c?view=diff&rev=352348&r1=352347&r2=352348
==============================================================================
--- trunk/apps/app_dumpchan.c (original)
+++ trunk/apps/app_dumpchan.c Tue Jan 24 14:12:09 2012
@@ -129,16 +129,16 @@
 		"Blocking_in=        %s\n",
 		ast_channel_name(c),
 		c->tech->type,
-		c->uniqueid,
-		c->linkedid,
+		ast_channel_uniqueid(c),
+		ast_channel_linkedid(c),
 		S_COR(c->caller.id.number.valid, c->caller.id.number.str, "(N/A)"),
 		S_COR(c->caller.id.name.valid, c->caller.id.name.str, "(N/A)"),
 		S_COR(c->connected.id.number.valid, c->connected.id.number.str, "(N/A)"),
 		S_COR(c->connected.id.name.valid, c->connected.id.name.str, "(N/A)"),
 		S_OR(c->dialed.number.str, "(N/A)"),
 		S_COR(c->redirecting.from.number.valid, c->redirecting.from.number.str, "(N/A)"),
-		c->parkinglot,
-		c->language,	
+		ast_channel_parkinglot(c),
+		ast_channel_language(c),	
 		ast_state2str(c->_state),
 		c->_state,
 		c->rings, 

Modified: trunk/apps/app_externalivr.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_externalivr.c?view=diff&rev=352348&r1=352347&r2=352348
==============================================================================
--- trunk/apps/app_externalivr.c (original)
+++ trunk/apps/app_externalivr.c Tue Jan 24 14:12:09 2012
@@ -219,7 +219,7 @@
 			u->playing_silence = 1;
 		}
 
-		if (!(state->stream = ast_openstream_full(u->chan, file_to_stream, u->chan->language, 1))) {
+		if (!(state->stream = ast_openstream_full(u->chan, file_to_stream, ast_channel_language(u->chan), 1))) {
 			ast_chan_log(LOG_WARNING, u->chan, "File '%s' could not be opened: %s\n", file_to_stream, strerror(errno));
 			AST_LIST_LOCK(&u->playlist);
 			AST_LIST_REMOVE_HEAD(&u->playlist, list);
@@ -761,7 +761,7 @@
 					send_eivr_event(eivr_events, 'Z', NULL, chan);
 					continue;
 				}
- 				if (!ast_fileexists(&input[2], NULL, u->chan->language)) {
+ 				if (!ast_fileexists(&input[2], NULL, ast_channel_language(u->chan))) {
  					ast_chan_log(LOG_WARNING, chan, "Unknown file requested '%s'\n", &input[2]);
  					send_eivr_event(eivr_events, 'Z', &input[2], chan);
  				} else {
@@ -791,7 +791,7 @@
 					send_eivr_event(eivr_events, 'Z', NULL, chan);
 					continue;
 				}
- 				if (!ast_fileexists(&input[2], NULL, u->chan->language)) {
+ 				if (!ast_fileexists(&input[2], NULL, ast_channel_language(u->chan))) {
  					ast_chan_log(LOG_WARNING, chan, "Unknown file requested '%s'\n", &input[2]);
  					send_eivr_event(eivr_events, 'Z', &input[2], chan);
  				} else {

Modified: trunk/apps/app_followme.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_followme.c?view=diff&rev=352348&r1=352347&r2=352348
==============================================================================
--- trunk/apps/app_followme.c (original)
+++ trunk/apps/app_followme.c Tue Jan 24 14:12:09 2012
@@ -623,7 +623,7 @@
 					if (!ast_strlen_zero(namerecloc)) {
 						tmpuser->state = 1;
 						tmpuser->digts = 0;
-						if (!ast_streamfile(tmpuser->ochan, callfromname, tmpuser->ochan->language)) {
+						if (!ast_streamfile(tmpuser->ochan, callfromname, ast_channel_language(tmpuser->ochan))) {
 							ast_sched_runq(tmpuser->ochan->sched);
 						} else {
 							ast_log(LOG_WARNING, "Unable to playback %s.\n", callfromname);
@@ -632,7 +632,7 @@
 					} else {
 						tmpuser->state = 2;
 						tmpuser->digts = 0;
-						if (!ast_streamfile(tmpuser->ochan, tpargs->norecordingprompt, tmpuser->ochan->language))
+						if (!ast_streamfile(tmpuser->ochan, tpargs->norecordingprompt, ast_channel_language(tmpuser->ochan)))
 							ast_sched_runq(tmpuser->ochan->sched);
 						else {
 							ast_log(LOG_WARNING, "Unable to playback %s.\n", tpargs->norecordingprompt);
@@ -649,13 +649,13 @@
 						ast_stopstream(tmpuser->ochan);
 						if (tmpuser->state == 1) {
 							ast_verb(3, "Playback of the call-from file appears to be done.\n");
-							if (!ast_streamfile(tmpuser->ochan, namerecloc, tmpuser->ochan->language)) {
+							if (!ast_streamfile(tmpuser->ochan, namerecloc, ast_channel_language(tmpuser->ochan))) {
 								tmpuser->state = 2;
 							} else {
 								ast_log(LOG_NOTICE, "Unable to playback %s. Maybe the caller didn't record their name?\n", namerecloc);
 								memset(tmpuser->yn, 0, sizeof(tmpuser->yn));
 								tmpuser->ynidx = 0;
-								if (!ast_streamfile(tmpuser->ochan, pressbuttonname, tmpuser->ochan->language))
+								if (!ast_streamfile(tmpuser->ochan, pressbuttonname, ast_channel_language(tmpuser->ochan)))
 									tmpuser->state = 3;
 								else {
 									ast_log(LOG_WARNING, "Unable to playback %s.\n", pressbuttonname);
@@ -666,7 +666,7 @@
 							ast_verb(3, "Playback of name file appears to be done.\n");
 							memset(tmpuser->yn, 0, sizeof(tmpuser->yn));
 							tmpuser->ynidx = 0;
-							if (!ast_streamfile(tmpuser->ochan, pressbuttonname, tmpuser->ochan->language)) {
+							if (!ast_streamfile(tmpuser->ochan, pressbuttonname, ast_channel_language(tmpuser->ochan))) {
 								tmpuser->state = 3;
 							} else {
 								return NULL;
@@ -737,7 +737,7 @@
 						ast_verb(3, "Starting playback of %s\n", callfromname);
 						if (dg > 0) {
 							if (!ast_strlen_zero(namerecloc)) {
-								if (!ast_streamfile(winner, callfromname, winner->language)) {
+								if (!ast_streamfile(winner, callfromname, ast_channel_language(winner))) {
 									ast_sched_runq(winner->sched);
 									tmpuser->state = 1;
 								} else {
@@ -747,7 +747,7 @@
 								}
 							} else {
 								tmpuser->state = 2;
-								if (!ast_streamfile(tmpuser->ochan, tpargs->norecordingprompt, tmpuser->ochan->language))
+								if (!ast_streamfile(tmpuser->ochan, tpargs->norecordingprompt, ast_channel_language(tmpuser->ochan)))
 									ast_sched_runq(tmpuser->ochan->sched);
 								else {
 									ast_log(LOG_WARNING, "Unable to playback %s.\n", tpargs->norecordingprompt);
@@ -959,9 +959,9 @@
 				ast_connected_line_copy_from_caller(&outbound->connected, &caller->caller);
 				ast_channel_inherit_variables(caller, outbound);
 				ast_channel_datastore_inherit(caller, outbound);
-				ast_string_field_set(outbound, language, caller->language);
-				ast_string_field_set(outbound, accountcode, caller->accountcode);
-				ast_string_field_set(outbound, musicclass, caller->musicclass);
+				ast_channel_language_set(outbound, ast_channel_language(caller));
+				ast_channel_accountcode_set(outbound, ast_channel_accountcode(caller));
+				ast_channel_musicclass_set(outbound, ast_channel_musicclass(caller));
 				ast_channel_unlock(outbound);
 				ast_channel_unlock(caller);
 				ast_verb(3, "calling Local/%s\n", dialarg);
@@ -1243,18 +1243,18 @@
 			int duration = 5;
 
 			snprintf(namerecloc, sizeof(namerecloc), "%s/followme.%s",
-				ast_config_AST_SPOOL_DIR, chan->uniqueid);
+				ast_config_AST_SPOOL_DIR, ast_channel_uniqueid(chan));
 			if (ast_play_and_record(chan, "vm-rec-name", namerecloc, 5, "sln", &duration,
 				NULL, ast_dsp_get_threshold_from_settings(THRESHOLD_SILENCE), 0, NULL) < 0) {
 				goto outrun;
 			}
-			if (!ast_fileexists(namerecloc, NULL, chan->language)) {
+			if (!ast_fileexists(namerecloc, NULL, ast_channel_language(chan))) {
 				namerecloc[0] = '\0';
 			}
 		}
 
 		if (!ast_test_flag(&targs.followmeflags, FOLLOWMEFLAG_DISABLEHOLDPROMPT)) {
-			if (ast_streamfile(chan, targs.plsholdprompt, chan->language))
+			if (ast_streamfile(chan, targs.plsholdprompt, ast_channel_language(chan)))
 				goto outrun;
 			if (ast_waitstream(chan, "") < 0)
 				goto outrun;

Modified: trunk/apps/app_meetme.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_meetme.c?view=diff&rev=352348&r1=352347&r2=352348
==============================================================================
--- trunk/apps/app_meetme.c (original)
+++ trunk/apps/app_meetme.c Tue Jan 24 14:12:09 2012
@@ -1249,7 +1249,7 @@
 	ast_copy_string(cnf->confno, confno, sizeof(cnf->confno));
 	ast_copy_string(cnf->pin, pin, sizeof(cnf->pin));
 	ast_copy_string(cnf->pinadmin, pinadmin, sizeof(cnf->pinadmin));
-	ast_copy_string(cnf->uniqueid, chan->uniqueid, sizeof(cnf->uniqueid));
+	ast_copy_string(cnf->uniqueid, ast_channel_uniqueid(chan), sizeof(cnf->uniqueid));
 
 	/* Setup a new dahdi conference */
 	dahdic.confno = -1;
@@ -2086,14 +2086,14 @@
 	char *original_moh;
 
 	ast_channel_lock(chan);
-	original_moh = ast_strdupa(chan->musicclass);
-	ast_string_field_set(chan, musicclass, musicclass);
+	original_moh = ast_strdupa(ast_channel_musicclass(chan));
+	ast_channel_musicclass_set(chan, musicclass);
 	ast_channel_unlock(chan);
 
 	ast_moh_start(chan, original_moh, NULL);
 
 	ast_channel_lock(chan);
-	ast_string_field_set(chan, musicclass, original_moh);
+	ast_channel_musicclass_set(chan, original_moh);
 	ast_channel_unlock(chan);
 }
 
@@ -2185,7 +2185,7 @@
 	      "Meetme: %s\r\n"
 	      "Usernum: %d\r\n"
 	      "Status: %s\r\n",
-	      ast_channel_name(chan), chan->uniqueid, conf->confno, user->user_no, talking ? "on" : "off");
+	      ast_channel_name(chan), ast_channel_uniqueid(chan), conf->confno, user->user_no, talking ? "on" : "off");
 }
 
 static void set_user_talking(struct ast_channel *chan, struct ast_conference *conf, struct ast_conf_user *user, int talking, int monitor)
@@ -2420,7 +2420,7 @@
 			}
 			ast_channel_unlock(chan);
 			if (!conf->recordingfilename) {
-				snprintf(recordingtmp, sizeof(recordingtmp), "meetme-conf-rec-%s-%s", conf->confno, chan->uniqueid);
+				snprintf(recordingtmp, sizeof(recordingtmp), "meetme-conf-rec-%s-%s", conf->confno, ast_channel_uniqueid(chan));
 				conf->recordingfilename = ast_strdup(recordingtmp);
 			}
 			if (!conf->recordingformat) {
@@ -2482,7 +2482,7 @@
 
 	if (conf->locked && (!ast_test_flag64(confflags, CONFFLAG_ADMIN))) {
 		/* Sorry, but this conference is locked! */	
-		if (!ast_streamfile(chan, "conf-locked", chan->language))
+		if (!ast_streamfile(chan, "conf-locked", ast_channel_language(chan)))
 			ast_waitstream(chan, "");
 		goto outrun;
 	}
@@ -2492,7 +2492,7 @@
 	if (rt_schedule && conf->maxusers) {
 		if (conf->users >= conf->maxusers) {
 			/* Sorry, but this confernce has reached the participant limit! */	
-			if (!ast_streamfile(chan, "conf-full", chan->language))
+			if (!ast_streamfile(chan, "conf-full", ast_channel_language(chan)))
 				ast_waitstream(chan, "");
 			ast_mutex_unlock(&conf->playlock);
 			goto outrun;
@@ -2603,17 +2603,17 @@
 	/* Play an arbitrary intro message */
 	if (ast_test_flag64(confflags, CONFFLAG_INTROMSG) &&
 			!ast_strlen_zero(optargs[OPT_ARG_INTROMSG])) {
-		if (!ast_streamfile(chan, optargs[OPT_ARG_INTROMSG], chan->language)) {
+		if (!ast_streamfile(chan, optargs[OPT_ARG_INTROMSG], ast_channel_language(chan))) {
 			ast_waitstream(chan, "");
 		}
 	}
 
 	if (!ast_test_flag64(confflags, (CONFFLAG_QUIET | CONFFLAG_NOONLYPERSON))) {
 		if (conf->users == 1 && !ast_test_flag64(confflags, CONFFLAG_WAITMARKED))
-			if (!ast_streamfile(chan, "conf-onlyperson", chan->language))
+			if (!ast_streamfile(chan, "conf-onlyperson", ast_channel_language(chan)))
 				ast_waitstream(chan, "");
 		if (ast_test_flag64(confflags, CONFFLAG_WAITMARKED) && conf->markedusers == 0)
-			if (!ast_streamfile(chan, "conf-waitforleader", chan->language))
+			if (!ast_streamfile(chan, "conf-waitforleader", ast_channel_language(chan)))
 				ast_waitstream(chan, "");
 	}
 
@@ -2622,7 +2622,7 @@
 		int keepplaying = 1;
 
 		if (conf->users == 2) { 
-			if (!ast_streamfile(chan, "conf-onlyone", chan->language)) {
+			if (!ast_streamfile(chan, "conf-onlyone", ast_channel_language(chan))) {
 				res = ast_waitstream(chan, AST_DIGIT_ANY);
 				ast_stopstream(chan);
 				if (res > 0)
@@ -2631,7 +2631,7 @@
 					goto outrun;
 			}
 		} else { 
-			if (!ast_streamfile(chan, "conf-thereare", chan->language)) {
+			if (!ast_streamfile(chan, "conf-thereare", ast_channel_language(chan))) {
 				res = ast_waitstream(chan, AST_DIGIT_ANY);
 				ast_stopstream(chan);
 				if (res > 0)
@@ -2640,13 +2640,13 @@
 					goto outrun;
 			}
 			if (keepplaying) {
-				res = ast_say_number(chan, conf->users - 1, AST_DIGIT_ANY, chan->language, (char *) NULL);
+				res = ast_say_number(chan, conf->users - 1, AST_DIGIT_ANY, ast_channel_language(chan), (char *) NULL);
 				if (res > 0)
 					keepplaying = 0;
 				else if (res == -1)
 					goto outrun;
 			}
-			if (keepplaying && !ast_streamfile(chan, "conf-otherinparty", chan->language)) {
+			if (keepplaying && !ast_streamfile(chan, "conf-otherinparty", ast_channel_language(chan))) {
 				res = ast_waitstream(chan, AST_DIGIT_ANY);
 				ast_stopstream(chan);
 				if (res > 0)
@@ -2742,7 +2742,7 @@
 		if (!(item = ao2_alloc(sizeof(*item), NULL)))
 			goto outrun;
 		ast_copy_string(item->namerecloc, user->namerecloc, sizeof(item->namerecloc));
-		ast_copy_string(item->language, chan->language, sizeof(item->language));
+		ast_copy_string(item->language, ast_channel_language(chan), sizeof(item->language));
 		item->confchan = conf->chan;
 		item->confusers = conf->users;
 		if (ast_test_flag64(confflags, CONFFLAG_INTROUSER_VMREC)){
@@ -2787,7 +2787,7 @@
 			"CallerIDname: %s\r\n"
 			"ConnectedLineNum: %s\r\n"
 			"ConnectedLineName: %s\r\n",
-			ast_channel_name(chan), chan->uniqueid, conf->confno,
+			ast_channel_name(chan), ast_channel_uniqueid(chan), conf->confno,
 			user->user_no,
 			S_COR(user->chan->caller.id.number.valid, user->chan->caller.id.number.str, "<unknown>"),
 			S_COR(user->chan->caller.id.name.valid, user->chan->caller.id.name.str, "<unknown>"),
@@ -2900,10 +2900,10 @@
 
 						if (!announcement_played && conf->endalert) {
 							if (now.tv_sec + conf->endalert >= conf->endtime) {
-								if (!ast_streamfile(chan, "conf-will-end-in", chan->language))
+								if (!ast_streamfile(chan, "conf-will-end-in", ast_channel_language(chan)))
 									ast_waitstream(chan, "");
-								ast_say_digits(chan, (conf->endtime - now.tv_sec) / 60, "", chan->language);
-								if (!ast_streamfile(chan, "minutes", chan->language))
+								ast_say_digits(chan, (conf->endtime - now.tv_sec) / 60, "", ast_channel_language(chan));
+								if (!ast_streamfile(chan, "minutes", ast_channel_language(chan)))
 									ast_waitstream(chan, "");
 								if (musiconhold) {
 									conf_start_moh(chan, optargs[OPT_ARG_MOH_CLASS]);
@@ -2947,7 +2947,7 @@
  	
  				if (time_left_ms <= 0) {
  					if (user->end_sound) {						
- 						res = ast_streamfile(chan, user->end_sound, chan->language);
+ 						res = ast_streamfile(chan, user->end_sound, ast_channel_language(chan));
  						res = ast_waitstream(chan, "");
  					}
 					if (ast_test_flag64(confflags, CONFFLAG_KICK_CONTINUE)) {
@@ -2973,20 +2973,20 @@
  						if (user->warning_sound && user->play_warning) {
  							if (!strcmp(user->warning_sound, "timeleft")) {
  								
- 								res = ast_streamfile(chan, "vm-youhave", chan->language);
+ 								res = ast_streamfile(chan, "vm-youhave", ast_channel_language(chan));
  								res = ast_waitstream(chan, "");
  								if (minutes) {
- 									res = ast_say_number(chan, minutes, AST_DIGIT_ANY, chan->language, (char *) NULL);
- 									res = ast_streamfile(chan, "queue-minutes", chan->language);
+ 									res = ast_say_number(chan, minutes, AST_DIGIT_ANY, ast_channel_language(chan), (char *) NULL);
+ 									res = ast_streamfile(chan, "queue-minutes", ast_channel_language(chan));
  									res = ast_waitstream(chan, "");
  								}
  								if (seconds) {
- 									res = ast_say_number(chan, seconds, AST_DIGIT_ANY, chan->language, (char *) NULL);
- 									res = ast_streamfile(chan, "queue-seconds", chan->language);
+ 									res = ast_say_number(chan, seconds, AST_DIGIT_ANY, ast_channel_language(chan), (char *) NULL);
+ 									res = ast_streamfile(chan, "queue-seconds", ast_channel_language(chan));
  									res = ast_waitstream(chan, "");
  								}
  							} else {
- 								res = ast_streamfile(chan, user->warning_sound, chan->language);
+ 								res = ast_streamfile(chan, user->warning_sound, ast_channel_language(chan));
  								res = ast_waitstream(chan, "");
  							}
 							if (musiconhold) {
@@ -3027,19 +3027,19 @@
 			    ast_test_flag64(confflags, CONFFLAG_WAITMARKED) &&
 			    lastmarked == 0) {
 				if (currentmarked == 1 && conf->users > 1) {
-					ast_say_number(chan, conf->users - 1, AST_DIGIT_ANY, chan->language, (char *) NULL);
+					ast_say_number(chan, conf->users - 1, AST_DIGIT_ANY, ast_channel_language(chan), (char *) NULL);
 					if (conf->users - 1 == 1) {
-						if (!ast_streamfile(chan, "conf-userwilljoin", chan->language)) {
+						if (!ast_streamfile(chan, "conf-userwilljoin", ast_channel_language(chan))) {
 							ast_waitstream(chan, "");
 						}
 					} else {
-						if (!ast_streamfile(chan, "conf-userswilljoin", chan->language)) {

[... 5164 lines stripped ...]



More information about the asterisk-commits mailing list