Compare commits
3 Commits
5d71cae1ad
...
dee6ff9ee7
Author | SHA1 | Date |
---|---|---|
avimar | dee6ff9ee7 | |
Aron Podrigal | 5cb74797fe | |
Avi Marcus | bdcb4c7e0d |
|
@ -63,6 +63,8 @@
|
|||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<!-- File to play if you are alone in the conference -->
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<!-- File to play if you are waiting for the moderator to join -->
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<!-- File to play endlessly (nobody will ever be able to talk) -->
|
||||
<!--<param name="perpetual-sound" value="perpetual.wav"/>-->
|
||||
<!-- File to play when you're alone (music on hold)-->
|
||||
|
@ -110,6 +112,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -135,6 +138,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -160,6 +164,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
|
|
@ -93,6 +93,8 @@
|
|||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<!-- File to play if you are alone in the conference -->
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<!-- File to play if you are waiting for the moderator to join -->
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<!-- File to play endlessly (nobody will ever be able to talk) -->
|
||||
<!-- <param name="perpetual-sound" value="perpetual.wav"/> -->
|
||||
<!-- File to play when you're alone (music on hold)-->
|
||||
|
@ -156,6 +158,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -181,6 +184,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -220,6 +224,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -258,6 +263,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="local_stream://video"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -293,6 +299,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="local_stream://video"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -325,6 +332,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="local_stream://video"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -358,6 +366,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="local_stream://video"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -391,6 +400,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="local_stream://video_chime"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -423,6 +433,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="local_stream://video_chime"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -456,6 +467,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
|
||||
|
|
|
@ -74,6 +74,8 @@
|
|||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<!-- File to play if you are alone in the conference -->
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<!-- File to play if you are waiting for the moderator to join -->
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<!-- File to play endlessly (nobody will ever be able to talk) -->
|
||||
<!-- <param name="perpetual-sound" value="perpetual.wav"/> -->
|
||||
<!-- File to play when you're alone (music on hold)-->
|
||||
|
@ -137,6 +139,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -162,6 +165,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -201,6 +205,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -238,6 +243,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -274,6 +280,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -309,6 +316,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -344,6 +352,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
|
|
@ -80,6 +80,8 @@
|
|||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<!-- File to play if you are alone in the conference -->
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<!-- File to play if you are waiting for the moderator to join -->
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<!-- File to play endlessly (nobody will ever be able to talk) -->
|
||||
<!--<param name="perpetual-sound" value="perpetual.wav"/>-->
|
||||
<!-- File to play when you're alone (music on hold)-->
|
||||
|
@ -143,6 +145,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -168,6 +171,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
@ -193,6 +197,7 @@
|
|||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="waiting-sound" value="conference/conf-conference_will_start_shortly.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
|
|
|
@ -938,13 +938,17 @@ switch_status_t conference_member_add(conference_obj_t *conference, conference_m
|
|||
if (conference->count >= conference->announce_count && conference->announce_count > 1) {
|
||||
switch_snprintf(msg, sizeof(msg), "There are %d callers", conference->count);
|
||||
conference_member_say(member, msg, CONF_DEFAULT_LEADIN);
|
||||
} else if (conference->count == 1 && !conference->perpetual_sound && !conference_utils_test_flag(conference, CFLAG_WAIT_MOD)) {
|
||||
} else if (conference->count == 1 && !conference->perpetual_sound) {
|
||||
/* as long as its not a bridge_to conference, announce if person is alone */
|
||||
if (!conference_utils_test_flag(conference, CFLAG_BRIDGE_TO)) {
|
||||
if (conference->alone_sound && !conference_utils_member_test_flag(member, MFLAG_GHOST)) {
|
||||
if (conference->alone_sound && !conference_utils_test_flag(conference, CFLAG_WAIT_MOD) && !conference_utils_member_test_flag(member, MFLAG_GHOST)) {
|
||||
conference_file_stop(conference, FILE_STOP_ASYNC);
|
||||
conference_file_play(conference, conference->alone_sound, CONF_DEFAULT_LEADIN,
|
||||
switch_core_session_get_channel(member->session), 0);
|
||||
} else if (conference->waiting_sound && conference_utils_test_flag(conference, CFLAG_WAIT_MOD) && !conference_utils_member_test_flag(member, MFLAG_GHOST)) {
|
||||
conference_file_stop(conference, FILE_STOP_ASYNC);
|
||||
conference_file_play(conference, conference->waiting_sound, CONF_DEFAULT_LEADIN,
|
||||
switch_core_session_get_channel(member->session), 0);
|
||||
} else {
|
||||
switch_snprintf(msg, sizeof(msg), "You are currently the only person in this conference.");
|
||||
conference_member_say(member, msg, CONF_DEFAULT_LEADIN);
|
||||
|
|
|
@ -2729,6 +2729,7 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co
|
|||
char *sound_prefix = NULL;
|
||||
char *exit_sound = NULL;
|
||||
char *alone_sound = NULL;
|
||||
char *waiting_sound = NULL;
|
||||
char *muted_sound = NULL;
|
||||
char *mute_detect_sound = NULL;
|
||||
char *unmuted_sound = NULL;
|
||||
|
@ -2982,6 +2983,8 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co
|
|||
exit_sound = val;
|
||||
} else if (!strcasecmp(var, "alone-sound") && !zstr(val)) {
|
||||
alone_sound = val;
|
||||
} else if (!strcasecmp(var, "waiting-sound") && !zstr(val)) {
|
||||
waiting_sound = val;
|
||||
} else if (!strcasecmp(var, "perpetual-sound") && !zstr(val)) {
|
||||
perpetual_sound = val;
|
||||
} else if (!strcasecmp(var, "moh-sound") && !zstr(val)) {
|
||||
|
@ -3526,6 +3529,9 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co
|
|||
if (!zstr(alone_sound)) {
|
||||
conference->alone_sound = switch_core_strdup(conference->pool, alone_sound);
|
||||
}
|
||||
if (!zstr(waiting_sound)) {
|
||||
conference->waiting_sound = switch_core_strdup(conference->pool, waiting_sound);
|
||||
}
|
||||
|
||||
if (!zstr(locked_sound)) {
|
||||
conference->locked_sound = switch_core_strdup(conference->pool, locked_sound);
|
||||
|
|
|
@ -609,6 +609,7 @@ typedef struct conference_obj {
|
|||
char *enter_sound;
|
||||
char *exit_sound;
|
||||
char *alone_sound;
|
||||
char *waiting_sound;
|
||||
char *perpetual_sound;
|
||||
char *moh_sound;
|
||||
char *tmp_moh_sound;
|
||||
|
|
|
@ -106,6 +106,22 @@ char * pgsql_handle_get_error(switch_pgsql_handle_t *handle)
|
|||
return err_str;
|
||||
}
|
||||
|
||||
void pgsql_handle_set_error_if_not_set(switch_pgsql_handle_t *handle, char **err)
|
||||
{
|
||||
char *err_str;
|
||||
|
||||
if (err && !(*err)) {
|
||||
err_str = pgsql_handle_get_error(handle);
|
||||
|
||||
if (zstr(err_str)) {
|
||||
switch_safe_free(err_str);
|
||||
err_str = strdup((char *)"SQL ERROR!");
|
||||
}
|
||||
|
||||
*err = err_str;
|
||||
}
|
||||
}
|
||||
|
||||
static int db_is_up(switch_pgsql_handle_t *handle)
|
||||
{
|
||||
int ret = 0;
|
||||
|
@ -553,8 +569,15 @@ switch_status_t pgsql_handle_exec_detailed(const char *file, const char *func, i
|
|||
goto error;
|
||||
}
|
||||
|
||||
return pgsql_finish_results(handle);
|
||||
if (pgsql_finish_results(handle) != SWITCH_STATUS_SUCCESS) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
|
||||
error:
|
||||
pgsql_handle_set_error_if_not_set(handle, err);
|
||||
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
|
@ -630,6 +653,7 @@ done:
|
|||
|
||||
pgsql_free_result(&result);
|
||||
if (pgsql_finish_results(handle) != SWITCH_STATUS_SUCCESS) {
|
||||
pgsql_handle_set_error_if_not_set(handle, err);
|
||||
sstatus = SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
|
@ -638,6 +662,7 @@ done:
|
|||
error:
|
||||
|
||||
pgsql_free_result(&result);
|
||||
pgsql_handle_set_error_if_not_set(handle, err);
|
||||
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
@ -1050,6 +1075,8 @@ switch_status_t pgsql_handle_callback_exec_detailed(const char *file, const char
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
error:
|
||||
|
||||
pgsql_handle_set_error_if_not_set(handle, err);
|
||||
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue