res_pjsip_session.c: Fix unbound srv failover tests.
authorRichard Mudgett <rmudgett@digium.com>
Wed, 17 Aug 2016 19:13:56 +0000 (14:13 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 17 Aug 2016 21:14:11 +0000 (16:14 -0500)
commit0b4fa6553262f94bcb0d37e279e0dc499c0fdd38
tree0ebabe5761840aed2dafd54d90f2f1b4416ec0fb
parent57f4e4428a830c89436bf5025ca815a4e35776ac
res_pjsip_session.c: Fix unbound srv failover tests.

Commit 1b666549f33d69dc080b212bf92126f3bc3a18b2 broke the srv failover
functionality if a TCP connection gets disconnected.  Under these
conditions, session_inv_on_state_changed() gets a
PJSIP_EVENT_TRANSPORT_ERROR and restarts the INVITE transaction on a new
transport.  Unfortunately, session_inv_on_tsx_state_changed() also gets
the same PJSIP_EVENT_TRANSPORT_ERROR event and unconditionally terminates
the session.

* Made session_inv_on_tsx_state_changed() complete terminating the session
on PJSIP_EVENT_TRANSPORT_ERROR only if the session state is still
PJSIP_INV_STATE_DISCONNECTED.

ASTERISK-26305 #close
Reported by: Richard Mudgett

Change-Id: If736e766b5c55b970fa38ca6c8a885caf27b897d
res/res_pjsip_session.c