freetdm pri passive call recording

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

Upload: alexis-long

Post on 31-Dec-2015

43 views

Category:

Documents


1 download

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

TRANSCRIPT

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]