[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