]> git.ipfire.org Git - thirdparty/asterisk.git/commit
res_pjsip_sdp_rtp: Fix multiple keepalive scheduled items. 60/1160/1
authorJoshua Colp <jcolp@digium.com>
Sat, 29 Aug 2015 01:22:45 +0000 (22:22 -0300)
committerJoshua Colp <jcolp@digium.com>
Sat, 29 Aug 2015 01:22:45 +0000 (22:22 -0300)
commit1b1561f4c854c37691bd24227b8f722d1dac4291
tree2f12192460705eb887030ee7f16dcb6637f6862c
parentb5801fe42c37f4a9c075b2e96b108ce2344d23e9
res_pjsip_sdp_rtp: Fix multiple keepalive scheduled items.

The keepalive support in res_pjsip_sdp_rtp currently assumes
that a stream will only be negotiated once. This is false.
If the stream is replaced and later added back it can be
negotiated again causing multiple keepalive scheduled items
to exist. This change explicitly deletes the existing
keepalive scheduled item before adding the new one.

The res_pjsip_sdp_rtp module also does not stop RTP
keepalives or timeout timer if the stream has been
replaced. This change adds a callback to the session media
interface to allow a media stream to be stopped without
the resources being destroyed. This allows the scheduled
items and RTP to be stopped when the stream no longer
exists.

ASTERISK-25356 #close

Change-Id: Ibe6a7cc0927c87326fd5f1c0d4ad889dbfbea1de
include/asterisk/res_pjsip_session.h
res/res_pjsip_sdp_rtp.c
res/res_pjsip_session.c