[asterisk-commits] mjordan: branch mjordan/terrys_parting_shot r379381 - in /team/mjordan/terrys...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Jan 17 10:51:54 CST 2013


Author: mjordan
Date: Thu Jan 17 10:51:48 2013
New Revision: 379381

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=379381
Log:
Create a branch for Terry's crazy config doc in XML work

Added:
    team/mjordan/terrys_parting_shot/
      - copied from r379344, trunk/
Modified:
    team/mjordan/terrys_parting_shot/Makefile
    team/mjordan/terrys_parting_shot/apps/app_skel.c
    team/mjordan/terrys_parting_shot/apps/confbridge/conf_config_parser.c
    team/mjordan/terrys_parting_shot/channels/chan_motif.c
    team/mjordan/terrys_parting_shot/configs/motif.conf.sample
    team/mjordan/terrys_parting_shot/configs/xmpp.conf.sample
    team/mjordan/terrys_parting_shot/doc/appdocsxml.dtd
    team/mjordan/terrys_parting_shot/include/asterisk/_private.h
    team/mjordan/terrys_parting_shot/include/asterisk/config_options.h
    team/mjordan/terrys_parting_shot/include/asterisk/xml.h
    team/mjordan/terrys_parting_shot/include/asterisk/xmldoc.h
    team/mjordan/terrys_parting_shot/main/asterisk.c
    team/mjordan/terrys_parting_shot/main/config_options.c
    team/mjordan/terrys_parting_shot/main/named_acl.c
    team/mjordan/terrys_parting_shot/main/udptl.c
    team/mjordan/terrys_parting_shot/main/xml.c
    team/mjordan/terrys_parting_shot/main/xmldoc.c
    team/mjordan/terrys_parting_shot/res/res_xmpp.c

Modified: team/mjordan/terrys_parting_shot/Makefile
URL: http://svnview.digium.com/svn/asterisk/team/mjordan/terrys_parting_shot/Makefile?view=diff&rev=379381&r1=379344&r2=379381
==============================================================================
--- team/mjordan/terrys_parting_shot/Makefile (original)
+++ team/mjordan/terrys_parting_shot/Makefile Thu Jan 17 10:51:48 2013
@@ -463,21 +463,21 @@
 	done
 	$(MAKE) -C sounds install
 
-doc/core-en_US.xml: $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -l "language=\"en_US\"" $(dir)/*.c $(dir)/*.cc 2>/dev/null))
+doc/core-en_US.xml: $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -r -l --include *.c --include *.cc "language=\"en_US\"" $(dir) 2>/dev/null))
 	@printf "Building Documentation For: "
 	@echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > $@
 	@echo "<!DOCTYPE docs SYSTEM \"appdocsxml.dtd\">" >> $@
 	@echo "<docs xmlns:xi=\"http://www.w3.org/2001/XInclude\">" >> $@
 	@for x in $(MOD_SUBDIRS); do \
 		printf "$$x " ; \
-		for i in $$x/*.c; do \
+		for i in `find $$x -name *.c`; do \
 			$(AWK) -f build_tools/get_documentation $$i >> $@ ; \
 		done ; \
 	done
 	@echo
 	@echo "</docs>" >> $@
 
-doc/full-en_US.xml: $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -l "language=\"en_US\"" $(dir)/*.c $(dir)/*.cc 2>/dev/null))
+doc/full-en_US.xml: $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -r -l --include *.c --include *.cc "language=\"en_US\"" $(dir) 2>/dev/null))
 ifeq ($(PYTHON),:)
 	@echo "--------------------------------------------------------------------------"
 	@echo "---        Please install python to build full documentation           ---"

Modified: team/mjordan/terrys_parting_shot/apps/app_skel.c
URL: http://svnview.digium.com/svn/asterisk/team/mjordan/terrys_parting_shot/apps/app_skel.c?view=diff&rev=379381&r1=379344&r2=379381
==============================================================================
--- team/mjordan/terrys_parting_shot/apps/app_skel.c (original)
+++ team/mjordan/terrys_parting_shot/apps/app_skel.c Thu Jan 17 10:51:48 2013
@@ -86,6 +86,51 @@
 		from. It shows you the basic structure to create your own Asterisk applications.</para>
 		</description>
 	</application>
+
+	<configInfo name="app_skel" language="en_US">
+		<configFile name="app_skel.conf">
+			<configObject name="globals">
+				<synopsis>Options that apply globally to app_skel</synopsis>
+				<configOption name="games">
+					<synopsis>The number of games a single execution of SkelGuessNumber will play</synopsis>
+				</configOption>
+				<configOption name="cheat">
+					<synopsis>Should the computer cheat?</synopsis>
+					<description><para>If enabled, the computer will ignore winning guesses.</para></description>
+				</configOption>
+			</configObject>
+			<configObject name="sounds">
+				<synopsis>Prompts for SkelGuessNumber to play</synopsis>
+				<configOption name="prompt" default="please-enter-your&amp;number&amp;queue-less-than">
+					<synopsis>A prompt directing the user to enter a number less than the max number</synopsis>
+				</configOption>
+				<configOption name="wrong_guess" default="vm-pls-try-again">
+					<synopsis>The sound file to play when a wrong guess is made</synopsis>
+				</configOption>
+				<configOption name="right_guess" default="auth-thankyou">
+					<synopsis>The sound file to play when a correct guess is made</synopsis>
+				</configOption>
+				<configOption name="too_low">
+					<synopsis>The sound file to play when a guess is too low</synopsis>
+				</configOption>
+				<configOption name="too_high">
+					<synopsis>The sound file to play when a guess is too high</synopsis>
+				</configOption>
+				<configOption name="lose" default="vm-goodbye">
+					<synopsis>The sound file to play when a player loses</synopsis>
+				</configOption>
+			</configObject>
+			<configObject name="level">
+				<synopsis>Defined levels for the SkelGuessNumber game</synopsis>
+				<configOption name="max_number">
+					<synopsis>The maximum in the range of numbers to guess (1 is the implied minimum)</synopsis>
+				</configOption>
+				<configOption name="max_guesses">
+					<synopsis>The maximum number of guesses before a game is considered lost</synopsis>
+				</configOption>
+			</configObject>
+		</configFile>
+	</configInfo>
  ***/
 
 static char *app = "SkelGuessNumber";
@@ -197,6 +242,7 @@
 /*! \brief An aco_type structure to link the "general" category to the skel_global_config type */
 static struct aco_type global_option = {
 	.type = ACO_GLOBAL,
+	.name = "globals",
 	.item_offset = offsetof(struct skel_config, global),
 	.category_match = ACO_WHITELIST,
 	.category = "^general$",
@@ -207,6 +253,7 @@
 /*! \brief An aco_type structure to link the "sounds" category to the skel_global_config type */
 static struct aco_type sound_option = {
 	.type = ACO_GLOBAL,
+	.name = "sounds",
 	.item_offset = offsetof(struct skel_config, global),
 	.category_match = ACO_WHITELIST,
 	.category = "^sounds$",
@@ -217,6 +264,7 @@
 /*! \brief An aco_type structure to link the everything but the "general" and "sounds" categories to the skel_level type */
 static struct aco_type level_option = {
 	.type = ACO_ITEM,
+	.name = "level",
 	.category_match = ACO_BLACKLIST,
 	.category = "^(general|sounds)$",
 	.item_alloc = skel_level_alloc,

Modified: team/mjordan/terrys_parting_shot/apps/confbridge/conf_config_parser.c
URL: http://svnview.digium.com/svn/asterisk/team/mjordan/terrys_parting_shot/apps/confbridge/conf_config_parser.c?view=diff&rev=379381&r1=379344&r2=379381
==============================================================================
--- team/mjordan/terrys_parting_shot/apps/confbridge/conf_config_parser.c (original)
+++ team/mjordan/terrys_parting_shot/apps/confbridge/conf_config_parser.c Thu Jan 17 10:51:48 2013
@@ -40,6 +40,403 @@
 #include "asterisk/stringfields.h"
 #include "asterisk/pbx.h"
 
+
+/*** DOCUMENTATION
+	<configInfo name="app_confbridge" language="en_US">
+		<configFile name="confbridge.conf">
+			<configObject name="global">
+				<synopsis>Unused, but reserved</synopsis>
+			</configObject>
+			<configObject name="user_profile">
+				<synopsis>A named profile to apply to specific callers</synopsis>
+				<configOption name="type">
+					<synopsis>Define this configuration category as a user profile</synopsis>
+				</configOption>
+				<configOption name="admin">
+					<synopsis>Sets if the user is an admin or not</synopsis>
+				</configOption>
+				<configOption name="marked">
+					<synopsis>Sets if this is a marked user or not</synopsis>
+				</configOption>
+				<configOption name="startmuted">
+					<synopsis>Sets if all users should start out muted</synopsis>
+				</configOption>
+				<configOption name="music_on_hold_when_empty">
+					<synopsis>Play MOH when user is alone or waiting on a marked user</synopsis>
+				</configOption>
+				<configOption name="quiet">
+					<synopsis>Silence enter/leave prompts and user intros for this user</synopsis>
+				</configOption>
+				<configOption name="announce_user_count">
+					<synopsis>Sets if the number of users should be announced to the user</synopsis>
+				</configOption>
+				<configOption name="announce_user_count_all">
+					<synopsis>Announce user count to all the other users when this user joins</synopsis>
+					<description><para>Sets if the number of users should be announced to all the other users
+						in the conference when this user joins. This option can be either set to 'yes' or
+						a number. When set to a number, the announcement will only occur once the user
+						count is above the specified number.
+					</para></description>
+				</configOption>
+				<configOption name="announce_only_user">
+					<synopsis>Announce to a user when they join an empty conference</synopsis>
+				</configOption>
+				<configOption name="wait_marked">
+					<synopsis>Sets if the user must wait for a marked user to enter before joining a conference</synopsis>
+				</configOption>
+				<configOption name="end_marked">
+					<synopsis>Kick the user from the conference when the last marked user leaves</synopsis>
+				</configOption>
+				<configOption name="talk_detection_events">
+					<synopsis>Set whether or not notifications of when a user begins and ends talking should be sent out as events over AMI</synopsis>
+				</configOption>
+				<configOption name="dtmf_passthrough">
+					<synopsis>Sets whether or not DTMF should pass through the conference</synopsis>
+				</configOption>
+				<configOption name="announce_join_leave">
+					<synopsis>Prompt user for their name when joining a conference and play it to the conference when they enter</synopsis>
+				</configOption>
+				<configOption name="pin">
+					<synopsis>Sets a PIN the user must enter before joining the conference</synopsis>
+				</configOption>
+				<configOption name="music_on_hold_class">
+					<synopsis>The MOH class to use for this user</synopsis>
+				</configOption>
+				<configOption name="announcement">
+					<synopsis>Sound file to play to the user when they join a conference</synopsis>
+				</configOption>
+				<configOption name="denoise">
+					<synopsis>Apply a denoise filter to the audio before mixing</synopsis>
+					<description><para>Sets whether or not a denoise filter should be applied
+						to the audio before mixing or not.  Off by default. Requires
+						codec_speex to be built and installed.  Do not confuse this option
+						with drop_silence.  Denoise is useful if there is a lot of background
+						noise for a user as it attempts to remove the noise while preserving
+						the speech.  This option does NOT remove silence from being mixed into
+						the conference and does come at the cost of a slight performance hit.
+					</para></description>
+				</configOption>
+				<configOption name="dsp_drop_silence">
+					<synopsis>Drop what Asterisk detects as silence from audio sent to the bridge</synopsis>
+					<description><para>
+						This option drops what Asterisk detects as silence from
+						entering into the bridge.  Enabling this option will drastically
+						improve performance and help remove the buildup of background
+						noise from the conference. Highly recommended for large conferences
+						due to its performance enhancements.
+					</para></description>
+				</configOption>
+				<configOption name="dsp_silence_threshold">
+					<synopsis>The number ofmilliseconds of detected silence necessary to trigger silence detection</synopsis>
+					<description><para>
+						The time in milliseconds of sound falling within the what
+						the dsp has established as baseline silence before a user
+						is considered be silent.  This value affects several
+						operations and should not be changed unless the impact
+						on call quality is fully understood.
+
+						What this value affects internally:
+
+						1. When talk detection AMI events are enabled, this value
+						   determines when the user has stopped talking after a
+						   period of talking.  If this value is set too low
+						   AMI events indicating the user has stopped talking
+						   may get falsely sent out when the user briefly pauses
+						   during mid sentence.
+						2. The drop_silence option depends on this value to
+						   determine when the user's audio should begin to be
+						   dropped from the conference bridge after the user
+						   stops talking.  If this value is set too low the user's
+						   audio stream may sound choppy to the other participants.
+						   This is caused by the user transitioning constantly from
+						   silence to talking during mid sentence.
+
+						The best way to approach this option is to set it slightly above
+						the maximum amount of ms of silence a user may generate during
+						natural speech.
+
+						By default this value is 2500ms. Valid values are 1 through 2^31
+					</para></description>
+				</configOption>
+				<configOption name="dsp_talking_threshold">
+					<synopsis>The number of milliseconds of detected non-silence necessary to triger talk detection</synopsis>
+					<description><para>
+						The time in milliseconds of sound above what the dsp has
+						established as base line silence for a user before a user
+						is considered to be talking.  This value affects several
+						operations and should not be changed unless the impact on
+						call quality is fully understood.
+
+						What this value affects internally:
+
+						1. Audio is only mixed out of a user's incoming audio stream
+						   if talking is detected.  If this value is set too
+						   loose the user will hear themselves briefly each
+						   time they begin talking until the dsp has time to
+						   establish that they are in fact talking.
+						2. When talk detection AMI events are enabled, this value 
+						   determines when talking has begun which results in
+						   an AMI event to fire.  If this value is set too tight
+						   AMI events may be falsely triggered by variants in
+						   room noise.
+						3. The drop_silence option depends on this value to determine
+						   when the user's audio should be mixed into the bridge
+						   after periods of silence.  If this value is too loose
+						   the beginning of a user's speech will get cut off as they
+						   transition from silence to talking.
+
+						By default this value is 160 ms. Valid values are 1 through 2^31
+					</para></description>
+				</configOption>
+				<configOption name="jitterbuffer">
+					<synopsis>Place a jitter buffer on the user's audio stream before audio mixing is performed</synopsis>
+					<description><para>
+						Enabling this option places a jitterbuffer on the user's audio stream
+						before audio mixing is performed.  This is highly recommended but will
+						add a slight delay to the audio.  This option is using the JITTERBUFFER
+						dialplan function's default adaptive jitterbuffer.  For a more fine tuned
+						jitterbuffer, disable this option and use the JITTERBUFFER dialplan function
+						on the user before entering the ConfBridge application.
+					</para></description>
+				</configOption>
+				<configOption name="template">
+					<synopsis>When using the CONFBRIDGE dialplan function, use a user profile as a template for creating a new temporary profile</synopsis>
+				</configOption>
+			</configObject>
+			<configObject name="bridge_profile">
+				<configOption name="type">
+					<synopsis>Define this configuration category as a bridge profile</synopsis>
+				</configOption>
+				<configOption name="jitterbuffer">
+					<synopsis>Place a jitter buffer on the conference's audio stream</synopsis>
+				</configOption>
+				<configOption name="internal_sample_rate">
+					<synopsis>Set the internal native sample rate for mixing the conference</synopsis>
+					<description><para>
+						Sets the internal native sample rate the
+						conference is mixed at.  This is set to automatically
+						adjust the sample rate to the best quality by default.
+						Other values can be anything from 8000-192000.  If a
+						sample rate is set that Asterisk does not support, the
+						closest sample rate Asterisk does support to the one requested
+						will be used.
+					</para></description>
+				</configOption>
+				<configOption name="mixing_interval">
+					<synopsis>Sets the internal mixing interval in milliseconds for the bridge</synopsis>
+					<description><para>
+						Sets the internal mixing interval in milliseconds for the bridge.  This
+						number reflects how tight or loose the mixing will be for the conference.
+						In order to improve performance a larger mixing interval such as 40ms may
+						be chosen.  Using a larger mixing interval comes at the cost of introducing
+						larger amounts of delay into the bridge.  Valid values here are 10, 20, 40,
+						or 80.
+					</para></description>
+				</configOption>
+				<configOption name="record_conference">
+					<synopsis>Record the conference starting with the first active user's entrance and ending with the last active user's exit</synopsis>
+					<description><para>
+						Records the conference call starting when the first user
+						enters the room, and ending when the last user exits the room.
+						The default recorded filename is
+						'confbridge-${name of conference bridge}-${start time}.wav
+						and the default format is 8khz slinear.  This file will be
+						located in the configured monitoring directory in asterisk.conf.
+					</para></description>
+				</configOption>
+				<configOption name="record_file" default="confbridge-${name of conference bridge}-${start time}.wav">
+					<synopsis>The filename of the conference recording</synopsis>
+					<description><para>
+						When record_conference is set to yes, the specific name of the
+						record file can be set using this option.  Note that since multiple
+						conferences may use the same bridge profile, this may cause issues
+						depending on the configuration.  It is recommended to only use this
+						option dynamically with the CONFBRIDGE() dialplan function. This
+						allows the record name to be specified and a unique name to be chosen.
+						By default, the record_file is stored in Asterisk's spool/monitor directory
+						with a unique filename starting with the 'confbridge' prefix.
+					</para></description>
+				</configOption>
+				<configOption name="video_mode">
+					<synopsis>Sets how confbridge handles video distribution to the conference participants</synopsis>
+					<description><para>
+						Sets how confbridge handles video distribution to the conference participants.
+						Note that participants wanting to view and be the source of a video feed
+						_MUST_ be sharing the same video codec.  Also, using video in conjunction with
+						with the jitterbuffer currently results in the audio being slightly out of sync
+						with the video.  This is a result of the jitterbuffer only working on the audio
+						stream.  It is recommended to disable the jitterbuffer when video is used.
+
+						--- MODES ---
+						none: No video sources are set by default in the conference. It is still
+							  possible for a user to be set as a video source via AMI or DTMF action
+							  at any time.
+
+						follow_talker: The video feed will follow whoever is talking and providing video.
+
+						last_marked: The last marked user to join the conference with video capabilities
+									 will be the single source of video distributed to all participants.
+									 If multiple marked users are capable of video, the last one to join
+									 is always the source, when that user leaves it goes to the one who
+									 joined before them.
+
+						first_marked: The first marked user to join the conference with video capabilities
+									  is the single source of video distribution among all participants. If
+									  that user leaves, the marked user to join after them becomes the source.
+					</para></description>
+				</configOption>
+				<configOption name="max_members">
+					<synopsis>Limit the maximum number of participants for a single conference</synopsis>
+					<description><para>
+						This option limits the number of participants for a single
+						conference to a specific number.  By default conferences
+						have no participant limit. After the limit is reached, the
+						conference will be locked until someone leaves.  Note however
+						that an Admin user will always be alowed to join the conference
+						regardless if this limit is reached or not.
+					</para></description>
+				</configOption>
+				<configOption name="^sound_">
+					<synopsis>Override the various conference bridge sound files</synopsis>
+					<description><para>
+						All sounds in the conference are customizable using the bridge profile options below.
+						Simply state the option followed by the filename or full path of the filename after
+						the option.  Example: sound_had_joined=conf-hasjoin  This will play the conf-hasjoin
+						sound file found in the sounds directory when announcing someone's name is joining the
+						conference.
+
+						sound_join       : The sound played to everyone when someone enters the conference.
+						sound_leave      : The sound played to everyone when someone leaves the conference.
+						sound_has_joined : The sound played before announcing someone's name has
+										   joined the conference. This is used for user intros.
+										   Example "_____ has joined the conference"
+						sound_has_left   : The sound played when announcing someone's name has
+										   left the conference. This is used for user intros.
+										   Example "_____ has left the conference"
+						sound_kicked     : The sound played to a user who has been kicked from the conference.
+						sound_muted      : The sound played when the mute option it toggled on.
+						sound_unmuted    : The sound played when the mute option it toggled off.
+						sound_only_person: The sound played when the user is the only person in the conference.
+						sound_only_one   : The sound played to a user when there is only one other
+										   person is in the conference.
+						sound_there_are  : The sound played when announcing how many users there
+										   are in a conference.
+						sound_other_in_party : This file is used in conjunction with 'sound_there_are"
+											   when announcing how many users there are in the conference.
+											   The sounds are stringed together like this.
+											   "sound_there_are" ${number of participants} "sound_other_in_party"
+						sound_place_into_conference : The sound played when someone is placed into the conference
+													  after waiting for a marked user.
+						sound_wait_for_leader : The sound played when a user is placed into a conference that
+												 can not start until a marked user enters.
+						sound_leader_has_left : The sound played when the last marked user leaves the conference.
+						sound_get_pin     : The sound played when prompting for a conference pin number.
+						sound_invalid_pin : The sound played when an invalid pin is entered too many times.
+						sound_locked      : The sound played to a user trying to join a locked conference.
+						sound_locked_now  : The sound played to an admin after toggling the conference to locked mode.
+						sound_unlocked_now: The sound played to an admin after toggling the conference to unlocked mode.
+						sound_error_menu  : The sound played when an invalid menu option is entered.
+					</para></description>
+				</configOption>
+				<configOption name="template">
+					<synopsis>When using the CONFBRIDGE dialplan function, use a bridge profile as a template for creating a new temporary profile</synopsis>
+				</configOption>
+			</configObject>
+			<configObject name="menu">
+				<configOption name="type">
+					<synopsis>Define this configuration category as a menu</synopsis>
+				</configOption>
+				<configOption name="^[0-9A-D*#]+$">
+					<synopsis>DTMF sequences to assign various confbridge actions to</synopsis>
+					<description><para>
+--- ConfBridge Menu Options ---
+The ConfBridge application also has the ability to apply custom DTMF menus to
+each channel using the application.  Like the User and Bridge profiles a menu
+is passed in to ConfBridge as an argument in the dialplan.
+
+Below is a list of menu actions that can be assigned to a DTMF sequence.
+
+A single DTMF sequence can have multiple actions associated with it. This is
+accomplished by stringing the actions together and using a ',' as the
+delimiter.  Example:  Both listening and talking volume is reset when '5' is
+pressed.  5=reset_talking_volume, reset_listening_volume
+
+playback(filename&amp;filename2&amp;...)
+                                     ; Playback will play back an audio file to a channel
+                                     ; and then immediately return to the conference.
+                                     ; This file can not be interupted by DTMF.
+                                     ; Mutliple files can be chained together using the
+                                     ; '&amp;' character.
+playback_and_continue(filename&amp;filename2&amp;...)
+                                     ; playback_and_continue will
+                                     ; play back a prompt while continuing to
+                                     ; collect the dtmf sequence.  This is useful
+                                     ; when using a menu prompt that describes all
+                                     ; the menu options.  Note however that any DTMF
+                                     ; during this action will terminate the prompts
+                                     ; playback.  Prompt files can be chained together
+                                     ; using the '&amp;' character as a delimiter.
+toggle_mute      ; Toggle turning on and off mute.  Mute will make the user silent
+                 ; to everyone else, but the user will still be able to listen in.
+                 ; continue to collect the dtmf sequence.
+no_op ; This action does nothing (No Operation). Its only real purpose exists for
+      ; being able to reserve a sequence in the config as a menu exit sequence.
+decrease_listening_volume ; Decreases the channel's listening volume.
+increase_listening_volume ; Increases the channel's listening volume.
+reset_listening_volume    ; Reset channel's listening volume to default level.
+
+decrease_talking_volume ; Decreases the channel's talking volume.
+increase_talking_volume ; Icreases the channel's talking volume.
+reset_talking_volume    ; Reset channel's talking volume to default level.
+
+dialplan_exec(context,exten,priority)  ; The dialplan_exec action allows a user
+                                       ; to escape from the conference and execute
+                                       ; commands in the dialplan.  Once the dialplan
+                                       ; exits the user will be put back into the
+                                       ; conference.  The possibilities are endless!
+leave_conference ; This action allows a user to exit the conference and continue
+                 ; execution in the dialplan.
+
+admin_kick_last  ; This action allows an Admin to kick the last participant from the
+                 ; conference. This action will only work for admins which allows
+                 ; a single menu to be used for both users and admins.
+
+admin_toggle_conference_lock ; This action allows an Admin to toggle locking and
+                             ; unlocking the conference.  Non admins can not use
+                             ; this action even if it is in their menu.
+
+set_as_single_video_src   ; This action allows any user to set themselves as the
+                          ; single video source distributed to all participants.
+                          ; This will make the video feed stick to them regardless
+                          ; of what the video_mode is set to.
+
+release_as_single_video_src ; This action allows a user to release themselves as
+                            ; the video source.  If video_mode is not set to "none"
+                            ; this action will result in the conference returning to
+                            ; whatever video mode the bridge profile is using.
+                            ;
+                            ; Note that this action will have no effect if the user
+                            ; is not currently the video source.  Also, the user is
+                            ; not guaranteed by using this action that they will not
+                            ; become the video source again.  The bridge will return
+                            ; to whatever operation the video_mode option is set to
+                            ; upon release of the video src.
+
+admin_toggle_mute_participants ; This action allows an administrator to toggle the mute
+                               ; state for all non-admins within a conference.  All
+                               ; admin users are unaffected by this option.  Note that all
+                               ; users, regardless of their admin status, are notified
+                               ; that the conference is muted.
+
+participant_count        ; This action plays back the number of participants currently
+                         ; in a conference
+					</para></description>
+				</configOption>
+			</configObject>
+		</configFile>
+	</configInfo>
+***/
+
 struct confbridge_cfg {
 	struct ao2_container *bridge_profiles;
 	struct ao2_container *user_profiles;
@@ -81,6 +478,7 @@
 
 static struct aco_type bridge_type = {
 	.type = ACO_ITEM,
+	.name = "bridge_profile",
 	.category_match = ACO_BLACKLIST,
 	.category = "^general$",
 	.matchfield = "type",
@@ -117,6 +515,7 @@
 
 static struct aco_type user_type = {
 	.type = ACO_ITEM,
+	.name  = "user_profile",
 	.category_match = ACO_BLACKLIST,
 	.category = "^general$",
 	.matchfield = "type",
@@ -147,6 +546,7 @@
 
 static struct aco_type menu_type = {
 	.type = ACO_ITEM,
+	.name = "menu",
 	.category_match = ACO_BLACKLIST,
 	.category = "^general$",
 	.matchfield = "type",
@@ -164,6 +564,7 @@
 /* The general category is reserved, but unused */
 static struct aco_type general_type = {
 	.type = ACO_GLOBAL,
+	.name = "global",
 	.category_match = ACO_WHITELIST,
 	.category = "^general$",
 };
@@ -1289,8 +1690,6 @@
 
 	/* User options */
 	aco_option_register(&cfg_info, "type", ACO_EXACT, user_types, NULL, OPT_NOOP_T, 0, 0);
-	aco_option_register(&cfg_info, "type", ACO_EXACT, bridge_types, NULL, OPT_NOOP_T, 0, 0);
-	aco_option_register(&cfg_info, "type", ACO_EXACT, menu_types, NULL, OPT_NOOP_T, 0, 0);
 	aco_option_register(&cfg_info, "admin", ACO_EXACT, user_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct user_profile, flags), USER_OPT_ADMIN);
 	aco_option_register(&cfg_info, "marked", ACO_EXACT, user_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct user_profile, flags), USER_OPT_MARKEDUSER);
 	aco_option_register(&cfg_info, "startmuted", ACO_EXACT, user_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct user_profile, flags), USER_OPT_STARTMUTED);
@@ -1317,6 +1716,7 @@
 	aco_option_register_custom(&cfg_info, "template", ACO_EXACT, user_types, NULL, user_template_handler, 0);
 
 	/* Bridge options */
+	aco_option_register(&cfg_info, "type", ACO_EXACT, bridge_types, NULL, OPT_NOOP_T, 0, 0);
 	aco_option_register(&cfg_info, "jitterbuffer", ACO_EXACT, bridge_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct bridge_profile, flags), USER_OPT_JITTERBUFFER);
 	/* "auto" will fail to parse as a uint, but we use PARSE_DEFAULT to set the value to 0 in that case, which is the value that auto resolves to */
 	aco_option_register(&cfg_info, "internal_sample_rate", ACO_EXACT, bridge_types, "0", OPT_UINT_T, PARSE_DEFAULT, FLDSET(struct bridge_profile, internal_sample_rate), 0);
@@ -1330,6 +1730,7 @@
 	aco_option_register_custom(&cfg_info, "template", ACO_EXACT, bridge_types, NULL, bridge_template_handler, 0);
 
 	/* Menu options */
+	aco_option_register(&cfg_info, "type", ACO_EXACT, menu_types, NULL, OPT_NOOP_T, 0, 0);
 	aco_option_register_custom(&cfg_info, "^[0-9A-D*#]+$", ACO_REGEX, menu_types, NULL, menu_option_handler, 0);
 
 	if (aco_process_config(&cfg_info, reload) == ACO_PROCESS_ERROR) {

Modified: team/mjordan/terrys_parting_shot/channels/chan_motif.c
URL: http://svnview.digium.com/svn/asterisk/team/mjordan/terrys_parting_shot/channels/chan_motif.c?view=diff&rev=379381&r1=379344&r2=379381
==============================================================================
--- team/mjordan/terrys_parting_shot/channels/chan_motif.c (original)
+++ team/mjordan/terrys_parting_shot/channels/chan_motif.c Thu Jan 17 10:51:48 2013
@@ -76,6 +76,54 @@
 #include "asterisk/astobj.h"
 #include "asterisk/abstract_jb.h"
 #include "asterisk/xmpp.h"
+
+/*** DOCUMENTATION
+	<configInfo name="chan_motif" language="en_US">
+		<configFile name="motif.conf">
+			<configObject name="endpoint">
+				<configOption name="context">
+					<synopsis>Default dialplan context that incoming sessions will be routed to</synopsis>
+				</configOption>
+				<configOption name="callgroup">
+					<synopsis></synopsis>
+				</configOption>
+				<configOption name="pickupgroup">
+					<synopsis></synopsis>
+				</configOption>
+				<configOption name="language">
+					<synopsis></synopsis>
+				</configOption>
+				<configOption name="musicclass">
+					<synopsis></synopsis>
+				</configOption>
+				<configOption name="parkinglot">
+					<synopsis></synopsis>
+				</configOption>
+				<configOption name="accountcode">
+					<synopsis>Accout code for CDR purposes</synopsis>
+				</configOption>
+				<configOption name="allow">
+					<synopsis>Codecs to allow</synopsis>
+				</configOption>
+				<configOption name="disallow">
+					<synopsis>Codecs to disallow</synopsis>
+				</configOption>
+				<configOption name="connection">
+					<synopsis>Connection to accept traffic on and on which to send traffic out</synopsis>
+				</configOption>
+				<configOption name="transport">
+					<synopsis>The transport to use (ice-udp, google, or google-v1)</synopsis>
+				</configOption>
+				<configOption name="maxicecandidates">
+					<synopsis>Maximum number of ICE candidates to offer</synopsis>
+				</configOption>
+				<configOption name="maxpayloads">
+					<synopsis>Maximum number of pyaloads to offer</synopsis>
+				</configOption>
+			</configObject>
+		</configFile>
+	</configInfo>
+***/
 
 /*! \brief Default maximum number of ICE candidates we will offer */
 #define DEFAULT_MAX_ICE_CANDIDATES "10"
@@ -406,6 +454,7 @@
 
 static struct aco_type endpoint_option = {
 	.type = ACO_ITEM,
+	.name = "endpoint",
 	.category_match = ACO_BLACKLIST,
 	.category = "^general$",
 	.item_alloc = jingle_endpoint_alloc,

Modified: team/mjordan/terrys_parting_shot/configs/motif.conf.sample
URL: http://svnview.digium.com/svn/asterisk/team/mjordan/terrys_parting_shot/configs/motif.conf.sample?view=diff&rev=379381&r1=379344&r2=379381
==============================================================================
--- team/mjordan/terrys_parting_shot/configs/motif.conf.sample (original)
+++ team/mjordan/terrys_parting_shot/configs/motif.conf.sample Thu Jan 17 10:51:48 2013
@@ -75,18 +75,25 @@
 ;maxpayloads = 30      ; Maximum number of payloads we will offer
 
 ; Sample configuration entry for Jingle
-[jingle-endpoint](default)
-transport=ice-udp               ; Change the default protocol of outgoing sessions to Jingle ICE-UDP
-allow=g722                      ; Add G.722 as an allowed format since the other side may support it
-connection=local-jabber-account ; Connection to accept traffic on and send traffic out
-accountcode=jingle              ; Account code for CDR purposes
+;[jingle-endpoint](default)
+;transport=ice-udp               ; Change the default protocol of outgoing sessions to Jingle ICE-UDP
+;allow=g722                      ; Add G.722 as an allowed format since the other side may support it
+;connection=local-jabber-account ; Connection to accept traffic on and send traffic out
+;accountcode=jingle              ; Account code for CDR purposes
 
 ; Sample configuration entry for Google Talk
 [gtalk-endpoint](default)
-transport=google         ; Since this is a Google Talk endpoint we want to offer Google Jingle for outgoing sessions
-connection=gtalk-account
+;transport=google         ; Since this is a Google Talk endpoint we want to offer Google Jingle for outgoing sessions
+;connection=gtalk-account
 
 ; Sample configuration entry for Google Voice
-[gvoice](default)
-transport=google-v1       ; Google Voice uses the original Google Talk protocol
-connection=gvoice-account
+;[gvoice](default)
+;transport=google-v1       ; Google Voice uses the original Google Talk protocol
+;connection=gvoice-account
+
+; Additional options
+; callgroup
+; pickupgroup
+; language
+; musicclass
+; parkinglot

Modified: team/mjordan/terrys_parting_shot/configs/xmpp.conf.sample
URL: http://svnview.digium.com/svn/asterisk/team/mjordan/terrys_parting_shot/configs/xmpp.conf.sample?view=diff&rev=379381&r1=379344&r2=379381
==============================================================================
--- team/mjordan/terrys_parting_shot/configs/xmpp.conf.sample (original)
+++ team/mjordan/terrys_parting_shot/configs/xmpp.conf.sample Thu Jan 17 10:51:48 2013
@@ -37,3 +37,6 @@
 ;sendtodialplan=yes			; Send incoming messages into the dialplan.  Off by default.
 ;context=messages			; Dialplan context to send incoming messages to.  If not set,
 					; "default" will be used.
+;forceoldssl=no     ; Force the use of old-style SSL.
+;keepalive=
+

Modified: team/mjordan/terrys_parting_shot/doc/appdocsxml.dtd
URL: http://svnview.digium.com/svn/asterisk/team/mjordan/terrys_parting_shot/doc/appdocsxml.dtd?view=diff&rev=379381&r1=379344&r2=379381
==============================================================================
--- team/mjordan/terrys_parting_shot/doc/appdocsxml.dtd (original)
+++ team/mjordan/terrys_parting_shot/doc/appdocsxml.dtd Thu Jan 17 10:51:48 2013
@@ -1,13 +1,13 @@
-  <!ELEMENT docs (application|function|agi|manager|managerEvent|info)*>
+  <!ELEMENT docs (application|function|agi|manager|managerEvent|info|configInfo)*>
   <!ATTLIST docs xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude">
 
   <!ELEMENT xi:include (xi:fallback?) >
-  <!ATTLIST xi:include 
+  <!ATTLIST xi:include
   xmlns:xi	CDATA       #FIXED    "http://www.w3.org/2001/XInclude"
   href		CDATA       #IMPLIED
   parse		(xml|text)  "xml"
   xpointer	CDATA       #IMPLIED
-  encoding	CDATA       #IMPLIED 
+  encoding	CDATA       #IMPLIED
   accept	CDATA       #IMPLIED
   accept-language CDATA  #IMPLIED >
 
@@ -39,6 +39,34 @@
   <!ELEMENT managerEventInstance (synopsis?,syntax?,description?,see-also?)*>
   <!ATTLIST managerEventInstance class CDATA #REQUIRED>
 
+  <!ELEMENT configInfo (configFile+)>
+  <!ATTLIST configInfo name CDATA #REQUIRED>
+  <!ATTLIST configInfo language CDATA #REQUIRED>
+
+  <!ELEMENT configFile (configObject+)>
+  <!ATTLIST configFile name CDATA #REQUIRED>
+
+  <!ELEMENT configObject (synopsis?|description?|syntax?|configOption)*>
+  <!ATTLIST configObject name CDATA #REQUIRED>
+
+  <!ELEMENT configOption (synopsis,description?,syntax?)*>
+  <!ATTLIST configOption name CDATA #REQUIRED>
+  <!ATTLIST configOption regex (yes|no|true|false) "false">
+  <!ATTLIST configOption default CDATA #IMPLIED>
+
+  <!ELEMENT matchInfo (category|field?)>
+

[... 1337 lines stripped ...]



More information about the asterisk-commits mailing list