SlideShare a Scribd company logo
1 of 54
Download to read offline
MFC/R2 free of headaches or your money back




                                       OpenR2 in Asterisk

                                               Mois´s Silva
                                                   e

                                                  Astricon


                                              September 2008
MFC/R2 free of headaches or your money back
  MFC/R2 signaling




Outline


       1 MFC/R2 signaling


       2 R2 in Asterisk


       3 OpenR2 in Asterisk


       4 OpenR2 Features


       5 Closing
MFC/R2 free of headaches or your money back
  MFC/R2 signaling




What is it?




              MFC/R2 or just R2 for its friends.
              Old days telephony signaling for trunks.
              Analog and digital versions.
              Digital version defined by ITU Q.421.
              Lots of variants around the world.
MFC/R2 free of headaches or your money back
  MFC/R2 signaling




Where is being used?




              Old, but widely used.
              Heavily used in Central and South America (M´xico,
                                                          e
              Colombia, Argentina, Brazil etc).
              Cheaper than ISDN PRI lines.
              R2 is not going anywhere anytime soon.
MFC/R2 free of headaches or your money back
  MFC/R2 signaling




How does the digital version work?




              Uses E1 facilities.
              Inband MF tones for register signaling.
              CAS for line supervision signaling.
MFC/R2 free of headaches or your money back
  MFC/R2 signaling




What’s the deal with variants?


              R2 has a scary number of variants.
MFC/R2 free of headaches or your money back
  MFC/R2 signaling




What’s the deal with variants?


              R2 has a scary number of variants.
              Position of CD bits may be different.
MFC/R2 free of headaches or your money back
  MFC/R2 signaling




What’s the deal with variants?


              R2 has a scary number of variants.
              Position of CD bits may be different.
              MF tones mean different things in different countries in
              different contexts.
MFC/R2 free of headaches or your money back
  MFC/R2 signaling




What’s the deal with variants?


              R2 has a scary number of variants.
              Position of CD bits may be different.
              MF tones mean different things in different countries in
              different contexts.
              Some ask DNIS before ANI (and fail when done the other way
              around).
MFC/R2 free of headaches or your money back
  MFC/R2 signaling




What’s the deal with variants?


              R2 has a scary number of variants.
              Position of CD bits may be different.
              MF tones mean different things in different countries in
              different contexts.
              Some ask DNIS before ANI (and fail when done the other way
              around).
              Some even use DTMF instead of MF.
MFC/R2 free of headaches or your money back
  MFC/R2 signaling




What’s the deal with variants?


              R2 has a scary number of variants.
              Position of CD bits may be different.
              MF tones mean different things in different countries in
              different contexts.
              Some ask DNIS before ANI (and fail when done the other way
              around).
              Some even use DTMF instead of MF.
              Different methods to block collect calls.
MFC/R2 free of headaches or your money back
  MFC/R2 signaling




What’s the deal with variants?


              R2 has a scary number of variants.
              Position of CD bits may be different.
              MF tones mean different things in different countries in
              different contexts.
              Some ask DNIS before ANI (and fail when done the other way
              around).
              Some even use DTMF instead of MF.
              Different methods to block collect calls.
              Different way to notify end of DNIS (MF tone vs timeout).
MFC/R2 free of headaches or your money back
  MFC/R2 signaling




What’s the deal with variants?


              R2 has a scary number of variants.
              Position of CD bits may be different.
              MF tones mean different things in different countries in
              different contexts.
              Some ask DNIS before ANI (and fail when done the other way
              around).
              Some even use DTMF instead of MF.
              Different methods to block collect calls.
              Different way to notify end of DNIS (MF tone vs timeout).
              Some countries do not even regulate its variant.
MFC/R2 free of headaches or your money back
  R2 in Asterisk




Outline


       1 MFC/R2 signaling


       2 R2 in Asterisk


       3 OpenR2 in Asterisk


       4 OpenR2 Features


       5 Closing
MFC/R2 free of headaches or your money back
  R2 in Asterisk




Asterisk approach for PSTN signaling.


              One channel driver to rule them all.
              Most signaling implemented right into zaptel/chan zap (now
              DAHDI/chan dahdi).
              Some with the help of protocol libraries (libpri, libss7).
MFC/R2 free of headaches or your money back
  R2 in Asterisk




Asterisk approach for PSTN signaling.


              One channel driver to rule them all.
              Most signaling implemented right into zaptel/chan zap (now
              DAHDI/chan dahdi).
              Some with the help of protocol libraries (libpri, libss7).
MFC/R2 free of headaches or your money back
  R2 in Asterisk




Asterisk approach for PSTN signaling.


              One channel driver to rule them all.
              Most signaling implemented right into zaptel/chan zap (now
              DAHDI/chan dahdi).
              Some with the help of protocol libraries (libpri, libss7).
MFC/R2 free of headaches or your money back
  R2 in Asterisk




Unicall R2 architecture.
              A different approach.
              Unicall is an abstraction layer in the form of a simple library.
              All signaling details are hidden in protocol modules.
              The channel driver (chan unicall), ideally, interacts with a
              single signaling interface (libunicall).
              Ideally, adding a new signaling protocol requires no changes to
              the Asterisk channel driver.
MFC/R2 free of headaches or your money back
  R2 in Asterisk




Unicall R2 architecture.
              A different approach.
              Unicall is an abstraction layer in the form of a simple library.
              All signaling details are hidden in protocol modules.
              The channel driver (chan unicall), ideally, interacts with a
              single signaling interface (libunicall).
              Ideally, adding a new signaling protocol requires no changes to
              the Asterisk channel driver.
MFC/R2 free of headaches or your money back
  R2 in Asterisk




Unicall issues. Sad but true.



              Versioning hell.
              Multiple components, multiple user errors.
              GPL license can be sometimes a show-stopper.
              You need a whole new driver (patching) and libraries just to
              get R2 working.
              Poor support.
MFC/R2 free of headaches or your money back
  R2 in Asterisk




Digivoice R2. The Brazilian solution.




              R2 implementation included in Digivoice library Voicerlib.
              Support for 3 variants (Brazil, Argentina, M´xico).
                                                          e
              Voicerlib Just works with Digivoice cards.
              Echo issues in their boards.
MFC/R2 free of headaches or your money back
  R2 in Asterisk




PIKA technologies solution.




              Recent support on their GrandPrix suite.
              Support for 3 variants (Brazil, Argentina, M´xico).
                                                          e
              No 64 bit support.
              Just works with PIKA boards.
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




Outline


       1 MFC/R2 signaling


       2 R2 in Asterisk


       3 OpenR2 in Asterisk


       4 OpenR2 Features


       5 Closing
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




Why another R2 solution?
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




Why another R2 solution?




              All previous solutions are not quite generic.
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




Why another R2 solution?




              All previous solutions are not quite generic.
              All previous solutions do not work with FreeSwitch at all.
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




Why another R2 solution?




              All previous solutions are not quite generic.
              All previous solutions do not work with FreeSwitch at all.
              All previous solutions are not integrated seamlessly into
              Asterisk.
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




Why another R2 solution?




              All previous solutions are not quite generic.
              All previous solutions do not work with FreeSwitch at all.
              All previous solutions are not integrated seamlessly into
              Asterisk.
              All previous solutions are not what I wanted.
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




Design goals.
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




Design goals.




              Written from scratch.
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




Design goals.




              Written from scratch.
              Component Independent.
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




Design goals.




              Written from scratch.
              Component Independent.
              Interoperable.
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




Design goals.




              Written from scratch.
              Component Independent.
              Interoperable.
              Flexible.
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




The library. Small and functional.




              LGPL license.
              LGPL SpanDSP detector embedded into OpenR2.
              r2test program provided to test R2 links.
              Works with Zaptel 1.2, 1.4 and DAHDI.
              No other libraries required (other than libc and libpthread).
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




Where to get it?



              Branches for Asterisk 1.2, 1.4 and 1.6
              Branches available from ’moy’ team branch.
              Testing of the 3 branches has been done with success in
              several countries.
              Plan to merge with trunk someday (Digium decides).
              Need feedback!
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




How does it fit in Asterisk?




              OpenR2 fits the same way libpri and libss7 fit into chan zap.
              Works with Asterisk 1.2, 1.4 and 1.6.
              chan zap support for R2 only compiled if OpenR2 is present.
MFC/R2 free of headaches or your money back
  OpenR2 in Asterisk




How does it fit in Asterisk?




              OpenR2 fits the same way libpri and libss7 fit into chan zap.
              Works with Asterisk 1.2, 1.4 and 1.6.
              chan zap support for R2 only compiled if OpenR2 is present.
MFC/R2 free of headaches or your money back
  OpenR2 Features




Outline


       1 MFC/R2 signaling


       2 R2 in Asterisk


       3 OpenR2 in Asterisk


       4 OpenR2 Features


       5 Closing
MFC/R2 free of headaches or your money back
  OpenR2 Features




OpenR2 variants implemented so far.


              ITU
              Argentina
              Brasil
              China
              Colombia
              Czech
              Ecuador
              M´xico
               e
              Philippines
              Venezuela
MFC/R2 free of headaches or your money back
  OpenR2 Features




More fun with options.
MFC/R2 free of headaches or your money back
  OpenR2 Features




More fun with options.


              Specify call category.
MFC/R2 free of headaches or your money back
  OpenR2 Features




More fun with options.


              Specify call category.
              You can save per-call protocol logs at different levels.
MFC/R2 free of headaches or your money back
  OpenR2 Features




More fun with options.


              Specify call category.
              You can save per-call protocol logs at different levels.
              Max ANI, Max DNIS.
MFC/R2 free of headaches or your money back
  OpenR2 Features




More fun with options.


              Specify call category.
              You can save per-call protocol logs at different levels.
              Max ANI, Max DNIS.
              Block collect calls with double answer or MF tone.
MFC/R2 free of headaches or your money back
  OpenR2 Features




More fun with options.


              Specify call category.
              You can save per-call protocol logs at different levels.
              Max ANI, Max DNIS.
              Block collect calls with double answer or MF tone.
              Forced release.
MFC/R2 free of headaches or your money back
  OpenR2 Features




More fun with options.


              Specify call category.
              You can save per-call protocol logs at different levels.
              Max ANI, Max DNIS.
              Block collect calls with double answer or MF tone.
              Forced release.
              Immediate accept.
MFC/R2 free of headaches or your money back
  OpenR2 Features




More fun with options.


              Specify call category.
              You can save per-call protocol logs at different levels.
              Max ANI, Max DNIS.
              Block collect calls with double answer or MF tone.
              Forced release.
              Immediate accept.
              Get ANI first.
MFC/R2 free of headaches or your money back
  OpenR2 Features




More fun with options.


              Specify call category.
              You can save per-call protocol logs at different levels.
              Max ANI, Max DNIS.
              Block collect calls with double answer or MF tone.
              Forced release.
              Immediate accept.
              Get ANI first.
              Advanced protocol configuration file.
MFC/R2 free of headaches or your money back
  OpenR2 Features




More coming. . .



              Windows.
              OpenZAP.
              FreeSwitch.
              DTMF/R2.
              DiscOS.
              Trixbox (Already announced by Fonality).
              More R2 variants.
MFC/R2 free of headaches or your money back
  Closing




Outline


       1 MFC/R2 signaling


       2 R2 in Asterisk


       3 OpenR2 in Asterisk


       4 OpenR2 Features


       5 Closing
MFC/R2 free of headaches or your money back
  Closing




Give OpenR2 a try



              The time for MFC/R2 to stop being a problem in Asterisk is
              coming.
              Despite being still under development, people has used
              OpenR2 in production.
              I will implement any missing feature you may suggest.
              I will fix any bug you find.
MFC/R2 free of headaches or your money back
  Closing




Time for that question you were holding on.
MFC/R2 free of headaches or your money back
  Closing




Where to find more information?




              http://www.libopenr2.org/ (Don’t mistake it with openr2.org)
              http://svn.digium.com/view/asterisk/team/moy/
MFC/R2 free of headaches or your money back
  Closing




Drop me a line. Thanks!




              Blog: http://www.moythreads.com/
              E-mail && Google Talk && MSN: moises.silva@gmail.com
              Notice I am not from Brazil, even though I can read
              Portuguese, try using Spanish or English please :)

More Related Content

Similar to OpenR2 Provides Seamless R2 Signaling Support in Asterisk and FreeSwitch

XT Best Practices
XT Best PracticesXT Best Practices
XT Best PracticesJeff Larkin
 
T2M Corporate Presentation.pptx
T2M Corporate Presentation.pptxT2M Corporate Presentation.pptx
T2M Corporate Presentation.pptxT2M IP
 
Java programming for the mainframe - Not just technology
Java programming for the mainframe - Not just technologyJava programming for the mainframe - Not just technology
Java programming for the mainframe - Not just technologyMark Cathcart
 
PBL1-v1-200e.pptx
PBL1-v1-200e.pptxPBL1-v1-200e.pptx
PBL1-v1-200e.pptxNAIST
 
Digital Video Course Section 1
Digital Video Course  Section 1Digital Video Course  Section 1
Digital Video Course Section 1ericlsnider
 
Sirius: Graphical Editors for your DSLs
Sirius: Graphical Editors for your DSLsSirius: Graphical Editors for your DSLs
Sirius: Graphical Editors for your DSLsmikaelbarbero
 
Raspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extendedRaspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extendedWiseNaeem
 
Desert Code Camp 2014.2 Intro to Bluetooth Low Energy
Desert Code Camp 2014.2 Intro to Bluetooth Low EnergyDesert Code Camp 2014.2 Intro to Bluetooth Low Energy
Desert Code Camp 2014.2 Intro to Bluetooth Low Energyjjrosent
 
Eee c415 digital signal processing
Eee c415 digital signal processingEee c415 digital signal processing
Eee c415 digital signal processingkaiwins
 
Introduction to debugging linux applications
Introduction to debugging linux applicationsIntroduction to debugging linux applications
Introduction to debugging linux applicationscommiebstrd
 
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]RootedCON
 
A Faster CRuby interpreter with dynamically specialized IR
A Faster CRuby interpreter with dynamically specialized IRA Faster CRuby interpreter with dynamically specialized IR
A Faster CRuby interpreter with dynamically specialized IRVladimir Makarov
 
Large Partially-connected Erlang Clusters
 Large Partially-connected Erlang Clusters Large Partially-connected Erlang Clusters
Large Partially-connected Erlang ClustersMotiejus Jakštys
 
Update on CRC Open and Free DAB Tools
Update on CRC Open and Free DAB ToolsUpdate on CRC Open and Free DAB Tools
Update on CRC Open and Free DAB ToolsFrancois Lefebvre
 

Similar to OpenR2 Provides Seamless R2 Signaling Support in Asterisk and FreeSwitch (20)

multilanguage.pdf
multilanguage.pdfmultilanguage.pdf
multilanguage.pdf
 
XT Best Practices
XT Best PracticesXT Best Practices
XT Best Practices
 
Sip 02
Sip 02Sip 02
Sip 02
 
Sip 02
Sip 02Sip 02
Sip 02
 
Sip 02
Sip 02Sip 02
Sip 02
 
T2M Corporate Presentation.pptx
T2M Corporate Presentation.pptxT2M Corporate Presentation.pptx
T2M Corporate Presentation.pptx
 
Java programming for the mainframe - Not just technology
Java programming for the mainframe - Not just technologyJava programming for the mainframe - Not just technology
Java programming for the mainframe - Not just technology
 
PBL1-v1-200e.pptx
PBL1-v1-200e.pptxPBL1-v1-200e.pptx
PBL1-v1-200e.pptx
 
64 bit virtual in z/VSE V5.1
64 bit virtual in z/VSE V5.164 bit virtual in z/VSE V5.1
64 bit virtual in z/VSE V5.1
 
Digital Video Course Section 1
Digital Video Course  Section 1Digital Video Course  Section 1
Digital Video Course Section 1
 
Technisat
TechnisatTechnisat
Technisat
 
Sirius: Graphical Editors for your DSLs
Sirius: Graphical Editors for your DSLsSirius: Graphical Editors for your DSLs
Sirius: Graphical Editors for your DSLs
 
Raspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extendedRaspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extended
 
Desert Code Camp 2014.2 Intro to Bluetooth Low Energy
Desert Code Camp 2014.2 Intro to Bluetooth Low EnergyDesert Code Camp 2014.2 Intro to Bluetooth Low Energy
Desert Code Camp 2014.2 Intro to Bluetooth Low Energy
 
Eee c415 digital signal processing
Eee c415 digital signal processingEee c415 digital signal processing
Eee c415 digital signal processing
 
Introduction to debugging linux applications
Introduction to debugging linux applicationsIntroduction to debugging linux applications
Introduction to debugging linux applications
 
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]
 
A Faster CRuby interpreter with dynamically specialized IR
A Faster CRuby interpreter with dynamically specialized IRA Faster CRuby interpreter with dynamically specialized IR
A Faster CRuby interpreter with dynamically specialized IR
 
Large Partially-connected Erlang Clusters
 Large Partially-connected Erlang Clusters Large Partially-connected Erlang Clusters
Large Partially-connected Erlang Clusters
 
Update on CRC Open and Free DAB Tools
Update on CRC Open and Free DAB ToolsUpdate on CRC Open and Free DAB Tools
Update on CRC Open and Free DAB Tools
 

More from Moises 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
 
FreeTDM PRI Passive Recording
FreeTDM PRI Passive RecordingFreeTDM PRI Passive Recording
FreeTDM PRI Passive RecordingMoises Silva
 
Asterisk PRI Passive Call Recording
Asterisk PRI Passive Call RecordingAsterisk PRI Passive Call Recording
Asterisk PRI Passive Call RecordingMoises 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)

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
 
FreeTDM PRI Passive Recording
FreeTDM PRI Passive RecordingFreeTDM PRI Passive Recording
FreeTDM PRI Passive Recording
 
Asterisk PRI Passive Call Recording
Asterisk PRI Passive Call RecordingAsterisk PRI Passive Call Recording
Asterisk PRI Passive Call Recording
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
 

OpenR2 Provides Seamless R2 Signaling Support in Asterisk and FreeSwitch

  • 1. MFC/R2 free of headaches or your money back OpenR2 in Asterisk Mois´s Silva e Astricon September 2008
  • 2. MFC/R2 free of headaches or your money back MFC/R2 signaling Outline 1 MFC/R2 signaling 2 R2 in Asterisk 3 OpenR2 in Asterisk 4 OpenR2 Features 5 Closing
  • 3. MFC/R2 free of headaches or your money back MFC/R2 signaling What is it? MFC/R2 or just R2 for its friends. Old days telephony signaling for trunks. Analog and digital versions. Digital version defined by ITU Q.421. Lots of variants around the world.
  • 4. MFC/R2 free of headaches or your money back MFC/R2 signaling Where is being used? Old, but widely used. Heavily used in Central and South America (M´xico, e Colombia, Argentina, Brazil etc). Cheaper than ISDN PRI lines. R2 is not going anywhere anytime soon.
  • 5. MFC/R2 free of headaches or your money back MFC/R2 signaling How does the digital version work? Uses E1 facilities. Inband MF tones for register signaling. CAS for line supervision signaling.
  • 6. MFC/R2 free of headaches or your money back MFC/R2 signaling What’s the deal with variants? R2 has a scary number of variants.
  • 7. MFC/R2 free of headaches or your money back MFC/R2 signaling What’s the deal with variants? R2 has a scary number of variants. Position of CD bits may be different.
  • 8. MFC/R2 free of headaches or your money back MFC/R2 signaling What’s the deal with variants? R2 has a scary number of variants. Position of CD bits may be different. MF tones mean different things in different countries in different contexts.
  • 9. MFC/R2 free of headaches or your money back MFC/R2 signaling What’s the deal with variants? R2 has a scary number of variants. Position of CD bits may be different. MF tones mean different things in different countries in different contexts. Some ask DNIS before ANI (and fail when done the other way around).
  • 10. MFC/R2 free of headaches or your money back MFC/R2 signaling What’s the deal with variants? R2 has a scary number of variants. Position of CD bits may be different. MF tones mean different things in different countries in different contexts. Some ask DNIS before ANI (and fail when done the other way around). Some even use DTMF instead of MF.
  • 11. MFC/R2 free of headaches or your money back MFC/R2 signaling What’s the deal with variants? R2 has a scary number of variants. Position of CD bits may be different. MF tones mean different things in different countries in different contexts. Some ask DNIS before ANI (and fail when done the other way around). Some even use DTMF instead of MF. Different methods to block collect calls.
  • 12. MFC/R2 free of headaches or your money back MFC/R2 signaling What’s the deal with variants? R2 has a scary number of variants. Position of CD bits may be different. MF tones mean different things in different countries in different contexts. Some ask DNIS before ANI (and fail when done the other way around). Some even use DTMF instead of MF. Different methods to block collect calls. Different way to notify end of DNIS (MF tone vs timeout).
  • 13. MFC/R2 free of headaches or your money back MFC/R2 signaling What’s the deal with variants? R2 has a scary number of variants. Position of CD bits may be different. MF tones mean different things in different countries in different contexts. Some ask DNIS before ANI (and fail when done the other way around). Some even use DTMF instead of MF. Different methods to block collect calls. Different way to notify end of DNIS (MF tone vs timeout). Some countries do not even regulate its variant.
  • 14. MFC/R2 free of headaches or your money back R2 in Asterisk Outline 1 MFC/R2 signaling 2 R2 in Asterisk 3 OpenR2 in Asterisk 4 OpenR2 Features 5 Closing
  • 15. MFC/R2 free of headaches or your money back R2 in Asterisk Asterisk approach for PSTN signaling. One channel driver to rule them all. Most signaling implemented right into zaptel/chan zap (now DAHDI/chan dahdi). Some with the help of protocol libraries (libpri, libss7).
  • 16. MFC/R2 free of headaches or your money back R2 in Asterisk Asterisk approach for PSTN signaling. One channel driver to rule them all. Most signaling implemented right into zaptel/chan zap (now DAHDI/chan dahdi). Some with the help of protocol libraries (libpri, libss7).
  • 17. MFC/R2 free of headaches or your money back R2 in Asterisk Asterisk approach for PSTN signaling. One channel driver to rule them all. Most signaling implemented right into zaptel/chan zap (now DAHDI/chan dahdi). Some with the help of protocol libraries (libpri, libss7).
  • 18. MFC/R2 free of headaches or your money back R2 in Asterisk Unicall R2 architecture. A different approach. Unicall is an abstraction layer in the form of a simple library. All signaling details are hidden in protocol modules. The channel driver (chan unicall), ideally, interacts with a single signaling interface (libunicall). Ideally, adding a new signaling protocol requires no changes to the Asterisk channel driver.
  • 19. MFC/R2 free of headaches or your money back R2 in Asterisk Unicall R2 architecture. A different approach. Unicall is an abstraction layer in the form of a simple library. All signaling details are hidden in protocol modules. The channel driver (chan unicall), ideally, interacts with a single signaling interface (libunicall). Ideally, adding a new signaling protocol requires no changes to the Asterisk channel driver.
  • 20. MFC/R2 free of headaches or your money back R2 in Asterisk Unicall issues. Sad but true. Versioning hell. Multiple components, multiple user errors. GPL license can be sometimes a show-stopper. You need a whole new driver (patching) and libraries just to get R2 working. Poor support.
  • 21. MFC/R2 free of headaches or your money back R2 in Asterisk Digivoice R2. The Brazilian solution. R2 implementation included in Digivoice library Voicerlib. Support for 3 variants (Brazil, Argentina, M´xico). e Voicerlib Just works with Digivoice cards. Echo issues in their boards.
  • 22. MFC/R2 free of headaches or your money back R2 in Asterisk PIKA technologies solution. Recent support on their GrandPrix suite. Support for 3 variants (Brazil, Argentina, M´xico). e No 64 bit support. Just works with PIKA boards.
  • 23. MFC/R2 free of headaches or your money back OpenR2 in Asterisk Outline 1 MFC/R2 signaling 2 R2 in Asterisk 3 OpenR2 in Asterisk 4 OpenR2 Features 5 Closing
  • 24. MFC/R2 free of headaches or your money back OpenR2 in Asterisk Why another R2 solution?
  • 25. MFC/R2 free of headaches or your money back OpenR2 in Asterisk Why another R2 solution? All previous solutions are not quite generic.
  • 26. MFC/R2 free of headaches or your money back OpenR2 in Asterisk Why another R2 solution? All previous solutions are not quite generic. All previous solutions do not work with FreeSwitch at all.
  • 27. MFC/R2 free of headaches or your money back OpenR2 in Asterisk Why another R2 solution? All previous solutions are not quite generic. All previous solutions do not work with FreeSwitch at all. All previous solutions are not integrated seamlessly into Asterisk.
  • 28. MFC/R2 free of headaches or your money back OpenR2 in Asterisk Why another R2 solution? All previous solutions are not quite generic. All previous solutions do not work with FreeSwitch at all. All previous solutions are not integrated seamlessly into Asterisk. All previous solutions are not what I wanted.
  • 29. MFC/R2 free of headaches or your money back OpenR2 in Asterisk Design goals.
  • 30. MFC/R2 free of headaches or your money back OpenR2 in Asterisk Design goals. Written from scratch.
  • 31. MFC/R2 free of headaches or your money back OpenR2 in Asterisk Design goals. Written from scratch. Component Independent.
  • 32. MFC/R2 free of headaches or your money back OpenR2 in Asterisk Design goals. Written from scratch. Component Independent. Interoperable.
  • 33. MFC/R2 free of headaches or your money back OpenR2 in Asterisk Design goals. Written from scratch. Component Independent. Interoperable. Flexible.
  • 34. MFC/R2 free of headaches or your money back OpenR2 in Asterisk The library. Small and functional. LGPL license. LGPL SpanDSP detector embedded into OpenR2. r2test program provided to test R2 links. Works with Zaptel 1.2, 1.4 and DAHDI. No other libraries required (other than libc and libpthread).
  • 35. MFC/R2 free of headaches or your money back OpenR2 in Asterisk Where to get it? Branches for Asterisk 1.2, 1.4 and 1.6 Branches available from ’moy’ team branch. Testing of the 3 branches has been done with success in several countries. Plan to merge with trunk someday (Digium decides). Need feedback!
  • 36. MFC/R2 free of headaches or your money back OpenR2 in Asterisk How does it fit in Asterisk? OpenR2 fits the same way libpri and libss7 fit into chan zap. Works with Asterisk 1.2, 1.4 and 1.6. chan zap support for R2 only compiled if OpenR2 is present.
  • 37. MFC/R2 free of headaches or your money back OpenR2 in Asterisk How does it fit in Asterisk? OpenR2 fits the same way libpri and libss7 fit into chan zap. Works with Asterisk 1.2, 1.4 and 1.6. chan zap support for R2 only compiled if OpenR2 is present.
  • 38. MFC/R2 free of headaches or your money back OpenR2 Features Outline 1 MFC/R2 signaling 2 R2 in Asterisk 3 OpenR2 in Asterisk 4 OpenR2 Features 5 Closing
  • 39. MFC/R2 free of headaches or your money back OpenR2 Features OpenR2 variants implemented so far. ITU Argentina Brasil China Colombia Czech Ecuador M´xico e Philippines Venezuela
  • 40. MFC/R2 free of headaches or your money back OpenR2 Features More fun with options.
  • 41. MFC/R2 free of headaches or your money back OpenR2 Features More fun with options. Specify call category.
  • 42. MFC/R2 free of headaches or your money back OpenR2 Features More fun with options. Specify call category. You can save per-call protocol logs at different levels.
  • 43. MFC/R2 free of headaches or your money back OpenR2 Features More fun with options. Specify call category. You can save per-call protocol logs at different levels. Max ANI, Max DNIS.
  • 44. MFC/R2 free of headaches or your money back OpenR2 Features More fun with options. Specify call category. You can save per-call protocol logs at different levels. Max ANI, Max DNIS. Block collect calls with double answer or MF tone.
  • 45. MFC/R2 free of headaches or your money back OpenR2 Features More fun with options. Specify call category. You can save per-call protocol logs at different levels. Max ANI, Max DNIS. Block collect calls with double answer or MF tone. Forced release.
  • 46. MFC/R2 free of headaches or your money back OpenR2 Features More fun with options. Specify call category. You can save per-call protocol logs at different levels. Max ANI, Max DNIS. Block collect calls with double answer or MF tone. Forced release. Immediate accept.
  • 47. MFC/R2 free of headaches or your money back OpenR2 Features More fun with options. Specify call category. You can save per-call protocol logs at different levels. Max ANI, Max DNIS. Block collect calls with double answer or MF tone. Forced release. Immediate accept. Get ANI first.
  • 48. MFC/R2 free of headaches or your money back OpenR2 Features More fun with options. Specify call category. You can save per-call protocol logs at different levels. Max ANI, Max DNIS. Block collect calls with double answer or MF tone. Forced release. Immediate accept. Get ANI first. Advanced protocol configuration file.
  • 49. MFC/R2 free of headaches or your money back OpenR2 Features More coming. . . Windows. OpenZAP. FreeSwitch. DTMF/R2. DiscOS. Trixbox (Already announced by Fonality). More R2 variants.
  • 50. MFC/R2 free of headaches or your money back Closing Outline 1 MFC/R2 signaling 2 R2 in Asterisk 3 OpenR2 in Asterisk 4 OpenR2 Features 5 Closing
  • 51. MFC/R2 free of headaches or your money back Closing Give OpenR2 a try The time for MFC/R2 to stop being a problem in Asterisk is coming. Despite being still under development, people has used OpenR2 in production. I will implement any missing feature you may suggest. I will fix any bug you find.
  • 52. MFC/R2 free of headaches or your money back Closing Time for that question you were holding on.
  • 53. MFC/R2 free of headaches or your money back Closing Where to find more information? http://www.libopenr2.org/ (Don’t mistake it with openr2.org) http://svn.digium.com/view/asterisk/team/moy/
  • 54. MFC/R2 free of headaches or your money back Closing Drop me a line. Thanks! Blog: http://www.moythreads.com/ E-mail && Google Talk && MSN: moises.silva@gmail.com Notice I am not from Brazil, even though I can read Portuguese, try using Spanish or English please :)