SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
XiVO and ARI
Feedback
@astridevcon 2016
Who we are
● Sylvain Boily
○ XiVO creator
○ Asterisk French community / speaker (http://asterisk-france.org)
○ DCAP
○ CEO Proformatique INC (founded in France in 2004 and merged with Avencall in 2010)
■ Left partnership with Avencall in december 2015
■ Now in Quebec City (since 2010)
○ Love Linux and free software since 1998
● Sébastien Duthil
○ XiVO developer @Proformatique INC
What is XiVO?
● Free software telecom business engine (GPLv3)
○ Created in 2005 in France
● Distribution based on Debian (http://xivo.io)
● Downloaded over the world (50 to 70 per day)
● Many customers in France (Avencall and partners)
● Size of installations
○ small/medium/large company
○ Public or private (like banks, universities, city halls, etc.)
● Documentation: http://documentation.xivo.io
Architecture components
● Backend
○ RabbitMQ (message bus)
○ Consul (discovery)
○ Postgres (data persistance)
○ Asterisk (voice)
● Frontend services
○ Rest API
■ xivo-ctid
■ xivo-confd
■ ….
○ Events
■ xivo-websocketd
○ Authentication / ACLs
■ xivo-auth
○ GUI
Asterisk contributions
hexanol a.k.a. Etienne Lessard is in charge of development in Asterisk in
@xivodevteam.
● Bugs / patches
● SCCP channel (http://github.com/xivo-pbx/libsccp)
● Skill-based routing for app_queue
● Asterisk consul discovery service (http://github.com/sboily/asterisk-consul-module)
● Asterisk realtime sqlite2 support
● chan_test (to help us in our tests)
XiVO and ARI
● Micro-service xivo-ctid-ng (http://github.com/xivo-pbx/xivo-ctid-ng)
○ Business logic
○ Connected to ARI and AJAM
○ Features
■ Start/stop/list call(s)
■ Transfer call
■ Presences
■ Chat
○ Python (Flask)
○ State stored in Asterisk
● Future
○ Queue
○ Voicemail
○ Switchboard
○ ...
What we would love to see in ARI
● Bridge variables
● Get or set multiple variables on a channel
● List global variables
● MOH events and possibility to list MOH classes
● In-memory database
● External bus (more about scaling later)
● We can contribute of course!
Itches
● No variable on channel event hangup
○ We need to maintain a cache for channel variables
● “allocation failed”
○ looks like blue screen of death ;-)
● Event on channel originate
● Convert channel to stasis to use in a stasis bridge
● Setting variable on non-stasis chan
○ We wrote a patch
We love ARI
● Easy to test
○ Docker power
○ Mock ARI
○ https://github.com/xivo-pbx/xivo-ctid-ng/tree/
master/integration_tests
○ http://jenkins.xivo.io
● Having tools like Swagger is very helpful
for developers
○ We are using Swagger too (http://api.xivo.io)
Python ARI
● python-ari from Digium is not maintained
○ We forked the library
○ Who is the maintainer?
○ How can we help?
ref. https://github.com/xivo-pbx/ari-py
Scaling ARI
● How to scale?
● Multiple Asterisk
○ Asterisk UUID in every event? Each XiVO installation has its own xivo-uuid
● Using ARI proxy?
● What about publishing ARI events directly in a bus like rabbitMQ (AMQP)?
○ What about AMI events? (we already do that with xivo-amid)
Thank you!
● Questions?
Sylvain Boily: sylvainboilydroid@gmail.com @quintana_
Sébastien Duthil: sduthil@proformatique.com
XiVO: http://www.xivo.io @xivodevteam

Más contenido relacionado

La actualidad más candente

Plc2 2015 your own ide
Plc2 2015 your own idePlc2 2015 your own ide
Plc2 2015 your own ide
Sigasi
 
Vert.x - 2014 JDay Lviv (English)
Vert.x - 2014 JDay Lviv (English)Vert.x - 2014 JDay Lviv (English)
Vert.x - 2014 JDay Lviv (English)
Bartek Zdanowski
 

La actualidad más candente (20)

Ruxmon.2015-08.-.proxenet
Ruxmon.2015-08.-.proxenetRuxmon.2015-08.-.proxenet
Ruxmon.2015-08.-.proxenet
 
VideoLAN & VLC
VideoLAN & VLCVideoLAN & VLC
VideoLAN & VLC
 
CCNA : Intro to Cisco IOS - Part 1
CCNA :  Intro to Cisco IOS - Part 1CCNA :  Intro to Cisco IOS - Part 1
CCNA : Intro to Cisco IOS - Part 1
 
Manila Project Onboarding - Denver Open Infrastructure Summit - May 2019
Manila Project Onboarding - Denver Open Infrastructure Summit - May 2019Manila Project Onboarding - Denver Open Infrastructure Summit - May 2019
Manila Project Onboarding - Denver Open Infrastructure Summit - May 2019
 
WebRTC From Asterisk to Headline - MoNage
WebRTC From Asterisk to Headline - MoNageWebRTC From Asterisk to Headline - MoNage
WebRTC From Asterisk to Headline - MoNage
 
Qt Creator, l'arma segreta!
Qt Creator, l'arma segreta!Qt Creator, l'arma segreta!
Qt Creator, l'arma segreta!
 
Bsdtw17: lightning talks/wip sessions
Bsdtw17: lightning talks/wip sessionsBsdtw17: lightning talks/wip sessions
Bsdtw17: lightning talks/wip sessions
 
VPN on Mikrotik
VPN on MikrotikVPN on Mikrotik
VPN on Mikrotik
 
OpenNebulaConf2015 1.15 CentOS and OpenNebula - Fabian Arrotin
OpenNebulaConf2015 1.15 CentOS and OpenNebula - Fabian ArrotinOpenNebulaConf2015 1.15 CentOS and OpenNebula - Fabian Arrotin
OpenNebulaConf2015 1.15 CentOS and OpenNebula - Fabian Arrotin
 
Openshift meetup i
Openshift meetup iOpenshift meetup i
Openshift meetup i
 
Namecoin and distributed DNS
Namecoin and distributed DNSNamecoin and distributed DNS
Namecoin and distributed DNS
 
Plc2 2015 your own ide
Plc2 2015 your own idePlc2 2015 your own ide
Plc2 2015 your own ide
 
Do you speak VCL?
Do you speak VCL?Do you speak VCL?
Do you speak VCL?
 
Eclipse demo camp 2016 Toronto
Eclipse demo camp 2016 TorontoEclipse demo camp 2016 Toronto
Eclipse demo camp 2016 Toronto
 
Do you speak vcl
Do you speak vclDo you speak vcl
Do you speak vcl
 
Vert.x - 2014 JDay Lviv (English)
Vert.x - 2014 JDay Lviv (English)Vert.x - 2014 JDay Lviv (English)
Vert.x - 2014 JDay Lviv (English)
 
How Docker didn't invent containers (Docker Meetup Brno #1)
How Docker didn't invent containers (Docker Meetup Brno #1)How Docker didn't invent containers (Docker Meetup Brno #1)
How Docker didn't invent containers (Docker Meetup Brno #1)
 
PEAR - An introduction
PEAR - An introductionPEAR - An introduction
PEAR - An introduction
 
Vert.x - JDD 2013 (English)
Vert.x - JDD 2013 (English)Vert.x - JDD 2013 (English)
Vert.x - JDD 2013 (English)
 
Using Control-Webpanel for Hosting Service - Part 2
Using Control-Webpanel for Hosting Service - Part 2Using Control-Webpanel for Hosting Service - Part 2
Using Control-Webpanel for Hosting Service - Part 2
 

Destacado

Craig Kerstiens - Scalable Uniques in Postgres @ Postgres Open
Craig Kerstiens - Scalable Uniques in Postgres @ Postgres OpenCraig Kerstiens - Scalable Uniques in Postgres @ Postgres Open
Craig Kerstiens - Scalable Uniques in Postgres @ Postgres Open
PostgresOpen
 
KazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo ScalabilityKazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo Scalability
2600Hz
 

Destacado (15)

Craig Kerstiens - Scalable Uniques in Postgres @ Postgres Open
Craig Kerstiens - Scalable Uniques in Postgres @ Postgres OpenCraig Kerstiens - Scalable Uniques in Postgres @ Postgres Open
Craig Kerstiens - Scalable Uniques in Postgres @ Postgres Open
 
xPad - Building Simple Tablet OS with Gtk/WebKit
xPad - Building Simple Tablet OS with Gtk/WebKitxPad - Building Simple Tablet OS with Gtk/WebKit
xPad - Building Simple Tablet OS with Gtk/WebKit
 
WEIGHT MANAGEMENT Do it yourself Motivation and Tips
WEIGHT MANAGEMENT Do it yourself Motivation and TipsWEIGHT MANAGEMENT Do it yourself Motivation and Tips
WEIGHT MANAGEMENT Do it yourself Motivation and Tips
 
AWS as a Data Platform for Cloud and On-Premises Workloads | AWS Public Secto...
AWS as a Data Platform for Cloud and On-Premises Workloads | AWS Public Secto...AWS as a Data Platform for Cloud and On-Premises Workloads | AWS Public Secto...
AWS as a Data Platform for Cloud and On-Premises Workloads | AWS Public Secto...
 
Useful PostgreSQL Extensions
Useful PostgreSQL ExtensionsUseful PostgreSQL Extensions
Useful PostgreSQL Extensions
 
Architectures for High Availability - QConSF
Architectures for High Availability - QConSFArchitectures for High Availability - QConSF
Architectures for High Availability - QConSF
 
Fabric, Cuisine and Watchdog for server administration in Python
Fabric, Cuisine and Watchdog for server administration in PythonFabric, Cuisine and Watchdog for server administration in Python
Fabric, Cuisine and Watchdog for server administration in Python
 
KazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo ScalabilityKazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo Scalability
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka Streams
 
Astricon 2010: Scaling Asterisk installations
Astricon 2010: Scaling Asterisk installationsAstricon 2010: Scaling Asterisk installations
Astricon 2010: Scaling Asterisk installations
 
Performance optimization 101 - Erlang Factory SF 2014
Performance optimization 101 - Erlang Factory SF 2014Performance optimization 101 - Erlang Factory SF 2014
Performance optimization 101 - Erlang Factory SF 2014
 
CoreOS, or How I Learned to Stop Worrying and Love Systemd
CoreOS, or How I Learned to Stop Worrying and Love SystemdCoreOS, or How I Learned to Stop Worrying and Love Systemd
CoreOS, or How I Learned to Stop Worrying and Love Systemd
 
Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...
 
Scaling LoL Chat to 70M Players
Scaling LoL Chat to 70M PlayersScaling LoL Chat to 70M Players
Scaling LoL Chat to 70M Players
 
Culture
CultureCulture
Culture
 

Similar a Ari xivo astricon_2016

Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011
Ted Husted
 

Similar a Ari xivo astricon_2016 (20)

DevOps practices and tools of a small company in love with open source
DevOps practices and tools of a small company in love with open sourceDevOps practices and tools of a small company in love with open source
DevOps practices and tools of a small company in love with open source
 
Visual, scalable, and manageable data loading to and from Neo4j with Apache Hop
Visual, scalable, and manageable data loading to and from Neo4j with Apache Hop Visual, scalable, and manageable data loading to and from Neo4j with Apache Hop
Visual, scalable, and manageable data loading to and from Neo4j with Apache Hop
 
Contributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium projectContributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium project
 
CloudStack Hyderabad Meetup: How the Apache community works
CloudStack Hyderabad Meetup: How the Apache community worksCloudStack Hyderabad Meetup: How the Apache community works
CloudStack Hyderabad Meetup: How the Apache community works
 
Go at uber
Go at uberGo at uber
Go at uber
 
How we do python
How we do pythonHow we do python
How we do python
 
WebRTC World Trip 2018_20181101@rtc_korea
WebRTC World Trip 2018_20181101@rtc_koreaWebRTC World Trip 2018_20181101@rtc_korea
WebRTC World Trip 2018_20181101@rtc_korea
 
Blockchain Coding Dojo - BlockchainHub Graz
Blockchain Coding Dojo - BlockchainHub GrazBlockchain Coding Dojo - BlockchainHub Graz
Blockchain Coding Dojo - BlockchainHub Graz
 
TLKR.io @ Betabeers Madrid
TLKR.io @ Betabeers MadridTLKR.io @ Betabeers Madrid
TLKR.io @ Betabeers Madrid
 
Flux’s Security & Scalability with OCI & Helm Slides.pdf
Flux’s Security & Scalability with OCI & Helm Slides.pdfFlux’s Security & Scalability with OCI & Helm Slides.pdf
Flux’s Security & Scalability with OCI & Helm Slides.pdf
 
Webrtc world tour_2019_2nd edition_ed1_uprism_syson
Webrtc world tour_2019_2nd edition_ed1_uprism_sysonWebrtc world tour_2019_2nd edition_ed1_uprism_syson
Webrtc world tour_2019_2nd edition_ed1_uprism_syson
 
TYPO3 v8 LTS in the cloud
TYPO3 v8 LTS in the cloudTYPO3 v8 LTS in the cloud
TYPO3 v8 LTS in the cloud
 
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
 
Dev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & LoggingDev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & Logging
 
Data Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixData Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFix
 
Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011
 
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012
 
edil19
edil19edil19
edil19
 
Socket Programming with Python
Socket Programming with PythonSocket Programming with Python
Socket Programming with Python
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 

Último

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Último (20)

Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 

Ari xivo astricon_2016

  • 2. Who we are ● Sylvain Boily ○ XiVO creator ○ Asterisk French community / speaker (http://asterisk-france.org) ○ DCAP ○ CEO Proformatique INC (founded in France in 2004 and merged with Avencall in 2010) ■ Left partnership with Avencall in december 2015 ■ Now in Quebec City (since 2010) ○ Love Linux and free software since 1998 ● Sébastien Duthil ○ XiVO developer @Proformatique INC
  • 3. What is XiVO? ● Free software telecom business engine (GPLv3) ○ Created in 2005 in France ● Distribution based on Debian (http://xivo.io) ● Downloaded over the world (50 to 70 per day) ● Many customers in France (Avencall and partners) ● Size of installations ○ small/medium/large company ○ Public or private (like banks, universities, city halls, etc.) ● Documentation: http://documentation.xivo.io
  • 4. Architecture components ● Backend ○ RabbitMQ (message bus) ○ Consul (discovery) ○ Postgres (data persistance) ○ Asterisk (voice) ● Frontend services ○ Rest API ■ xivo-ctid ■ xivo-confd ■ …. ○ Events ■ xivo-websocketd ○ Authentication / ACLs ■ xivo-auth ○ GUI
  • 5. Asterisk contributions hexanol a.k.a. Etienne Lessard is in charge of development in Asterisk in @xivodevteam. ● Bugs / patches ● SCCP channel (http://github.com/xivo-pbx/libsccp) ● Skill-based routing for app_queue ● Asterisk consul discovery service (http://github.com/sboily/asterisk-consul-module) ● Asterisk realtime sqlite2 support ● chan_test (to help us in our tests)
  • 6. XiVO and ARI ● Micro-service xivo-ctid-ng (http://github.com/xivo-pbx/xivo-ctid-ng) ○ Business logic ○ Connected to ARI and AJAM ○ Features ■ Start/stop/list call(s) ■ Transfer call ■ Presences ■ Chat ○ Python (Flask) ○ State stored in Asterisk ● Future ○ Queue ○ Voicemail ○ Switchboard ○ ...
  • 7. What we would love to see in ARI ● Bridge variables ● Get or set multiple variables on a channel ● List global variables ● MOH events and possibility to list MOH classes ● In-memory database ● External bus (more about scaling later) ● We can contribute of course!
  • 8. Itches ● No variable on channel event hangup ○ We need to maintain a cache for channel variables ● “allocation failed” ○ looks like blue screen of death ;-) ● Event on channel originate ● Convert channel to stasis to use in a stasis bridge ● Setting variable on non-stasis chan ○ We wrote a patch
  • 9. We love ARI ● Easy to test ○ Docker power ○ Mock ARI ○ https://github.com/xivo-pbx/xivo-ctid-ng/tree/ master/integration_tests ○ http://jenkins.xivo.io ● Having tools like Swagger is very helpful for developers ○ We are using Swagger too (http://api.xivo.io)
  • 10. Python ARI ● python-ari from Digium is not maintained ○ We forked the library ○ Who is the maintainer? ○ How can we help? ref. https://github.com/xivo-pbx/ari-py
  • 11. Scaling ARI ● How to scale? ● Multiple Asterisk ○ Asterisk UUID in every event? Each XiVO installation has its own xivo-uuid ● Using ARI proxy? ● What about publishing ARI events directly in a bus like rabbitMQ (AMQP)? ○ What about AMI events? (we already do that with xivo-amid)
  • 12. Thank you! ● Questions? Sylvain Boily: sylvainboilydroid@gmail.com @quintana_ Sébastien Duthil: sduthil@proformatique.com XiVO: http://www.xivo.io @xivodevteam