res_pjsip_session: Fix issue where a declined media stream in a re-INVITE would fail SDP negotiation.

In the past the SDP negotiation within res_pjsip_session was made more tolerant of
certain situations. The only case where SDP negotiation will fail is when a major
error occurs during negotiation. Receiving an already declined media stream is
not considered a major error.

When producing the local SDP the logic took this into account so on the initial INVITE
the declined media stream did not cause an SDP negotiation failure. Unfortunately
the logic for handling media streams with a handler did not mirror this logic and
considered an already declined media stream an error and thus failed the SDP
negotiation.

This change makes the logic between both situations match so only under major
errors will the SDP negotiation fail.

ASTERISK-24607 #close
Reported by: Matt Jordan

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


git-svn-id: http://svn.asterisk.org/svn/asterisk/branches/13@429407 f38db490-d61c-443f-a65b-d21fe96a405b
res_pjsip_session: Delay sending BYE if a re-INVITE transaction is in progress.

Given the scenario where a PJSIP channel is in a native RTP bridge with direct
media and the channel is then hung up the code will currently re-INVITE the channel
back to Asterisk and send a BYE at the same time. Many SIP implementations dislike
this greatly.

This change makes it so that if a re-INVITE transaction is in progress the BYE
is queued to occur after the completion of the transaction (be it through normal
means or a timeout).

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


git-svn-id: http://svn.asterisk.org/svn/asterisk/branches/13@429409 f38db490-d61c-443f-a65b-d21fe96a405b