Summary:ASTERISK-11515: Do not process the UDPTL proxy under two sip channel (like in 1.4.18.x)
Reporter:Volnikov Ivan (ivan)Labels:
Date Opened:2008-02-26 07:39:35.000-0600Date Closed:2008-02-27 09:29:08.000-0600
Versions:Frequency of
Environment:Attachments:( 0) chan_sip_t38_proxy.patch
Description:Test system:
2 SIP Gateway with support t38 re-invate (for example, SPA2102 with 5.3.2 firmware)
The confirmation under SIP UDPTL sessions heppends successfully but
detection of fax signal do not process.


Detailed debugging has shown that one of channel in T38_PEER_REINVITE state, but another remains in T38_DISABLED when SDP_T38_ACCEPT action produced after SIP 200 OK signal.
This problem there is in the 1.6.beta3 and the 1.6.beta4 too.
If sombody needs fix this problem, use attached patch.
Probably, it not up to the end the exact decision, but it is efficient.
I tested this patch for compatibility with app_fax.
1.4.18 release worked propertly.
Comments:By: Dmitry Andrianov (dimas) 2008-02-26 18:23:10.000-0600

Hmmm. I found your patch after posting mine ( http://bugs.digium.com/view.php?id=12078 ). I believe we both fixing the same issue. However, honestly I do not think your patch is the good approach to fix the problem because it will make t38state inconsistent again. Imagine followin scenario:

1. Peers A and B are bridged
2. A doest T38 reinvite. t38state for A becomes PEER_REINVITE
3. Asterisk passes reinvite to peer B and DOES NOT change B's t38state - it remains T38_DISABLED. Which is not correct already.
4. When OK from B received B's state changes to T38_PEER_REINVITE and then a bit later to T38_ENABLED

So duging steps 3 and 4 t38state for peer B contained inconsistent values. My patch differs in items 3 and 4:
3. Asterisk passes reinvite to peer B and sets B's t38state to T38_LOCAL_REINVITE
4. When Asterisk received OK from B it changes B's state from T38_LOCAL_REINVITE to T38_ENABLED.

By: Dmitry Andrianov (dimas) 2008-02-26 18:23:56.000-0600

And also you are producing copy&paste lines ;=)

By: Digium Subversion (svnbot) 2008-02-27 09:28:39.000-0600

Repository: asterisk
Revision: 104533

U   trunk/channels/chan_sip.c
U   trunk/main/rtp.c

r104533 | file | 2008-02-27 09:27:39 -0600 (Wed, 27 Feb 2008) | 8 lines

Fix T38 passthrough regression introduced by state changes.
(closes issue ASTERISK-11519)
Reported by: dimas
     v1-12078.patch uploaded by dimas (license 88)
(closes issue ASTERISK-11515)
Reported by: Ivan