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:43 -0300 |
commit | 309dd2a4090ccdd1ea31d8d5415a645daddd3883 (patch) | |
tree | 625855c3191c70217c6087593767baf3e0a0cb6d /include | |
parent | a105461f9eadbacb684fe3751cddae2a7f400dea (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')
-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 432a1689e..decb4177a 100644 --- a/include/asterisk/res_pjsip.h +++ b/include/asterisk/res_pjsip.h @@ -504,6 +504,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 c088d039a..734a887b3 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 by remote side */ unsigned int remotely_held:1; /*! \brief Stream is on hold by local side */ diff --git a/include/asterisk/rtp_engine.h b/include/asterisk/rtp_engine.h index c7a7f1d20..a782c7531 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 * @{ */ |