[Freeswitch-dev] switch_core_media_bug_add and some related questions
Leon de Rooij
leon at scarlet-internet.nl
Thu Oct 1 02:45:34 PDT 2009
Hi all,
I'm trying to make a legal intercept module. My first attempt was to
get the raw RTP packets from switch_frame_t, but they don't seem to be
available. My second attempt is to get the raw pcm data from the
frames, which seems to work. I still have a few questions though:
- On setting the mediabug (switch_core_media_bug_add), I can pass an
enum. Is there a difference between SMBF_BOTH (0) or SMBF_READ_STREAM
| SMBF_WRITE_STREAM (1+2=3) ?
- In the callback function passed to the bug, what does each of the
following switch_abc_type_t mean ? At first I assumed that READ and
WRITE state the direction of the media, but some recording functions
only use the READ so that can't be true.
SWITCH_ABC_TYPE_INIT
SWITCH_ABC_TYPE_READ_PING
SWITCH_ABC_TYPE_CLOSE
SWITCH_ABC_TYPE_READ
SWITCH_ABC_TYPE_WRITE
SWITCH_ABC_TYPE_READ_REPLACE
SWITCH_ABC_TYPE_WRITE_REPLACE
- When the callback function is called with SWITCH_ABC_TYPE_READ, I'm
doing a switch_core_media_bug_read to copy all media to a
switch_frame_t. To then get the raw data, I see in many examples that
the size of the frame is retrieved by "(switch_size_t) frame.datalen /
2". Why the division by two ?
- I thought that frame.data contained a un-encoded version of the RTP
packet, but the datalen seems to differ when I'm calling in over g711
or g722. What format is frame.data ?
Thanks a lot !
regards,
Leon
More information about the FreeSWITCH-dev
mailing list