diff options
author | Joshua Colp <jcolp@digium.com> | 2015-07-18 13:16:10 -0300 |
---|---|---|
committer | Joshua Colp <jcolp@digium.com> | 2015-07-24 12:43:02 -0300 |
commit | 27497217912a82ca243a9d5e9acfbbb597faf323 (patch) | |
tree | a461e85b877c4879eadae0f84024fb26735c630b /include/asterisk | |
parent | 1997b6f677f314f685ece102af9a70ed17fe63b5 (diff) |
pjsip: Add rtp_timeout and rtp_timeout_hold endpoint options.
This change adds support for the 'rtp_timeout' and 'rtp_timeout_hold'
endpoint options. These allow the channel to be hung up if RTP
is not received from the remote endpoint for a specified number of
seconds.
ASTERISK-25259 #close
Change-Id: I3f39daaa7da2596b5022737b77799d16204175b9
Diffstat (limited to 'include/asterisk')
-rw-r--r-- | include/asterisk/res_pjsip.h | 4 | ||||
-rw-r--r-- | include/asterisk/res_pjsip_session.h | 2 | ||||
-rw-r--r-- | include/asterisk/rtp_engine.h | 16 |
3 files changed, 22 insertions, 0 deletions
diff --git a/include/asterisk/res_pjsip.h b/include/asterisk/res_pjsip.h index cbd09e0e0..7c7b058cf 100644 --- a/include/asterisk/res_pjsip.h +++ b/include/asterisk/res_pjsip.h @@ -502,6 +502,10 @@ struct ast_sip_media_rtp_configuration { unsigned int encryption_optimistic; /*! Number of seconds between RTP keepalive packets */ unsigned int keepalive; + /*! Number of seconds before terminating channel due to lack of RTP (when not on hold) */ + unsigned int timeout; + /*! Number of seconds before terminating channel due to lack of RTP (when on hold) */ + unsigned int timeout_hold; }; /*! diff --git a/include/asterisk/res_pjsip_session.h b/include/asterisk/res_pjsip_session.h index 5489979ed..2893f66ab 100644 --- a/include/asterisk/res_pjsip_session.h +++ b/include/asterisk/res_pjsip_session.h @@ -79,6 +79,8 @@ struct ast_sip_session_media { pj_str_t transport; /*! \brief Scheduler ID for RTP keepalive */ int keepalive_sched_id; + /*! \brief Scheduler ID for RTP timeout */ + int timeout_sched_id; /*! \brief Stream is on hold */ unsigned int held:1; /*! \brief Stream type this session media handles */ diff --git a/include/asterisk/rtp_engine.h b/include/asterisk/rtp_engine.h index f57f4ea35..b7ac2a149 100644 --- a/include/asterisk/rtp_engine.h +++ b/include/asterisk/rtp_engine.h @@ -2304,6 +2304,22 @@ time_t ast_rtp_instance_get_last_tx(const struct ast_rtp_instance *rtp); */ void ast_rtp_instance_set_last_tx(struct ast_rtp_instance *rtp, time_t time); +/* + * \brief Get the last RTP reception time + * + * \param rtp The instance from which to get the last reception time + * \return The last RTP reception time + */ +time_t ast_rtp_instance_get_last_rx(const struct ast_rtp_instance *rtp); + +/*! + * \brief Set the last RTP reception time + * + * \param rtp The instance on which to set the last reception time + * \param time The last reception time + */ +void ast_rtp_instance_set_last_rx(struct ast_rtp_instance *rtp, time_t time); + /*! \addtogroup StasisTopicsAndMessages * @{ */ |