[asterisk-bugs] [DAHDI-linux 0016831]: [patch] adding ss7 pcap support to dahdi

Asterisk Bug Tracker noreply at bugs.digium.com
Wed Oct 6 11:21:39 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=16831 
====================================================================== 
Reported By:                tsearle
Assigned To:                
====================================================================== 
Project:                    DAHDI-linux
Issue ID:                   16831
Category:                   NewFeature
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     feedback
JIRA:                        
Reviewboard Link:            
====================================================================== 
Date Submitted:             2010-02-15 16:20 CST
Last Modified:              2010-10-06 11:21 CDT
====================================================================== 
Summary:                    [patch] adding ss7 pcap support to dahdi
Description: 
as per the thread on the libss7 mailing list

1. changes to the dahdi driver to add ioctls to mirror reads/writes
from a signaling channel to a pseudo channel
2. a corresponding user app to set up the mirroring and record the
traffic in a pcap

This seems to work though I'm not sure if it's the best solution
design-wise.
I might be abusing the pseudo channel concept.

to compile the app do the following
gcc dahdi_pcap.c -o dahdi_pcap -lpcap

and the syntax to run it is
./dahdi_pcap chan1  [chan2]* pcap.pcap

e.g.
./dahdi_pcap 16 47 test.pcap
====================================================================== 

---------------------------------------------------------------------- 
 (0127758) tsearle (reporter) - 2010-10-06 11:21
 https://issues.asterisk.org/view.php?id=16831#c127758 
---------------------------------------------------------------------- 
It has been a quite a long time since I've looked at the code, but I think
that's still not good enough

This is how Monitoring is being done


        case DAHDI_CONF_MONITORTX: /* Monitor a channel's tx mode */
              /* if a pseudo-channel, ignore */
            if (ms->flags & DAHDI_FLAG_PSEUDO) break;
            /* Add monitored channel */
            if (chans[ms->confna]->flags & DAHDI_FLAG_PSEUDO) {
                ACSS(getlin, chans[ms->confna]->putlin);
            } else {
                ACSS(getlin, chans[ms->confna]->getlin);
            }


It's doing both audio mixing (nasty) from a linear audio buffer (which I
doubt is populated in the case of a signaling channel

and as the process is done in __dahdi_process_getaudio_chunk  I doubt the
could would be even reached in the case of a signaling channel.

Likewise the tx monitoring is done by


        case DAHDI_CONF_MONITORTX:  /* Monitor a channel's tx mode */
              /* if not a pseudo-channel, ignore */
            if (!(ms->flags & DAHDI_FLAG_PSEUDO)) break;
            /* Add monitored channel */
            if (chans[ms->confna]->flags & DAHDI_FLAG_PSEUDO) {
                ACSS(putlin, chans[ms->confna]->putlin);
            } else {
                ACSS(putlin, chans[ms->confna]->getlin);
            }

in the method

__dahdi_process_getaudio_chunk



so I don't think this logic is very reusable for signaling... :-( 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-10-06 11:21 tsearle        Note Added: 0127758                          
======================================================================




More information about the asterisk-bugs mailing list