OpenR2 in Asterisk

Moises Silva
Moises SilvaStaff Software Engineer, LogMeIn at LogMeIn Inc
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 :)
1 of 54

Recommended

FreeSWITCH Monitoring by
FreeSWITCH MonitoringFreeSWITCH Monitoring
FreeSWITCH MonitoringMoises Silva
6.1K views48 slides
ACR122L VisualVantage Serial NFC Reader with LCD by
ACR122L VisualVantage Serial NFC Reader with LCDACR122L VisualVantage Serial NFC Reader with LCD
ACR122L VisualVantage Serial NFC Reader with LCDAdvanced Card Systems Ltd.
3.7K views14 slides
Assembler Language Tutorial for Mainframe Programmers by
Assembler Language Tutorial for Mainframe ProgrammersAssembler Language Tutorial for Mainframe Programmers
Assembler Language Tutorial for Mainframe ProgrammersSrinimf-Slides
12.4K views168 slides
Sba brochure 2013 by
Sba brochure 2013Sba brochure 2013
Sba brochure 2013Benoit Quillet
526 views2 slides
ACI_Forwarding_Basic_rev2.pptx by
ACI_Forwarding_Basic_rev2.pptxACI_Forwarding_Basic_rev2.pptx
ACI_Forwarding_Basic_rev2.pptxShravanKorthiwada1
12 views66 slides
Dsr1600 1800 by
Dsr1600 1800Dsr1600 1800
Dsr1600 1800baudelio flores
338 views19 slides

More Related Content

Similar to OpenR2 in Asterisk

multilanguage.pdf by
multilanguage.pdfmultilanguage.pdf
multilanguage.pdfssusera9b90d
7 views117 slides
XT Best Practices by
XT Best PracticesXT Best Practices
XT Best PracticesJeff Larkin
1.2K views83 slides
Sip 02 by
Sip 02Sip 02
Sip 02CCSMOUNTCAMERA
124 views2 slides
Sip 02 by
Sip 02Sip 02
Sip 02sparshamit1
94 views2 slides
Sip 02 by
Sip 02Sip 02
Sip 02sparshamit
89 views2 slides
Java programming for the mainframe - Not just technology by
Java programming for the mainframe - Not just technologyJava programming for the mainframe - Not just technology
Java programming for the mainframe - Not just technologyMark Cathcart
393 views10 slides

Similar to OpenR2 in Asterisk(20)

XT Best Practices by Jeff Larkin
XT Best PracticesXT Best Practices
XT Best Practices
Jeff Larkin1.2K views
Java programming for the mainframe - Not just technology by Mark Cathcart
Java programming for the mainframe - Not just technologyJava programming for the mainframe - Not just technology
Java programming for the mainframe - Not just technology
Mark Cathcart393 views
PBL1-v1-200e.pptx by NAIST
PBL1-v1-200e.pptxPBL1-v1-200e.pptx
PBL1-v1-200e.pptx
NAIST2 views
Digital Video Course Section 1 by ericlsnider
Digital Video Course  Section 1Digital Video Course  Section 1
Digital Video Course Section 1
ericlsnider3.1K views
Sirius: Graphical Editors for your DSLs by mikaelbarbero
Sirius: Graphical Editors for your DSLsSirius: Graphical Editors for your DSLs
Sirius: Graphical Editors for your DSLs
mikaelbarbero3.1K views
Raspberry pi glossary of terms dictionary extended by WiseNaeem
Raspberry pi glossary of terms dictionary extendedRaspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extended
WiseNaeem39 views
Desert Code Camp 2014.2 Intro to Bluetooth Low Energy by jjrosent
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
jjrosent1.4K views
Eee c415 digital signal processing by kaiwins
Eee c415 digital signal processingEee c415 digital signal processing
Eee c415 digital signal processing
kaiwins2.1K views
Introduction to debugging linux applications by commiebstrd
Introduction to debugging linux applicationsIntroduction to debugging linux applications
Introduction to debugging linux applications
commiebstrd865 views
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018] by RootedCON
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]
RootedCON536 views
A Faster CRuby interpreter with dynamically specialized IR by Vladimir Makarov
A Faster CRuby interpreter with dynamically specialized IRA Faster CRuby interpreter with dynamically specialized IR
A Faster CRuby interpreter with dynamically specialized IR
Vladimir Makarov16 views
Large Partially-connected Erlang Clusters by Motiejus Jakštys
 Large Partially-connected Erlang Clusters Large Partially-connected Erlang Clusters
Large Partially-connected Erlang Clusters
Motiejus Jakštys454 views
Fatah Uddin (072831056) by mashiur
Fatah Uddin (072831056)Fatah Uddin (072831056)
Fatah Uddin (072831056)
mashiur422 views

More from Moises Silva

Scaling FreeSWITCH Performance by
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceMoises Silva
14.6K views39 slides
Interfaces de Scripting para librerias en C by
Interfaces de Scripting para librerias en CInterfaces de Scripting para librerias en C
Interfaces de Scripting para librerias en CMoises Silva
1.3K views41 slides
Vulnerabilidades en Aplicaciones Web PHP by
Vulnerabilidades en Aplicaciones Web PHPVulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHPMoises Silva
3.6K views20 slides
Manejo de Medios en FreeSWITCH by
Manejo de Medios en FreeSWITCHManejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCHMoises Silva
1.3K views42 slides
Implementation Lessons using WebRTC in Asterisk by
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskMoises Silva
28.8K views39 slides
SIP Testing with FreeSWITCH by
SIP Testing with FreeSWITCHSIP Testing with FreeSWITCH
SIP Testing with FreeSWITCHMoises Silva
11.3K views46 slides

More from Moises Silva(14)

Scaling FreeSWITCH Performance by Moises Silva
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
Moises Silva14.6K views
Interfaces de Scripting para librerias en C by Moises Silva
Interfaces de Scripting para librerias en CInterfaces de Scripting para librerias en C
Interfaces de Scripting para librerias en C
Moises Silva1.3K views
Vulnerabilidades en Aplicaciones Web PHP by Moises Silva
Vulnerabilidades en Aplicaciones Web PHPVulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHP
Moises Silva3.6K views
Manejo de Medios en FreeSWITCH by Moises Silva
Manejo de Medios en FreeSWITCHManejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCH
Moises Silva1.3K views
Implementation Lessons using WebRTC in Asterisk by Moises Silva
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in Asterisk
Moises Silva28.8K views
SIP Testing with FreeSWITCH by Moises Silva
SIP Testing with FreeSWITCHSIP Testing with FreeSWITCH
SIP Testing with FreeSWITCH
Moises Silva11.3K views
FreeSWITCH Modules for Asterisk Developers by Moises Silva
FreeSWITCH Modules for Asterisk DevelopersFreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk Developers
Moises Silva3.9K views
FreeSWITCH: Asterisk con Esteroides by Moises Silva
FreeSWITCH: Asterisk con EsteroidesFreeSWITCH: Asterisk con Esteroides
FreeSWITCH: Asterisk con Esteroides
Moises Silva7.1K views
Negociacion de Codecs en Asterisk by Moises Silva
Negociacion de Codecs en AsteriskNegociacion de Codecs en Asterisk
Negociacion de Codecs en Asterisk
Moises Silva765 views
Sangoma en el Ecosistema Open Source by Moises Silva
Sangoma en el Ecosistema Open SourceSangoma en el Ecosistema Open Source
Sangoma en el Ecosistema Open Source
Moises Silva1.1K views
Media Handling in FreeSWITCH by Moises Silva
Media Handling in FreeSWITCHMedia Handling in FreeSWITCH
Media Handling in FreeSWITCH
Moises Silva9.3K views
FreeTDM PRI Passive Recording by Moises Silva
FreeTDM PRI Passive RecordingFreeTDM PRI Passive Recording
FreeTDM PRI Passive Recording
Moises Silva2.3K views
Asterisk PRI Passive Call Recording by Moises Silva
Asterisk PRI Passive Call RecordingAsterisk PRI Passive Call Recording
Asterisk PRI Passive Call Recording
Moises Silva3.3K views
FreeSWITCH as a Kickass SBC by Moises Silva
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
Moises Silva12.8K views

OpenR2 in Asterisk

  • 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 :)