create DAHDI mirror sniffer
For further exploration of a variety of different ISDN equipment and protocols, we need a proper sniffer to trace communication not only on D- but also on B-channels.Existig systems are not good use cases:
- osmo-e1-recorder ("owns" the DAHDI devices/channels, for use with passive E1 tap)
- dahdi_pcap / dahdi_gsmtap (just for D-channel)
- dahdi_monitor doesn't work
- dahdi_rawdump works for single B-channel only, and has no signaling integration
The high-level functionality would be:
- open d-channel in RXMIRROR + TXMIRROR
- filter out Q.921 I-frames in both directions (ignore everything else)
- perform simplistic Q.931 decode of message type, call reference and IE iteration
- maintain table with call references, one entry per callref
- create on SETUP
- destroy at RELEASE/RELEASE_COMPLET
- destroy after timeout?
- decode/track ChannelID IE
- store B-channel number with call reference
- start capturing B-channel on CONNECT
- stop capturing B-channel when call is destroyed
- optional: add software HDLC for B channel to avoid transmitting large amounts of flag octets?
The data storage format could very well be the format of osmo-e1-recorder.