Asterisk is an Open Source PBX - but how does it support larger installations? Can you scale it up to thousands of users, with hundreds of simultaneous calls? What about failover, backups and the famous blinking lamps? Olle Johansson goes through various models and describes where some of his current projects with strange names - Pinefrog, Pinana, Pinetree and Bufo fits into this picture.
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and TwilioJeff Sloyer
The document describes how WebRTC technology can be used to enable real-time video calls between doctors and patients. It outlines a solution built using Twilio, IBM Watson, and other Bluemix services. The solution allows a patient to initiate a video call with their doctor, with the patient's audio being transcribed in real-time using Watson Speech to Text. The transcription is stored and analyzed for personality insights. It is also sent back to the doctor. The solution was built in 3 days, but faced some challenges around ordering of calls, browser compatibility, scaling websockets, and dropping connections to Watson.
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talkTwilio Inc
Call control is being reinvented in several exciting new ways. In this talk, we explore existing models for building voice applications using the Asterisk Dialplan, Asterisk AGI/AMI, and how new in-cloud voice APIs are reinventing the way that build, host, and scale voice applications.
such as in-cloud dialplan API with Twilio. Taking a programmer's perspective, we highlight desirable dialplan properties such as simplicity, automatic scalability, integration with existing databases and servers, and separation of business logic from telephony logic. We also explore the tradeoffs that Twilio has made to simplify the experience of building voice applications, including the concept of encapsulating the state of a voice call in a URL. We conclude with thoughts about how Asterisk could be streamlined for in-cloud dialplan APIs and the services that support them.
High-Availability Infrastructure in the Cloud - Evan Cooke - Web 2.0 Expo NYC...Twilio Inc
Designing a massively scalable highly available persistence layer has been one of the great challenges we’ve faced building out Twilio’s cloud communications infrastructure. Robust Voice and SMS APIs have strict consistency, latency, and availability requirements that cannot be solved using traditional sharding or scaling approaches. In this talk we first look to understand the challenges of running high-availability services in the cloud and then describe how we’ve architected “in-flight” and “post-flight” data into separate datastores that can be implemented using a range of technologies.
This document provides an overview of Puppet, a system configuration management tool. Puppet uses a declarative language to define system resources and their desired state. It has a client-server architecture where the client collects facts, receives a configuration from the server, checks the current state, and runs required transactions to achieve the desired state. The Puppet server compiles configurations, acts as a file server and certificate authority, and handles reports. Puppet provides resource abstractions, templates, and modules to define reusable configurations. It aims to provide a more declarative, semantic, reproducible, and shareable approach to system administration compared to previous imperative methods.
The document discusses deploying Asterisk in large enterprise and cloud solutions. It covers why Asterisk is a good option, its flexibility and features. It then discusses requirements for bigger systems like redundancy, high availability, security and load balancing. It provides examples of network diagrams using proxy servers, and discusses call routing and security considerations.
Pinana : Old proposal for distributed SIP states in AsteriskOlle E Johansson
1) The document discusses distributing Asterisk call states using a SIP presence server to allow remote subscription to device statuses.
2) It proposes publishing device statuses from Asterisk servers to a SIP presence server which remote Asterisk servers and devices can then subscribe to in order to see remote device statuses.
3) Some benefits noted are that using a SIP presence server scales better and allows other non-Asterisk devices to subscribe to statuses, while still providing Asterisk-specific data in the presence publications.
Asterisk is an Open Source PBX - but how does it support larger installations? Can you scale it up to thousands of users, with hundreds of simultaneous calls? What about failover, backups and the famous blinking lamps? Olle Johansson goes through various models and describes where some of his current projects with strange names - Pinefrog, Pinana, Pinetree and Bufo fits into this picture.
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and TwilioJeff Sloyer
The document describes how WebRTC technology can be used to enable real-time video calls between doctors and patients. It outlines a solution built using Twilio, IBM Watson, and other Bluemix services. The solution allows a patient to initiate a video call with their doctor, with the patient's audio being transcribed in real-time using Watson Speech to Text. The transcription is stored and analyzed for personality insights. It is also sent back to the doctor. The solution was built in 3 days, but faced some challenges around ordering of calls, browser compatibility, scaling websockets, and dropping connections to Watson.
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talkTwilio Inc
Call control is being reinvented in several exciting new ways. In this talk, we explore existing models for building voice applications using the Asterisk Dialplan, Asterisk AGI/AMI, and how new in-cloud voice APIs are reinventing the way that build, host, and scale voice applications.
such as in-cloud dialplan API with Twilio. Taking a programmer's perspective, we highlight desirable dialplan properties such as simplicity, automatic scalability, integration with existing databases and servers, and separation of business logic from telephony logic. We also explore the tradeoffs that Twilio has made to simplify the experience of building voice applications, including the concept of encapsulating the state of a voice call in a URL. We conclude with thoughts about how Asterisk could be streamlined for in-cloud dialplan APIs and the services that support them.
High-Availability Infrastructure in the Cloud - Evan Cooke - Web 2.0 Expo NYC...Twilio Inc
Designing a massively scalable highly available persistence layer has been one of the great challenges we’ve faced building out Twilio’s cloud communications infrastructure. Robust Voice and SMS APIs have strict consistency, latency, and availability requirements that cannot be solved using traditional sharding or scaling approaches. In this talk we first look to understand the challenges of running high-availability services in the cloud and then describe how we’ve architected “in-flight” and “post-flight” data into separate datastores that can be implemented using a range of technologies.
This document provides an overview of Puppet, a system configuration management tool. Puppet uses a declarative language to define system resources and their desired state. It has a client-server architecture where the client collects facts, receives a configuration from the server, checks the current state, and runs required transactions to achieve the desired state. The Puppet server compiles configurations, acts as a file server and certificate authority, and handles reports. Puppet provides resource abstractions, templates, and modules to define reusable configurations. It aims to provide a more declarative, semantic, reproducible, and shareable approach to system administration compared to previous imperative methods.
The document discusses deploying Asterisk in large enterprise and cloud solutions. It covers why Asterisk is a good option, its flexibility and features. It then discusses requirements for bigger systems like redundancy, high availability, security and load balancing. It provides examples of network diagrams using proxy servers, and discusses call routing and security considerations.
Pinana : Old proposal for distributed SIP states in AsteriskOlle E Johansson
1) The document discusses distributing Asterisk call states using a SIP presence server to allow remote subscription to device statuses.
2) It proposes publishing device statuses from Asterisk servers to a SIP presence server which remote Asterisk servers and devices can then subscribe to in order to see remote device statuses.
3) Some benefits noted are that using a SIP presence server scales better and allows other non-Asterisk devices to subscribe to statuses, while still providing Asterisk-specific data in the presence publications.
Performance comparison between different versions of Asterisk and different channels.
Presentation at Astricon 2017
Online Trainings
Complete Asterisk PBX Training Coupon http://bit.ly/2E6U7fP
Understanding and Troubleshooting SIP http://bit.ly/2WZKkzy
VoIP Design Training Coupon http://bit.ly/2tlLFmG
VoIP Hacking Training Coupon http://bit.ly/2X4Pjz7
Quick Start to OpenSIPS Coupon http://bit.ly/2Bt72XJ
Books
Complete Asterisk Training Paperback and Kindle Book https://amzn.to/2tm7TFb
Complete Asterisk Training eBook PDF http://bit.ly/2UUebHG
Building Telephony Systems with OpenSIPS http://bit.ly/2SsUt9a
Treinamento Online
SIP em Profundidade Coupon de Treinamento http://bit.ly/2GpatTq
Asterisk Essencial Coupon de Treinamento http://bit.ly/2BzCjs1
Livros:
Guia e Configuração do Asterisk Paperback e Kindle https://amzn.to/2S2lwmZ
Guia de Configuração do Asterisk eBook PDF http://www.asteriskguide.com
Kamailio practice Quobis-University of Vigo Laboratory of Commutation 2012-2...Quobis
1. This document outlines an exercise for configuring the Kamailio softswitch to support a simulated telecommunications system across multiple islands.
2. Students will choose one of four options to expand the basic call functionality between 100 users to include load balancing international calls, call transfer, security testing, or adapting codecs based on weather conditions.
3. The document provides general considerations, tools recommended, and references for completing the exercise.
The document discusses two options for registering Ambari agents with the Ambari server:
1) Using SSH - The Ambari server can automatically install and register agents during the install process by using an SSH key to access the hosts.
2) Manual registration - Agents can be manually installed without SSH access to the hosts. In this option, the administrator must install and configure each agent.
Once installed, agents connect to the Ambari server to complete the registration process, which involves downloading certificates, authentication, registering the host name, and starting heartbeats.
NetDevOps Developer Environments with Vagrant @ SCALE16xHank Preston
From SCALE16X March 11, 2018
Add some serious developer cred to your approach to NetDevOps and network development by exploring how the OpenSource tool Vagrant can be used to quickly “up” networking platforms on your laptop for fast development, code testing, API exploration and more! In this session we’ll cover the basics of using Vagrant, focusing on the networking elements of managing interfaces, protocols, and automating the initial provisioning with another OpenSource tool, Ansible. Leave with everything you need to get started today!
This document provides an overview of the architecture and components used in an AI assistant called Otto. It describes the base software including Docker, Node.js, and MongoDB. It also outlines the natural language processing, speech recognition, text-to-speech and other modules. It details the client and messaging bot architectures and includes information on I/O drivers, actions, fulfillments and the overall workflow. Finally, it lists some example intents and provides guidance on developing new actions and the hardware used including the Raspberry Pi, Re-Speaker mic HAT and power components.
The document discusses setting up VoIP using SIP protocol. It covers connecting a laptop, installing Wireshark to capture SIP calls, making test calls between two users, examining the SIP headers and SDP body in Wireshark, and troubleshooting potential issues like call quality problems or SIP trunks dropping.
Cisco APIs: An Interactive Assistant for the Web2Day Developer ConferenceCisco DevNet
Stève Sfartz is an API evangelist at Cisco who presented on Cisco APIs and leveraging them through examples. The presentation covered Cisco technologies like Connected Mobile Experience (CMX), Mobility IQ, and Cisco Spark which have REST APIs that can be used to access location data, analytics, and collaboration features. It encouraged developers to join the Cisco DevNet community to learn about APIs, take labs, and interact with other developers.
BlackHat EU 2012 - Zhenhua Liu - Breeding Sandworms: How To Fuzz Your Way Out...MindShare_kk
Adobe's interpretation of sandboxing is called Adobe Reader X Protected Mode. Inspired by Microsoft's Practical Windows Sandboxing techniques, it was introduced in July 2010. So far, it had been doing a good job at limiting the impact of exploitable bugs in Adobe Reader X, as escaping the sandbox after successful exploitation turned to be particularly challenging, and hasn't been witnessed in the wild, yet.
This paper exposes how we did just this: By leveraging some broker APIs, a policy flaw, and a little more, we were able to break free from Adobe's sandbox.
The particular vulnerability we used was patched by Adobe in September 2011 (CVE-2011-1353), as a result of our responsible disclosure action; yet, this demonstrates that Adobe's sandbox cannot be considered a panacea against security flaws exploitation in Adobe Reader X, and paves the way toward further interesting discoveries for security researchers.
Indeed, beyond this particular vulnerability, this paper dives deep into the sandbox implementation of Adobe Reader X, and debates ways to audit its broker APIs, which, to our minds, offer a major attack surface. In particular, the paper details how we configured an open-source fuzzing tool to audit them through the IPC Framework.
Overview: Building Open Source Cloud Computing EnvironmentsMark Hinkle
This document provides a summary of open source cloud computing. It begins with an introduction and overview of cloud computing concepts. It then discusses various open source building blocks for cloud computing, including open source hypervisors, compute clouds, storage solutions, and cloud APIs. Finally, it outlines open source tools for managing clouds, including provisioning, configuration management, monitoring, and automation/orchestration tools. The goal is to provide an introduction to developing and managing clouds with open source software.
This document appears to be a presentation on Scala performance best practices. It includes sections on monitoring the JVM, avoiding stack overflows through tail recursion, dealing with OutOfMemory errors, analyzing heap dumps, and how Scala can increase memory usage due to its functional programming features like closures and implicit conversions. The presentation emphasizes methodology, tools like JConsole and MAT, and understanding how to identify and solve performance bottlenecks when working with Scala.
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...Fred Posner
Presentation from AsteriskWorld 2017 at ITEXPO. Discussion of how I started with Asterisk and Kamailio as well as how to build Reliability, Scalability, and Security into your telephony platform.
This document discusses using VOIP and Ruby for building applications. It introduces Asterisk as an open source PBX software and Adhearsion and Telegraph as tools for integrating Ruby and Asterisk. Adhearsion allows developing voice applications independently of Rails while Telegraph tightly integrates with Rails, following the voice/web analogy. Examples demonstrate building interactive voice response systems using weather and games with Adhearsion and a banking application with Telegraph. Real-world uses are proposed like connecting website visitors to customer support by phone.
respond_to :voice - the convergence of voice and web interfaces with Rails an...jpalley
Presented at RailsConf 2007, this presentation introduces the Telegraph plugin for briding Asterisk and Rails.
Telegraph brings the beauty of Rails programming to the VoIP world. It reshapes the mess of the Asterisk API into MVC cleanliness allowing the rapid development of Rails based voice and web applications.
Pwning Your Phone with Adhearsion and Asteriskjicksta
This presentation was given by Jay Phillips, Adhearsion's creator, at the Gotham Ruby Conference on April 21st, 2007. Adhearsion is a framework for developing collaboration applications with Asterisk (VoIP), Rails, instant messaging, email, and many other technologies.
The document discusses the open source Asterisk PBX software. It provides an overview of Asterisk including that it was created in 1999 as a free and open source alternative to expensive proprietary PBX systems. Asterisk allows users to build their own software-based phone systems using inexpensive hardware and can provide many of the same features as traditional PBXs through its flexible architecture and extensive capabilities. The document outlines some of Asterisk's main functionalities and how it works as well as hardware that can be used with it.
This document summarizes techniques for testing the performance of Asterisk IP PBX servers under heavy call loads. It describes using the Spirent Abacus 5000 tool to generate SIP calls and measure the call setup rate, maximum concurrent calls, latency, packet loss and other metrics. Two Asterisk server configurations were tested: a basic installation and an enterprise installation. The results showed that the enterprise installation could handle more concurrent calls and higher call rates. Proper performance testing and system optimization are important for deploying enterprise-grade Asterisk solutions.
Build HA Asterisk on Microsoft Azure using DRBD/HeartbeatSanjay Willie
This was presented during Microsoft Azure's BootCamp on April 25 2015 at Microsoft Malaysia. This particular session was about using OSS Asterisk on Azure with HA capabilities.
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGIMarcelo Gornstein
This is the talk about PAMI and PAGI, and general telephony applications with PHP and Asterisk for the php conference argentina (phpconfar). The **complete** talk is available in the slides (in english), just download it (see above), and check out the slide notes for the complete text for each slide. Looking forward for your feedback. Enjoy :)
This document discusses building a SIP softswitch using Asterisk and Asterisk-Java. It describes using Asterisk to handle SIP signaling, media processing, and interfacing with a Java routing application. The Java application directs call routing and interfaces with Asterisk via FastAGI and AMI. Key issues addressed include having call legs survive independently and supporting early media. Patches are used to enable call bridging and configurable early media handling in app_dial.
Tuning and development with SIP Servlets on MobicentsJean Deruelle
The document discusses tuning Java virtual machines for SIP servlet applications and developing SIP servlets using frameworks. It recommends using CMS garbage collection with tuning, enabling parallel young generation GC and other performance options. It also describes how to develop SIP servlets as POJO classes using the Spring Signaling Framework or CDI-Telco Framework to simplify development and add features like aspect-oriented programming.
Cloud Crowd - Mandhir Gidda Razorfish " Building a Public / Private Hybrid Cl...jimliddle
These are slides of the session that Mandhir Gidda gave at GigaSpaces Cloud Crowd event in the UK on November 2009.
This session concentrates on how GigaSpaces PaaS and Amazon EC2 IaaS was used to build a public / private hybrid cloud for a major UK Telco.
Performance comparison between different versions of Asterisk and different channels.
Presentation at Astricon 2017
Online Trainings
Complete Asterisk PBX Training Coupon http://bit.ly/2E6U7fP
Understanding and Troubleshooting SIP http://bit.ly/2WZKkzy
VoIP Design Training Coupon http://bit.ly/2tlLFmG
VoIP Hacking Training Coupon http://bit.ly/2X4Pjz7
Quick Start to OpenSIPS Coupon http://bit.ly/2Bt72XJ
Books
Complete Asterisk Training Paperback and Kindle Book https://amzn.to/2tm7TFb
Complete Asterisk Training eBook PDF http://bit.ly/2UUebHG
Building Telephony Systems with OpenSIPS http://bit.ly/2SsUt9a
Treinamento Online
SIP em Profundidade Coupon de Treinamento http://bit.ly/2GpatTq
Asterisk Essencial Coupon de Treinamento http://bit.ly/2BzCjs1
Livros:
Guia e Configuração do Asterisk Paperback e Kindle https://amzn.to/2S2lwmZ
Guia de Configuração do Asterisk eBook PDF http://www.asteriskguide.com
Kamailio practice Quobis-University of Vigo Laboratory of Commutation 2012-2...Quobis
1. This document outlines an exercise for configuring the Kamailio softswitch to support a simulated telecommunications system across multiple islands.
2. Students will choose one of four options to expand the basic call functionality between 100 users to include load balancing international calls, call transfer, security testing, or adapting codecs based on weather conditions.
3. The document provides general considerations, tools recommended, and references for completing the exercise.
The document discusses two options for registering Ambari agents with the Ambari server:
1) Using SSH - The Ambari server can automatically install and register agents during the install process by using an SSH key to access the hosts.
2) Manual registration - Agents can be manually installed without SSH access to the hosts. In this option, the administrator must install and configure each agent.
Once installed, agents connect to the Ambari server to complete the registration process, which involves downloading certificates, authentication, registering the host name, and starting heartbeats.
NetDevOps Developer Environments with Vagrant @ SCALE16xHank Preston
From SCALE16X March 11, 2018
Add some serious developer cred to your approach to NetDevOps and network development by exploring how the OpenSource tool Vagrant can be used to quickly “up” networking platforms on your laptop for fast development, code testing, API exploration and more! In this session we’ll cover the basics of using Vagrant, focusing on the networking elements of managing interfaces, protocols, and automating the initial provisioning with another OpenSource tool, Ansible. Leave with everything you need to get started today!
This document provides an overview of the architecture and components used in an AI assistant called Otto. It describes the base software including Docker, Node.js, and MongoDB. It also outlines the natural language processing, speech recognition, text-to-speech and other modules. It details the client and messaging bot architectures and includes information on I/O drivers, actions, fulfillments and the overall workflow. Finally, it lists some example intents and provides guidance on developing new actions and the hardware used including the Raspberry Pi, Re-Speaker mic HAT and power components.
The document discusses setting up VoIP using SIP protocol. It covers connecting a laptop, installing Wireshark to capture SIP calls, making test calls between two users, examining the SIP headers and SDP body in Wireshark, and troubleshooting potential issues like call quality problems or SIP trunks dropping.
Cisco APIs: An Interactive Assistant for the Web2Day Developer ConferenceCisco DevNet
Stève Sfartz is an API evangelist at Cisco who presented on Cisco APIs and leveraging them through examples. The presentation covered Cisco technologies like Connected Mobile Experience (CMX), Mobility IQ, and Cisco Spark which have REST APIs that can be used to access location data, analytics, and collaboration features. It encouraged developers to join the Cisco DevNet community to learn about APIs, take labs, and interact with other developers.
BlackHat EU 2012 - Zhenhua Liu - Breeding Sandworms: How To Fuzz Your Way Out...MindShare_kk
Adobe's interpretation of sandboxing is called Adobe Reader X Protected Mode. Inspired by Microsoft's Practical Windows Sandboxing techniques, it was introduced in July 2010. So far, it had been doing a good job at limiting the impact of exploitable bugs in Adobe Reader X, as escaping the sandbox after successful exploitation turned to be particularly challenging, and hasn't been witnessed in the wild, yet.
This paper exposes how we did just this: By leveraging some broker APIs, a policy flaw, and a little more, we were able to break free from Adobe's sandbox.
The particular vulnerability we used was patched by Adobe in September 2011 (CVE-2011-1353), as a result of our responsible disclosure action; yet, this demonstrates that Adobe's sandbox cannot be considered a panacea against security flaws exploitation in Adobe Reader X, and paves the way toward further interesting discoveries for security researchers.
Indeed, beyond this particular vulnerability, this paper dives deep into the sandbox implementation of Adobe Reader X, and debates ways to audit its broker APIs, which, to our minds, offer a major attack surface. In particular, the paper details how we configured an open-source fuzzing tool to audit them through the IPC Framework.
Overview: Building Open Source Cloud Computing EnvironmentsMark Hinkle
This document provides a summary of open source cloud computing. It begins with an introduction and overview of cloud computing concepts. It then discusses various open source building blocks for cloud computing, including open source hypervisors, compute clouds, storage solutions, and cloud APIs. Finally, it outlines open source tools for managing clouds, including provisioning, configuration management, monitoring, and automation/orchestration tools. The goal is to provide an introduction to developing and managing clouds with open source software.
This document appears to be a presentation on Scala performance best practices. It includes sections on monitoring the JVM, avoiding stack overflows through tail recursion, dealing with OutOfMemory errors, analyzing heap dumps, and how Scala can increase memory usage due to its functional programming features like closures and implicit conversions. The presentation emphasizes methodology, tools like JConsole and MAT, and understanding how to identify and solve performance bottlenecks when working with Scala.
Using Asterisk and Kamailio for Reliable, Scalable and Secure Communication S...Fred Posner
Presentation from AsteriskWorld 2017 at ITEXPO. Discussion of how I started with Asterisk and Kamailio as well as how to build Reliability, Scalability, and Security into your telephony platform.
This document discusses using VOIP and Ruby for building applications. It introduces Asterisk as an open source PBX software and Adhearsion and Telegraph as tools for integrating Ruby and Asterisk. Adhearsion allows developing voice applications independently of Rails while Telegraph tightly integrates with Rails, following the voice/web analogy. Examples demonstrate building interactive voice response systems using weather and games with Adhearsion and a banking application with Telegraph. Real-world uses are proposed like connecting website visitors to customer support by phone.
respond_to :voice - the convergence of voice and web interfaces with Rails an...jpalley
Presented at RailsConf 2007, this presentation introduces the Telegraph plugin for briding Asterisk and Rails.
Telegraph brings the beauty of Rails programming to the VoIP world. It reshapes the mess of the Asterisk API into MVC cleanliness allowing the rapid development of Rails based voice and web applications.
Pwning Your Phone with Adhearsion and Asteriskjicksta
This presentation was given by Jay Phillips, Adhearsion's creator, at the Gotham Ruby Conference on April 21st, 2007. Adhearsion is a framework for developing collaboration applications with Asterisk (VoIP), Rails, instant messaging, email, and many other technologies.
The document discusses the open source Asterisk PBX software. It provides an overview of Asterisk including that it was created in 1999 as a free and open source alternative to expensive proprietary PBX systems. Asterisk allows users to build their own software-based phone systems using inexpensive hardware and can provide many of the same features as traditional PBXs through its flexible architecture and extensive capabilities. The document outlines some of Asterisk's main functionalities and how it works as well as hardware that can be used with it.
This document summarizes techniques for testing the performance of Asterisk IP PBX servers under heavy call loads. It describes using the Spirent Abacus 5000 tool to generate SIP calls and measure the call setup rate, maximum concurrent calls, latency, packet loss and other metrics. Two Asterisk server configurations were tested: a basic installation and an enterprise installation. The results showed that the enterprise installation could handle more concurrent calls and higher call rates. Proper performance testing and system optimization are important for deploying enterprise-grade Asterisk solutions.
Build HA Asterisk on Microsoft Azure using DRBD/HeartbeatSanjay Willie
This was presented during Microsoft Azure's BootCamp on April 25 2015 at Microsoft Malaysia. This particular session was about using OSS Asterisk on Azure with HA capabilities.
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGIMarcelo Gornstein
This is the talk about PAMI and PAGI, and general telephony applications with PHP and Asterisk for the php conference argentina (phpconfar). The **complete** talk is available in the slides (in english), just download it (see above), and check out the slide notes for the complete text for each slide. Looking forward for your feedback. Enjoy :)
This document discusses building a SIP softswitch using Asterisk and Asterisk-Java. It describes using Asterisk to handle SIP signaling, media processing, and interfacing with a Java routing application. The Java application directs call routing and interfaces with Asterisk via FastAGI and AMI. Key issues addressed include having call legs survive independently and supporting early media. Patches are used to enable call bridging and configurable early media handling in app_dial.
Tuning and development with SIP Servlets on MobicentsJean Deruelle
The document discusses tuning Java virtual machines for SIP servlet applications and developing SIP servlets using frameworks. It recommends using CMS garbage collection with tuning, enabling parallel young generation GC and other performance options. It also describes how to develop SIP servlets as POJO classes using the Spring Signaling Framework or CDI-Telco Framework to simplify development and add features like aspect-oriented programming.
Cloud Crowd - Mandhir Gidda Razorfish " Building a Public / Private Hybrid Cl...jimliddle
These are slides of the session that Mandhir Gidda gave at GigaSpaces Cloud Crowd event in the UK on November 2009.
This session concentrates on how GigaSpaces PaaS and Amazon EC2 IaaS was used to build a public / private hybrid cloud for a major UK Telco.
This document summarizes Twilio's voice communication API which allows web developers to build voice applications using only basic web skills. The API has five simple building blocks and offers pay-as-you-go pricing with no upfront costs. Previously, building voice applications was costly and difficult as it required specialized telecom engineers, but Twilio makes it easy and affordable for web developers.
Twilio Web Service API for building Voice ApplicationsTwilio Inc
Twilio lets web developers build advanced, reliable voice communications applications using only basic web development skills, and simple pay-as-you-go pricing.
Build hosted Interactive Voice Response Applications, PBX, emergency notifications, automate phone-based sales and customer service, and more.
Enabling rcs service delivery telesemana august2012 rev2_mxRafael Junquera
This document discusses enabling Rich Communication Services (RCS) delivery. It describes how RCS can simplify IMS complexity and address challenges in making the business case for RCS. Key features of RCS include streamlining access and session management, as well as load balancing. The document also covers other pieces of the RCS service delivery puzzle like signaling control, interconnect, and summarizes that RCS is integral to the all-IP evolution.
Asterisk is an open source framework for building communications applications. It can turn an ordinary computer into a communications server, powering IP PBX systems, VoIP gateways, and more. This document provides step-by-step instructions for compiling, installing, and configuring Asterisk on Linux to make a test call between a softphone and the Asterisk server using IAX2 protocol. Sample configuration files are provided and explained to configure modules, extensions, and SIP.
Asterisk is an open source framework for building communications applications. This document provides step-by-step instructions for compiling, installing, and configuring Asterisk to make a test call between a SIP softphone and an IAX2 server. The instructions explain how to download and compile Asterisk from source, configure basic extensions and SIP/IAX2 settings, and place a test call to hear an IVR menu.
02 asterisk - the future of telecommunicationsTran Thanh
Asterisk is an open-source private branch exchange (PBX) system that can be used to build voice over IP (VoIP) networks and systems. It allows users to reproduce standard PBX features and interact IP-based networks. Asterisk is hardware independent and can run on various operating systems. It provides implementations of basic PBX functionality and integrates with third-party telephony hardware and software.
Apache Etch is a framework for building efficient and feature-rich network services. It allows for symmetric and asynchronous communication between nodes. Services can be described independently of programming language or transport mechanism. Etch provides a flexible protocol stack and supports languages like Java, C#, C, and Go. It aims to support additional transports, languages, security features, and tools over time.
LF_APIStrat17_Creating Communication Applications using the Asterisk RESTFul ...LF_APIStrat
The document provides an overview of the Asterisk RESTful Interface (ARI) and demonstrates how to build communication applications using ARI. It discusses the history and purpose of ARI and compares it to other Asterisk APIs like AGI and AMI. The document then demonstrates connecting to ARI via a WebSocket connection to receive events and making REST requests to play audio on a channel. It provides examples of the resources and categories available in the ARI specification.
Similar to Adhearsion and Telegraph Framework Presentation (20)
Scope Creep - Damned if I Do, Damned if I Don'tJustin Grammens
While everyone likes to share successes, let’s discuss the reality of software development. Projects are messy with lots of competing interests and challenges. One of these challenges that comes up often is scope creep. As software developers, we can be pulled in many different directions to not only help make the best product that we can but stay focused on the scope of what’s expected. Sometimes your job feels like: “Damned If I Do, Damned If I Don’t”. Let’s discuss the reality of the situation and some techniques and tools to help.
Session Outline:
Introduction: Some projects & experiences with scope creep I’ve had as a developer
Scope Creep: who are the guilty parties, what are the signs, why it happens, and when is it's most likely
Solutions: Tips/tricks to help if you are in this situation -- Ideas on how to help avoid scope creep in the future -- Reach out and let me know if they work!
I help companies to leverage the power of Deep Learning today. We review what Deep Learning is, how TensorFlow can be used in real world applications and some of the ways in which you can tune it to achieve the results that you wish. Contact me to learn more about our services at Lab651 where we help companies acquire data from the physical world and at Recursive Awesome where we perform Machine Learning and Analytics on the data to help you create better services and products for your customers.
Speaking at John Carrol University on the Internet of ThingsJustin Grammens
I was honored to have been invited to speak at John Carroll University on “The Internet of Things - Making the Physical World Smarter.” It was an extremely fun and engaging audience and I enjoyed every minute of the presentation. I hope you enjoy it as well and please don't hesitate to reach out with any questions.
NDC Minnesota 2019 - Fundamentals of Azure IoTJustin Grammens
The Internet of Things is not only changing the way that we live, but the way that companies do business. Microsoft is spending billions of dollars on their IoT infrastructure to help support companies with the next generation of the Internet. A generation that involves not only laptops, desktops and smartphones connected on the Internet, but remote assets such as equipment, appliances and products. Learn about the MXChip Kit from Microsoft and how it plugs into the Azure IoT infrastructure so as product, designers we can further understand what's possible when we start connecting our industrial equipment and products.
This Time, It’s Personal: Why Security and the IoT Is DifferentJustin Grammens
Unfortunately, in recent years we’ve seen a host of incidences where IoT devices were compromised. Sometimes these have been minor with little coverage, while others like Mirai affected millions around the globe a produced serious economic impact. When attacks like this occur, they not only erode the trust of the users of these devices, but cause those who are looking to adopt this new technology to pause. With any new technology, security must be thought of as a first class citizen and when we are talking about IoT, the data is personal. As the IoT matures, I’ll share some mistakes that have happened in the past, where we are today and how I believe we are now finally seeing a maturity of devices that are remotely updated, fault tolerant and secure. When it comes to building an IoT device, security is personal.
Looking into the Future: Using Google's Prediction APIJustin Grammens
We all would like to predict the future at some point in our lives. Well thanks to Google we can now be one step closer! This talk will give an overview of what the Google Prediction API is, how you can use it to analyze data sets, it's strengths and weaknesses and run open data sets through the system covering both regression and categorization models.
The Internet of Things - What It Is, Where Its Headed and Its ApplicationsJustin Grammens
This presentation covers the history of the IoT, its various phases in the Gartner Hype Cycle, why we should care about the IoT, specific industry segments, local Minnesota success stories and some closing thoughts... all on the Internet of Things. Interesting Google Trends and charts on future growth of the IoT are covered as key component as a well.
Internet of Things: What It Is, Where's Headed and Its ApplicationsJustin Grammens
The Internet of Things ( IoT ) is changing the way we live our lives. This presentation covers what the IoT, what is behind all the hype, what are the current trends and some Minnesota startups that have built products in this space. I also cover a little about IoT Fuse, a non profit with the mission of advancing the Internet of Things in not only the midwest, but across the United States and the world.
Collaborative Learning - The Role Communities Play in IoTJustin Grammens
These slides discuss the importance of collaborative learning and envisioning solutions within the world of the Internet of Things. I gave this presentation at the Internet of Things meetup on July 16, 2015. Further details of myself and the other presenters that night are at: http://bit.ly/1VWaxcs
Internet of Things: What it is, where it is going and how it is being applied.Justin Grammens
The document discusses the Internet of Things (IoT), including what it is, why it is important, key sectors and applications, and examples. It defines IoT as the interconnection of uniquely identifiable embedded devices within the existing internet infrastructure. IoT allows the use of data and connectivity between devices to improve the physical world. Major sectors include consumer, commercial, enterprise, and industrial applications. Current applications are focused on machine-to-machine communications and operations in traditional industries. The future of IoT is promising but challenges remain around consumer adoption and ensuring security of connected devices and data.
Arduino, Open Source and The Internet of Things LandscapeJustin Grammens
What's this "Internet of Things (IoT)" I keep hearing all about? We will cover where IoT came from, where it is today, where it's going in the future and how the Arduino open source platform is being used to bring new ideas and products to life.
Gobot Meets IoT : Using the Go Programming Language to Control The “Things” A...Justin Grammens
These are the slides that I presented at the Google DevFest Conference in Minneapolis, MN on March 21st, 2015.
Source code can be found on my github repo at: https://github.com/justingrammens/devfestmn2015
I discuss The Internet of Things, The Go Programming Language and did live demos using an Arduino, Sphero and an ArDrone.
A look at the state of Arduino in the past, present and future with applications covering the Internet of Things and the Arduino community in Minnesota ( Arduino.MN ). I did this presentation at our Hackfest in July of 2014. Details at http://arduino.mn
This document discusses voice enabled applications and provides examples using Adhearsion Sandbox and Tropo.com. It explains how to sign up for and use Adhearsion Sandbox to build applications that can record and playback audio. It also shows how to integrate Adhearsion with Rails applications. Finally, it introduces Tropo.com and provides links to tutorials for building applications using the Tropo API.
My presentation on Android to the Ruby Users of Minnesota group. Introduces the platform, demo applications I wrote and how to list your app in the Android market.
4. What We Will Cover
Why do VOIP now?
➢
Asterisk
➢
Adhearsion
➢
Telegraph
➢
Demos
➢
5. Why Now?
Only recently has good Open Source Software
been developed ( Rails / Asterisk )
Telecoms are slow to react
Few applications merge voice and web
Cell phone are everywhere!
6. Why Now?
2.7 Billion mobile phones. 1.4 Billion fixed-lines.
➢
1/3 of “Internet Users” access the internet from
➢
their mobile phone.
iPhone has shown consumers why they need
➢
the interactive internet on their phone. Others will
follow.
Most phone users can be identified by a
➢
standardized numerical system.
7. VOIP / Web Analogy
Technology Web VOIP
HTTP
Protocol SIP – Industry Standard
FTP IAX – Asterisk Specific
RTP H.323 – Obsolete
Jingle – Gtalk
Skype - Proprietary
gzip, jpg, gif, g.711 – high bandwidth
Codec
mp3, ogg, wma, gsm – medium bandwidth
flv, mpeg, avi g.729 – low bandwidth
Apache / Lighttpd Asterisk, Freeswitch
Server
AGI – Asterisk Gateway
Interactivity Interface
CGI
AMI – Asterisk Manager
Interface
8. Asterisk
+ Open Source Private Branch Exchange (PBX)
➢
+ Very powerful and flexible
➢
+ Relatively Stable
➢
- Messy to deal with in terms of extending
➢
functionality.
+++ Free!
➢
9. Asterisk : Terminology
Channel – A channel is what can setup and
➢
receive calls.
Dialplan – Script of what to do with a call. Written
➢
in the asterisk macro language.
AGI – Stdin/out TCP method allowing external
➢
applications to dynamically write dialplans.
AMI – Allows sending of commands and listen
➢
for stateful events.
10. Typical Voice System
VOIP
Clients SIP
Rails
Origination/
/
AGI /
Termination
PSTN
SIP / IAX AMI
Asterisk
Network Server
Adhearsion
Server
/
Telegraph
Analog
PSTN Zaptel
Interface
Network / Other
Card
11. Asterisk Dialplan Language
[demo] ; Sample from Asterisk configuration extensions.conf file
;
; We start with what to do when a call first comes in.
;
exten => s,1,Wait(1) ; Wait a second, just for fun
exten => s,n,Answer ; Answer the line
exten => s,n,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
exten => s,n(restart),BackGround(demo-congrats) ; Play a congratulatory message
exten => s,n(instruct),BackGround(demo-instruct); Play some instructions
exten => s,n,WaitExten ; Wait for an extension to be dialed.
exten => 2,1,BackGround(demo-moreinfo) ; Give some more information.
exten => 2,n,Goto(s,instruct)
exten => 3,1,Set(LANGUAGE()=fr) ; Set language to french
exten => 3,n,Goto(s,restart) ; Start with the congratulations
exten => 1000,1,Goto(default,s,1)
12. Difficulties in Asterisk
Conditional Loops Error Handling
➢ ➢
Complex Data Date and time
➢ ➢
Structure handling
Database / LDAP RegEx Pattern
➢ ➢
Integration Matching
Extending the Variables
➢ ➢
language Object Oriented
➢
Portability - Asterisk Design
➢
v.s Freeswitch, etc.
13. Ruby / Asterisk Integration Tools
RAGI – Just for AGI. Not integrated with Rails.
➢
No longer active.
RAMI – Just for Management Interface. No Rails
➢
Integration. Not Active.
Adhearsion – Active. Good for writing pure voice
➢
applications. Not tied with Rails (but can be
without too much effort).
Telegraph – Active. Tightly integrated with Rails.
➢
Embraces the Voice/Web Analogy.
14. Adhearsion
Standalone server that talks with Asterisk
Developed by Jay Phillips of Codemecca
Open Source
Current version is 0.7.7
Development on 0.8 is nearly complete. Lots of
new changes.
15. Adhearsion
Put the line below in extensions.conf
Tells Asterisk to process all calls by our
Adhearsion server
exten => _X.,1,Agi(agi://127.0.0.1)
or... when extension 888 is dialed.
exten => 888,1,Agi(agi://127.0.0.1)
16. Adhearsion - dialplan.rb
adhearsion {
play %w(press-1 for minneapolis press-2 for chicago or
press-3 for dallas weather otherwise-press 4)
selection = input()
w = new_weather
case selection
when '1' then play w.weather_report(quot;Minneapolis, MNquot;)
when '2' then play w.weather_report(quot;Chicago, ILquot;)
when '3' then play w.weather_report(quot;Dallas, TXquot;)
else
simon = new_simon_game
simon.start
end
}
18. Adhearsion - Demo
Notes:
Start up Asterisk : sudo asterisk
Show asterisk CLI.
Start up Adhearsion 0.8 Server :
~/development/adhersion/trunk/bin/ahn start .
in the rumadhearsion directory
Point Xlite Phone to Localhost dial extension 8000
19. Adhearsion – Weather Demo
Demo #1 - Weather - Parses data from
Yahoo RSS feed <yweather:forecast
day=quot;Monquot; date=quot;31 Dec 2007quot; low=quot;6quot;
high=quot;19quot; text=quot;Flurriesquot; code=quot;13quot; />
rep = %W(weather is-currently
#{w.current.temp} degrees today high
#{today.high} low #{today.low}) +
w.current.desc
20. Adhearsion – Simon Says
Demo #2 - Play Simon Says Game
def verify_attempt
if attempt_correct?
call_context.play 'good'
else
call_context.play %W(#{number.size - 1}
times wrong-try-again-smarty)
reset
end
end
21. Adhearsion
Write Ruby in our dial
●
plans!
Ability to use any
●
Ruby gems we need
(Active Record, etc.)
Test and debug our
●
application in
isolation.
Bring OO practices to
●
VOIP development
22. Adhearsion
It's abstracted and
●
portable across other
PBXes
It's simple
●
It's extensible
●
It's readable
●
It's maintainable
●
It's fun!
●
23. Adhearsion
Where's the Rails?
Not directly integrated with Rails – by choice.
Written to stand on it's own, but you can link in
your models using ActiveRecord.
Looking for VOIP in the MVC framework?
Look no further than Telegraph...
24. Telegraph
Written by a company named Idapted.
➢
Extracted from production application ( Idapted's
➢
distributed voice system for English language
learning – EnglishQuad )
Started with RAGI / RAMI
➢
Tightly Integrated with the Rails/Web Interface
➢
They claim it “embraces the Voice/Web analogy”
➢
25. Telegraph
Installs into any Rails project as a plugin
script/plugin install
svn://rubyforge.org/var/svn/telegraph/trunk
start up the server
script/agi_server – Interfaces with the gateway
(incoming calls)
script/ami_server – Interfaces with the Asterisk
manager
27. Telegraph
Add this to your extensions.conf
exten => s, n, AGI(agi://localhost/account)
respond_to do |wants|
#r index.html
wants.html { render }
# Telegraph allows render_voice
# which uses the index.voice file
wants.voice{ render_voice }
end
29. Telegraph - Demo
Start up telegraph server :
telegraph/banking_demo
ruby script/asterisk_server
ruby script/server
Visit http://localhost:3000/account
Dial Extension 9000
30. Real World Application
eStara
Offers a service where a
user browsing a site
can enter their phone
number. The system
will dial their number,
ask the person to hold
and then dial customer
service.
We'll do this.
31. Demo Topology
Cell
Origination/ Rails Application
Phone
Termination
Server
PSTN Internet
Asterisk
AGI
AMI
Demos:
1. Using the browser to initiate phone call.
2. “Who Wants To Be A Billionaire” game.
32. Demo – Using PSTN
Telegraph Demos -
➢
➢ Use the browser to initiate a wakeup call.
➢ Use the browser to initiate phone calls to 10 digit
phone numbers and bridge the calls
➢ Use the browser to initiate a call and verify
correct code was entered.
Adhearsion Demo -
➢
➢ Adhearsion – My “Who Wants To Be A
Billionaire” application.