]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
app_confbridge: Set the language used for announcements to the conference. 77/1277/1
authorRichard Mudgett <rmudgett@digium.com>
Tue, 8 Oct 2013 20:14:14 +0000 (20:14 +0000)
committerKevin Harwell <kharwell@digium.com>
Thu, 17 Sep 2015 21:19:23 +0000 (16:19 -0500)
ConfBridge now has the ability to set the language of announcements to the
conference.  The language can be set on a bridge profile in
confbridge.conf or by the dialplan function
CONFBRIDGE(bridge,language)=en.

(closes issue ASTERISK-19983)
Reported by: Jonathan White
Patches:
      M19983_rev2.diff (license #5138) patch uploaded by junky (modified)
Tested by: rmudgett

Change-Id: Ibb77668ecfa626f66aa0eae6d555c516a1d5cd32

UPGRADE.txt
apps/app_confbridge.c
apps/confbridge/conf_config_parser.c
apps/confbridge/include/confbridge.h
configs/confbridge.conf.sample

index 312c12dac0a59e435cfb20d4225edf79eec87cda..de40fe5602e426cb7b80f7adbbe8c9f1254ec5c2 100644 (file)
@@ -44,6 +44,11 @@ CLI:
    by the CLI command is always the Asterisk version. This CLI command
    will be removed in Asterisk 14.
 
+ConfBridge
+ - ConfBridge now has the ability to set the language of announcements to the
+   conference.  The language can be set on a bridge profile in confbridge.conf
+   or by the dialplan function CONFBRIDGE(bridge,language)=en.
+
 from 11.6-cert6 to 11.6-cert7:
 
 * Due to the POODLE vulnerability (see 
index 41eef7918f41147b83e9e77282a8299bfa6896c5..b08af5368aa922828076d14df8ca62e71ec4be48 100644 (file)
@@ -1342,6 +1342,9 @@ static int alloc_playback_chan(struct conference_bridge *conference_bridge)
 
        ast_channel_internal_bridge_set(conference_bridge->playback_chan, conference_bridge->bridge);
 
+       /* To make sure playback_chan has the same language of that profile */
+       ast_channel_language_set(conference_bridge->playback_chan, conference_bridge->b_profile.language);
+
        if (ast_call(conference_bridge->playback_chan, "", 0)) {
                ast_hangup(conference_bridge->playback_chan);
                conference_bridge->playback_chan = NULL;
index 9244a42e05541e9eef011dff22badb0dee288ea4..4d3e03d50bb176c6263df30dc5825b6802af063d 100644 (file)
@@ -852,6 +852,7 @@ static char *handle_cli_confbridge_show_bridge_profile(struct ast_cli_entry *e,
 
        ast_cli(a->fd,"--------------------------------------------\n");
        ast_cli(a->fd,"Name:                 %s\n", b_profile.name);
+       ast_cli(a->fd,"Language:             %s\n", b_profile.language);
 
        if (b_profile.internal_sample_rate) {
                snprintf(tmp, sizeof(tmp), "%d", b_profile.internal_sample_rate);
@@ -1364,6 +1365,7 @@ int conf_load_config(void)
        aco_option_register_custom(&cfg_info, "video_mode", ACO_EXACT, bridge_types, NULL, video_mode_handler, 0);
        aco_option_register(&cfg_info, "max_members", ACO_EXACT, bridge_types, "0", OPT_UINT_T, 0, FLDSET(struct bridge_profile, max_members));
        aco_option_register(&cfg_info, "record_file", ACO_EXACT, bridge_types, NULL, OPT_CHAR_ARRAY_T, 0, CHARFLDSET(struct bridge_profile, rec_file));
+       aco_option_register(&cfg_info, "language", ACO_EXACT, bridge_types, "en", OPT_CHAR_ARRAY_T, 0, CHARFLDSET(struct bridge_profile, language));
        aco_option_register_custom(&cfg_info, "^sound_", ACO_REGEX, bridge_types, NULL, sound_option_handler, 0);
        /* This option should only be used with the CONFBRIDGE dialplan function */
        aco_option_register_custom(&cfg_info, "template", ACO_EXACT, bridge_types, NULL, bridge_template_handler, 0);
index 0de2c50c9dfaf66110fb5cfc71f3ea25606ab02e..f9fc93d9008c6f8ae8f02f4649c0283581eef444 100644 (file)
@@ -191,6 +191,7 @@ struct bridge_profile_sounds {
 
 struct bridge_profile {
        char name[64];
+       char language[MAX_LANGUAGE];              /*!< Language used for playback_chan */
        char rec_file[PATH_MAX];
        unsigned int flags;
        unsigned int max_members;          /*!< The maximum number of participants allowed in the conference */
index 08a2dd30575efd6c6da38933372ec4c9bffe46da..a4f829aa2cc93d2edbc0863aac1040b0e37ccfa5 100644 (file)
@@ -197,6 +197,9 @@ type=bridge
                            ;               is the single source of video distribution among all participants. If
                            ;               that user leaves, the marked user to join after them becomes the source.
 
+;language=en               ; Set the language used for announcements to the conference.
+                           ; Default is en (English).
+
 ; 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