summaryrefslogtreecommitdiff
path: root/pjmedia/include
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-03-23 16:34:20 +0000
committerBenny Prijono <bennylp@teluu.com>2007-03-23 16:34:20 +0000
commite3fd604ea862f68ad3ece248ca7d853899cbf48f (patch)
tree88fb4659ab449d79b25dc8e0dfe3b64f145b9dd3 /pjmedia/include
parent05e7998ba4cbd7fb0b02b7f82c5b328cf203fbc9 (diff)
ICE (work in progress): integration with PJSUA
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1098 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/include')
-rw-r--r--pjmedia/include/pjmedia.h1
-rw-r--r--pjmedia/include/pjmedia/transport.h37
-rw-r--r--pjmedia/include/pjmedia/transport_ice.h12
3 files changed, 42 insertions, 8 deletions
diff --git a/pjmedia/include/pjmedia.h b/pjmedia/include/pjmedia.h
index 10d81c02..6db9bbe7 100644
--- a/pjmedia/include/pjmedia.h
+++ b/pjmedia/include/pjmedia.h
@@ -54,6 +54,7 @@
#include <pjmedia/splitcomb.h>
#include <pjmedia/tonegen.h>
#include <pjmedia/transport.h>
+#include <pjmedia/transport_ice.h>
#include <pjmedia/transport_udp.h>
#include <pjmedia/wav_playlist.h>
#include <pjmedia/wav_port.h>
diff --git a/pjmedia/include/pjmedia/transport.h b/pjmedia/include/pjmedia/transport.h
index 4b2450bc..1e7d67db 100644
--- a/pjmedia/include/pjmedia/transport.h
+++ b/pjmedia/include/pjmedia/transport.h
@@ -178,6 +178,11 @@ typedef struct pjmedia_transport pjmedia_transport;
*/
struct pjmedia_transport_op
{
+ /**
+ * Get media socket info from the specified transport.
+ *
+ * Application should call #pjmedia_transport_get_info() instead
+ */
pj_status_t (*get_info)(pjmedia_transport *tp,
pjmedia_sock_info *info);
@@ -254,6 +259,20 @@ struct pjmedia_transport_op
typedef struct pjmedia_transport_op pjmedia_transport_op;
+/**
+ * Media transport type.
+ */
+typedef enum pjmedia_transport_type
+{
+ /** Media transport using standard UDP */
+ PJMEDIA_TRANSPORT_TYPE_UDP,
+
+ /** Media transport using ICE */
+ PJMEDIA_TRANSPORT_TYPE_ICE
+
+} pjmedia_transport_type;
+
+
/**
* This structure declares stream transport. A stream transport is called
* by the stream to transmit a packet, and will notify stream when
@@ -262,13 +281,27 @@ typedef struct pjmedia_transport_op pjmedia_transport_op;
struct pjmedia_transport
{
/** Transport name (for logging purpose). */
- char name[PJ_MAX_OBJ_NAME];
+ char name[PJ_MAX_OBJ_NAME];
+
+ /** Transport type. */
+ pjmedia_transport_type type;
/** Transport's "virtual" function table. */
- pjmedia_transport_op *op;
+ pjmedia_transport_op *op;
};
+/**
+ * Get media socket info from the specified transport. The socket info
+ * contains information about the local address of this transport, and
+ * would be needed for example to fill in the "c=" and "m=" line of local
+ * SDP.
+ *
+ * @param tp The transport.
+ * @param info Media socket info to be initialized.
+ *
+ * @return PJ_SUCCESS on success.
+ */
PJ_INLINE(pj_status_t) pjmedia_transport_get_info(pjmedia_transport *tp,
pjmedia_sock_info *info)
{
diff --git a/pjmedia/include/pjmedia/transport_ice.h b/pjmedia/include/pjmedia/transport_ice.h
index fa4deebb..e676730a 100644
--- a/pjmedia/include/pjmedia/transport_ice.h
+++ b/pjmedia/include/pjmedia/transport_ice.h
@@ -41,21 +41,21 @@ PJ_BEGIN_DECL
PJ_DECL(pj_status_t) pjmedia_ice_create(pjmedia_endpt *endpt,
const char *name,
+ unsigned comp_cnt,
pj_stun_config *stun_cfg,
- pj_dns_resolver *resolver,
- pj_bool_t enable_relay,
- const pj_str_t *stun_name,
pjmedia_transport **p_tp);
PJ_DECL(pj_status_t) pjmedia_ice_destroy(pjmedia_transport *tp);
+PJ_DECL(pj_ice_st*) pjmedia_ice_get_ice_st(pjmedia_transport *tp);
+
PJ_DECL(pj_status_t) pjmedia_ice_init_ice(pjmedia_transport *tp,
pj_ice_role role,
const pj_str_t *local_ufrag,
const pj_str_t *local_passwd);
-PJ_DECL(pj_status_t) pjmedia_ice_build_sdp(pjmedia_transport *tp,
- pj_pool_t *pool,
- pjmedia_sdp_session *sdp);
+PJ_DECL(pj_status_t) pjmedia_ice_modify_sdp(pjmedia_transport *tp,
+ pj_pool_t *pool,
+ pjmedia_sdp_session *sdp);
PJ_DECL(pj_status_t) pjmedia_ice_start_ice(pjmedia_transport *tp,
pj_pool_t *pool,
pjmedia_sdp_session *rem_sdp);