[asterisk-dev] [Code Review] IAX2 "Ghost" channels

David Vossel dvossel at digium.com
Fri May 15 12:35:27 CDT 2009


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.digium.com/r/246/
-----------------------------------------------------------

(Updated 2009-05-15 12:35:27.356456)


Review request for Asterisk Developers.


Changes
-------

Updated diff fixes some of Russell's comments.  The enum switch case is not possible in 1.4, so this patch is only for Trunk.


Summary
-------

There is a bug tracker issue where people are reporting "Ghost" channels in their 'iax2 show channels' output.  The confusion is caused by channels being listed as "(NONE)" with format "unknown".  These are not channels of coarse.  They are usually just pending registration or poke requests, but it is confusing output.  To help make sense of this I have added two columns to 'iax2 show channels'.  One shows the first message which started the transaction, and the second shows the last message sent by either side of the call.  This helps diagnose why the entry exists and why it may not go away.

For example: in the 'iax2 show channels' output below the registration happening in the second entry is to a device that has been removed from the network.  This entry will exist in the show channels output for quite sometime as Asterisk attempts to register with the device.  Being able to view that this "Channel" is in fact a registration, and that the last message is a REGREQ which has not received an ACK, makes this entry much more obvious. 

This is technically a new feature, but due to the amount of confusion this has caused I purpose placing it in the 1.4 and 1.6.x branches as well.  This may or may not resolve the issue it is associated with, but it will help weed out those having an actual issue with excess "Ghost" channels from those seeing something normal like a pending registration.  It will also help diagnose the cause of the excessive "Ghost" channels some users are reporting. 

--------------EXAMPLE OUTPUT-------------

*CLI> iax2 show channels
Channel               Peer             Username    ID (Lo/Rem)  Seq (Tx/Rx)  Lag      Jitter  JitBuf  Format  Start Message  Last Message
IAX2/iaxy-15318       10.24.20.218     iaxy        12718/10329  00002/00002  00000ms  0000ms  0040ms  unknow  NEW            ACK    
(None)                10.24.16.238     (None)      15109/00000  00001/00000  00000ms  0000ms  0040ms  unknow  REGREQ         REGREQ 


*CLI> iax2 show netstats
                           -------- LOCAL ---------------------  -------- REMOTE --------------------
Channel               RTT  Jit  Del  Lost   %  Drop  OOO  Kpkts  Jit  Del  Lost   %  Drop  OOO  Kpkts Start Message
IAX2/iaxy-15318      1000    0   40     0   0     0    0      0    0    0     0   0     0    0      0 NEW    
(None)               1000    0   40     0   0     0    0      0    0    0     0   0     0    0      0 REGREQ 
2 active IAX channels


This addresses bug 0014207.
    https://issues.asterisk.org/view.php?id=0014207


Diffs (updated)
-----

  /trunk/channels/iax2-parser.h 194685 
  /trunk/channels/iax2-parser.c 194685 
  /trunk/channels/iax2.h 194685 
  /trunk/channels/chan_iax2.c 194685 

Diff: http://reviewboard.digium.com/r/246/diff


Testing
-------

tested iax2 show netstats and iax2 show channels, output is shown above.


Thanks,

David




More information about the asterisk-dev mailing list