/*! \brief Attended transfer feature to turn it into a threeway call */
static int attended_threeway_transfer(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel, void *hook_pvt)
{
- /* This is sort of abusing the depart state but in this instance it is only going to be handled in the below function so it is okay */
+ /*
+ * This is sort of abusing the depart state but in this instance
+ * it is only going to be handled by feature_attended_transfer()
+ * so it is okay.
+ */
ast_bridge_change_state(bridge_channel, AST_BRIDGE_CHANNEL_STATE_DEPART);
return 0;
}
/*! \brief State information about a bridged channel */
enum ast_bridge_channel_state {
- /*! Waiting for a signal */
+ /*! Waiting for a signal (Channel in the bridge) */
AST_BRIDGE_CHANNEL_STATE_WAIT = 0,
/*! Bridged channel has ended itself (it has hung up) */
AST_BRIDGE_CHANNEL_STATE_END,
- /*! Bridged channel should be hung up */
+ /*! Bridged channel was forced out and should be hung up */
AST_BRIDGE_CHANNEL_STATE_HANGUP,
- /*! Bridged channel should be removed from the bridge without being hung up */
+ /*! Bridged channel was ast_bridge_depart() from the bridge without being hung up */
AST_BRIDGE_CHANNEL_STATE_DEPART,
/*! Bridged channel is executing a feature hook */
AST_BRIDGE_CHANNEL_STATE_FEATURE,
* \param pvt_data Optional unique data that will be passed with the talking events.
* \param talker_destructor Optional destructor callback for pvt data.
*
- * \retval 0, success
- * \retval -1, failure
+ * \return Nothing
*/
-int ast_bridge_features_set_talk_detector(struct ast_bridge_features *features,
+void ast_bridge_features_set_talk_detector(struct ast_bridge_features *features,
ast_bridge_talking_indicate_callback talker_cb,
ast_bridge_talking_indicate_destructor talker_destructor,
void *pvt_data);
* \param features Bridge features structure
* \param flag Flag to enable
*
- * \retval 0 on success
- * \retval -1 on failure
+ * \return Nothing
*
* Example usage:
*
* This sets the AST_BRIDGE_FLAG_DISSOLVE feature to be enabled on the features structure
* 'features'.
*/
-int ast_bridge_features_set_flag(struct ast_bridge_features *features, enum ast_bridge_feature_flags flag);
+void ast_bridge_features_set_flag(struct ast_bridge_features *features, enum ast_bridge_feature_flags flag);
/*!
* \brief Initialize bridge features structure
*
* \param features Bridge features structure
*
- * \retval 0 on success
- * \retval -1 on failure
+ * \return Nothing
*
* Example usage:
*
* \note This MUST be called after the features structure is done being used
* or a memory leak may occur.
*/
-int ast_bridge_features_cleanup(struct ast_bridge_features *features);
+void ast_bridge_features_cleanup(struct ast_bridge_features *features);
/*!
* \brief Play a DTMF stream into a bridge, optionally not to a given channel
return 0;
}
-int ast_bridge_features_set_talk_detector(struct ast_bridge_features *features,
+void ast_bridge_features_set_talk_detector(struct ast_bridge_features *features,
ast_bridge_talking_indicate_callback talker_cb,
ast_bridge_talking_indicate_destructor talker_destructor,
void *pvt_data)
features->talker_cb = talker_cb;
features->talker_destructor_cb = talker_destructor;
features->talker_pvt_data = pvt_data;
- return 0;
}
int ast_bridge_features_enable(struct ast_bridge_features *features, enum ast_bridge_builtin_feature feature, const char *dtmf, void *config)
return ast_bridge_features_hook(features, dtmf, builtin_features_handlers[feature], config, NULL);
}
-int ast_bridge_features_set_flag(struct ast_bridge_features *features, enum ast_bridge_feature_flags flag)
+void ast_bridge_features_set_flag(struct ast_bridge_features *features, enum ast_bridge_feature_flags flag)
{
ast_set_flag(&features->feature_flags, flag);
features->usable = 1;
- return 0;
}
int ast_bridge_features_init(struct ast_bridge_features *features)
return 0;
}
-int ast_bridge_features_cleanup(struct ast_bridge_features *features)
+void ast_bridge_features_cleanup(struct ast_bridge_features *features)
{
struct ast_bridge_features_hook *hook;
features->talker_destructor_cb(features->talker_pvt_data);
features->talker_pvt_data = NULL;
}
-
- return 0;
}
int ast_bridge_dtmf_stream(struct ast_bridge *bridge, const char *dtmf, struct ast_channel *chan)