Skip to content
Snippets Groups Projects
  • George Joseph's avatar
    6e5e8445
    udptl: Don't eat sequence numbers until OK is received · 6e5e8445
    George Joseph authored
    Scenario:
    Local fax -> Asterisk w/ firewall -> Provider -> Remote fax
    
    * Local fax starts rtp call to remote fax
    * Remote fax starts t38 call back to local fax.
    * Local fax sends t38 no-signal to Asterisk before sending an OK.
    * udptl processes the frame and increments the expected sequence number.
    * chan_sip drops the frame because the call isn't up so nothing goes out
      the external interface to open the port for incoming packets.
    * Local fax sends OK and Asterisk sends OK to the remote fax.
    * Remote fax sends t38 packets which are dropped by the firewall.
    * Local fax re-sends t38 no-signal with the same sequence number.
    * udptl drops the frame because it thinks it's a dup.
    * Still no outgoing packets to open the firewall.
    * t38 negotiation fails.
    
    The patch drops frames t38 received before udptl sequence processing
    when the call hasn't been answered yet.  The second no-signal frame
    is then seen as new and is relayed out the external interface which
    opens the port and allows negotiation to continue.
    
    ASTERISK-26034 #close
    
    Change-Id: I11744b39748bd2ecbbe8ea84cdb4f3c5943c5af9
    6e5e8445
    History
    udptl: Don't eat sequence numbers until OK is received
    George Joseph authored
    Scenario:
    Local fax -> Asterisk w/ firewall -> Provider -> Remote fax
    
    * Local fax starts rtp call to remote fax
    * Remote fax starts t38 call back to local fax.
    * Local fax sends t38 no-signal to Asterisk before sending an OK.
    * udptl processes the frame and increments the expected sequence number.
    * chan_sip drops the frame because the call isn't up so nothing goes out
      the external interface to open the port for incoming packets.
    * Local fax sends OK and Asterisk sends OK to the remote fax.
    * Remote fax sends t38 packets which are dropped by the firewall.
    * Local fax re-sends t38 no-signal with the same sequence number.
    * udptl drops the frame because it thinks it's a dup.
    * Still no outgoing packets to open the firewall.
    * t38 negotiation fails.
    
    The patch drops frames t38 received before udptl sequence processing
    when the call hasn't been answered yet.  The second no-signal frame
    is then seen as new and is relayed out the external interface which
    opens the port and allows negotiation to continue.
    
    ASTERISK-26034 #close
    
    Change-Id: I11744b39748bd2ecbbe8ea84cdb4f3c5943c5af9