SS7 marked the start of an open season for trunk again but here's something minor...
[asterisk/asterisk.git] / include / asterisk / channel.h
index d54a1bd..4f636d1 100644 (file)
@@ -238,6 +238,9 @@ struct ast_channel_tech {
        enum ast_bridge_result (* const bridge)(struct ast_channel *c0, struct ast_channel *c1, int flags,
                                                struct ast_frame **fo, struct ast_channel **rc, int timeoutms);
 
        enum ast_bridge_result (* const bridge)(struct ast_channel *c0, struct ast_channel *c1, int flags,
                                                struct ast_frame **fo, struct ast_channel **rc, int timeoutms);
 
+       /*! \brief Bridge two channels of the same type together (early) */
+       enum ast_bridge_result (* const early_bridge)(struct ast_channel *c0, struct ast_channel *c1);
+
        /*! \brief Indicate a particular condition (e.g. AST_CONTROL_BUSY or AST_CONTROL_RINGING or AST_CONTROL_CONGESTION */
        int (* const indicate)(struct ast_channel *c, int condition, const void *data, size_t datalen);
 
        /*! \brief Indicate a particular condition (e.g. AST_CONTROL_BUSY or AST_CONTROL_RINGING or AST_CONTROL_CONGESTION */
        int (* const indicate)(struct ast_channel *c, int condition, const void *data, size_t datalen);
 
@@ -965,6 +968,13 @@ int ast_readstring_full(struct ast_channel *c, char *s, int len, int timeout, in
  * \return Returns 0 on success and -1 if it could not be done */
 int ast_channel_make_compatible(struct ast_channel *c0, struct ast_channel *c1);
 
  * \return Returns 0 on success and -1 if it could not be done */
 int ast_channel_make_compatible(struct ast_channel *c0, struct ast_channel *c1);
 
+/*! Bridge two channels together (early)
+ * \param c0 first channel to bridge
+ * \param c1 second channel to bridge
+ * Bridge two channels (c0 and c1) together early. This implies either side may not be answered yet.
+ * \return Returns 0 on success and -1 if it could not be done */
+int ast_channel_early_bridge(struct ast_channel *c0, struct ast_channel *c1);
+
 /*! Bridge two channels together 
  * \param c0 first channel to bridge
  * \param c1 second channel to bridge
 /*! Bridge two channels together 
  * \param c0 first channel to bridge
  * \param c1 second channel to bridge