user.features.dtmf_passthrough = 0;
}
+ /* Set if text messaging is enabled for this user or not */
+ if (ast_test_flag(&user.u_profile, USER_OPT_TEXT_MESSAGING)) {
+ user.features.text_messaging = 1;
+ } else {
+ user.features.text_messaging = 0;
+ }
+
/* Set dsp threshold values if present */
if (user.u_profile.talking_threshold) {
user.tech_args.talking_threshold = user.u_profile.talking_threshold;
<configOption name="timeout">
<synopsis>Kick the user out of the conference after this many seconds. 0 means there is no timeout for the user.</synopsis>
</configOption>
+ <configOption name="text_messaging" default="yes">
+ <synopsis>Sets if text messages are sent to the user.</synopsis>
+ <description><para>If text messaging is enabled for this user then
+ text messages will be sent to it. These may be events or from other
+ participants in the conference bridge. If disabled then no text
+ messages are sent to the user.</para></description>
+ </configOption>
</configObject>
<configObject name="bridge_profile">
<synopsis>A named profile to apply to specific bridges.</synopsis>
ast_cli(a->fd,"Announce User Count all: %s\n",
u_profile.flags & USER_OPT_ANNOUNCEUSERCOUNTALL ?
"enabled" : "disabled");
- ast_cli(a->fd,"\n");
+ ast_cli(a->fd,"Text Messaging: %s\n",
+ u_profile.flags & USER_OPT_TEXT_MESSAGING ?
+ "enabled" : "disabled");
+ ast_cli(a->fd, "\n");
return CLI_SUCCESS;
}
aco_option_register(&cfg_info, "dsp_talking_threshold", ACO_EXACT, user_types, __stringify(DEFAULT_TALKING_THRESHOLD), OPT_UINT_T, 0, FLDSET(struct user_profile, talking_threshold));
aco_option_register(&cfg_info, "jitterbuffer", ACO_EXACT, user_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct user_profile, flags), USER_OPT_JITTERBUFFER);
aco_option_register(&cfg_info, "timeout", ACO_EXACT, user_types, "0", OPT_UINT_T, 0, FLDSET(struct user_profile, timeout));
+ aco_option_register(&cfg_info, "text_messaging", ACO_EXACT, user_types, "yes", OPT_BOOLFLAG_T, 1, FLDSET(struct user_profile, flags), USER_OPT_TEXT_MESSAGING);
/* This option should only be used with the CONFBRIDGE dialplan function */
aco_option_register_custom(&cfg_info, "template", ACO_EXACT, user_types, NULL, user_template_handler, 0);
return 0;
}
+ if ((fr->frametype == AST_FRAME_TEXT || fr->frametype == AST_FRAME_TEXT_DATA) &&
+ !bridge_channel->features->text_messaging) {
+ /* This channel is not accepting text messages. */
+ ast_bridge_channel_unlock(bridge_channel);
+ bridge_frame_free(dup);
+ return 0;
+ }
+
if (DEBUG_ATLEAST(1)) {
if (fr->frametype == AST_FRAME_TEXT) {
ast_log(LOG_DEBUG, "Queuing TEXT frame to '%s': %*.s\n", ast_channel_name(bridge_channel->chan),