25
02 Aug-2010 / 1 FreeTDM PRI Passive Call Recording Moises Silva <[email protected]> Senior Software Engineer. Sangoma Technologies.

FreeTDM PRI Passive Call Recording

Embed Size (px)

DESCRIPTION

FreeTDM PRI Passive Call Recording. Moises Silva Senior Software Engineer. Sangoma Technologies. Agenda. What is FreeTDM. FreeTDM API basics. PRI passive line monitoring. ftmod_pritap – The FreeTDM PRI tapping module. PRI tapping with FreeSWITCH. - PowerPoint PPT Presentation

Citation preview

Page 1: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 1

FreeTDM PRI Passive Call Recording

Moises Silva <[email protected]>

Senior Software Engineer.

Sangoma Technologies.

Page 2: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 2

Agenda

• What is FreeTDM.

• FreeTDM API basics.

• PRI passive line monitoring.

• ftmod_pritap – The FreeTDM PRI tapping module.

• PRI tapping with FreeSWITCH.

Page 3: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 3

FreeTDM Architecture

• libfreetdm.– Generic unified “C” API for PSTN I/O and signaling.

• Modular architecture.• I/O modules.

– Sangoma, DAHDI, PIKA.• Signaling modules.

– isdn, libpri, ss7, pritap, openr2.• mod_freetdm.

– Interface to FreeSWITCH.

Page 4: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 4

FreeTDM Architecture

Page 5: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 5

FreeTDM Architecture

• FreeTDM is the new name of OpenZAP.

• FreeTDM introduces new features and better integration with new Sangoma signaling stacks.

• Sangoma is committed to support FreeTDM and use it as its own signaling and I/O high level API.

Page 6: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 6

FreeTDM API basics

• Span and channel-based API

• I/O API

– ftdm_channel_open()

– ftdm_channel_read/write()

– ftdm_channel_wait()

– ftdm_channel_command()

– ftdm_channel_close()

– ftdm_span_poll_event()

– ftdm_span_next_event()

Page 7: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 7

FreeTDM API basics

• Call control API (signaling)

– ftdm_channel_call_place()

– ftdm_channel_call_indicate()

– ftdm_channel_call_hold/unhold()

– ftdm_channel_call_hangup()

• Outgoing call events through callbacks

– SIGEVENT_START, SIGEVENT_STOP, SIGEVENT_PROGRESS, SIGEVENT_UP etc.

Page 8: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 8

PRI Passive Monitoring

Page 9: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 9

PRI Passive Monitoring

• Also known as tapping, call tapping, wire tapping etc.

• Captures signaling (D-channel) and voice traffic in T1/E1 link.

• Typical applications:

– Call logging.

– Call recording.

– Lawful interception.

– Inbound/Outbound call centers quality assurance.

Page 10: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 10

PRI Passive Monitoring

Page 11: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 11

PRI Passive Monitoring

• Connections between A102 and tapping box.

Page 12: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 12

PRI Passive Monitoring

• Connections between A102 and tapping box.

Page 13: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 13

PRI Passive Monitoring

• 2 Sangoma ports needed per link.

• Tapping box (PN 633) ensures quality.

• High impedance mode in the card.

• Wanpipe drivers drop any tx data.

• One port for Tx NET, other for TX CPE

Span 1 Span 2

Page 14: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 14

PRI Passive Monitoring

• Raw tapping can be achieved with wanpipemon (pcap file).

• Raw access to D-channel messages through libsangoma.

• Voice from NET in span 1, voice from CPE in span 2. In this mode, mixing is up to the user.

Page 15: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 15

FreeTDM PRI Tapping Module

• Easier API in C for PRI tapping.

• You configure your spans with “pritap” signaling.

• Calls are reported through regular SIGEVENT_ messages.

• Using I/O FreeTDM API you can access the mixed stream.

– ftdm_channel_read(ftdmchan) returns the stream already mixed.

Page 16: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 16

FreeTDM Tapping Module

Page 17: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 17

FreeTDM PRI Tapping Module

• Uses passive version of libpri for message decoding.

– http://svn.digium.com/svn/libpri/team/moy/tap-1.4/

• Decodes IE’s on SETUP, PROCEED, ALERTING, CONNECT, DISCONNECT, etc

• Planning to move to independent decoder to drop dependency.

• Configure FreeTDM with –with-pritap to enable ftmod_pritap.so.

Page 18: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 18

Wanpipe Configuration

• Interface in TDM_VOICE_API mode.

• TE_HIGHIMPEDANCE = YES

• Sample configs available:

– at http://wiki.sangoma.com/sangoma-tap-system

Page 19: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 19

FreeTDM Configuration

• Regular T1/E1 configuration parameters for 2 spans (or more).

[span wanpipe tap1]trunk_type => T1b-channel => 1:1-23d-channel => 1:24

[span wanpipe tap2]trunk_type => T1b-channel => 2:1-23d-channel => 2:24

Page 20: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 20

FreeSWITCH PRI tapping

• No changes at all needed in FreeSWITCH.

• FreeTDM reports tapped calls to FreeSWITCH as regular incoming calls.

• You use FreeSWITCH dial plan to do recording, logging or any other supported FreeSWITCH application on the tapped call.

– <action application=“record” data=“….”>

• Any application doing any writing won’t really do anything.

Page 21: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 21

FreeSWITCH PRI tapping

Page 22: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 22

FreeSWITCH PRI tapping Configuration

• XML configuration in autoload_configs/freetdm.conf.xml

<configuration name="freetdm.conf" description="FreeTDM Configuration"> <pritap_spans>

<span name="tap1”> <param name="peerspan" value="tap2"/> <param name="dialplan" value="XML"/> <param name="context" value="default"/> </span>

<span name="tap2”> <param name="peerspan" value="tap1"/> <param name="dialplan" value="XML"/> <param name="context" value="default"/> </span>

</pritap_spans></configuration>

Page 23: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 23

Conclusion

• You can build now a passive call recorder/logger easily.

• Tapped system can be any PRI switch/telco.

• Available in API mode or using standard FreeSWITCH/FreeTDM integration.

• Extensible through regular dial plan logic (XML, LUA etc).

Page 24: FreeTDM PRI Passive Call Recording

06-Apr-10 / 24

References

- http://wiki.sangoma.com/sangoma-tap-system

- http://wiki.sangoma.com/wanpipe-api-freetdm

- http://wiki.sangoma.com/wanpipe-freeswitch

Page 25: FreeTDM PRI Passive Call Recording

02 Aug-2010 / 25

Thank You!

Questions and Comments?

Contact e-mail: [email protected]