Card Driver- Overview

What is the Sangoma Wanpipe Driver

Wanpipe is Sangoma's suite of linux/windows kernel device drivers and utilities that enable all Sangoma TDM boards.  Sangoma kernel device driver (WanpipeTM) is a unified linux & windows code base offering OS agnostic hardware support for all Sangoma TDM boards.

 

Wanpipe drivers are multi-functional and cross purpose  

  • Asterisk/Dahdi Support
    Wanpipe drivers link Sangoma hardware/boards to Astersk DAHDI kernel interface.
    This feature allows Asterisk to work with Sangoma boards via DAHDI interface.
     

  • FreeSWITCH Support
    Wanpipe drivers link Sangoma hardware/boards to FreeSWITCH FreeTDM interface.
    This feature allows FreeSWITCH to work with Sangoma boards via FreeTDM.
    Sangoma actively maintains FreeSWITCH FreeTDM SDK.
     

  • TDM Voice API
    Wanpipe drivers provide a comprehensive SDK for developing custom Voice related applications on top of Sangoma TDM hardware.
    Developers can build custom applications such as 

    • TDM to SIP applications

    • Tapping applications

    • Call recording applications

    • Network analysis applications

    • Fraud detection applications 

    • Network testing and traffic generator applications

  • DATA API
    Wanpipe drivers provide a comprehensive SDK for developing custom Data related applications on top of Sangoma TDM hardware
    Developers can build custom applications such as  

    • Network analysis applications

    • Fraud detection applications

    • Billing applications

    • Network testing and traffic generator applications

    • Custom data protocols on top of TDM interfaces

  • DATA TCP/IP Routing 
    Wanpipe drivers link to Linux or Windows IP network stacks in order to provide WAN connectivity over T1/E1/Serial interfaces.
    Customers can build flexible embedded WAN routers and data gateways.
     

 

Sangoma TDM Software/Hardware Features for VoIP

  1. Hardware assisted TDM De-Multiplexing
    Sangoma was first to introduce an FPGA into the Asterisk board market.
    Using flexible FPGA paltform, the T1/E1 de-multiplexing is done at the hardware level.
    This allows software to receive each T1/E1 timeslot stream without the need to copy
    and manipulate the data in the driver.
     

  2. Sangoma Driver ZERO Copy 
    Taking the advantage of the Hardware assisted T1/E1 Demultiplexing 
    Each T1/E1 timeslot data stream is directly written into DAHDI buffers via hardware DMA.
    Effectively the hardware writes and reads T1/E1 voice streams directly to and from DAHDI buffers.
     

  3. Sangoma Adjustable Chunk Size
    Zaptel and DAHDI have always supported adjustable chunk sizes. However Digium hardware was not flexible
    enough to take advantage of them. Sangoma hardware has been specifically designed for this purpose to 
    take advantage of DAHDI variable chunk sizes.

    Sangoma hardware DMA provides a specialized DMA chain that servers two purposes

    1. Provides 1ms 2ms 5ms 40ms or 80ms worth of data per interrupt
      Effectively reducing the interrupt load from 1000 interrupts per sec (1ms) to 100 interrupts per sec (80ms)

    2. Provides latency buffer to temporarily absorb delays due to non-real time Linux performance.
      It is possible for linux and CPU to delay processing for 5 to 10ms.
      In this case Sangoma DMA Chain can queue up the data in hardware until the system
      is ready to process more data.

    3. Using the DMA chains and DMA adjustable chunk size, sangoma drivers can absorb large 
      delays in the system which would otherwise cause overruns and effectively cause audio issues.

  4. The above features make Sangoma drivers super efficient and provide superior interrupt and cpu efficiency.
    While providing deep buffering in case of system delays in order to preserve voice quality.
    The net effect is that Sangoma drivers and hardware perform better in high density and very low density solutions
    where CPU cycles matter.
     

  5. Sangoma drivers attach to the Network Interface stack
    Sangoma drivers expose each TDM span via Linux Network Interface.
    This feature effectively displays each TDM span as an ethernet network interface.

    Benefits of this architecture are as follows

    1. Standard linux tools can be used to provide statistics
      Tools such as "ifconfig"
      All third party linux tools such as iptraf use ifconfig to provide stats.

    2. Sangoma spans are automatically supported by Linux SNMP
      Linux Network Interface MIBS can now detect if T1/E1 link goes down or
      if interrupts stopped working

    3. Network interface information via ifconfig can provide
      Tx/Rx packet count
      DMA errors, PCI errors, Latency Errors, Overruns and Underruns


Wanpipe Troubleshooting

There is no guess work when working with Sangoma.
Sangoma provides debugging utilities that provide one with a master toolbox to tackle any field issue.
Using Sangoma debugging tools one usually has more information that the Telco.

  1. Wireshark TDM Tracing
    Wireshark network capture is the de-facto standard in IP and VoIP networks.
    Sangoma's drivers and tools allow one to capture TDM signaling channels into Wireshark compatible files.
    This allows an IT administrator to use the power of Wireshark to debug signaling and network issues.
    Sangoma was first to come up with this feature.
     

  2. Ifconfig Statistics
    Sangoma's drivers provide full disclosure.  Nothing is hidden.
    Using the "ifconfig" command explained above one can can quickly get an overview for
    each TDM span.

    Tx/Rx packet stats, Interrupt counters
    Errors: PCI, DMA, Overrun and Underrun errors. 

    Ifconfig statistics will show errors if the clock coming from the Telco is bad.
    Furthermore every clock slip and every packet loss is recorded in ifconfig statistics.

 

  1. Wanpipemon Debugging Utility
    Wanpipemon utility can be used to view low level T1/E1 Alarms or Analog voltage levels.

    Furthermore, one can put SPAN's into maintenance by sending Alarms to remote end.
    This is very useful when wanting to disable a span that has quality issues on the fly without having to reconfigure asteirsk.

    Wanpipemon can tristate a port, effectively turning tx on or off
    This is usefull in HA scenarios where a single T1/E1 line can be shared between two Sangoma boards.

    Wanpipemon can provide detail driver performance statistics
    Each interrupt type and driver path is counted as part of driver performance stats.
    One can get exact knowledge what the driver is doing at any time.
    Eg: Count interrupts per second: Count DMA,Timer,TDM, Watchod, BottomHalf, Rx, Tx paths per second
    This feature provides one with deep understanding of what is going at the driver and hardware level.

    Wanpipemon can display low level T1/E1 Alarms and Performance statistics
    Each alarm is displayed. 

    Wanpipemon can enable one of many T1/E1 loopback options in order to debug and isolate
    clocking and network issues.

  2. Hardware Troubleshooting Features

    Troubleshooting has been designed into Sangoma boards, not just software.

    Sangoma T1/E1 boards have been designed to detect clocking issues.
    Sangoma T1/E1 boards will not clear alarms if there is no clock from the Telco.

    Other boards will automatically switch to internal clocking if telco clock is not present. 
    This can provide false information and cause audio issues due to bad clock or multiple clocks on the line.

    ifconfig statistics will show errors if the clock coming from the Telco is bad.
    Every clock slip and every packet loss is recorded in ifconfig statistics.

Sangoma and Asterisk History

  1. Sangoma funded the development of OpenR2
    Sangoma provided OpenR2 to Asterisk for all vendors to use
     

  2. Sangoma developed a generic GSM framework for DAHDI
    Sangoma tried to submit the code into Asterisk for all vendors to use.

  3. Sangoma has developed an Asterisk as a tapping framework and
    provided it for free to be used by all vendors.
     

  4. Sangoma's senior engineers have commit access to Asterisk.
     

  5. Sangoma's hardware quality contributed to Asterisk stability and success in early years.
    Single hardware platform for PCI 3.3 and 5V.  
    Hardware support for any motherboard guaranteed.
    First vendor to provide PCI-Express support across the product lines. 
     

  6. Sangoma's driver quality contributed to Asterisk stability and success.
    First to come up with software configurable T1/E1 configuration.
    First to allow one to specify how DAHDI spans map to physical ports taking the guess work out of which
    physical port is mapped to DHADI logical span.  
    Since then DHADI followed suite with their own set of tools to do this.
     

  7. Sangoma's drivers were first to provide integrated configuration wizard for Sangoma Zaptel and DAHDI
    Since then DAHDI has followed suite with dahdi_scan and dahdi_getconf 
     

  8. Sangoma's Latest drivers conform to DAHDI configuration and operation.
    There is no requirement for special Sangoma configuration files.
     

  9. Sangoma's Hardware can provide Clock to other TDM hardware
    Sangoma was first to use a jumper cable to bridge clock from one board to another.

    This feature is critical for Asterisk to provide reliable FAXing.
    Where T1 board would pass its clock to an Analog FXs board.

    This feature has been pattented by Sangoma.  Even though other vendors have copied this feature.

Return to Documentation Home I Return to Sangoma Support