SlideShare a Scribd company logo
1 of 25
FreeTDM PRI Passive Call Recording


            Moises Silva <moy@sangoma.com>
            Senior Software Engineer.
            Sangoma Technologies.




                                      02 Aug-2010 / 1
Agenda
•   What is FreeTDM.

•   FreeTDM API basics.

•   PRI passive line monitoring.

•   ftmod_pritap – The FreeTDM PRI tapping module.

•   PRI tapping with FreeSWITCH.




                                                     02 Aug-2010 / 2
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.




                                                              02 Aug-2010 / 3
FreeTDM Architecture




                       02 Aug-2010 / 4
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.




                                                            02 Aug-2010 / 5
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()
                                   02 Aug-2010 / 6
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.



                                                 02 Aug-2010 / 7
PRI Passive Monitoring




                         02 Aug-2010 / 8
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.




                                                                02 Aug-2010 / 9
PRI Passive Monitoring




                         02 Aug-2010 / 10
PRI Passive Monitoring

•   Connections between A102 and tapping box.




                                                02 Aug-2010 / 11
PRI Passive Monitoring

•   Connections between A102 and tapping box.




                                                02 Aug-2010 / 12
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




                                                 02 Aug-2010 / 13
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.




                                                            02 Aug-2010 / 14
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.




                                                              02 Aug-2010 / 15
FreeTDM Tapping Module




                         02 Aug-2010 / 16
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.




                                                            02 Aug-2010 / 17
Wanpipe Configuration

•   Interface in TDM_VOICE_API mode.

•   TE_HIGHIMPEDANCE = YES

•   Sample configs available:

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




                                                       02 Aug-2010 / 18
FreeTDM Configuration

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


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

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




                                                            02 Aug-2010 / 19
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.




                                                             02 Aug-2010 / 20
FreeSWITCH PRI tapping




                         02 Aug-2010 / 21
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>




                                                                             02 Aug-2010 / 22
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).




                                                                 02 Aug-2010 / 23
References


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

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

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




                                                06-Apr-10 / 24
Thank You!

          Questions and Comments?


Contact e-mail: moy@sangoma.com




                                    02 Aug-2010 / 25

More Related Content

What's hot

Philippe Langlois - LTE Pwnage - P1security
Philippe Langlois - LTE Pwnage - P1securityPhilippe Langlois - LTE Pwnage - P1security
Philippe Langlois - LTE Pwnage - P1securityP1Security
 
InfiltrateCon 2016 - Why Nation-State Hack Telco Networks
InfiltrateCon 2016 - Why Nation-State Hack Telco NetworksInfiltrateCon 2016 - Why Nation-State Hack Telco Networks
InfiltrateCon 2016 - Why Nation-State Hack Telco NetworksOmer Coskun
 
HITB Labs: Practical Attacks Against 3G/4G Telecommunication Networks
HITB Labs: Practical Attacks Against 3G/4G Telecommunication NetworksHITB Labs: Practical Attacks Against 3G/4G Telecommunication Networks
HITB Labs: Practical Attacks Against 3G/4G Telecommunication NetworksJim Geovedi
 
MPLS SDN 2015 - SPRING interoperability testing
MPLS SDN 2015 - SPRING interoperability testingMPLS SDN 2015 - SPRING interoperability testing
MPLS SDN 2015 - SPRING interoperability testingStephane Litkowski
 
Implementing MPLS Services using Openflow
Implementing MPLS Services using OpenflowImplementing MPLS Services using Openflow
Implementing MPLS Services using OpenflowAPNIC
 
SurfRider/AMC™ - Modular DSP Resource Board
SurfRider/AMC™ - Modular DSP Resource BoardSurfRider/AMC™ - Modular DSP Resource Board
SurfRider/AMC™ - Modular DSP Resource Boardwebhostingguy
 
ComNet NWKED Data Sheet
ComNet NWKED Data SheetComNet NWKED Data Sheet
ComNet NWKED Data SheetJMAC Supply
 
MIPI DevCon 2016: Accelerating UFS and MIPI UniPro Interoperability Testing
MIPI DevCon 2016: Accelerating UFS and MIPI UniPro Interoperability TestingMIPI DevCon 2016: Accelerating UFS and MIPI UniPro Interoperability Testing
MIPI DevCon 2016: Accelerating UFS and MIPI UniPro Interoperability TestingMIPI Alliance
 
Session Initiation Protocol
Session Initiation ProtocolSession Initiation Protocol
Session Initiation ProtocolMatt Bynum
 
Philippe Langlois - Hacking HLR HSS and MME core network elements
Philippe Langlois - Hacking HLR HSS and MME core network elementsPhilippe Langlois - Hacking HLR HSS and MME core network elements
Philippe Langlois - Hacking HLR HSS and MME core network elementsP1Security
 

What's hot (20)

Stun turn poc_pilot
Stun turn poc_pilotStun turn poc_pilot
Stun turn poc_pilot
 
PROFINET - applying the Ethernet standard to industral automation - Peter Th...
PROFINET  - applying the Ethernet standard to industral automation - Peter Th...PROFINET  - applying the Ethernet standard to industral automation - Peter Th...
PROFINET - applying the Ethernet standard to industral automation - Peter Th...
 
Demuxed 2020
Demuxed 2020Demuxed 2020
Demuxed 2020
 
Philippe Langlois - LTE Pwnage - P1security
Philippe Langlois - LTE Pwnage - P1securityPhilippe Langlois - LTE Pwnage - P1security
Philippe Langlois - LTE Pwnage - P1security
 
W4 profinet frame analysis, peter thomas
W4 profinet frame analysis, peter thomasW4 profinet frame analysis, peter thomas
W4 profinet frame analysis, peter thomas
 
InfiltrateCon 2016 - Why Nation-State Hack Telco Networks
InfiltrateCon 2016 - Why Nation-State Hack Telco NetworksInfiltrateCon 2016 - Why Nation-State Hack Telco Networks
InfiltrateCon 2016 - Why Nation-State Hack Telco Networks
 
PROFIBUS frame analysis - Peter Thomas of Control Specialists
PROFIBUS frame analysis - Peter Thomas of Control SpecialistsPROFIBUS frame analysis - Peter Thomas of Control Specialists
PROFIBUS frame analysis - Peter Thomas of Control Specialists
 
HITB Labs: Practical Attacks Against 3G/4G Telecommunication Networks
HITB Labs: Practical Attacks Against 3G/4G Telecommunication NetworksHITB Labs: Practical Attacks Against 3G/4G Telecommunication Networks
HITB Labs: Practical Attacks Against 3G/4G Telecommunication Networks
 
Ice
IceIce
Ice
 
NAT Traversal
NAT TraversalNAT Traversal
NAT Traversal
 
MPLS SDN 2015 - SPRING interoperability testing
MPLS SDN 2015 - SPRING interoperability testingMPLS SDN 2015 - SPRING interoperability testing
MPLS SDN 2015 - SPRING interoperability testing
 
Implementing MPLS Services using Openflow
Implementing MPLS Services using OpenflowImplementing MPLS Services using Openflow
Implementing MPLS Services using Openflow
 
SurfRider/AMC™ - Modular DSP Resource Board
SurfRider/AMC™ - Modular DSP Resource BoardSurfRider/AMC™ - Modular DSP Resource Board
SurfRider/AMC™ - Modular DSP Resource Board
 
ComNet NWKED Data Sheet
ComNet NWKED Data SheetComNet NWKED Data Sheet
ComNet NWKED Data Sheet
 
BGP persistence
BGP persistenceBGP persistence
BGP persistence
 
PROFINET network qualification Peter Thomas - oct 2015
PROFINET network qualification   Peter Thomas - oct 2015PROFINET network qualification   Peter Thomas - oct 2015
PROFINET network qualification Peter Thomas - oct 2015
 
MIPI DevCon 2016: Accelerating UFS and MIPI UniPro Interoperability Testing
MIPI DevCon 2016: Accelerating UFS and MIPI UniPro Interoperability TestingMIPI DevCon 2016: Accelerating UFS and MIPI UniPro Interoperability Testing
MIPI DevCon 2016: Accelerating UFS and MIPI UniPro Interoperability Testing
 
14 Net Quintum
14 Net Quintum14 Net Quintum
14 Net Quintum
 
Session Initiation Protocol
Session Initiation ProtocolSession Initiation Protocol
Session Initiation Protocol
 
Philippe Langlois - Hacking HLR HSS and MME core network elements
Philippe Langlois - Hacking HLR HSS and MME core network elementsPhilippe Langlois - Hacking HLR HSS and MME core network elements
Philippe Langlois - Hacking HLR HSS and MME core network elements
 

Similar to FreeTDM PRI Passive Recording

BRKRST-3068 Troubleshooting Catalyst 2K and 3K.pdf
BRKRST-3068  Troubleshooting Catalyst 2K and 3K.pdfBRKRST-3068  Troubleshooting Catalyst 2K and 3K.pdf
BRKRST-3068 Troubleshooting Catalyst 2K and 3K.pdfssusercbaa33
 
Firewalld : A New Interface to Your Netfilter Stack
Firewalld : A New Interface to Your Netfilter StackFirewalld : A New Interface to Your Netfilter Stack
Firewalld : A New Interface to Your Netfilter StackMahmoud Shiri Varamini
 
PLNOG14: Fortinet, Carrier and MSSP - Robert Dąbrowski
PLNOG14: Fortinet, Carrier and MSSP - Robert DąbrowskiPLNOG14: Fortinet, Carrier and MSSP - Robert Dąbrowski
PLNOG14: Fortinet, Carrier and MSSP - Robert DąbrowskiPROIDEA
 
PLNOG 7: Emil Gągała, Sławomir Janukowicz - carrier grade NAT
PLNOG 7: Emil Gągała,  Sławomir Janukowicz - carrier grade NAT PLNOG 7: Emil Gągała,  Sławomir Janukowicz - carrier grade NAT
PLNOG 7: Emil Gągała, Sławomir Janukowicz - carrier grade NAT PROIDEA
 
Next Gen Monitoring with INT
Next Gen Monitoring with INTNext Gen Monitoring with INT
Next Gen Monitoring with INTMyNOG
 
Krzysztof Mazepa - Netflow/cflow - ulubionym narzędziem operatorów SP
Krzysztof Mazepa - Netflow/cflow - ulubionym narzędziem operatorów SPKrzysztof Mazepa - Netflow/cflow - ulubionym narzędziem operatorów SP
Krzysztof Mazepa - Netflow/cflow - ulubionym narzędziem operatorów SPPROIDEA
 
ACIT - CCNA Training Course Topic - Switch Stp ACIT
ACIT - CCNA Training Course Topic - Switch Stp ACITACIT - CCNA Training Course Topic - Switch Stp ACIT
ACIT - CCNA Training Course Topic - Switch Stp ACITSleek International
 
PLNOG14: Czy można żyć bez systemu ochrony przed atakami DDoS - Marek Janik
PLNOG14: Czy można żyć bez systemu ochrony przed atakami DDoS - Marek JanikPLNOG14: Czy można żyć bez systemu ochrony przed atakami DDoS - Marek Janik
PLNOG14: Czy można żyć bez systemu ochrony przed atakami DDoS - Marek JanikPROIDEA
 
Coherent DSP meets open transport SDN
Coherent DSP meets open transport SDNCoherent DSP meets open transport SDN
Coherent DSP meets open transport SDNHidekiNishizawa
 
Transport SDN & OpenDaylight Use Cases in Korea
Transport SDN & OpenDaylight Use Cases in KoreaTransport SDN & OpenDaylight Use Cases in Korea
Transport SDN & OpenDaylight Use Cases in KoreaJustin Park
 
FIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media ServerFIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media ServerFIWARE
 
TTN (The Things Network) Dallas - June 29, 2017
TTN (The Things Network) Dallas - June 29, 2017TTN (The Things Network) Dallas - June 29, 2017
TTN (The Things Network) Dallas - June 29, 2017Marta Soncodi
 
PIT Overload Analysis in Content Centric Networks - Slides ICN '13
PIT Overload Analysis in Content Centric Networks - Slides ICN '13PIT Overload Analysis in Content Centric Networks - Slides ICN '13
PIT Overload Analysis in Content Centric Networks - Slides ICN '13Matteo Virgilio
 

Similar to FreeTDM PRI Passive Recording (20)

BRKRST-3068 Troubleshooting Catalyst 2K and 3K.pdf
BRKRST-3068  Troubleshooting Catalyst 2K and 3K.pdfBRKRST-3068  Troubleshooting Catalyst 2K and 3K.pdf
BRKRST-3068 Troubleshooting Catalyst 2K and 3K.pdf
 
TekTape Manual
TekTape ManualTekTape Manual
TekTape Manual
 
Firewalld : A New Interface to Your Netfilter Stack
Firewalld : A New Interface to Your Netfilter StackFirewalld : A New Interface to Your Netfilter Stack
Firewalld : A New Interface to Your Netfilter Stack
 
Vision one-customer
Vision one-customerVision one-customer
Vision one-customer
 
8051
80518051
8051
 
PLNOG14: Fortinet, Carrier and MSSP - Robert Dąbrowski
PLNOG14: Fortinet, Carrier and MSSP - Robert DąbrowskiPLNOG14: Fortinet, Carrier and MSSP - Robert Dąbrowski
PLNOG14: Fortinet, Carrier and MSSP - Robert Dąbrowski
 
PLNOG 7: Emil Gągała, Sławomir Janukowicz - carrier grade NAT
PLNOG 7: Emil Gągała,  Sławomir Janukowicz - carrier grade NAT PLNOG 7: Emil Gągała,  Sławomir Janukowicz - carrier grade NAT
PLNOG 7: Emil Gągała, Sławomir Janukowicz - carrier grade NAT
 
Next Gen Monitoring with INT
Next Gen Monitoring with INTNext Gen Monitoring with INT
Next Gen Monitoring with INT
 
Freeswitch isdn
Freeswitch isdnFreeswitch isdn
Freeswitch isdn
 
Krzysztof Mazepa - Netflow/cflow - ulubionym narzędziem operatorów SP
Krzysztof Mazepa - Netflow/cflow - ulubionym narzędziem operatorów SPKrzysztof Mazepa - Netflow/cflow - ulubionym narzędziem operatorów SP
Krzysztof Mazepa - Netflow/cflow - ulubionym narzędziem operatorów SP
 
ACIT - CCNA Training Course Topic - Switch Stp ACIT
ACIT - CCNA Training Course Topic - Switch Stp ACITACIT - CCNA Training Course Topic - Switch Stp ACIT
ACIT - CCNA Training Course Topic - Switch Stp ACIT
 
Sangoma SBC Training Presentation
Sangoma SBC Training PresentationSangoma SBC Training Presentation
Sangoma SBC Training Presentation
 
PLNOG14: Czy można żyć bez systemu ochrony przed atakami DDoS - Marek Janik
PLNOG14: Czy można żyć bez systemu ochrony przed atakami DDoS - Marek JanikPLNOG14: Czy można żyć bez systemu ochrony przed atakami DDoS - Marek Janik
PLNOG14: Czy można żyć bez systemu ochrony przed atakami DDoS - Marek Janik
 
ECI OpenFlow 2.0 the Future of SDN
ECI OpenFlow 2.0 the Future of SDN ECI OpenFlow 2.0 the Future of SDN
ECI OpenFlow 2.0 the Future of SDN
 
Coherent DSP meets open transport SDN
Coherent DSP meets open transport SDNCoherent DSP meets open transport SDN
Coherent DSP meets open transport SDN
 
hakin9_6-2006_str22-33_snort_EN
hakin9_6-2006_str22-33_snort_ENhakin9_6-2006_str22-33_snort_EN
hakin9_6-2006_str22-33_snort_EN
 
Transport SDN & OpenDaylight Use Cases in Korea
Transport SDN & OpenDaylight Use Cases in KoreaTransport SDN & OpenDaylight Use Cases in Korea
Transport SDN & OpenDaylight Use Cases in Korea
 
FIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media ServerFIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media Server
 
TTN (The Things Network) Dallas - June 29, 2017
TTN (The Things Network) Dallas - June 29, 2017TTN (The Things Network) Dallas - June 29, 2017
TTN (The Things Network) Dallas - June 29, 2017
 
PIT Overload Analysis in Content Centric Networks - Slides ICN '13
PIT Overload Analysis in Content Centric Networks - Slides ICN '13PIT Overload Analysis in Content Centric Networks - Slides ICN '13
PIT Overload Analysis in Content Centric Networks - Slides ICN '13
 

More from Moises Silva

FreeSWITCH Monitoring
FreeSWITCH MonitoringFreeSWITCH Monitoring
FreeSWITCH MonitoringMoises Silva
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceMoises Silva
 
Interfaces de Scripting para librerias en C
Interfaces de Scripting para librerias en CInterfaces de Scripting para librerias en C
Interfaces de Scripting para librerias en CMoises Silva
 
Vulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHPVulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHPMoises Silva
 
Manejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCHManejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCHMoises Silva
 
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskMoises Silva
 
SIP Testing with FreeSWITCH
SIP Testing with FreeSWITCHSIP Testing with FreeSWITCH
SIP Testing with FreeSWITCHMoises Silva
 
FreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk DevelopersFreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk DevelopersMoises Silva
 
FreeSWITCH: Asterisk con Esteroides
FreeSWITCH: Asterisk con EsteroidesFreeSWITCH: Asterisk con Esteroides
FreeSWITCH: Asterisk con EsteroidesMoises Silva
 
Negociacion de Codecs en Asterisk
Negociacion de Codecs en AsteriskNegociacion de Codecs en Asterisk
Negociacion de Codecs en AsteriskMoises Silva
 
Sangoma en el Ecosistema Open Source
Sangoma en el Ecosistema Open SourceSangoma en el Ecosistema Open Source
Sangoma en el Ecosistema Open SourceMoises Silva
 
Media Handling in FreeSWITCH
Media Handling in FreeSWITCHMedia Handling in FreeSWITCH
Media Handling in FreeSWITCHMoises Silva
 
OpenR2 in Asterisk
OpenR2 in AsteriskOpenR2 in Asterisk
OpenR2 in AsteriskMoises Silva
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCMoises Silva
 

More from Moises Silva (14)

FreeSWITCH Monitoring
FreeSWITCH MonitoringFreeSWITCH Monitoring
FreeSWITCH Monitoring
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
 
Interfaces de Scripting para librerias en C
Interfaces de Scripting para librerias en CInterfaces de Scripting para librerias en C
Interfaces de Scripting para librerias en C
 
Vulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHPVulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHP
 
Manejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCHManejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCH
 
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in Asterisk
 
SIP Testing with FreeSWITCH
SIP Testing with FreeSWITCHSIP Testing with FreeSWITCH
SIP Testing with FreeSWITCH
 
FreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk DevelopersFreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk Developers
 
FreeSWITCH: Asterisk con Esteroides
FreeSWITCH: Asterisk con EsteroidesFreeSWITCH: Asterisk con Esteroides
FreeSWITCH: Asterisk con Esteroides
 
Negociacion de Codecs en Asterisk
Negociacion de Codecs en AsteriskNegociacion de Codecs en Asterisk
Negociacion de Codecs en Asterisk
 
Sangoma en el Ecosistema Open Source
Sangoma en el Ecosistema Open SourceSangoma en el Ecosistema Open Source
Sangoma en el Ecosistema Open Source
 
Media Handling in FreeSWITCH
Media Handling in FreeSWITCHMedia Handling in FreeSWITCH
Media Handling in FreeSWITCH
 
OpenR2 in Asterisk
OpenR2 in AsteriskOpenR2 in Asterisk
OpenR2 in Asterisk
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
 

FreeTDM PRI Passive Recording

  • 1. FreeTDM PRI Passive Call Recording Moises Silva <moy@sangoma.com> Senior Software Engineer. Sangoma Technologies. 02 Aug-2010 / 1
  • 2. Agenda • What is FreeTDM. • FreeTDM API basics. • PRI passive line monitoring. • ftmod_pritap – The FreeTDM PRI tapping module. • PRI tapping with FreeSWITCH. 02 Aug-2010 / 2
  • 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. 02 Aug-2010 / 3
  • 4. FreeTDM Architecture 02 Aug-2010 / 4
  • 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. 02 Aug-2010 / 5
  • 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() 02 Aug-2010 / 6
  • 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. 02 Aug-2010 / 7
  • 8. PRI Passive Monitoring 02 Aug-2010 / 8
  • 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. 02 Aug-2010 / 9
  • 10. PRI Passive Monitoring 02 Aug-2010 / 10
  • 11. PRI Passive Monitoring • Connections between A102 and tapping box. 02 Aug-2010 / 11
  • 12. PRI Passive Monitoring • Connections between A102 and tapping box. 02 Aug-2010 / 12
  • 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 02 Aug-2010 / 13
  • 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. 02 Aug-2010 / 14
  • 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. 02 Aug-2010 / 15
  • 16. FreeTDM Tapping Module 02 Aug-2010 / 16
  • 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. 02 Aug-2010 / 17
  • 18. Wanpipe Configuration • Interface in TDM_VOICE_API mode. • TE_HIGHIMPEDANCE = YES • Sample configs available: – at http://wiki.sangoma.com/sangoma-tap-system 02 Aug-2010 / 18
  • 19. FreeTDM Configuration • Regular T1/E1 configuration parameters for 2 spans (or more). [span wanpipe tap1] trunk_type => T1 b-channel => 1:1-23 d-channel => 1:24 [span wanpipe tap2] trunk_type => T1 b-channel => 2:1-23 d-channel => 2:24 02 Aug-2010 / 19
  • 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. 02 Aug-2010 / 20
  • 21. FreeSWITCH PRI tapping 02 Aug-2010 / 21
  • 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> 02 Aug-2010 / 22
  • 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). 02 Aug-2010 / 23
  • 25. Thank You! Questions and Comments? Contact e-mail: moy@sangoma.com 02 Aug-2010 / 25

Editor's Notes

  1. For the hardware drivers, it should be “Wanpipe” instead of “Wanrouter”