diff options
author | Mark Michelson <mmichelson@digium.com> | 2015-07-09 14:17:53 -0500 |
---|---|---|
committer | Mark Michelson <mmichelson@digium.com> | 2015-07-20 09:52:10 -0500 |
commit | d9094ddd73410fc4da65795511dc6912e007d503 (patch) | |
tree | 2eef3e6618dcdb2016c8ba909b03add5aaed7eab /res/res_rtp_asterisk.c | |
parent | 34207887e6e6adbd7c9ff9e9ea1954d612e125a4 (diff) |
res_pjsip: Add rtp_keepalive endpoint option.
This adds an "rtp_keepalive" option for PJSIP endpoints. Similar to the
chan_sip option, this specifies an interval, in seconds, at which we
will send RTP comfort noise frames. This can be useful for keeping RTP
sessions alive as well as keeping NAT associations alive during lulls.
ASTERISK-25242 #close
Reported by Mark Michelson
Change-Id: I06660ba672c0a343814af4cec838e6025cafd54b
Diffstat (limited to 'res/res_rtp_asterisk.c')
-rw-r--r-- | res/res_rtp_asterisk.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index adce9e7ed..5d206c1a0 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -2166,6 +2166,7 @@ static int __rtp_sendto(struct ast_rtp_instance *instance, void *buf, size_t siz void *temp = buf; struct ast_rtp *rtp = ast_rtp_instance_get_data(instance); struct ast_srtp *srtp = ast_rtp_instance_get_srtp(instance); + int res; *ice = 0; @@ -2184,7 +2185,11 @@ static int __rtp_sendto(struct ast_rtp_instance *instance, void *buf, size_t siz } #endif - return ast_sendto(rtcp ? rtp->rtcp->s : rtp->s, temp, len, flags, sa); + res = ast_sendto(rtcp ? rtp->rtcp->s : rtp->s, temp, len, flags, sa); + if (res > 0) { + ast_rtp_instance_set_last_tx(instance, time(NULL)); + } + return res; } static int rtcp_sendto(struct ast_rtp_instance *instance, void *buf, size_t size, int flags, struct ast_sockaddr *sa, int *ice) |