diff options
author | Benny Prijono <bennylp@teluu.com> | 2007-03-23 16:34:20 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2007-03-23 16:34:20 +0000 |
commit | e3fd604ea862f68ad3ece248ca7d853899cbf48f (patch) | |
tree | 88fb4659ab449d79b25dc8e0dfe3b64f145b9dd3 /pjmedia/include | |
parent | 05e7998ba4cbd7fb0b02b7f82c5b328cf203fbc9 (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.h | 1 | ||||
-rw-r--r-- | pjmedia/include/pjmedia/transport.h | 37 | ||||
-rw-r--r-- | pjmedia/include/pjmedia/transport_ice.h | 12 |
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); |