res_pjsip_session Added rtcp stats result vector into the session

Currently, the Asterisk's pjsip_session module does not keeping the
rtcp's stats info after it was removed. But by adding the results
vector and keeping it until session is destroying, it can give more
useful information for other modules.

ASTERISK-28253

Change-Id: Ib25c2d3fc4da084aecfde2a82c1b1d733bd64fa5
This commit is contained in:
Sungtae Kim
2019-01-22 13:02:50 +01:00
committed by sungtae kim
parent b327b0bbda
commit 3fe40c0c05
2 changed files with 63 additions and 0 deletions

View File

@@ -215,6 +215,8 @@ struct ast_sip_session {
enum ast_sip_dtmf_mode dtmf;
/*! Initial incoming INVITE Request-URI. NULL otherwise. */
pjsip_uri *request_uri;
/* Media statistics for negotiated RTP streams */
AST_VECTOR(, struct ast_rtp_instance_stats *) media_stats;
};
typedef int (*ast_sip_session_request_creation_cb)(struct ast_sip_session *session, pjsip_tx_data *tdata);
@@ -828,6 +830,13 @@ struct ast_sip_session_media_state *ast_sip_session_media_state_alloc(void);
struct ast_sip_session_media *ast_sip_session_media_state_add(struct ast_sip_session *session,
struct ast_sip_session_media_state *media_state, enum ast_media_type type, int position);
/*!
* \brief Save a media stats.
*
* \param media_state The media state to save
*/
void ast_sip_session_media_stats_save(struct ast_sip_session *sip_session, struct ast_sip_session_media_state *media_state);
/*!
* \brief Reset a media state to a clean state
* \since 15.0.0