[asterisk-bugs] [Asterisk 0017506]: MSG_OOB flag on HANGUP packet misused

Asterisk Bug Tracker noreply at bugs.digium.com
Tue Jun 15 09:51:59 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=17506 
====================================================================== 
Reported By:                brycebaril
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   17506
Category:                   Resources/res_agi
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
Asterisk Version:           Older 1.6.2 - please test a newer version 
JIRA:                        
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2010-06-14 15:51 CDT
Last Modified:              2010-06-15 09:51 CDT
====================================================================== 
Summary:                    MSG_OOB flag on HANGUP packet misused
Description: 
When using fast AGI and the AGISIGHUP flag is enabled, Asterisk sends an
Out-of-Band "HANGUP\n" packet when the channel is terminated.  It uses the
MSG_OOB flag to send it URG/Out-of-Band via TCP.

This TCP feature is generally not used and not reliable (e.g.
http://en.wikipedia.org/wiki/Transmission_Control_Protocol#Out_of_band_data
) and in this case will cause only the "\n" character to be sent OOB.  The
"HANGUP" is still sent in-band, and can cause buffering issues --
especially with the "\n" being sent in a different band.  

Even if the developer sets socket options to get the OOB data in-band, the
"\n" will come in prior to the "HANGUP" because it is a higher priority.

I suggest dropping the "MSG_OOB" flag from this packet, as it doesn't seem
to do any good, and possibly only does harm.
====================================================================== 

---------------------------------------------------------------------- 
 (0123418) tilghman (administrator) - 2010-06-15 09:51
 https://issues.asterisk.org/view.php?id=17506#c123418 
---------------------------------------------------------------------- 
Actually, the MSG_OOB is a misnomer, because messages aren't actually sent
out of band; the urgent flag is set and the urgent pointer is set to the
last byte of the message (which is why you see the '\n').  Both the
"HANGUP" and the "\n" are sent in band, both at the same time, and they
cannot occur outside of the protocol, other than to say that the "HANGUP\n"
will be received by the AGI at a time when it normally would be writing a
command.

In fact, what you should be doing in your FastAGI is setting a handler for
the SIGURG signal, which is normally ignored, so you can receive a
notification when the urgent packet arrives (but arrives in band). 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-06-15 09:51 tilghman       Note Added: 0123418                          
======================================================================




More information about the asterisk-bugs mailing list