mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-02 11:58:40 +00:00
Move definition of RTP structure to rtp.h (preparing for future changes)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@32255 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -48,6 +48,8 @@ extern "C" {
|
||||
/*! Maximum RTP-specific code */
|
||||
#define AST_RTP_MAX AST_RTP_CISCO_DTMF
|
||||
|
||||
#define MAX_RTP_PT 256
|
||||
|
||||
struct ast_rtp_protocol {
|
||||
/*! Get RTP struct, or NULL if unwilling to transfer */
|
||||
struct ast_rtp *(* const get_rtp_info)(struct ast_channel *chan);
|
||||
@@ -60,15 +62,75 @@ struct ast_rtp_protocol {
|
||||
AST_LIST_ENTRY(ast_rtp_protocol) list;
|
||||
};
|
||||
|
||||
typedef int (*ast_rtp_callback)(struct ast_rtp *rtp, struct ast_frame *f, void *data);
|
||||
|
||||
|
||||
/*!
|
||||
* \brief Structure representing a RTP session.
|
||||
*
|
||||
* RTP session is defined on page 9 of RFC 3550: "An association among a set of participants communicating with RTP. A participant may be involved in multiple RTP sessions at the same time [...]"
|
||||
*
|
||||
*/
|
||||
struct ast_rtp;
|
||||
|
||||
typedef int (*ast_rtp_callback)(struct ast_rtp *rtp, struct ast_frame *f, void *data);
|
||||
/*! \brief The value of each payload format mapping: */
|
||||
struct rtpPayloadType {
|
||||
int isAstFormat; /*!< whether the following code is an AST_FORMAT */
|
||||
int code;
|
||||
};
|
||||
|
||||
/*! \brief RTP session description */
|
||||
struct ast_rtp {
|
||||
int s;
|
||||
char resp;
|
||||
struct ast_frame f;
|
||||
unsigned char rawdata[8192 + AST_FRIENDLY_OFFSET];
|
||||
unsigned int ssrc; /*!< Synchronization source, RFC 3550, page 10. */
|
||||
unsigned int themssrc; /*!< Their SSRC */
|
||||
unsigned int rxssrc;
|
||||
unsigned int lastts;
|
||||
unsigned int lastdigitts;
|
||||
unsigned int lastrxts;
|
||||
unsigned int lastividtimestamp;
|
||||
unsigned int lastovidtimestamp;
|
||||
unsigned int lasteventseqn;
|
||||
int lastrxseqno; /*!< Last received sequence number */
|
||||
unsigned short seedrxseqno; /*!< What sequence number did they start with?*/
|
||||
unsigned int seedrxts; /*!< What RTP timestamp did they start with? */
|
||||
unsigned int rxcount; /*!< How many packets have we received? */
|
||||
unsigned int rxoctetcount; /*!< How many octets have we received? should be rxcount *160*/
|
||||
unsigned int txcount; /*!< How many packets have we sent? */
|
||||
unsigned int txoctetcount; /*!< How many octets have we sent? (txcount*160)*/
|
||||
unsigned int cycles; /*!< Shifted count of sequence number cycles */
|
||||
double rxjitter; /*!< Interarrival jitter at the moment */
|
||||
double rxtransit; /*!< Relative transit time for previous packet */
|
||||
unsigned int lasteventendseqn;
|
||||
int lasttxformat;
|
||||
int lastrxformat;
|
||||
int dtmfcount;
|
||||
unsigned int dtmfduration;
|
||||
int nat;
|
||||
unsigned int flags;
|
||||
struct sockaddr_in us; /*!< Socket representation of the local endpoint. */
|
||||
struct sockaddr_in them; /*!< Socket representation of the remote endpoint. */
|
||||
struct timeval rxcore;
|
||||
struct timeval txcore;
|
||||
double drxcore; /*!< The double representation of the first received packet */
|
||||
struct timeval lastrx; /*!< timeval when we last received a packet */
|
||||
struct timeval dtmfmute;
|
||||
struct ast_smoother *smoother;
|
||||
int *ioid;
|
||||
unsigned short seqno; /*!< Sequence number, RFC 3550, page 13. */
|
||||
unsigned short rxseqno;
|
||||
struct sched_context *sched;
|
||||
struct io_context *io;
|
||||
void *data;
|
||||
ast_rtp_callback callback;
|
||||
struct rtpPayloadType current_RTP_PT[MAX_RTP_PT];
|
||||
int rtp_lookup_code_cache_isAstFormat; /*!< a cache for the result of rtp_lookup_code(): */
|
||||
int rtp_lookup_code_cache_code;
|
||||
int rtp_lookup_code_cache_result;
|
||||
struct ast_rtcp *rtcp;
|
||||
};
|
||||
|
||||
/*!
|
||||
* \brief Initializate a RTP session.
|
||||
|
||||
62
rtp.c
62
rtp.c
@@ -97,74 +97,12 @@ static int ast_rtcp_write_sr(void *data);
|
||||
static int ast_rtcp_write_rr(void *data);
|
||||
static unsigned int ast_rtcp_calc_interval(struct ast_rtp *rtp);
|
||||
|
||||
/*! \brief The value of each payload format mapping: */
|
||||
struct rtpPayloadType {
|
||||
int isAstFormat; /*!< whether the following code is an AST_FORMAT */
|
||||
int code;
|
||||
};
|
||||
|
||||
#define MAX_RTP_PT 256
|
||||
|
||||
#define FLAG_3389_WARNING (1 << 0)
|
||||
#define FLAG_NAT_ACTIVE (3 << 1)
|
||||
#define FLAG_NAT_INACTIVE (0 << 1)
|
||||
#define FLAG_NAT_INACTIVE_NOWARN (1 << 1)
|
||||
#define FLAG_HAS_DTMF (1 << 3)
|
||||
|
||||
/*! \brief RTP session description */
|
||||
struct ast_rtp {
|
||||
int s;
|
||||
char resp;
|
||||
struct ast_frame f;
|
||||
unsigned char rawdata[8192 + AST_FRIENDLY_OFFSET];
|
||||
unsigned int ssrc; /*!< Synchronization source, RFC 3550, page 10. */
|
||||
unsigned int themssrc; /*!< Their SSRC */
|
||||
unsigned int rxssrc;
|
||||
unsigned int lastts;
|
||||
unsigned int lastdigitts;
|
||||
unsigned int lastrxts;
|
||||
unsigned int lastividtimestamp;
|
||||
unsigned int lastovidtimestamp;
|
||||
unsigned int lasteventseqn;
|
||||
int lastrxseqno; /*!< Last received sequence number */
|
||||
unsigned short seedrxseqno; /*!< What sequence number did they start with?*/
|
||||
unsigned int seedrxts; /*!< What RTP timestamp did they start with? */
|
||||
unsigned int rxcount; /*!< How many packets have we received? */
|
||||
unsigned int rxoctetcount; /*!< How many octets have we received? should be rxcount *160*/
|
||||
unsigned int txcount; /*!< How many packets have we sent? */
|
||||
unsigned int txoctetcount; /*!< How many octets have we sent? (txcount*160)*/
|
||||
unsigned int cycles; /*!< Shifted count of sequence number cycles */
|
||||
double rxjitter; /*!< Interarrival jitter at the moment */
|
||||
double rxtransit; /*!< Relative transit time for previous packet */
|
||||
unsigned int lasteventendseqn;
|
||||
int lasttxformat;
|
||||
int lastrxformat;
|
||||
int dtmfcount;
|
||||
unsigned int dtmfduration;
|
||||
int nat;
|
||||
unsigned int flags;
|
||||
struct sockaddr_in us; /*!< Socket representation of the local endpoint. */
|
||||
struct sockaddr_in them; /*!< Socket representation of the remote endpoint. */
|
||||
struct timeval rxcore;
|
||||
struct timeval txcore;
|
||||
double drxcore; /*!< The double representation of the first received packet */
|
||||
struct timeval lastrx; /*!< timeval when we last received a packet */
|
||||
struct timeval dtmfmute;
|
||||
struct ast_smoother *smoother;
|
||||
int *ioid;
|
||||
unsigned short seqno; /*!< Sequence number, RFC 3550, page 13. */
|
||||
unsigned short rxseqno;
|
||||
struct sched_context *sched;
|
||||
struct io_context *io;
|
||||
void *data;
|
||||
ast_rtp_callback callback;
|
||||
struct rtpPayloadType current_RTP_PT[MAX_RTP_PT];
|
||||
int rtp_lookup_code_cache_isAstFormat; /*!< a cache for the result of rtp_lookup_code(): */
|
||||
int rtp_lookup_code_cache_code;
|
||||
int rtp_lookup_code_cache_result;
|
||||
struct ast_rtcp *rtcp;
|
||||
};
|
||||
|
||||
/*!
|
||||
* \brief Structure defining an RTCP session.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user