summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rwxr-xr-xinclude/asterisk/rtp.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/asterisk/rtp.h b/include/asterisk/rtp.h
index 8137eb38d..30639a5cd 100755
--- a/include/asterisk/rtp.h
+++ b/include/asterisk/rtp.h
@@ -17,6 +17,7 @@
#include <asterisk/frame.h>
#include <asterisk/io.h>
#include <asterisk/sched.h>
+#include <asterisk/channel.h>
#include <netinet/in.h>
@@ -24,6 +25,14 @@
extern "C" {
#endif
+struct ast_rtp_protocol {
+ struct ast_rtp *(*get_rtp_info)(struct ast_channel *chan); /* Get RTP struct, or NULL if unwilling to transfer */
+ int (*set_rtp_peer)(struct ast_channel *chan, struct ast_rtp *peer); /* Set RTP peer */
+ int (*get_rtp_willing)(struct ast_channel *chan); /* Willing to native bridge */
+ char *type;
+ struct ast_rtp_protocol *next;
+};
+
struct ast_rtp;
typedef int (*ast_rtp_callback)(struct ast_rtp *rtp, struct ast_frame *f, void *data);
@@ -58,6 +67,12 @@ int rtp2ast(int id);
char *ast2rtpn(int id);
+int ast_rtp_bridge(struct ast_channel *c0, struct ast_channel *c1, int flags, struct ast_frame **fo, struct ast_channel **rc);
+
+int ast_rtp_proto_register(struct ast_rtp_protocol *proto);
+
+void ast_rtp_proto_unregister(struct ast_rtp_protocol *proto);
+
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif