Fix SRTP for changing SSRC and multiple a=crypto SDP lines

Adding code to Asterisk that changed the SSRC during bridges and masquerades
broke SRTP functionality. Also broken was handling the situation where an
incoming INVITE had more than one crypto offer. This patch caches the SRTP
policies the we use so that we can change the ssrc and inform libsrtp of the
new streams. It also uses the first acceptable a=crypto line from the incoming
INVITE.

(closes issue #17563)
Reported by: Alexcr
Patches: 
      srtp.diff uploaded by twilson (license 396)
Tested by: twilson

Review: https://reviewboard.asterisk.org/r/878/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@284477 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Terry Wilson
2010-09-01 18:44:36 +00:00
parent 6ade370974
commit 8a112de270
5 changed files with 110 additions and 9 deletions

View File

@@ -282,6 +282,10 @@ static void instance_destructor(void *obj)
return;
}
if (instance->srtp) {
res_srtp->destroy(instance->srtp);
}
/* Drop our engine reference */
ast_module_unref(instance->engine->mod);