Discussion:
[asterisk-users] Copying received and sent RTP packets due legal obligations
Holger Freyther
2017-07-12 21:30:15 UTC
Permalink
Hi,

I am facing a problem where for legal obligations (LI) I have
to copy/mirror/forward the RTP streams for some selected call
to an external address/port and I have not found a way to do
it with built-in functionality. Do I miss something?


The basic requirements are:

* Raw RTP (no transcoding, header and payload as is)
* Direction (did it arrive at asterisk or was it sent)
* End indication once the call has been cleared


I tried to use app_chanspy and ran into three different problems:

- It is always transcoding
- No support for input only on the audiohooks used
by app_chanspy (send input, output to two different
dest ports)
- End of call only through hangup


A post mentioned the framehooks but from what I see:

- It is the audio payload but not the RTP header
- I considered to rebuild the RTP header but:
ast_rtp_instance can't give me the rx SSRC, rx SQNO,...



Currently we are extending ast_rtp_instance to have a mirror_audio
function pointer with dest ip/dest port and a custom protocol to send
the rtp frames. And we have extended ast_channel_tech to add a
start_mirror function pointer and have implemented it for chan_sip
and chan_pjsip. They find the ast_rtp_instance and then call the
mirror_audio method on it. Finally there is an AMI handler to initiate
the mirroring for a given Call-Id on the right ast_channel.



We would like to avoid modifying asterisk and wonder how we could
move forward? Is there any hope to get our modifications included?
Could there be a framehook for the rtp frame (with remote peer info)?
Extend ast_rtp_instance to export more info about the RX info? Anything
else?

looking forward for feedback and hints

holger
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users
Mark Wiater
2017-07-12 21:43:32 UTC
Permalink
I have to copy/mirror/forward the RTP streams for some selected call
to an external address/port
I'd think that what you want to do might be best done outside of
Asterisk. If you're working with SIP, I'd suggest packet capture tools.
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users
Glenn Geller (VDOPh)
2017-07-12 22:50:42 UTC
Permalink
I'd suggest you take a look at Voipmonitor, it may have what you need in
the community version. It's built for monitoring SIP/VoIP traffic.

Pretty inexpensive to license the reporting tool as well, if needed.

Also, you may need to have a switch/router that supports port mirroring.

Thanks,

*Glenn*
Post by Mark Wiater
I have to copy/mirror/forward the RTP streams for some selected call
to an external address/port
I'd think that what you want to do might be best done outside of
Asterisk. If you're working with SIP, I'd suggest packet capture tools.
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
Check out the new Asterisk community forum at: https://community.asterisk.
org/
https://wiki.asterisk.org/wiki/display/AST/Getting+Started
asterisk-users mailing list
http://lists.digium.com/mailman/listinfo/asterisk-users
Loading...