This document provides an introduction to installing and configuring the Asterisk PBX software. It begins with an agenda that covers installing Asterisk, the basics of how Asterisk works, configuring telephony hardware, basic configuration files like sip.conf and extensions.conf, and advanced topics like voicemail, conferencing and scaling. It then discusses downloading and compiling the required components like Zaptel and Libpri as well as configuring SIP endpoints. The document provides an overview of Asterisk's architecture and components and how to structure dial plans using contexts, extensions, applications and variables.
Davide Berardi - Linux hardening and security measures against Memory corruptionlinuxlab_conf
The exploding popularity of Embedded/IoT computing facilitate this security problems using low or non-existent security policies and exploits countermeasures. So why not explore some security measures that are widely available in the Linux world? We will focus on memory corruption techniques.
The Linux kernel was always focused on security features and giving bad times to the exploiters. This talk will introduce some common exploits and techniques, showing the mitigations employed by the kernel. By focusing on the major threats that affects modern Linux boxes, we will see which are the main features that can give problems to the system administator and how a preliminary penetration test can be done, ensuring that the system is in a sane state. The talk will also focus on problematics of embedded/IoT Unix systems, showing how some recent attacks gained control over a big network of devices and how a simple embedded system can be analyzed, hunting for bugs. Talk outline: Penetration testing, Linux, netfilter/bpf, memory corruption, ASLR, Spectre/Meltdown.
Claudio Scordino - Handling mixed criticality on embedded multi-core systemslinuxlab_conf
This talk illustrates how to use the Jailhouse hypervisor for running Linux alongside an RTOS on modern ARM multi-core SoCs, aiming at building smarter devices for the automotive market.
Recently, the industry has shown a growing interest for executing activities with different levels of criticality on the same multi-core SoC. These could consist, for example, of non-critical activities (e.g., monitoring, logging, human-machine intefaces) together with safety-critical tasks. The rationale behind this interest is the continuous need for reducing the time-to-market as well as the design and hardware costs. This is particularly suitable for the automotive market, where new infotainment functionalities might be coupled with traditional safety-critical tasks (e.g. engine/brake control). In this talk, we will present our experience (grown through the HERCULES EU project) in using the Jailhouse hypervisor for executing the Linux general-purpose OS alongside an automotive RTOS on modern ARM multi-core platforms. Besides providing useful instructions for using Jailhouse, we will illustrate a library designed for easing the communication between the two OSs as well as some mechanism for limiting the interference on shared hardware resources. Finally, a short video of a simple demo will show the effectiveness of the proposed approach.
Kernel Recipes 2013 - ARM support in the Linux kernelAnne Nicolas
Over the past two years, the support of the platforms based on ARM processor in the Linux kernel has evolved considerably. Between the use of the Device Tree, moving drivers in many features like clock management or multiplexing of pines, the platform mechanism, the changes have been numerous.
Through the experience of the speaker about the addition to the core support for ARM Marvell Armada 370/XP processors, this intervention will provide an overview of these changes in order to better understand the new organization of the code for ARM architecture in the kernel.
This talk is intended to be useful both for developers who want to add support for a new ARM processor in the kernel, but also to those wishing to understand the ARM code for porting Linux to a new card, or just the curious one.
Davide Berardi - Linux hardening and security measures against Memory corruptionlinuxlab_conf
The exploding popularity of Embedded/IoT computing facilitate this security problems using low or non-existent security policies and exploits countermeasures. So why not explore some security measures that are widely available in the Linux world? We will focus on memory corruption techniques.
The Linux kernel was always focused on security features and giving bad times to the exploiters. This talk will introduce some common exploits and techniques, showing the mitigations employed by the kernel. By focusing on the major threats that affects modern Linux boxes, we will see which are the main features that can give problems to the system administator and how a preliminary penetration test can be done, ensuring that the system is in a sane state. The talk will also focus on problematics of embedded/IoT Unix systems, showing how some recent attacks gained control over a big network of devices and how a simple embedded system can be analyzed, hunting for bugs. Talk outline: Penetration testing, Linux, netfilter/bpf, memory corruption, ASLR, Spectre/Meltdown.
Claudio Scordino - Handling mixed criticality on embedded multi-core systemslinuxlab_conf
This talk illustrates how to use the Jailhouse hypervisor for running Linux alongside an RTOS on modern ARM multi-core SoCs, aiming at building smarter devices for the automotive market.
Recently, the industry has shown a growing interest for executing activities with different levels of criticality on the same multi-core SoC. These could consist, for example, of non-critical activities (e.g., monitoring, logging, human-machine intefaces) together with safety-critical tasks. The rationale behind this interest is the continuous need for reducing the time-to-market as well as the design and hardware costs. This is particularly suitable for the automotive market, where new infotainment functionalities might be coupled with traditional safety-critical tasks (e.g. engine/brake control). In this talk, we will present our experience (grown through the HERCULES EU project) in using the Jailhouse hypervisor for executing the Linux general-purpose OS alongside an automotive RTOS on modern ARM multi-core platforms. Besides providing useful instructions for using Jailhouse, we will illustrate a library designed for easing the communication between the two OSs as well as some mechanism for limiting the interference on shared hardware resources. Finally, a short video of a simple demo will show the effectiveness of the proposed approach.
Kernel Recipes 2013 - ARM support in the Linux kernelAnne Nicolas
Over the past two years, the support of the platforms based on ARM processor in the Linux kernel has evolved considerably. Between the use of the Device Tree, moving drivers in many features like clock management or multiplexing of pines, the platform mechanism, the changes have been numerous.
Through the experience of the speaker about the addition to the core support for ARM Marvell Armada 370/XP processors, this intervention will provide an overview of these changes in order to better understand the new organization of the code for ARM architecture in the kernel.
This talk is intended to be useful both for developers who want to add support for a new ARM processor in the kernel, but also to those wishing to understand the ARM code for porting Linux to a new card, or just the curious one.
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...linuxlab_conf
The development of device drivers usually requires hardware availability. We will try to address this issue by simulating our “missing” device thanks to a QEMU ARM machine. The fake device will be tested and debugged using bare-metal software, again running in QEMU. Finally, we will write a Linux device driver from scratch that will interact with the device and expose it to the userspace.
The training assumes some basic knowledge of the C programming language and using Linux as a development platform. During the training, we will show how to build the Linux kernel and write a simple yet complete device driver, how to use QEMU as a development platform and a few notions of bare-metal and kernel code debugging.
Some recent claims have been made concerning the ability to remotely hijack airplanes. This talk examines those claims.
Videos for slides are now available:
https://www.youtube.com/watch?v=dOlM1weOF8g
https://www.youtube.com/watch?v=-6IW-vJSHeU
https://www.youtube.com/watch?v=LHqnUUiowjs
ERP System Implementation Kubernetes Cluster with Sticky Sessions Chanaka Lasantha
ERP System Implementation on Kubernetes Cluster with Sticky Sessions:
01. Security Features Enabled in Kubernetes Cluster.
02. SNMP, Syslog and audit logs enabled.
03. Enabled ERP no login service user.
04. Auto-scaling enabled both ESB and Jboss Pods.
05. Reduced power consumption using the scale in future during off-peak days.
06. NFS enables s usual with ERP service user.
07. External Ingress( Load Balance enabled).
08. Cluster load balancer enabled by default.
09. SSH enabled via both putty.exe and Kubernetes management console.
10. Network Monitoring enabled on Kubernetes dashboard.
11. Isolated Private and external network ranges to protect backend servers (pods).
12. OS of the pos is updated with the latest kernel version.
13. Core Linux OS will reduce security threats.
14. Lightweight OS over small HDD space
15. Less amount of RAM usage has been enabled.
16. AWS ready.
17. Possible for exporting into Public cloud ENV.
18. L7 and L4 Heavy Load Balancing Enabled.
19. Snapshot Versioning Control Enabled.
20. Many More ………etc.
Optimizing the Design and Implementation of KVM/ARM - SFO17-403Linaro
Session ID: SFO17-403
Session Name: Optimizing the Design and Implementation of KVM/ARM - SFO17-403
Speaker: Christoffer Dall
Track: Virtualization
★ Session Summary ★
A key drawback in the use of full system virtualization is the performance penalty introduced by hypervisors. This problem is especially present on ARM, which has significantly higher overhead for some workloads compared to x86, due to differences in the hardware virtualization support. The key reason for the overhead on ARM is the need to multiplex kernel mode state between the hypervisor and VMs, which each run their own kernel. This talk will cover how we have redesigned and optimized KVM/ARM, resulting in an order of magnitude reduction in overhead, and resulted in less overhead than x86 on key hypervisor operations. Our optimizations rely on new hardware support in ARMv8.1, the Virtualization Host Extensions (VHE), but also support legacy hardware through invasive modifications to Linux to support running the kernel in the hypervisor-specific CPU mode, EL2
---------------------------------------------------
★ Resources ★
Event Page: http://connect.linaro.org/resource/sfo17/sfo17-403/
Presentation: https://www.slideshare.net/linaroorg/optimizing-the-design-and-implementation-of-kvmarm-sfo17403
Video: https://www.youtube.com/watch?v=foRxjfKQeas
---------------------------------------------------
★ Event Details ★
Linaro Connect San Francisco 2017 (SFO17)
25-29 September 2017
Hyatt Regency San Francisco Airport
---------------------------------------------------
Keyword:
'http://www.linaro.org'
'http://connect.linaro.org'
---------------------------------------------------
Follow us on Social Media
https://www.facebook.com/LinaroOrg
https://twitter.com/linaroorg
https://www.youtube.com/user/linaroorg?sub_confirmation=1
https://www.linkedin.com/company/1026961
Video of this presentation can be found here https://engineers.sg/video/security-wednesdays-8-reflections-on-trusting-trust-nus-greyhats--572
The talk I gave at Papers We Love #16 (Singapore) and NUS Greyhats about this Turing award paper "Reflections on Trusting Trust" by Ken Thompson. I also demoed a rudimentary practical implementation of the ideas in the paper.
My talk also touched briefly on 2 extra papers "Fully Countering Trust through Diverse Double Compiling" by David Wheeler and "Critique of DDC" by Paul Jakma.
The code demos used in the presentation can be found here. https://github.com/yeokm1/reflections-on-trusting-trust
Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...Raul Chong
These are the slides used in the Toronto-SMAC meetup:
"Rapidly developing IoT (Internet of Things) applications - Part 2"
http://www.meetup.com/Toronto-SMAC-Social-Mobile-Analytics-Cloud-Meetup/events/195132732/
Topics covered:
- Arduino and sensors: Bus simulation project
- Freakduino and solar panels: Vibrometer project
- Raspberry-Pi: Home security system (part 2)
- Oculus Rift: Developing an Educational game (part 2)
- Beacons: Tracking customer patterns at a retail store
- Introduction to Node-Red
A talk I gave at Hackware v1.6 about issues relating to the UART and Bluetooth issues associated with the new Raspberry Pi 3.
The recorded video of this talk can be found here. https://engineers.sg/video/raspberry-pi-3-uart-bluetooth-issues--609
You can also consult my Github Gist on configuring UART and Bluetooth on Arch Linux. https://gist.github.com/yeokm1/d6c3ca927919c61257cd
So you’ve managed to get a foothold into the web server — now what? Privilege escalation can be an intimidating process for those unfamiliar with Linux systems or advanced penetration testing techniques. Servers are often cluttered with utilities, backups, and files; how do you find your way through to a root shell? Where are the first places an attacker might look for exploitable vulnerabilities? In this workshop, participants will learn about common privilege escalation paths on Linux systems, including sticky bits, shell escapes, wildcard injections, and how to identify vulnerable services. This presentation will demonstrate several techniques for those looking to improve their security skills.
(This was originally presented on February 22, 2010 at Day of Shecurity Boston 2019).
(This was originally presented on February 22, 2010 at Day of Shecurity Boston 2019).
(This was originally presented on February 22, 2010 at Day of Shecurity Boston 2019).
(This was originally presented at BSides Columbus 2019 on March 1, 2019.)
Let's trace Linux Lernel with KGDB @ COSCUP 2021Jian-Hong Pan
https://coscup.org/2021/en/session/39M73K
https://www.youtube.com/watch?v=L_Gyvdl_d_k
Engineers have plenty of debug tools for user space programs development, code tracing, debugging and analyzing. Except “printk”, do we have any other debug tools for Linux kernel development? The “KGDB” mentioned in Linux kernel document provides another possibility.
Will share how to experiment with the KGDB in a virtual machine. And, use GDB + OpenOCD + JTAG + Raspberry Pi in the real environment as the demo in this talk.
開發 user space 軟體時,工程師們有方便的 debug 工具進行查找、分析、除錯。但在 Linux kernel 的開發,除了 printk 外,還可以有哪些工具可以使用呢?從 Linux kernel document 可以看到 KGDB 相關的資訊,提供了在 kernel 除錯時的另一個可能性。
本次將分享,從建立最簡單環境的虛擬機機開始,到實際使用 GDB + OpenOCD + JTAG + Raspberry Pi 當作展示範例。
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...linuxlab_conf
The development of device drivers usually requires hardware availability. We will try to address this issue by simulating our “missing” device thanks to a QEMU ARM machine. The fake device will be tested and debugged using bare-metal software, again running in QEMU. Finally, we will write a Linux device driver from scratch that will interact with the device and expose it to the userspace.
The training assumes some basic knowledge of the C programming language and using Linux as a development platform. During the training, we will show how to build the Linux kernel and write a simple yet complete device driver, how to use QEMU as a development platform and a few notions of bare-metal and kernel code debugging.
Some recent claims have been made concerning the ability to remotely hijack airplanes. This talk examines those claims.
Videos for slides are now available:
https://www.youtube.com/watch?v=dOlM1weOF8g
https://www.youtube.com/watch?v=-6IW-vJSHeU
https://www.youtube.com/watch?v=LHqnUUiowjs
ERP System Implementation Kubernetes Cluster with Sticky Sessions Chanaka Lasantha
ERP System Implementation on Kubernetes Cluster with Sticky Sessions:
01. Security Features Enabled in Kubernetes Cluster.
02. SNMP, Syslog and audit logs enabled.
03. Enabled ERP no login service user.
04. Auto-scaling enabled both ESB and Jboss Pods.
05. Reduced power consumption using the scale in future during off-peak days.
06. NFS enables s usual with ERP service user.
07. External Ingress( Load Balance enabled).
08. Cluster load balancer enabled by default.
09. SSH enabled via both putty.exe and Kubernetes management console.
10. Network Monitoring enabled on Kubernetes dashboard.
11. Isolated Private and external network ranges to protect backend servers (pods).
12. OS of the pos is updated with the latest kernel version.
13. Core Linux OS will reduce security threats.
14. Lightweight OS over small HDD space
15. Less amount of RAM usage has been enabled.
16. AWS ready.
17. Possible for exporting into Public cloud ENV.
18. L7 and L4 Heavy Load Balancing Enabled.
19. Snapshot Versioning Control Enabled.
20. Many More ………etc.
Optimizing the Design and Implementation of KVM/ARM - SFO17-403Linaro
Session ID: SFO17-403
Session Name: Optimizing the Design and Implementation of KVM/ARM - SFO17-403
Speaker: Christoffer Dall
Track: Virtualization
★ Session Summary ★
A key drawback in the use of full system virtualization is the performance penalty introduced by hypervisors. This problem is especially present on ARM, which has significantly higher overhead for some workloads compared to x86, due to differences in the hardware virtualization support. The key reason for the overhead on ARM is the need to multiplex kernel mode state between the hypervisor and VMs, which each run their own kernel. This talk will cover how we have redesigned and optimized KVM/ARM, resulting in an order of magnitude reduction in overhead, and resulted in less overhead than x86 on key hypervisor operations. Our optimizations rely on new hardware support in ARMv8.1, the Virtualization Host Extensions (VHE), but also support legacy hardware through invasive modifications to Linux to support running the kernel in the hypervisor-specific CPU mode, EL2
---------------------------------------------------
★ Resources ★
Event Page: http://connect.linaro.org/resource/sfo17/sfo17-403/
Presentation: https://www.slideshare.net/linaroorg/optimizing-the-design-and-implementation-of-kvmarm-sfo17403
Video: https://www.youtube.com/watch?v=foRxjfKQeas
---------------------------------------------------
★ Event Details ★
Linaro Connect San Francisco 2017 (SFO17)
25-29 September 2017
Hyatt Regency San Francisco Airport
---------------------------------------------------
Keyword:
'http://www.linaro.org'
'http://connect.linaro.org'
---------------------------------------------------
Follow us on Social Media
https://www.facebook.com/LinaroOrg
https://twitter.com/linaroorg
https://www.youtube.com/user/linaroorg?sub_confirmation=1
https://www.linkedin.com/company/1026961
Video of this presentation can be found here https://engineers.sg/video/security-wednesdays-8-reflections-on-trusting-trust-nus-greyhats--572
The talk I gave at Papers We Love #16 (Singapore) and NUS Greyhats about this Turing award paper "Reflections on Trusting Trust" by Ken Thompson. I also demoed a rudimentary practical implementation of the ideas in the paper.
My talk also touched briefly on 2 extra papers "Fully Countering Trust through Diverse Double Compiling" by David Wheeler and "Critique of DDC" by Paul Jakma.
The code demos used in the presentation can be found here. https://github.com/yeokm1/reflections-on-trusting-trust
Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...Raul Chong
These are the slides used in the Toronto-SMAC meetup:
"Rapidly developing IoT (Internet of Things) applications - Part 2"
http://www.meetup.com/Toronto-SMAC-Social-Mobile-Analytics-Cloud-Meetup/events/195132732/
Topics covered:
- Arduino and sensors: Bus simulation project
- Freakduino and solar panels: Vibrometer project
- Raspberry-Pi: Home security system (part 2)
- Oculus Rift: Developing an Educational game (part 2)
- Beacons: Tracking customer patterns at a retail store
- Introduction to Node-Red
A talk I gave at Hackware v1.6 about issues relating to the UART and Bluetooth issues associated with the new Raspberry Pi 3.
The recorded video of this talk can be found here. https://engineers.sg/video/raspberry-pi-3-uart-bluetooth-issues--609
You can also consult my Github Gist on configuring UART and Bluetooth on Arch Linux. https://gist.github.com/yeokm1/d6c3ca927919c61257cd
So you’ve managed to get a foothold into the web server — now what? Privilege escalation can be an intimidating process for those unfamiliar with Linux systems or advanced penetration testing techniques. Servers are often cluttered with utilities, backups, and files; how do you find your way through to a root shell? Where are the first places an attacker might look for exploitable vulnerabilities? In this workshop, participants will learn about common privilege escalation paths on Linux systems, including sticky bits, shell escapes, wildcard injections, and how to identify vulnerable services. This presentation will demonstrate several techniques for those looking to improve their security skills.
(This was originally presented on February 22, 2010 at Day of Shecurity Boston 2019).
(This was originally presented on February 22, 2010 at Day of Shecurity Boston 2019).
(This was originally presented on February 22, 2010 at Day of Shecurity Boston 2019).
(This was originally presented at BSides Columbus 2019 on March 1, 2019.)
Let's trace Linux Lernel with KGDB @ COSCUP 2021Jian-Hong Pan
https://coscup.org/2021/en/session/39M73K
https://www.youtube.com/watch?v=L_Gyvdl_d_k
Engineers have plenty of debug tools for user space programs development, code tracing, debugging and analyzing. Except “printk”, do we have any other debug tools for Linux kernel development? The “KGDB” mentioned in Linux kernel document provides another possibility.
Will share how to experiment with the KGDB in a virtual machine. And, use GDB + OpenOCD + JTAG + Raspberry Pi in the real environment as the demo in this talk.
開發 user space 軟體時,工程師們有方便的 debug 工具進行查找、分析、除錯。但在 Linux kernel 的開發,除了 printk 外,還可以有哪些工具可以使用呢?從 Linux kernel document 可以看到 KGDB 相關的資訊,提供了在 kernel 除錯時的另一個可能性。
本次將分享,從建立最簡單環境的虛擬機機開始,到實際使用 GDB + OpenOCD + JTAG + Raspberry Pi 當作展示範例。
This ppt contain the information about KISMET which is one of the network analyzer in mobile communication. I have searched this and made it with great hard work so take advantage. And comment on this. This much information is not fully available on the net. So enjoyyy.
David Duffett
UK
TeleSpeak
8th Conference - ElastixWorld 2011
Making asterisk feel like home outside north america
Haciendo sentir a Asterisk como en casa fuera de Norte América
Running Applications on the NetBSD Rump Kernel by Justin Cormack eurobsdcon
Abstract
The NetBSD rump kernel has been developed for some years now, allowing NetBSD kernel drivers to be used unmodified in many environments, for example as userspace code. However it is only since last year that it has become possible to easily run unmodified applications on the rump kernel, initially with the rump kernel on Xen port, and then with the rumprun tools to run them in userspace on Linux, FreeBSD and NetBSD. This talk will look at how this is achieved, and look at use cases, including kernel driver development, and lightweight process virtualization.
Speaker bio
Justin Cormack has been a Unix user, developer and sysadmin since the early 1990s. He is based in London and works on open source cloud applications, Lua, and the NetBSD rump kernel project. He has been a NetBSD developer since early 2014.
Asterisk agregó una API a su larga lista, ARI o Asterisk Restful Interface. Esto cambia radicalmente la forma de construir aplicaciones en Asterisk. Gran parte de esta presentación ha sido una demo.
Lugar: ElastixWorld 2015 : Bogota, Colombia.
Introduction to Linux Kernel by Quontra SolutionsQUONTRASOLUTIONS
Course Duration: 30-35 hours Training + Assignments + Actual Project Based Case Studies
Training Materials: All attendees will receive,
Assignment after each module, Video recording of every session
Notes and study material for examples covered.
Access to the Training Blog & Repository of Materials
Pre-requisites:
Basic Computer Skills and knowledge of IT.
Training Highlights
* Focus on Hands on training.
* 30 hours of Assignments, Live Case Studies.
* Video Recordings of sessions provided.
* One Problem Statement discussed across the whole training program.
* Resume prep, Interview Questions provided.
WEBSITE: www.QuontraSolutions.com
Contact Info: Phone +1 404-900-9988(or) Email - info@quontrasolutions.com
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
2. Introduction
• An introduction to installing and configuring Asterisk
• Intermediate level - assumes basic knowledge of networking, linux
systems, and VoIP
• We’ll be building a real live Asterisk box as we progress through the
slides
• If you have a question please ask
• Asterisk is the goods :)
3. Agenda 1/2
• Installing Asterisk
• All about Asterisk in three slides
• Telephony Hardware
• A basic Asterisk configuration
• Zaptel hardware configuration
• Asterisk codecs
• System dimensioning
5. What is Asterisk?
• Asterisk, The Open Source PBX. www.asterisk.org
• A complete PBX in software
• Runs on Linux, BSD, MacOSX, and others
• Covers most VoIP protocols
• Many features built in - voicemail, conferencing, IVR, queuing, as well
as standard calling functions
• Highly extensible - can handle virtually any task imaginable
• Many different hardware telephony cards available
6. Asterisk History
• Originally developed by Mark Spencer starting around 1999
• He needed a flexible PBX for his linux support company so wrote
one
• Realised once a call is inside a PC, anything can be done with it -
hence the name Asterisk
• Met Jim Dixon from the Zapata telephony project in 2001 which
provided hardware and a business model to further development
• Now an active Asterisk development community
7. Useful Reading
• Asterisk, The Future of Telephony. By Jared Smith, Jim Van Meggelen,
Leif Madsen. ISBN: 0-596-00962-3
• Published under Creative Commons license
• http://www.asteriskdocs.org/modules/tinycontent/index.php?id=11
• www.voip-info.org
• A public wiki - generally good information, but to be taken with a
grain of salt
• www.asterisk.org
• www.digium.com
9. Download Source
# cd /usr/src/
# wget -–passive-ftp ftp.digium.com/pub/asterisk/asterisk-1.*.tar.gz
# wget -–passive-ftp ftp.digium.com/pub/asterisk/asterisk-sounds-*.tar.gz
# wget -–passive-ftp ftp.digium.com/pub/zaptel/zaptel-*.tar.gz
# wget -–passive-ftp ftp.digium.com/pub/libpri/libpri-*.tar.gz
# tar zxvf zaptel-*.tar.gz
# tar zxvf libpri-*.tar.gz
# tar zxvf asterisk-*.tar.gz
# tar zxvf asterisk-sounds*.tar.gz
* If using Linux kernel 2.4 a symbolic link named linux-2.4 is required
pointing to your kernel source:
#ln –s /usr/src/`uname –r` /usr/src/linux-2.4
10. Compile Zaptel
• Several features in Asterisk require an accurate timing source, e.g.
conferencing
• Digium PCI hardware provides this 1kHz timing clock
• If you aren’t using PCI hardware the ztdummy driver can be used
• Kernels 2.4.5 and greater use the UHCI USB controller for this
(so you need the usb-uhci module loaded)
• The 2.6 kernel provides a 1kHz so a USB controller is not
needed
• Need to uncomment out ‘ztdummy’ in Makefile
MODULES=zaptel tor2 torisa wcusb wcfxo wctdm
ztdynamic ztd-eth wct1xxp wct4xxp wcte11xp # ztdummy
11. Compile Zaptel
# cd /usr/src/zaptel-version
# make clean
# make
# make install
# make config
• Also installs some tools:
• ztcfg - reads config in /etc/zaptel.conf to configure hardware
• zttool - for monitoring installed hardware
• ztmonitor - for monitoring active channels
• zconfig.h contains many zaptel compile-time options - echo
cancellation options, RAS options, etc.
12. Compile Libpri
# cd /usr/src/libpri-version
# make clean
# make
# make install
• Used by many manufacturers of PCI TDM cards
• Safe to compile even if a card is not installed/used
13. Compile Asterisk
# cd /usr/src/asterisk-version
# make clean
# make
# make install
# make samples
14. The Easy Way
• Use pre-compiled binary packages
• RPM packages for redhat
• DEB packages for Debian
• Asterisk.pkg for MacOSX http://www.astmasters.net
• I’ll be using debian .deb packages for this tutorial
• Latest debian package is Asterisk v 1.0.7
• CVS head 1.2.4
15. The Easier Way
• Pop an asterisk@home live CD in a machine and go for it!
• http://asteriskathome.sourceforge.net/
• Too easy for this tutorial :)
• Very sophisticated system
• A lot of integration work to provide billing and GUI management
• Well worth trying
16. Debian install
apt-get install asterisk
apt-get install zaptel
apt-get build-dep asterisk
apt-get install kernel-headers-`uname -r`
ln -s /usr/src/kernel-headers-`uname -r`/ /usr/src/linux
m-a build zaptel
dpkg -i zaptel-modules-xxxxxx.deb
depmod
modprobe zaptel
modprobe wcte11xp # if using TE110P single span T1/E1 card
modprobe wcfxo # if using single port FXO card
modprobe ztdummy # if using ztdummy
ztcfg
zttool
* To get ztdummy, modify Makefile to uncomment ‘ztdummy’
* On Debian, add ‘ztdummy’ to /etc/module to get ztdummy to load at boot
17. Compile mpg123
• Required to stream music on hold
• Must use version mpg123 version 0.59r as others don’t work
• http://www.mpg123.de/cgi-bin/sitexplorer.cgi?/mpg123/
# cd /usr/src
# wget http://www.mpg123.de/mpg123/mpg123-0.59r.tar.gz
# tar -zxvf mpg123-0.59r.tar.gz
# cd mpg123-0.59r
# make clean
# make linux-devel
# make install
# ln -s /usr/local/bin/mpg123 /usr/bin/mpg123 # this is where asterisk looks
18. jonny@collins:~# asterisk -h
Asterisk 1.0.7-BRIstuffed-0.2.0-RC7k, Copyright (C) 2000-2004, Digium.
Usage: asterisk [OPTIONS]
Valid Options:
-V Display version number and exit
-C <configfile> Use an alternate configuration file
-G <group> Run as a group other than the caller
-U <user> Run as a user other than the caller
-c Provide console CLI
-d Enable extra debugging
-f Do not fork
-g Dump core in case of a crash
-h This help screen
-i Initialize crypto keys at startup
-n Disable console colorization
-p Run as pseudo-realtime thread
-q Quiet mode (suppress output)
-r Connect to Asterisk on this machine
-R Connect to Asterisk, and attempt to reconnect if disconnected
-t Record soundfiles in /var/tmp and move them where they belong after
they are done.
-v Increase verbosity (multiple v's = more verbose)
-x <cmd> Execute command <cmd> (only valid with -r)
jonny@collins:~# asterisk -r
Asterisk 1.0.7-BRIstuffed-0.2.0-RC7k, Copyright (C) 1999-2004 Digium.
Written by Mark Spencer <markster@digium.com>
=========================================================================
Connected to Asterisk 1.0.7-BRIstuffed-0.2.0-RC7k currently running on collins (pid =
10763)
collins*CLI>
19. Asterisk File Locations
• /etc/asterisk/ - Asterisk configuration files
• /usr/lib/asterisk/modules/ - all loadable modules: codecs, channels,
formats etc.
• /var/lib/asterisk/ - contains the astdb, sounds, images, firmware and
keys
• /var/spool/asterisk/ - temporary files and voicemail files
• /var/run/ - contains the process ID (PID) for running processes,
including Asterisk
• /var/log/asterisk/ - Asterisk log files
• /var/log/asterisk/cdr-csv/ - Asterisk call detail records
20. Asterisk Basics
• Asterisk is a hybrid TDM and packet voice PBX
• Interfaces any piece of telephony hardware or software to any
telephony application
• Prime components: channels and /etc/asterisk/extensions.conf - the
Asterisk dial plan
• Channels can be many different technologies - SIP, IAX, H323,
skinny, Zaptel, and others as they are created
• extensions.conf is basically a powerful programming language
controlling the flow of calls
• Applications do the work - answering a channel, ringing a channel,
providing a voicemail system etc.
21. isk Handbook Chapter 2: Asterisk's Architecture
s can take
of. Asterisk's
anslator
hannels which
22. Telephony Hardware
• Digium make several digital and analog PCI cards
• T1 / E1 single to quad span cards
• FXO and FXS interfaces up to 24 ports
• One port FXO card - PCI Intel Winmodem
• www.digium.com
• Plus the usual array of SIP and IAX phones and analogue adapters
(ATAs)
• Even interfaces to proprietary digital key phones are available
23. Basic System Configuration
• Two SIP devices: a WiFi phone and a softphone on a laptop
• SIP gateway for calls to the PSTN
• Will be working with sip.conf and extensions.conf
• Simple dial plan:
• softphone (SIP user 2001, pw j0nny), extension 2001
• wifi phone (SIP user 2002, pw whyfry), extension 2002
• echo test, extension 500
• send all other calls to gateway
• inbound calls from the gateway to (+64 4) 4980007 to ring
extension 2001
24. Setup SIP endpoints
• Using the Xten X-lite softphone
• Download at http://www.xten.com/index.php?menu=download
• Need to set SIP username and password, and SIP server
• Main Menu > System Settings > SIP Proxy > Default
26. /etc/asterisk/sip.conf
[general]
context=default ; Default context for incoming calls
port=5060 ; UDP Port to bind to (SIP standard port is 5060)
bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all)
srvlookup=yes ; Enable DNS SRV lookups on outbound calls
[2001]
type=friend ; both send and receive calls from this peer
host=dynamic ; this peer will register with us
username=2001
secret=j0nny
canreinvite=no ; don't send SIP re-invites (ie. terminate rtp stream)
nat=yes ; always assume peer is behind a NAT
context=phones ; send calls to 'phones' context
dtmfmode=rfc2833 ; set dtmf relay mode
allow=all ; allow all codecs
[2002]
type=friend
host=dynamic
username=2002
secret=whyfry
canreinvite=no
nat=yes
context=phones
dtmfmode=rfc2833
allow=all
28. /etc/asterisk/extensions.conf
[general]
static=yes ; default values for changes to this file
writeprotect=no ; by the Asterisk CLI
[globals]
; variables go here
[default]
; default context
[phones]
; context for our phones
exten => 2001,1,Dial(SIP/2001)
exten => 2002,1,Dial(SIP/2002)
exten => 500,1,Answer()
exten => 500,2,Playback(demo-echotest)
; Let them know what's going on
exten => 500,3,Echo
; Do the echo test
exten => 500,4,Playback(demo-echodone)
; Let them know it's over
exten => 500,5,Hangup
exten => _.,1,Dial(SIP/${EXTEN}@wlg-gateway) ; match anything and send to wlg-gateway
exten => _.,2,Hangup
[from-wlg-gateway]
; context for calls coming from wlg-gateway
exten => 4980007,1,Dial(SIP/2001&SIP/2002)
exten => _.,1,Congestion()
; everyone else gets congestion
29. Dial Plan Basics - Contexts
• extensions.conf split into sections called contexts
[context-name]
• contexts isolated from one another - can have the same extension in
multiple contexts
• Calls from a channel land in the context specified by that channel,
• Calls land in default context if nothing is specified
• Be careful with what is in the default context - it is easy to give
access to more than is intended
30. Dial Plan Basics - Extensions
• One or more extensions in each context
• An extension is followed by an incoming call or digits dialled on a
channel
exten => name,priority,application()
exten => 2001,1,Dial(SIP/2001)
• Priorities are numbered and followed sequentially from ‘1’
• Asterisk will stop processing an extension if you skip a priority
• Each priority executes one specific application
31. Dial Plan Basics - Applications
• Applications are what ‘do things’ in the Asterisk dial plan
• play a sound
• answer a call
• collect dtmf digits
• interact with a database
• Can take zero or more arguments
• Answer()
• Dial(SIP/2001)
• AnApplicationWithThreeArguments(arg1,arg2,arg3)
• Arguments can be seperated with a pipe (|) or a comma.
32. Dial Plan Basics - Variables
• Three types of variables available in the dial plan.
• Global
• Set in the [globals] section of extensions.conf
• Channel
• Variables set using the set command on a per channel basis
• A number of pre-defined channel variables - e.g. ${EXTEN}
• Environment
• Access to UNIX environment variables from within Asterisk
33. Dial Plan Basics - Variables
• Some of the pre-defined channel variables:
${CALLERID}
${CALLERIDNAME}
${CALLERIDNUM}
${CHANNEL}
${CONTEXT}
${EXTEN}
${SIPUSERAGENT}
34. Let’s Add To Our System
• Introduce a global variable: ${jonnysphone}
• Ring phones for 15sec and divert to voicemail if unanswered
• If our phones are busy, divert to voicemail
• Only allow Wellington NZ numbers (04xxxxxxx) to be dialled out
gateway
• Add a ‘hangup’ extension (‘h’ extension) to ensure asterisks hangs
up calls when finished
35. /etc/asterisk/extensions.conf
[general]
static=yes ; default values for changes to this file
writeprotect=no ; by the Asterisk CLI
[globals]
JONNYSPHONE=SIP/2001
[default]
; default context
[phones]
; context for our phones
include => fun-stuff ; include another context's extensions here
include => gateway ;
exten => 2001,1,Dial(${JONNYSPHONE},15)
exten => 2001,2,Voicemail(u${JONNYSPHONE}@${CONTEXT})
exten => 2001,102,Voicemail(b{JONNYSPHONE}@${CONTEXT})
exten => 2002,1,Dial(SIP/2002,15)
exten => 2002,2,Voicemail(u2002@phones)
exten => 2002,102,Voicemail(b2002@phones)
exten => h,1,Hangup
36. /etc/asterisk/extensions.conf ctd...
[fun-stuff]
exten => 500,1,Answer()
exten => 500,2,Playback(demo-echotest) ; Let them know what's going on
exten => 500,3,Echo ; Do the echo test
exten => 500,4,Playback(demo-echodone) ; Let them know it's over
exten => 500,5,Hangup
[gateway]
exten => _04NXXXXXX,1,Dial(SIP/${EXTEN}@wlg-gateway)
exten => _04NXXXXXX,2,Hangup
exten => _104NXXXXXX,1,Dial(SIP/${EXTEN:1}@wlg-gateway) ; strip one and send out
exten => _104NXXXXXX,2,Hangup
[from-wlg-gateway]
; context for calls coming from wlg-gateway
exten => 4980007,1,Dial(SIP/2001&SIP/2002)
exten => _.,1,Congestion() ; everyone else gets congestion
37. Dial Plan Pattern Matching
exten => _04NXXXXXX,1,SomeApplication()
exten => _.,1,SomeApplication()
• _ denotes a pattern matching extension
• N matches any number from 2 through 9
• X matches any single digit
• . matches one or more of any digit
• [2-6] matches any of 2,3,4,5,6
38. Zaptel Interfaces
• Two configuration files:
• /etc/zaptel.conf - low level configuration for the hardware
interface
• /etc/asterisk/zapata.conf - configuration for Asterisk’s interface to
the hardware
• In zaptel.conf the comment character is the hash (#)
• In all other config files the comment character is the semi-colon (;)
as a hash is a valid telephone digit
39. /etc/zaptel.conf
# Zaptel Configuration File
#
# This file is parsed by the Zaptel Configurator, ztcfg
#
#
# First come the span definitions, in the format
# span=<span num>,<timing>,<line build out (LBO)>,<framing>,<coding>[,yellow]
#
# The framing is one of "d4" or "esf" for T1 or "cas" or "ccs" for E1
# The coding is one of "ami" or "b8zs" for T1 or "ami" or "hdb3" for E1
# E1's may have the additional keyword "crc4" to enable CRC4 checking
#
# Next come the definitions for using the channels. The format is:
# <device>=<channel list>
#
# 10 channel E1
span=1,0,0,ccs,hdb3,crc4
bchan=1-10
dchan=16
# if we had some FXO interfaces we would uncomment this
#fxsks=32
#fxsks=33
# Load tones for specific country
loadzone = nz
#loadzone = us-old
defaultzone=nz
40. /etc/asterisk/zapata.conf
[trunkgroups]
; Trunk groups are used for NFAS or GR-303 connections.
; Spanmap: Associates a span with a trunk group
; spanmap => <zapspan>,<trunkgroup>[,<logicalspan>]
[channels]
; Default language
;language=en
; Default context
context=default
; Signalling method (default is fxs). Some of the more common values:
; em: E & M
; em_w: E & M Wink
; fxs_ks: FXS (Kewl Start)
; fxo_ks: FXO (Kewl Start)
; pri_cpe: PRI signalling, CPE side
; pri_net: PRI signalling, Network side
;
; Enable echo cancellation
; Use either "yes", "no", or a power of two from 32 to 256
echocancel=yes
echocancelwhenbridged=yes
41. /etc/asterisk/zapata.conf ctd...
; FXO example
;
signalling=fxs_ks ; X100P
echocancel=yes
echocancelwhenbridged=yes
echotraining=400
group=2
context=fxo1-incoming
channel => 32
; E1 PRI example
signalling=pri_cpe
switchtype=euroisdn
echocancel=128
echocancelwhenbridged=yes
echotraining=200
callerid=asreceived
;rxgain=-4 ; if needed
;txgain=-4 ; if needed
group=1
context=from-pri
channel => 1-10
42. Zaptel Channels
• Can dial a group of channels
exten => _.,1,Dial(g1/${EXTEN})
• Or dial a specific channel
exten => _.,1,Dial(4/${EXTEN})
43. The Start ‘s’ Extension
• The standard extension a call starts in without needed to
specifically match an extension
• Often used with FXS/FXO cards due to lack of end to end signalling
with analogue channels
[incoming]
exten => s,1,Answer()
exten => s,2,Background(enter-ext-of-person)
exten => 1,1,Playback(digits/1)
exten => 1,2,Goto(incoming,s,1)
exten => 2,1,Playback(digits/2)
exten => 2,2,goto(incoming,s,1)
exten => 3,1,Hangup
44. Other Standard Extensions
• i : Invalid
• s : Start
• h : Hangup
• t : Timeout
• T : AbsoluteTimeout
• o : Operator
45. advantage of our tendency to interpret what we believe we should hear, rather than
what we actually hear.* The purpose of the various encoding algorithms is to strike a
balance between efficiency and quality.†
Originally, the term CODEC referred to a COder/DECoder: a device that converts
Asterisk Codecs
between analog and digital. Now, the term seems to relate more to COmpression/
DECompression.
Before we dig into the individual codecs, take a look at Table 8-1—it’s a quick refer-
ence that you may want to refer back to.
Table 8-1. Codec quick reference
Codec Data bitrate (kbps) Licence required?
G.711 64 kbps No
G.726 16, 24, or 32 kbps No
G.723.1 5.3 or 6.3 kbps Yes (no for passthrough)
G.729A 8 kbps Yes (no for passthrough)
GSM 13 kbps No
iLBC 13.3 kbps (30-ms frames) or 15.2 kbps (20-ms frames) No
Speex Variable (between 2.15 and 22.4 kbps) No
G.711
G.711 is the fundamental codec of the PSTN. In fact, if someone refers to PCM (dis-
cussed in the previous chapter) with respect to a telephone network, you are allowed
to think of G.711. Two companding methods are used: µ-law in North America and
A-law in the rest of the world. Either one delivers an 8-bit word transmitted 8,000
times per second. If you do the math, you will see that this requires 64,000 bits to be
transmitted per second.
Many people will tell you that G.711 is an uncompressed codec. This is not exactly
46. ,ch02.20169 Page 10 Wednesday, August 31, 2005 4:54 PM
Server Dimensioning
and the like. The symptoms will resemble those experienced on a cell phone when
going out of range, although the underlying causes will be different. As loads
•
increase, thefactors come into play, but in general the faster and the more
Many system will have increasing difficulty maintaining connections. For a
PBX, such a situation is nothing short of disastrous, so careful attention to perfor-
RAM the better
mance requirements is a critical consideration during the platform selection process.
•
TableRunning some very basic guidelines that you’ll want to keep in up a lot of
2-1 lists compressed codecs and echo cancellation takes mind when
planning your system. The next section takes a close look at the various design and
processor power
implementation issues that will affect its performance.
• Intel processors seem to perform better than AMD
Table 2-1. System requirement guidelines
Purpose Number of channels Minimum recommended
Hobby system No more than 5 400-MHz x86, 256 MB RAM
SOHOa system 5 to 10 1-GHz x86, 512 MB RAM
Small business system Up to 15 3-GHz x86, 1 GB RAM
Medium to large system More than 15 Dual CPUs, possibly also multiple servers
in a distributed architecture
a Small Office/home Office—less than three lines and five sets.
With large Asterisk installations, it is common to deploy functionality across several
servers. One or more central units will be dedicated to call processing; these will be
47. Working With NAT
• NAT causes issues with SIP packets as endpoint IP addressing is
embedded in packets
• Not using SIP re-invites helps a lot but at the expense of
terminating the RTP media stream on the Asterisk box
• In sip.conf the line nat=yes tells Asterisk always to assume the peer
may be behind a NAT
48. Voicemail
• Comedian Mail - a fully functional voicemail system included with
Asterisk
• Supports busy and unavailable messages
• exten => 2001,1,Voicemail(b2001)
• exten => 2001,1,Voicemail(u2001)
• Voicemail can be emailed out a .wav attachment to users
• Standard IVR voicemail access
• exten => 510,1,VoicemailMain
50. MeetMe Conferencing
/etc/asterisk/meetme.conf
; Configuration file for MeetMe simple conference rooms
; for Asterisk of course.
;
[rooms]
; Usage is conf => confno[,pin]
;
conf => 101,1234
conf => 102,2345
/etc/asterisk/extensions.conf
exten => 5101,1,Meetme(101|M)
exten => 5102,2,Meetme(102|M)
51. Music On Hold
• mpg123 player used to stream mp3s to a channel
• Can also stream a ShoutCast stream
• Use the line-in on a sound card in the Asterisk box for live audio
• mp3s must be converted to 8kHZ mono
exten => 501,1,WaitMusicOnHold(30)
Plays music on hold for 30 seconds.
52. Music on Hold
/etc/asterisk/musiconhold.conf
[classes]
; on Debian boxes files are in /usr/share/asterisk/mohmp3
; on other boxes, files are in /var/lib/asterisk/mohmp3
default => quietmp3:/usr/share/asterisk/mohmp3
loud => mp3:/usr/share/asterisk/mohmp3
podcasts => mp3:/usr/share/asterisk/mohmp3/podcasts
53. Console Commands
• Similar to IOS:
• sip show peers
• reload
• ? for help, tab for command autocomplete
• Restart commands
• restart gracefully: Restart Asterisk gracefully
• restart now: Restart Asterisk immediately
• restart when convenient: Restart Asterisk at empty call volume
• reload: Reload configuration
• stop gracefully: Gracefully shut down Asterisk
• stop now: Shut down Asterisk imediately
• stop when convenient: Shut down Asterisk at empty call volume
54. Console Commands
• sip debug: Enable SIP debugging
• sip no debug: Disable SIP debugging
• sip reload: Reload sip.conf (added after 0.7.1 on 2004-01-23)
• sip show channels: Show active SIP channels
• sip show channel: Show detailed SIP channel info
• sip show inuse: List all inuse/limit
• sip show peers: Show defined SIP peers (clients that register to
your Asterisk server)
• sip show registry: Show SIP registration status (when Asterisk
registers as a client to a SIP Proxy)
• sip show users: Show defined SIP users
55. Asterisk Database
• astdb - simple database forms part of Asterisk
• Dial plan and CLI can insert and remove data
• Data stored in a file, so is retained across Asterisk reloads and
server reboots
• Data stored in groupings of families containing keys
• Applications
• DBdel: Delete a key from the database
• DBdeltree: Delete a family or keytree from the database
• DBget: Retrieve a value from the database
• DBput: Store a value in the database
57. Asterisk AGI Scripts
• Asterisk Gateway Interface
• Dial plan can call Perl, Python, PHP scripts
• AGI script reads from STDIN to get information from Asterisk
• AGI script writes data to STDOUT to send information to
Asterisk
• AGI script can write to STDERR to send debug information to
the console
• Scripts stored in /usr/share/asterisk/agi-bin/ on Debian
• exten => 520,1,AGI(agi-script.agi)
58. answer: Asserts answer
channel status: Returns status of the connected channel
control stream file: Send the given file, allowing playback to be controled by the
given digits, if any. (Asterisk 1.2)
database del: Removes database key/value
database deltree: Removes database keytree/value
database get: Gets database value
database put: Adds/updates database value
exec: Executes a given Application. (Applications are the functions you use to create
a dial plan in extensions.conf ).
get data: Gets data on a channel
get option: Behaves similar to STREAM FILE but used with a timeout option. (Asterisk
1.2)
get variable: Gets a channel variable
hangup: Hangup the current channel
noop: Does nothing
receive char: Receives one character from channels supporting it
receive text: Receives text from channels supporting it
record file: Records to a given file
59. say alpha: Says a given character string (Asterisk 1.2)
say date: Say a date (Asterisk 1.2)
say digits: Says a given digit string
say number: Says a given number
say phonetic: Say the given character string.
say time: Say a time
send image: Sends images to channels supporting it
send text: Sends text to channels supporting it
set autohangup: Autohangup channel in some time
set callerid: Sets callerid for the current channel
set context: Sets channel context
set extension: Changes channel extension
set music: Enable/Disable Music on hold generator, example "SET MUSIC ON default"
set priority: Prioritizes the channel
set variable: Sets a channel variable
stream file: Sends audio file on channel
verbose: Logs a message to the asterisk verbose log
wait for digit: Waits for a digit to be pressed
60. Scaling
• Scaling Asterisk normally involves multiple boxes
• Split off functionality
• Conference server
• SIP registration server
• Use a central SIP proxy allow individual Asterisk boxes to query
each other