- The document discusses SIPLABS, a company located in Novosibirsk, Russia that provides professional Kazoo-based services and develops solutions for their clients.
- They have contributed code to Kazoo like call flow modules for eavesdropping, intercepting calls, and setting CIDs from lists.
- They are currently working on a device manager application and future contributions around CNAM lookup, XMPP integration, and a built-in DNS server.
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 20152600Hz
People love to talk about scale. Some vendors pitch that their systems easily support 100,000 simultaneous calls, or 500 calls per second, etc. The reality is, in the real world, people’s behaviors vary and the feature sets they use can cut these numbers down quickly. For example, ask that same vendor claiming 100,000 simultaneous calls if it can be done while call recording, call statistics and other features are turned on at the same time, and you’ll usually get a very different, cautious, qualified response.
In this presentation, we'll show you how to set up your infrastructure to support 100,000 simultaneous calls.
Real time analytics with Netty, Storm, KafkaTrieu Nguyen
This document discusses a real-time analytics architecture using Netty, Apache Kafka, and Storm. It includes an overview of the system architecture with Netty handling HTTP logging and producing to Apache Kafka for stream data storage. Storm analytics clusters then consume from Kafka topics to perform analytics functions like tokenization, parsing, aggregation, and saving results to Redis and a data warehouse.
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...Severalnines
This presentation by Krzysztof Książek at Percona Live 2017 in Santa Clara, California gives detailed descriptions and comparisons of the leading open source database load balancing technologies
Building an enterprise level single sign-on application with the help of keycloak (Open Source Identity and Access Management).
And understanding the way to secure your application; frontend & backend API’s. Managing user federation with minimum configuration.
Building Cloud-Native Applications with HelidonDmitry Kornilov
Slides for my and Johan Palmer presentation on Oracle Open World 2019.
Abstract:
Project Helidon is an open-source framework that supports customers developing Java-based microservices applications. Helidon SE is designed to be simple to use, lightweight, and fast. In addition, Helidon also implements MicroProfile, a baseline platform definition that optimizes Java EE for microservices architectures, and delivers application portability across multiple runtimes. Come to this session to learn what Helidon is, gain an understanding of the strategy and roadmap, and uncover how you might benefit from using Helidon in your business.
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 20152600Hz
People love to talk about scale. Some vendors pitch that their systems easily support 100,000 simultaneous calls, or 500 calls per second, etc. The reality is, in the real world, people’s behaviors vary and the feature sets they use can cut these numbers down quickly. For example, ask that same vendor claiming 100,000 simultaneous calls if it can be done while call recording, call statistics and other features are turned on at the same time, and you’ll usually get a very different, cautious, qualified response.
In this presentation, we'll show you how to set up your infrastructure to support 100,000 simultaneous calls.
Real time analytics with Netty, Storm, KafkaTrieu Nguyen
This document discusses a real-time analytics architecture using Netty, Apache Kafka, and Storm. It includes an overview of the system architecture with Netty handling HTTP logging and producing to Apache Kafka for stream data storage. Storm analytics clusters then consume from Kafka topics to perform analytics functions like tokenization, parsing, aggregation, and saving results to Redis and a data warehouse.
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...Severalnines
This presentation by Krzysztof Książek at Percona Live 2017 in Santa Clara, California gives detailed descriptions and comparisons of the leading open source database load balancing technologies
Building an enterprise level single sign-on application with the help of keycloak (Open Source Identity and Access Management).
And understanding the way to secure your application; frontend & backend API’s. Managing user federation with minimum configuration.
Building Cloud-Native Applications with HelidonDmitry Kornilov
Slides for my and Johan Palmer presentation on Oracle Open World 2019.
Abstract:
Project Helidon is an open-source framework that supports customers developing Java-based microservices applications. Helidon SE is designed to be simple to use, lightweight, and fast. In addition, Helidon also implements MicroProfile, a baseline platform definition that optimizes Java EE for microservices architectures, and delivers application portability across multiple runtimes. Come to this session to learn what Helidon is, gain an understanding of the strategy and roadmap, and uncover how you might benefit from using Helidon in your business.
Swagger is a specification and complete framework implementation for describing, producing, consuming, and visualizing RESTful web services. The overarching goal of Swagger is to enable client and documentation systems to update at the same pace as the server. The documentation of methods, parameters, and models are tightly integrated into the server code, allowing APIs to always stay in sync. With Swagger, deploying managing, and using powerful APIs has never been easier.
KSQL is an open source streaming SQL engine for Apache Kafka. Come hear how KSQL makes it easy to get started with a wide-range of stream processing applications such as real-time ETL, sessionization, monitoring and alerting, or fraud detection. We'll cover both how to get started with KSQL and some under-the-hood details of how it all works.
Developing Real-Time Data Pipelines with Apache KafkaJoe Stein
Apache Kafka is a distributed streaming platform that allows for building real-time data pipelines and streaming apps. It provides a publish-subscribe messaging system with persistence that allows for building real-time streaming applications. Producers publish data to topics which are divided into partitions. Consumers subscribe to topics and process the streaming data. The system handles scaling and data distribution to allow for high throughput and fault tolerance.
This document explains how to set up ProxySQL to log queries from users connecting directly to the database servers. It details installing and configuring ProxySQL to log queries to binary files, using a tool to convert the binary logs to text format, and setting up an ELK stack to index the query logs and make them searchable in Kibana. Filebeat is configured to ship the text query logs to Logstash, which parses them and sends the data to Elasticsearch. Kibana provides a web interface for viewing and analyzing the query logs.
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020Matt Raible
Matt Raible compares the Java web frameworks Micronaut, Quarkus, and Spring Boot for building REST APIs. He demonstrates how to quickly get started with each framework, secure APIs with OAuth 2.1 and JWTs, build Docker images, and go native with GraalVM. Performance tests show Quarkus has the fastest startup time while Spring Boot has the largest community support in areas like Stack Overflow questions, GitHub stars, and jobs on Indeed.
1. Traditional database development faces issues like lack of source control, tedious deployment scripts, and manual processes.
2. DevOps principles like continuous integration, static code analysis, and automation can help address these issues. Database changes can be tracked in source control and deployed automatically.
3. There are different approaches to database deployment like state-based using DACPAC files or migration-based using incremental scripts stored in source control. Tools like SSDT, ReadyRoll, and Flyway support these approaches.
The document describes the OutSystems Application Lifetime Management tool called Lifetime. Lifetime provides a centralized management console that gives visibility into all environments on an OutSystems platform. It manages application deployments, users, security, and orchestration across environments. Lifetime analyzes application dependencies and helps users deploy applications by resolving any issues detected. It also provides performance monitoring, custom plugin support, and manages infrastructure security through role-based permissions across all environments.
What is SAML , How does SAML Works , request and Response , Enterprise and Web SSO, Advantages and Disadvantages of SSO, What is SSO, Single Sign On, Security Assertion Mark-up language.
Java 9/10/11 - What's new and why you should upgradeSimone Bordet
Java 11 is the new Java release and, differently from Java 9 and Java 10, it is a "Long Term Support" release - we will see what that means exactly.
This presentation details the main new features of Java 11, starting from licensing (where there are important changes - in particular the Oracle JDK may only be used in production if you have a support contract with Oracle), to arrive to the new Java 11 features, with a quick peek back at what was introduced in Java 9 and Java 10.
The main Java 11 arguments are:
• Two new garbage collectors: EpsilonGC e ZGC
• Support for TLS 1.3
• Possibility to execute a single source file
• New HTTP client based on the Flow API
• Removal of modules (CORBA, JTA, @Inject, ecc.)
• Bytecode news (nest-mates, dynamic constants)
Probably you are curious about this thing called Reactive Programming. Reactive Programming is another programming paradigm that in most of the cases, we are not used to coding in our day-to-day work, as the imperative way is the common one. This makes learning and thinking in a reactive way harder. One of the main problems I have found when learning and reading material about Reactive Programming is that they never tackle enterprise use cases. In this session, we are going to skip the cute ideas that are normally part of a reactive programming talk and focus on how to use it in the real world. Don't be the last developer to board this train and move your reactive skills from novice to expert.
OData presentation organized in ITC Hub Pancevo, Serbia, 10. Feb. 2018. https://www.meetup.com/Web-Development-Pancevo/events/247493392/. OData is enhancement of classic REST API concept that adds querying capabilities.
REST Service Authetication with TLS & JWTsJon Todd
Many companies are adopting micro-services architectures to promote decoupling and separation of concerns in their applications. One inherent challenge with breaking applications up into small services is that now each service needs to deal with authenticating and authorizing requests made to it. We present a clean way to solve this problem Json Web Tokens (JWT) and TLS using Java.
Implementing code-based load tests in JavaScript with the k6 performance testing tool.
Svetlin Nakov @ QA Challenge Accepted 2021
Load and performance testing aims to determine whether software meets speed, scalability and stability requirements under expected workloads. Old school performance testing tools like Apache JMeter are complex and heavy and are not well aligned with the modern QA automation and continuous integration trends.
In this talk Svetlin presents and demonstrates the "k6 framework" - a modern open-source load testing tool, which describes the load tests as JavaScript code. The k6 tool is very powerful, high-performance and developer-friendly. It allows load testing of Web apps and APIs, accessed through the HTTP protocol.
Svetlin also demonstrates how to install and use k6, how to run its test recorder, how to edit the recorded scripts at the k6 cloud and how to write k6 scripts in JavaScript (execute HTTP requests, write checks, define thresholds), and execute the scripts with certain number of virtual users for certain duration.
Java 10 contains several new features including local variable type inference using the var keyword, time-based release versioning, improved support for Docker containers, and various library enhancements. It focuses on improving performance and usability. Some notable changes include local variable type inference for concise code, parallel full GC for the G1 collector to reduce latency, and application data sharing to improve startup times.
Unleashing Docker with Pipelines in Bitbucket CloudAtlassian
For those using Bitbucket Cloud, Bitbucket Pipelines makes Docker a first class citizen in your CI/CD cycle. Join Bitbucket Pipelines developer Philip Hodder to learn how containers are changing the way developers build software for the cloud, enabling faster development and safer deployments in a microservices world. He'll use practical, real-world examples to show best practices for testing, building, and pushing your Docker containers in the cloud when using Bitbucket Pipelines.
Philip Hodder, Developer, Atlassian
Integrating Postgres with ActiveMQ and CamelJustin Reock
Learn how to use Postgres as a backing persistence adapter for the ActiveMQ messaging platform, as well as an integration endpoint for the powerful Apache Camel integration framework. Not only will you learn about JDBC, but you'll also get a solid introduction to these two mature and powerful integration platforms.
Dissolving the Problem (Making an ACID-Compliant Database Out of Apache Kafka®)confluent
Presenter: Tim Berglund, Senior Director of Developer Experience, Confluent
It has become a truism in the past decade that building systems at scale, using non-relational databases, requires giving up on the transactional guarantees afforded by the relational databases of yore. ACID transactional semantics are fine, but we all know you can’t have them all in a distributed system. Or can we?
In this talk, I will argue that by designing our systems around a distributed log like Apache Kafka®, we can in fact achieve ACID semantics at scale. We can ensure that distributed write operations can be applied atomically, consistently, in isolation between services, and of course with durability. What seems to be a counterintuitive conclusion ends up being straightforwardly achievable using existing technologies, as an elusive set of properties becomes relatively easy to achieve with the right architectural paradigm underlying the application.
The document discusses various aspects of billing and call rating in Kazoo, including:
1. Common billing concepts like subscriptions, usage limits, overage charges, and payment types.
2. How Kazoo implements call rating by matching calls to rate decks and calculating costs.
3. How Kazoo handles call authorization and limits through features like trunk allocation, prepaid balances, and tracking account usage in temporal databases.
Kamailio is a fast, reliable, and flexible SIP routing server that has been in continuous development since 2001. It started as SIP Express Router and was renamed to Kamailio in 2008. The presentation highlights Kamailio's features over the years, security best practices for VoIP including blocking calls based on source address, authentication failures, and traffic rates. VoIP security is important to protect customers and businesses from attacks targeting core platforms and equipment. Kamailio provides flexible modules to implement various security rules and policies to block threats.
Swagger is a specification and complete framework implementation for describing, producing, consuming, and visualizing RESTful web services. The overarching goal of Swagger is to enable client and documentation systems to update at the same pace as the server. The documentation of methods, parameters, and models are tightly integrated into the server code, allowing APIs to always stay in sync. With Swagger, deploying managing, and using powerful APIs has never been easier.
KSQL is an open source streaming SQL engine for Apache Kafka. Come hear how KSQL makes it easy to get started with a wide-range of stream processing applications such as real-time ETL, sessionization, monitoring and alerting, or fraud detection. We'll cover both how to get started with KSQL and some under-the-hood details of how it all works.
Developing Real-Time Data Pipelines with Apache KafkaJoe Stein
Apache Kafka is a distributed streaming platform that allows for building real-time data pipelines and streaming apps. It provides a publish-subscribe messaging system with persistence that allows for building real-time streaming applications. Producers publish data to topics which are divided into partitions. Consumers subscribe to topics and process the streaming data. The system handles scaling and data distribution to allow for high throughput and fault tolerance.
This document explains how to set up ProxySQL to log queries from users connecting directly to the database servers. It details installing and configuring ProxySQL to log queries to binary files, using a tool to convert the binary logs to text format, and setting up an ELK stack to index the query logs and make them searchable in Kibana. Filebeat is configured to ship the text query logs to Logstash, which parses them and sends the data to Elasticsearch. Kibana provides a web interface for viewing and analyzing the query logs.
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020Matt Raible
Matt Raible compares the Java web frameworks Micronaut, Quarkus, and Spring Boot for building REST APIs. He demonstrates how to quickly get started with each framework, secure APIs with OAuth 2.1 and JWTs, build Docker images, and go native with GraalVM. Performance tests show Quarkus has the fastest startup time while Spring Boot has the largest community support in areas like Stack Overflow questions, GitHub stars, and jobs on Indeed.
1. Traditional database development faces issues like lack of source control, tedious deployment scripts, and manual processes.
2. DevOps principles like continuous integration, static code analysis, and automation can help address these issues. Database changes can be tracked in source control and deployed automatically.
3. There are different approaches to database deployment like state-based using DACPAC files or migration-based using incremental scripts stored in source control. Tools like SSDT, ReadyRoll, and Flyway support these approaches.
The document describes the OutSystems Application Lifetime Management tool called Lifetime. Lifetime provides a centralized management console that gives visibility into all environments on an OutSystems platform. It manages application deployments, users, security, and orchestration across environments. Lifetime analyzes application dependencies and helps users deploy applications by resolving any issues detected. It also provides performance monitoring, custom plugin support, and manages infrastructure security through role-based permissions across all environments.
What is SAML , How does SAML Works , request and Response , Enterprise and Web SSO, Advantages and Disadvantages of SSO, What is SSO, Single Sign On, Security Assertion Mark-up language.
Java 9/10/11 - What's new and why you should upgradeSimone Bordet
Java 11 is the new Java release and, differently from Java 9 and Java 10, it is a "Long Term Support" release - we will see what that means exactly.
This presentation details the main new features of Java 11, starting from licensing (where there are important changes - in particular the Oracle JDK may only be used in production if you have a support contract with Oracle), to arrive to the new Java 11 features, with a quick peek back at what was introduced in Java 9 and Java 10.
The main Java 11 arguments are:
• Two new garbage collectors: EpsilonGC e ZGC
• Support for TLS 1.3
• Possibility to execute a single source file
• New HTTP client based on the Flow API
• Removal of modules (CORBA, JTA, @Inject, ecc.)
• Bytecode news (nest-mates, dynamic constants)
Probably you are curious about this thing called Reactive Programming. Reactive Programming is another programming paradigm that in most of the cases, we are not used to coding in our day-to-day work, as the imperative way is the common one. This makes learning and thinking in a reactive way harder. One of the main problems I have found when learning and reading material about Reactive Programming is that they never tackle enterprise use cases. In this session, we are going to skip the cute ideas that are normally part of a reactive programming talk and focus on how to use it in the real world. Don't be the last developer to board this train and move your reactive skills from novice to expert.
OData presentation organized in ITC Hub Pancevo, Serbia, 10. Feb. 2018. https://www.meetup.com/Web-Development-Pancevo/events/247493392/. OData is enhancement of classic REST API concept that adds querying capabilities.
REST Service Authetication with TLS & JWTsJon Todd
Many companies are adopting micro-services architectures to promote decoupling and separation of concerns in their applications. One inherent challenge with breaking applications up into small services is that now each service needs to deal with authenticating and authorizing requests made to it. We present a clean way to solve this problem Json Web Tokens (JWT) and TLS using Java.
Implementing code-based load tests in JavaScript with the k6 performance testing tool.
Svetlin Nakov @ QA Challenge Accepted 2021
Load and performance testing aims to determine whether software meets speed, scalability and stability requirements under expected workloads. Old school performance testing tools like Apache JMeter are complex and heavy and are not well aligned with the modern QA automation and continuous integration trends.
In this talk Svetlin presents and demonstrates the "k6 framework" - a modern open-source load testing tool, which describes the load tests as JavaScript code. The k6 tool is very powerful, high-performance and developer-friendly. It allows load testing of Web apps and APIs, accessed through the HTTP protocol.
Svetlin also demonstrates how to install and use k6, how to run its test recorder, how to edit the recorded scripts at the k6 cloud and how to write k6 scripts in JavaScript (execute HTTP requests, write checks, define thresholds), and execute the scripts with certain number of virtual users for certain duration.
Java 10 contains several new features including local variable type inference using the var keyword, time-based release versioning, improved support for Docker containers, and various library enhancements. It focuses on improving performance and usability. Some notable changes include local variable type inference for concise code, parallel full GC for the G1 collector to reduce latency, and application data sharing to improve startup times.
Unleashing Docker with Pipelines in Bitbucket CloudAtlassian
For those using Bitbucket Cloud, Bitbucket Pipelines makes Docker a first class citizen in your CI/CD cycle. Join Bitbucket Pipelines developer Philip Hodder to learn how containers are changing the way developers build software for the cloud, enabling faster development and safer deployments in a microservices world. He'll use practical, real-world examples to show best practices for testing, building, and pushing your Docker containers in the cloud when using Bitbucket Pipelines.
Philip Hodder, Developer, Atlassian
Integrating Postgres with ActiveMQ and CamelJustin Reock
Learn how to use Postgres as a backing persistence adapter for the ActiveMQ messaging platform, as well as an integration endpoint for the powerful Apache Camel integration framework. Not only will you learn about JDBC, but you'll also get a solid introduction to these two mature and powerful integration platforms.
Dissolving the Problem (Making an ACID-Compliant Database Out of Apache Kafka®)confluent
Presenter: Tim Berglund, Senior Director of Developer Experience, Confluent
It has become a truism in the past decade that building systems at scale, using non-relational databases, requires giving up on the transactional guarantees afforded by the relational databases of yore. ACID transactional semantics are fine, but we all know you can’t have them all in a distributed system. Or can we?
In this talk, I will argue that by designing our systems around a distributed log like Apache Kafka®, we can in fact achieve ACID semantics at scale. We can ensure that distributed write operations can be applied atomically, consistently, in isolation between services, and of course with durability. What seems to be a counterintuitive conclusion ends up being straightforwardly achievable using existing technologies, as an elusive set of properties becomes relatively easy to achieve with the right architectural paradigm underlying the application.
The document discusses various aspects of billing and call rating in Kazoo, including:
1. Common billing concepts like subscriptions, usage limits, overage charges, and payment types.
2. How Kazoo implements call rating by matching calls to rate decks and calculating costs.
3. How Kazoo handles call authorization and limits through features like trunk allocation, prepaid balances, and tracking account usage in temporal databases.
Kamailio is a fast, reliable, and flexible SIP routing server that has been in continuous development since 2001. It started as SIP Express Router and was renamed to Kamailio in 2008. The presentation highlights Kamailio's features over the years, security best practices for VoIP including blocking calls based on source address, authentication failures, and traffic rates. VoIP security is important to protect customers and businesses from attacks targeting core platforms and equipment. Kamailio provides flexible modules to implement various security rules and policies to block threats.
Telnexus CEO Vernon Keenan discuss how he built the Managed Service Provider Telnexus from the ground up and the lessons he has learned in the process.
Voxter - Building Value with Kazoo - KazooCon 20152600Hz
The presenters introduced themselves as employees of Voxter, a 10 person company that has been a Kazoo user and contributor for 4 years. They operate Kazoo globally to provide VoIP services. They discussed contributions they have made and plan to make to Kazoo Core, including improvements to conferencing, call flows, and new WhApps for queue reporting and AMI emulation. They demonstrated some of these contributions, such as custom call flow variables and the Elasticsearch CDR module. Finally, they announced upcoming open source releases of the QUiLT and AMImulator WhApps.
Dayton Turner of Voxter discussed their experience deploying Kazoo globally across multiple international points of presence (POPs). They discussed challenges with internationalization, availability across zones and clusters, and global operations. Voxter has integrated Kazoo with various third party tools and built custom GUIs. They also contribute code to Kazoo on GitHub and are building additional integrations to help the community.
This is an overview of VoIP fraud, different types of fraud and what telecommunication carriers are doing to combat this issue. Types of fraud include International / Premium Number Fraud, Impersonation / Social Engineering, Service Degradation / Denial of service. Presented by Mark Magnusson at KazooCon 2015.
This document provides a summary of Karl Anderson's presentation at Kazoocon14. Some of the key areas discussed include improvements to Kamailio and FreeSWITCH dependencies, the Kazoo installation process, the Monster UI, Provisioner, Project Phonebook, internationalization efforts, and upcoming work on statistics, federation, and hosted Kazoo services. The presentation outlines progress made over the past year and outlines an ambitious roadmap for further developing and enhancing the Kazoo platform.
VirtualPBX - Back Office, Delivering Voice in a Competitive Market - KazooCon...2600Hz
In a competitive market, high quality voice services alone are rarely enough. Lon will speak about the customer lifecycle, back office systems from Sales to CRM to deployment, and how to drive profitable growth while delivering an excellent customer experience.
KazooCon 2014 - Range Networks, the Future of Mobile 2600Hz
This document discusses the potential for software innovation in mobile networks by adopting a more flexible, software-defined approach inspired by the internet. It argues that current mobile network architectures are antiquated and rigid, inhibiting innovation, while the internet has thrived on open standards and flexibility. The OpenBTS platform is presented as an example of a new type of mobile infrastructure that uses software to implement network functions from layers 1-7, allowing for more rapid innovation, protocol agility, and new business models like IoT applications.
KazooCon 2014 - Control Cellular Service via APIs2600Hz
2600hz engineer Chris Cole demos the advanced functionality of our API. Currently there are tons of callflow options that include ring a device, ring a user, manual presence, pivot, etc. Chris explores this functionality in his live demo.
WebRTC (Web Real-Time Communication) is an API definition drafted by the World Wide Web Consortium (W3C) that supports browser-to-browser applications for voice calling, video chat, and P2P file sharing without plugins. Web RTC is a young but is a promising & powerful technology. The possibilities are endless that includes HD audio, video, file sharing, screen sharing, conference application and more. www.2600hz.com
Jean-Roche Maitre and Joris TIrado discuss the basics of coding a Monster app, which will track all new call events happening on a Kazoo Account. The goal is to see the events in our app as we place calls from a softphone!
CTO Karl Anderson discusses the state of Kazoo. This includes integrations with FreeSWITCH, erlang, and Kamailio. Reseller milestones include the release of whitelabeling, webhooks, migration, carriers, debugging, account management and more.
2600hz WebRTC Meetup at WeWork, San Francisco, CA2600Hz
2600hz Engineers Peter Defebvre and Maxime Roux will lead an intense discussion on WebRTC, what it is and how to build your own phone. We will also discuss how 2600hz is able to provide enterprise grade connectivity to any HTML5 endpoint.
Kazoo APIs are an example of a restful web-service. They are APIs are provided over HTTP/HTTPS. Kazoo APIs mostly uses the JavaScript Object Notation (JSON) data format for most payloads!
Product Director Aaron Gunn discusses billing options for SaaS and IaaS customers. This includes CDR API, AMPQ, and integrating VoIP billing platforms.
KazooCon 2014 - Building Your Business: Behind the Numbers!2600Hz
2600hz Sales Manager Angela Lambert discusses
Compeetor pricing for your customers, how consumers understand VoIP as a product & VoIP pricing and what this means for you as a provider
Fosdem 2016, Brussels, Belgium
A developer perspective of the components in the C code that impact the performances of the signaling servers, applied for Kamailio (https://www.kamailio.org), reflecting how they can be tuned from configuration file to increase the capacity of a SIP server.
Node is used to build a reverse proxy to provide secure access to internal web resources and sites for mobile clients within a large enterprise. Performance testing shows the proxy can handle over 1000 requests per second with latency under 1 second. Code quality analysis tools like Plato and testing frameworks like Jest are useful for maintaining high quality code. Scalability is achieved through auto-scaling virtual machine instances with a load balancer and configuration management.
This document discusses centralized and decentralized capabilities that could be provided by an Internet of Things (IOT) Platform as a Service (PaaS). Centralized capabilities discussed include device management, protocol hub, device discovery, event aggregation, telemetry data storage, event simulation, event notifications, and real-time data visualization. Decentralized capabilities discussed include peer-to-peer secure messaging, contract enforcement/messaging trust, and file sharing. The document also discusses how some of these capabilities could be implemented and compares Cloudfoundry and blockchain as foundational models for centralized and decentralized IOT PaaS respectively.
Stefanus Soehono discusses network automation with Ansible. He notes that while networking has not changed much in 30 years, Ansible provides a way to automate network changes through YAML-based playbooks. It allows building, managing, and orchestrating configurations across physical and virtual network devices from multiple vendors. Red Hat provides support for Ansible through the Ansible Engine and Tower products, including over 100 core networking modules.
This document introduces Node.js and provides an overview of its key features and use cases. Some main points:
- Node.js is a JavaScript runtime built on Chrome's V8 engine that allows building scalable network applications easily. It is not a web framework but you can build web frameworks with Node.js modules.
- Node.js is well-suited for building web servers, TCP servers, command line tools, and anything involving high I/O due to its non-blocking I/O model. It has over 15,000 modules and an active community for support.
- Common use cases include building JSON APIs, single page apps, leveraging existing Unix tools via child processes, streaming
View IT operations as a flow of data (Sources of Truth) thru work-cells (automation processes) to deliver value to the customer.
There should be only one source of truth for every piece of configuration data.
Device configurations are poor source of truth.
Using Smalltalk for controlling robotics systemsSerge Stinckwich
This document discusses using Smalltalk for controlling robotics systems. It provides an introduction to developing embedded systems in Smalltalk and highlights some past projects that have used Smalltalk for robotics and embedded applications. It outlines advantages of Smalltalk such as its simple syntax, portability, uniformity, and dynamism. Examples are given of generating code from Smalltalk for other robotics platforms and simulating robotics applications in Smalltalk.
The document provides instructions for setting up a TI-RTOS project for the CC1352R wireless microcontroller. It describes creating a CCS project targeting the CC1352R, configuring compiler and linker settings, generating a system configuration file, and adding TI-RTOS and driver library files. The goal is to build a basic "hello world" project to demonstrate real-time operating system functionality on the CC1352R wireless microcontroller.
SolarWinds Scalability for the EnterpriseSolarWinds
Listen to the SolarWinds product management team as they show you how SolarWinds affordable, powerful, and easy-to-use solutions can scale your monitoring and management capabilities to hundreds of thousands of network devices, servers, or applications.
Web Template Mechanisms in SOC Verification - DVCon.pdfSamHoney6
The document discusses using web template mechanisms to generate verification environments for system-on-chip (SOC) designs. It proposes applying Jinja2 template language to generate consistent software views and hardware verification language views based on platform descriptions in JSON format. This separates the platform data from the views, allowing reuse of tests developed on virtual platforms at the SOC level while hiding differences between the platforms.
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
This document provides an overview of designing complex applications using HTML5 and KnockoutJS. It discusses HTML5 and why it is useful, introduces JavaScript and frameworks like KnockoutJS and SammyJS that help manage complexity. It also summarizes several JavaScript libraries and patterns including the module pattern, revealing module pattern, and MV* patterns. Specific libraries and frameworks discussed include RequireJS, AmplifyJS, UnderscoreJS, and LINQ.js. The document concludes with a brief mention of server-side tools like ScriptSharp.
Introduction to WSO2 Data Analytics PlatformSrinath Perera
This document provides an introduction to the WSO2 Analytics Platform. It discusses how the platform allows users to collect data from various sources using a sensor API, then perform analysis on the data through both batch and real-time means. Batch analysis uses technologies like Apache Spark and Hadoop to perform tasks like finding averages, max/min, and building KPIs. Real-time analysis uses complex event processing to run queries over streaming data and detect patterns. The platform also enables predictive analytics using machine learning algorithms and anomaly detection. Results are then communicated through dashboards and alerts.
Android Industrial Mobility - Droidcon Italy - Turin 9-10 April 2015Pietro F. Maggi
Android Industrial Mobility
BEST PRACTICES TO USE NEW TECHNOLOGIES TO SOLVE OLD PROBLEMS
Large retailers were already using mobile computers with barcode scanners and Wireless networks in the 80s. During the last 30 years they have used custom HW running different versions of DOS, PalmOS, PocketPC,Windows CE,Windows Mobile and Windows Embedded Handheld on Rugged PDAs and Smartphones.
Now it's time to migrate to someting new, to Android.
In this talk I will present what are the biggest surprises that these old time mobility users are going to face and how we can help them to embrace, extend and enjoy the power of Android.
To Android developers and entrepreneurs this talk will explain what are the best practices that the Industrial Mobility field has collected over 30 years of history:
- Think about deployment at design stage
- IT Friendly is as important as User Friendly
- Why a solution that is good for the consumer market is not good enough for Industrial Mobility.
- Acknowledge that your solution is going to survive some generations of Mobile devices (and maybe OSes)
Lessons Learned Running InfluxDB Cloud and Other Cloud Services at Scale by T...InfluxData
In this session, Tim will cover principles, learnings, and practical advice from operating multiple cloud services at scale, including of course our InfluxDB Cloud service. What do we monitor, what do we alert on, and how did we architect it all? What are our underlying architectural and operational principles?
This is a presentation I prepared for a local meetup. The audience is a mix of web designers and developers who have a wide range of development experience.
When virtualization encounters afl blackhat eu2016--1.4月锋 李
This document discusses using American Fuzzy Lop (AFL) to find vulnerabilities in virtualized devices. It describes their approach of customizing a BIOS to instrument targets and control devices. It outlines the workflow which includes instrumenting targets, encoding commands as input for AFL, running the fuzzing loop, and having the Operation Proxy Server execute requests. As a case study, it discusses fuzzing a floppy disk controller to reproduce the Venom vulnerability. It provides tips for instrumenting code and handling multiple processes with AFL.
Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...ITCamp
PowerShell DSC is a configuration management platform that provides the operations team the capability to deploy and manage systems by defining the desired configuration of a machine while having the assurance that whatever happens, the machines configuration will remain the same.
In this session you will learn what is PowerShell DSC, and how it can grant you the power of implementing a DevOps oriented environment by building and managing your infrastructure in an automatic and consistent fashion.
DSLing your System For Scalability Testing Using Gatling - Dublin Scala User ...Aman Kohli
The power of Gatling is the DSL it provides to allow writing meaningful and expressive tests. We provide an overview of the framework, a description of their development environment and goals, and present their test results.
Source code available https://github.com/lawlessc/random-response-time
Similar to KazooCon 2014 - Playing Kazoo Dudka Style (20)
Discover the benefits of outsourcing SEO to Indiadavidjhones387
"Discover the benefits of outsourcing SEO to India! From cost-effective services and expert professionals to round-the-clock work advantages, learn how your business can achieve digital success with Indian SEO solutions.
HijackLoader Evolution: Interactive Process HollowingDonato Onofri
CrowdStrike researchers have identified a HijackLoader (aka IDAT Loader) sample that employs sophisticated evasion techniques to enhance the complexity of the threat. HijackLoader, an increasingly popular tool among adversaries for deploying additional payloads and tooling, continues to evolve as its developers experiment and enhance its capabilities.
In their analysis of a recent HijackLoader sample, CrowdStrike researchers discovered new techniques designed to increase the defense evasion capabilities of the loader. The malware developer used a standard process hollowing technique coupled with an additional trigger that was activated by the parent process writing to a pipe. This new approach, called "Interactive Process Hollowing", has the potential to make defense evasion stealthier.
Gen Z and the marketplaces - let's translate their needsLaura Szabó
The product workshop focused on exploring the requirements of Generation Z in relation to marketplace dynamics. We delved into their specific needs, examined the specifics in their shopping preferences, and analyzed their preferred methods for accessing information and making purchases within a marketplace. Through the study of real-life cases , we tried to gain valuable insights into enhancing the marketplace experience for Generation Z.
The workshop was held on the DMA Conference in Vienna June 2024.
Ready to Unlock the Power of Blockchain!Toptal Tech
Imagine a world where data flows freely, yet remains secure. A world where trust is built into the fabric of every transaction. This is the promise of blockchain, a revolutionary technology poised to reshape our digital landscape.
Toptal Tech is at the forefront of this innovation, connecting you with the brightest minds in blockchain development. Together, we can unlock the potential of this transformative technology, building a future of transparency, security, and endless possibilities.
3. Who we are?
•Location: Novosibirsk, Russia. That's right, that’s somewhere in Siberia
•Occupation: Professional services company
•Ambitions: High
•Ideas: a lot
We give a thing
about KAZOO!
6. What we do?
•We plan, design, deploy, test, maintain and support Kazoo-based
systems for our clients
•We develop for KAZOO platform
•Outside KAZOO we work with sipXecs, plain FreeSWITCH and even
sometimes Asterisk (yep, guilty)
•We resell Yealink hardware and develop Yealink-based solutions (like
Yealink support for sipXecs)
8. Client: Moscow-based ITSP
•Dedicated CEPH cluster for storage (24Tb)
•CloudStack/KVM-based private IaaS cloud infrastructure
•2xRabbitMQ, 2xKamailio-SBC, 3xKAZOO, 3xFreeSWITCH, 3xDB,
2xKamailio-Outbound, SIPCAPTURE, LogStash/ElasticSearch, Email2Fax
SMTP proxy, HA PaaS platform for Pivot scripts, monitoring
infrastructure, reverse HA HTTP proxy for API access, etc.
•Custom built Kamailio with custom Kamailio RADIUS module for
outbound gateway
•Heavily patched stable 3.13-based system
•12 2CPU hardware nodes
•Tested at 2000 concurrent calls/35 CPS/20 API calls per second
•Client-developed custom UI
9. Client: US-based SaaS
•Really tight integration with custom SaaS CRM system
•KAZOO is hidden behind the scenes and is top-secret
•Targeted to up to 10000 concurrent calls (!)
•Custom version of KAZOO with proprietary modules
•SuperMicro micro-cloud servers
•SuperMicro 1U servers for storage cluster
•Private cloud infrastructure
Planned:
•Custom ACD (call-center) application
•Integrated voice quality monitoring solution
•WebRTC frontend (now in development)
10. Product in development:
Converba Cloud Platform
SIPLABS turnkey Kazoo-based
solution
•Ubuntu LTS-based
•IaaS/PaaS/STaaS platforms included
•Custom admin UI
•Custom client UI
•Stable (internally tested and patched)
releases
•Everything highly-available
•Rich set of scripts included
•Built-in centralized log
collection/monitoring
•Built-in monitoring/alerting system
•Built-in backup/recovery system
12. Kazoo-UI i18n
It all began with this contribution
•All string constants in kazoo-UI were replaced with gettext-like function
calls
•Russian language pack was included
13. After_bridge callflow module
•After hangup call control
•Allows remaining leg of call to be transferred to some extension or
parked
•Useful for call QA (like in real call-centers)
"numbers": [
"2010"
],
"flow": {
"module": "after_bridge",
"data": {
"action": "transfer", // “transfer” or “park” or “hangup”
"data": "1002“ // Extension to transfer ramaining leg to
},
"children": {
"_": {
"module": “user",
"data": {
"id": "048c8190b52d6f0850a1b72f376dfb9b"
},
"children": {
}
}
}
}
14. Eavesdrop callflow module
•Allows eavesdropping (spying, whispering) for generic (non-ACD) calls.
Leg B is addressed
•Provides security mechanisms for limiting access
•Implemented as generic (target required in data) and feature-code type
modules {
"numbers" :[
“2555"
],
"flow" :{
"module" : "eavesdrop", // “eavesdrop” OR “eavesdrop_feature”
"data" :{
"device_id" : "143c8140b52f6f085aa1b74f376dfb9b", // Device OR user to eavesdrop
"approved_device_id":”453afa67b52fdf0f5a45c74f316df5c5" // Device OR user OR
// group allowed to eavesdrop
},
"children" :{
}
}
}
NB: whispering mode can be managed via DTMF
commands
15. Intercept callflow module
•Allows intercepting ringing or answered calls. Leg B is addressed
(changed)
•Provides security mechanisms for limiting access
•Implemented as generic (target required in data) and feature-code type
modules
{
"data" :{
"numbers": [
"2001"
],
"flow" :{
"module" : "intercept", // "intercept_feature" is also available
"data" :{
"device_id": "d9722acd6db64e0686365cd79747aabe", //calls to this device
// will be intercepted
"approved_group_id": “3479acd7452fdf0f5a45c74f336455b7" // Members if this
// group are permitted to intercept calls
},
"children" :{
}
}
}
}
16. Pattern lists (API)
•Lists are meant to be used as a storage for named CID patterns
•Special API is created for managing lists and list entries
Lists manipulation
Create list: PUT /v1/accounts/{account_id}/lists
Get all lists: GET /v1/accounts/{account_id}/lists
Get list: GET /v1/accounts/{account_id}/lists/{list_id}
Modify list: POST /v1/accounts/{account_id}/lists/{list_id}
Delete list: DELETE /v1/accounts/{account_id}/lists/{list_id}
List entries manipulation
Add entry: PUT /v1/accounts/{account_id}/lists/{list_id}
Get list entries: GET /v1/accounts/{account_id}/lists/{list_id}
Get list entry: GET /v1/accounts/{account_id}/lists/{list_id}/{entry_id}
Modify list entry: POST /v1/accounts/{account_id}/lists/{list_id}/{entry_id}
Delete list entry: DELETE /v1/accounts/{account_id}/lists/{list_id}/{entry_id}
17. Pattern lists (API), cont.
{
"data": {
"id":"caea32f84b5b2538d0e99c68b6891df7",
"name":“testlist", // lists are named
"entries":{
"6d42b485b84b8c8c68fc34dd612e7766":{
"pattern":"^79d{9}$", // entry pattern
"firstname": "Mobile", // first name (optional)
"lastname": "Phones", // last name (optional)
"displayname": "Mobile phones", // display name (optional)
"type" : "range" // type – freeform string (optional)
},
“53476538abcd38475638475638438465":{
"pattern":"^7495d{7}$", // entry pattern
"firstname":"Moscow", // first name (optional)
"lastname":"Landlines", // last name (optional)
"displayname":"Mobile phones", // display name (optional)
"type": "range" // type – freeform string (optional)
},
}
}
TODO: Add "number" (exact match) parameter
18. Pattern list CID match
(callflow module)
•check_cid module was there before, but it was meant to match one
pattern
•cidlistmatch matches CID to the whole list and makes it easy to manage:
• VIP lists
• Black lists
• Area-based routes
• … {
"data":{
"id":"01fc63f92d9b89a25dd4ff1039e64497" // list id
},
"module":"cidlistmatch",
"children": {
"match": { }, // something to do if CID matched over list
"nomatch": { }, // something to do if CID did not match
}
}
TODO: use CID types (internal/external)
19. Set CID callflow module
•Modifies CID name and number (useful for Pivot scripts)
{
"flow" :{
"module" : "set_cid" ,
"data" :{
"caller_id_name": "ACME Inc." // "caller_id_number" can also be changed
},
"children" :{
"_": {
"module": "user",
"data": {
"id": "048c8190b52d6f0850a1b72f376dfb9b"
},
"children": {
}
}
}
}
TODO: use CID types (internal/external)
TODO: set_cid_from_list module – to set CID
based on list
20. CAMP-ON feature
PBX Camp On
This feature is used to "stack" a call onto a busy
extension.
If the called party hangs up, their phone will ring
•New application wasw citreha ttheed "asntadc nkeadm"e cda l"lc.amper"
•New callflow module (feature code) was created to initiate "camp on"
calls
•Works{ differently for onnet and offnet calls
"flow": {
"module": "camping_feature",
"data": {
"tries":10, // number of tries (for offnet calls)
"try_interval":1, // interval between tries, minutes (for offnet calls)
"stop_after": 10, // operation timeout, minutes (for offnet calls)
"timeout":9 // for onnet-calls: wait timeout
},
"children": {
}
},
"featurecode": {
"name": "camping_feature",
"number": "777"
},
"patterns": [
"^*777([0-9]*)$"
]
}
21. SBC per-account/per-device
ACLs (SOON!)
•New application was created and named "kamdb"
•Kamailio module db_kazoo was modified to match
•New Kamailio configuration role was added: ACL-ROLE
•Every account/device can have ACLs that work on SBC
•Devices can't register or make calls if their IPs don't match ACLs
•IP and (soon) User-Agent ACLs
"acls":{
"order":"AD", // Allow-Deny, "DA" means Deny-Allow
"cidr":[
"12.34.23.54/32"
,"54.34.65.23/32"
]
}
TODO: Special API within accounts and devices
(/acls)
22. SBC per-account/per-device
rate limits (SOON!)
•"kamdb" application used for ACLs is used for
rate-limits as well
•Kamailio module db_kazoo was modified to
match
•New Kamailio configuration role was added:
RATE-LIMIT-ROLE
•Every account/device can have rate limits that
work on SBC. Accounts may have rate-limits for
entire realm or for devices
•Per-second and per-minute rate limits are
implemented
"rate_limits": {
"own": {
"per_minute": {
"invites": 2000,
"registrations": 2000,
"total": 10000
},
"per_second": {
"invites": 5,
"registrations": 5,
"total": 30
}
},
"device": {
"per_minute": {
"invites": 20,
"registrations": 20,
"total": 300
},
"per_second": {
"invites": 2,
"registrations": 2,
"total": 20
}
}
}
}
TODO: Special API within accounts and devices
(/ratelimits)
23. What we are working on right now
Future contributions (Q4)
24. Device manager (aka
Provisioner) •Device provisioner implemented as KAZOO application and set of
crossbar modules and APIs
•Profile (policy) based devices configuration
•Profiles contain data for various brands/families/models
•Multiple profiles can be assigned to device/account/provider/system
•Core modules and data/modules for Yealink will be open source and
freely available (hopefully as part of KAZOO)
•Sponsors will get everything
Benefits
•Highly available and fault tolerant (because it's KAZOO app)
•Multi-level policy based – flexible from system to individual device level
•Universal and expandable
25. What we are going to do in near future
IDEAS WORTH sharing
26. Built-in CNAM provider app
•Built-in CNAM database SERVER as KAZOO application
•CNAM lookup callflow module
•CNAM lookup chain management
XMPP integration
•XMPP server integration (MongooseIM)
•Integrated presence
•MyBuddy-like bot
27. User profile data management
•Container and API for user profile data: avatar, manager, contacts, etc
•Special callflow modules like "call user's manager", "call user's mobile
contact" etc.
•Active Directory connector app for Windows Servers BW emulation (yes / L,D AwP coenn ector
dare) •BW API emulation app
•BW features for devices
Built-in DNS server
•System-integrated GEO-IP enabled smart DNS server
•Proper DNS balancing for SBC nodes
•Serving proper DNS records for SIP/XMPP: NAPTR, SRV records,etc. Have an idea?
Bring it on!
29. Learning curve
•Source code serves as the primary documentation
• Use the source, Luke!
• RTFC (code), repeat
•Kazoo is a big, complex system
Bugs
•There are bugs caused by high development pace
•We have to have QA and maintain our own stable builds (and do it for
our clients) Community Engagement
•We wish for a tightly integrated partner program with 2600hz
Community
• Improved interactions and response times
• Create formal community policy
• Moderators and gurus available via community
30. Community is Important!
Features cost money to design, build,
document, test, support, maintain.
(Remember: Kazoo is a big, complex
system!)
This is often misunderstood.
We can leverage the community to help
financially and via contributions of time for
each of these phases.
Consider contributing to the
project!
32. Goals to achieve
•Our goal, in conjunction with 2600hz, is to be the most amazing KAZOO
integrator/developer/support provider
•To offer best 3rd party premium components and applications KAZOO
(for advanced users/SPs) on the market
•To constantly improve the KAZOO system and contribute
patches/features/applications to the open source version
KAZOO is great.
Big, complex and great.
We are here to
help you use it for your business