This document discusses building a SIP softswitch using Asterisk and Asterisk-Java. It describes using Asterisk to handle SIP signaling, media processing, and interfacing with a Java routing application. The Java application directs call routing and interfaces with Asterisk via FastAGI and AMI. Key issues addressed include having call legs survive independently and supporting early media. Patches are used to enable call bridging and configurable early media handling in app_dial.
Telephone Wreckers tells you all about Asterisk phone systems - the benefits, features and what product you'll need to build your own custom IP phone system.
Telephony Service Development on Asterisk PlatformHamid Fadishei
Asterisk is a major role player in the open source telecom world. In this workshop, participants will follow a step-by-step case study towards getting familiar with IVR service development on Asterisk platform using PHP programming language and AGI technology. The case study itself is a simple weather forecasting IVR service.
02 asterisk - the future of telecommunicationsTran Thanh
Asterisk is an open-source private branch exchange (PBX) system that can be used to build voice over IP (VoIP) networks and systems. It allows users to reproduce standard PBX features and interact IP-based networks. Asterisk is hardware independent and can run on various operating systems. It provides implementations of basic PBX functionality and integrates with third-party telephony hardware and software.
The document discusses VoIP (Voice over Internet Protocol), benefits and challenges of VoIP including quality of voice and codecs, protocols used like SIP and RTP, and provides an example of Asterisk call logic and demonstration. It explains that VoIP uses internet packet switching instead of traditional circuit switching, has benefits like cost savings and integration of data and voice. However, quality of voice depends on factors like codec used, delay, jitter. Protocols like SIP are used for call setup and RTP for media transmission. The document concludes with a demo of an Asterisk PBX with SIP clients, local phones and an IAX2 trunk between servers, showing least cost routing using ENUM.
This document provides an overview and objectives for an E-Learning training course on building a complete PBX with Asterisk. The training will cover understanding and installing Asterisk, building a simple PBX with SIP phones and SIP trunks, configuring features like dialplans, IVRs and voicemail, and integrating applications. By the end of the course, students will have hands-on experience building their own basic Asterisk system. Various chapters include objectives, presentations on topics, and instructions for labs to gain practical experience configuring Asterisk.
Brief tour about the features of Asterisk 10, Asterisk 11 and Asterisk 12, as well as features that convert one application considered as PBX like a Framework of developer of voice applications, and a tool so powerful as flexible.
1. The document discusses Cisco Call Manager Express which tracks VoIP and POTS components like phones, gateways, and bridges. It configures dial peers for Cisco IP Communicator using SCCP and SJphone using SIP.
2. It describes the basics of VoIP and POTS dial peers in Cisco IOS including destination patterns and session targets. It also covers DTMF relay and session protocols.
3. The document outlines development of a basic SIP softphone client using PortSIP SDK that can register with SIP servers and place/receive audio calls using G.729 codec.
Cisco CallManager Express (CME) is a call processing solution that provides VoIP functionality for small to medium sized networks of up to 120 IP phones. It allows connection to the PSTN via analog or digital trunks and supports protocols like Skinny and H.323 for call control. CME is configured on Cisco IOS routers and gateways to provide integrated voice and data services over IP.
Telephone Wreckers tells you all about Asterisk phone systems - the benefits, features and what product you'll need to build your own custom IP phone system.
Telephony Service Development on Asterisk PlatformHamid Fadishei
Asterisk is a major role player in the open source telecom world. In this workshop, participants will follow a step-by-step case study towards getting familiar with IVR service development on Asterisk platform using PHP programming language and AGI technology. The case study itself is a simple weather forecasting IVR service.
02 asterisk - the future of telecommunicationsTran Thanh
Asterisk is an open-source private branch exchange (PBX) system that can be used to build voice over IP (VoIP) networks and systems. It allows users to reproduce standard PBX features and interact IP-based networks. Asterisk is hardware independent and can run on various operating systems. It provides implementations of basic PBX functionality and integrates with third-party telephony hardware and software.
The document discusses VoIP (Voice over Internet Protocol), benefits and challenges of VoIP including quality of voice and codecs, protocols used like SIP and RTP, and provides an example of Asterisk call logic and demonstration. It explains that VoIP uses internet packet switching instead of traditional circuit switching, has benefits like cost savings and integration of data and voice. However, quality of voice depends on factors like codec used, delay, jitter. Protocols like SIP are used for call setup and RTP for media transmission. The document concludes with a demo of an Asterisk PBX with SIP clients, local phones and an IAX2 trunk between servers, showing least cost routing using ENUM.
This document provides an overview and objectives for an E-Learning training course on building a complete PBX with Asterisk. The training will cover understanding and installing Asterisk, building a simple PBX with SIP phones and SIP trunks, configuring features like dialplans, IVRs and voicemail, and integrating applications. By the end of the course, students will have hands-on experience building their own basic Asterisk system. Various chapters include objectives, presentations on topics, and instructions for labs to gain practical experience configuring Asterisk.
Brief tour about the features of Asterisk 10, Asterisk 11 and Asterisk 12, as well as features that convert one application considered as PBX like a Framework of developer of voice applications, and a tool so powerful as flexible.
1. The document discusses Cisco Call Manager Express which tracks VoIP and POTS components like phones, gateways, and bridges. It configures dial peers for Cisco IP Communicator using SCCP and SJphone using SIP.
2. It describes the basics of VoIP and POTS dial peers in Cisco IOS including destination patterns and session targets. It also covers DTMF relay and session protocols.
3. The document outlines development of a basic SIP softphone client using PortSIP SDK that can register with SIP servers and place/receive audio calls using G.729 codec.
Cisco CallManager Express (CME) is a call processing solution that provides VoIP functionality for small to medium sized networks of up to 120 IP phones. It allows connection to the PSTN via analog or digital trunks and supports protocols like Skinny and H.323 for call control. CME is configured on Cisco IOS routers and gateways to provide integrated voice and data services over IP.
Join us for an introductory webinar on VoIP and learn:
- The fundamental principles of VoIP including RTP and SIP
- What voice metrics to measure and why they matter
- The different methods to monitor and troubleshoot VoIP
Asterisk is an open-source private branch exchange (PBX) system that supports voice over IP (VoIP) technology. It runs on many operating systems and supports several protocols. Asterisk can integrate with both IP phones and traditional phone systems. It offers a wide range of features including voicemail, conferencing, interactive voice response, and contact centers. Asterisk works with various hardware and software to provide both on-premise and cloud-based phone systems for businesses of all sizes.
The document introduces VoIP (Voice over IP) concepts. It discusses digitization of audio, real-time compression/encoding, transport over UDP, and problems with UDP like packet loss and jitter. It also covers protocols like SIP for signaling, SDP for session description, and RTP for media transport. Key VoIP services that can be implemented with SIP are discussed, like call transfer and voicemail.
Based on STENTOFON’s IP intercom technology, STENTOFON Pulse is a
serverless intercom system that offers exceptional voice quality and many of the
features and functions of our larger Alphacom Intercom system.
The document discusses CoreStor, an IP recording solution from Delma that can capture and record IP traffic, including VoIP packets. It describes various methods for capturing IP traffic, such as using span ports, port mirroring, conferencing, or custom gateways. CoreStor is designed to integrate seamlessly into existing systems and provide recording in a single chassis. It supports standard computer hardware and includes replay, administration, and analysis client software.
1) The document introduces the Voice-AlphaCom digital exchange system and its evolution from hardware-based to software-based IP solutions over time.
2) Key highlights of the AlphaCom E IP-based intercom server are presented, including support for open IP standards, integrated applications, remote management capabilities, and new services through web and SIP technologies.
3) The benefits of IP-based critical communication systems are discussed, such as shared infrastructure, enhanced integration, new services, and combining the strengths of IP and traditional network solutions.
This document discusses Asterisk, an open source telephony toolkit. It notes that Asterisk supports over 1 million production systems in over 170 countries using a dual license model. It can be used for IP PBXs, hybrid PBXs, VoIP gateways, and call centers. The document outlines Asterisk's modular architecture and APIs. It states that Asterisk 12 overhauled its architecture by introducing new channel drivers like PJSIP, a message bus called Stasis, and a new RESTful API called ARI.
This capstone presentation outlines a project to build a Raspberry Pi security camera network using MotionEyeOS. Key steps included installing Raspbian OS on an SD card, setting up the Raspberry Pi's static IP address and wireless network, installing MotionEyeOS, scanning the Pi's IP, and configuring live streaming and motion detection. The system provides a low-cost security camera solution that can be viewed over the network and sends email notifications when motion is detected.
respond_to :voice - the convergence of voice and web interfaces with Rails an...jpalley
Presented at RailsConf 2007, this presentation introduces the Telegraph plugin for briding Asterisk and Rails.
Telegraph brings the beauty of Rails programming to the VoIP world. It reshapes the mess of the Asterisk API into MVC cleanliness allowing the rapid development of Rails based voice and web applications.
The document discusses a solution from Xorcom for service providers offering hosted PBX and SIP trunking. It addresses the problem that some clients prefer on-premise PBX instead of hosted, costing providers recurring revenue. The Xorcom solution provides an Asterisk-based IP PBX with failover capabilities to ensure continuity of service. This allows providers to install an on-premise system for clients while still maintaining recurring SIP trunking revenue through connection to their network.
The document discusses design challenges and trends in high speed interconnect IPs. It covers topics like the rationale for high speed serial interconnects, comparisons of technologies like PCIe, SRIO, and USB 3.0, and challenges in adopting interconnect IPs. It also provides overviews of specific high speed interconnect IPs from GDA like their USB 3.0 and DVB-H solutions, and how their configurable and verified IPs aim to overcome adoption challenges.
IPv6 and How It Impacts Communication ApplicationsVoxeo Corp
What is all the IPv6 buzz about? And how will it impact your communications applications? In February 2011, the last IPv4 addresses were allocated to the global registries. While IPv4 addresses will be available for some time, the reality is that IPv6 addresses will be required in the future. Service providers, enterprises and integrators need to understand how IPv6 works and what impacts it may or may not have on applications. In this session, Dan York provides an overview of IPv6, how it impacts the SIP protocol and potential future action. Along the way he provides links for more information. This was part of a webinar found at http://blogs.voxeo.com/jamsessions/
This presentation serves as an overview of the parameters and considerations a designer would use to select a low-power wireless (LPRF) solution. It also highlights the devices and tools from the Anaren Integrated Radio (AIR) module product line and how they fit in a typical LPW design.
Điện thoại ip không dây Yealink w53P datasheetNam TruongGiang
The Yealink W53P is a high-performance SIP cordless phone system that allows up to 8 concurrent calls across 8 connected DECT handsets. It offers excellent audio quality using Opus codec. The system provides mobility through its wireless handsets along with the features of Voice over IP telephony. It also supports efficient provisioning and mass deployment through Yealink's RPS and boot server for easy setup and maintenance.
The document discusses how Phybridge PoLRE switches can help organizations eliminate infrastructure barriers to migrating to IP telephony. The switches leverage existing copper wiring to provide power and Ethernet connectivity over long distances, allowing organizations to deploy IP phones without needing to upgrade cabling or add new network switches. This provides significant cost savings compared to traditional IP migration approaches. The switches create a robust and secure IP network that supports not only IP phones but also additional applications like security cameras and wireless access points. Several case studies show how large organizations successfully used Phybridge switches to migrate thousands of users to IP with minimal disruption and costs.
The document provides information about a company that has been distributing IT equipment including networking, VOIP, and security products in the Philippines since 1997. It lists their contact information and location in Makati City, and authorizations to distribute various brands including Linksys, 3Com, Kingston, and Sophos. The company aims to provide the latest data communication and information access equipment to the growing Philippine IT market.
Asterisk Voicemail Services provides a cost-effective open source voicemail solution that can replace Cisco Unity at 50% savings while offering identical features. It includes redundancy, failover, voicemail to email delivery, and web access to voicemail boxes. An on-site demonstration is available from Strategic Business Technology.
A VoIP gateway acts as an interface between a public switched telephone network (PSTN) and an IP network, converting voice and fax calls between the two in real time. Key functions include voice and fax compression/decompression, packetization, and call routing. There are analog gateways for connecting PSTN lines to VoIP systems and digital gateways for connecting PBX systems. When selecting a gateway, factors to consider include call load, supported protocols and compatibility, and cost.
Join us for an introductory webinar on VoIP and learn:
- The fundamental principles of VoIP including RTP and SIP
- What voice metrics to measure and why they matter
- The different methods to monitor and troubleshoot VoIP
Asterisk is an open-source private branch exchange (PBX) system that supports voice over IP (VoIP) technology. It runs on many operating systems and supports several protocols. Asterisk can integrate with both IP phones and traditional phone systems. It offers a wide range of features including voicemail, conferencing, interactive voice response, and contact centers. Asterisk works with various hardware and software to provide both on-premise and cloud-based phone systems for businesses of all sizes.
The document introduces VoIP (Voice over IP) concepts. It discusses digitization of audio, real-time compression/encoding, transport over UDP, and problems with UDP like packet loss and jitter. It also covers protocols like SIP for signaling, SDP for session description, and RTP for media transport. Key VoIP services that can be implemented with SIP are discussed, like call transfer and voicemail.
Based on STENTOFON’s IP intercom technology, STENTOFON Pulse is a
serverless intercom system that offers exceptional voice quality and many of the
features and functions of our larger Alphacom Intercom system.
The document discusses CoreStor, an IP recording solution from Delma that can capture and record IP traffic, including VoIP packets. It describes various methods for capturing IP traffic, such as using span ports, port mirroring, conferencing, or custom gateways. CoreStor is designed to integrate seamlessly into existing systems and provide recording in a single chassis. It supports standard computer hardware and includes replay, administration, and analysis client software.
1) The document introduces the Voice-AlphaCom digital exchange system and its evolution from hardware-based to software-based IP solutions over time.
2) Key highlights of the AlphaCom E IP-based intercom server are presented, including support for open IP standards, integrated applications, remote management capabilities, and new services through web and SIP technologies.
3) The benefits of IP-based critical communication systems are discussed, such as shared infrastructure, enhanced integration, new services, and combining the strengths of IP and traditional network solutions.
This document discusses Asterisk, an open source telephony toolkit. It notes that Asterisk supports over 1 million production systems in over 170 countries using a dual license model. It can be used for IP PBXs, hybrid PBXs, VoIP gateways, and call centers. The document outlines Asterisk's modular architecture and APIs. It states that Asterisk 12 overhauled its architecture by introducing new channel drivers like PJSIP, a message bus called Stasis, and a new RESTful API called ARI.
This capstone presentation outlines a project to build a Raspberry Pi security camera network using MotionEyeOS. Key steps included installing Raspbian OS on an SD card, setting up the Raspberry Pi's static IP address and wireless network, installing MotionEyeOS, scanning the Pi's IP, and configuring live streaming and motion detection. The system provides a low-cost security camera solution that can be viewed over the network and sends email notifications when motion is detected.
respond_to :voice - the convergence of voice and web interfaces with Rails an...jpalley
Presented at RailsConf 2007, this presentation introduces the Telegraph plugin for briding Asterisk and Rails.
Telegraph brings the beauty of Rails programming to the VoIP world. It reshapes the mess of the Asterisk API into MVC cleanliness allowing the rapid development of Rails based voice and web applications.
The document discusses a solution from Xorcom for service providers offering hosted PBX and SIP trunking. It addresses the problem that some clients prefer on-premise PBX instead of hosted, costing providers recurring revenue. The Xorcom solution provides an Asterisk-based IP PBX with failover capabilities to ensure continuity of service. This allows providers to install an on-premise system for clients while still maintaining recurring SIP trunking revenue through connection to their network.
The document discusses design challenges and trends in high speed interconnect IPs. It covers topics like the rationale for high speed serial interconnects, comparisons of technologies like PCIe, SRIO, and USB 3.0, and challenges in adopting interconnect IPs. It also provides overviews of specific high speed interconnect IPs from GDA like their USB 3.0 and DVB-H solutions, and how their configurable and verified IPs aim to overcome adoption challenges.
IPv6 and How It Impacts Communication ApplicationsVoxeo Corp
What is all the IPv6 buzz about? And how will it impact your communications applications? In February 2011, the last IPv4 addresses were allocated to the global registries. While IPv4 addresses will be available for some time, the reality is that IPv6 addresses will be required in the future. Service providers, enterprises and integrators need to understand how IPv6 works and what impacts it may or may not have on applications. In this session, Dan York provides an overview of IPv6, how it impacts the SIP protocol and potential future action. Along the way he provides links for more information. This was part of a webinar found at http://blogs.voxeo.com/jamsessions/
This presentation serves as an overview of the parameters and considerations a designer would use to select a low-power wireless (LPRF) solution. It also highlights the devices and tools from the Anaren Integrated Radio (AIR) module product line and how they fit in a typical LPW design.
Điện thoại ip không dây Yealink w53P datasheetNam TruongGiang
The Yealink W53P is a high-performance SIP cordless phone system that allows up to 8 concurrent calls across 8 connected DECT handsets. It offers excellent audio quality using Opus codec. The system provides mobility through its wireless handsets along with the features of Voice over IP telephony. It also supports efficient provisioning and mass deployment through Yealink's RPS and boot server for easy setup and maintenance.
The document discusses how Phybridge PoLRE switches can help organizations eliminate infrastructure barriers to migrating to IP telephony. The switches leverage existing copper wiring to provide power and Ethernet connectivity over long distances, allowing organizations to deploy IP phones without needing to upgrade cabling or add new network switches. This provides significant cost savings compared to traditional IP migration approaches. The switches create a robust and secure IP network that supports not only IP phones but also additional applications like security cameras and wireless access points. Several case studies show how large organizations successfully used Phybridge switches to migrate thousands of users to IP with minimal disruption and costs.
The document provides information about a company that has been distributing IT equipment including networking, VOIP, and security products in the Philippines since 1997. It lists their contact information and location in Makati City, and authorizations to distribute various brands including Linksys, 3Com, Kingston, and Sophos. The company aims to provide the latest data communication and information access equipment to the growing Philippine IT market.
Asterisk Voicemail Services provides a cost-effective open source voicemail solution that can replace Cisco Unity at 50% savings while offering identical features. It includes redundancy, failover, voicemail to email delivery, and web access to voicemail boxes. An on-site demonstration is available from Strategic Business Technology.
A VoIP gateway acts as an interface between a public switched telephone network (PSTN) and an IP network, converting voice and fax calls between the two in real time. Key functions include voice and fax compression/decompression, packetization, and call routing. There are analog gateways for connecting PSTN lines to VoIP systems and digital gateways for connecting PBX systems. When selecting a gateway, factors to consider include call load, supported protocols and compatibility, and cost.
The document is a presentation by BroadConnect Telecom that introduces VoIP technology and BroadConnect's VoIP-enabled products and services. It defines VoIP as the delivery of voice communications over IP networks using standards-based protocols. It then describes BroadConnect's SIP server, IP phones, gateways, audio/video conferencing units, and IP cameras. The presentation explains how VoIP works by using codecs like G.711 to transfer voice data over the IP network. It outlines VoIP's advantages of low cost and security, as well as its need for constant power and internet connectivity. BroadConnect provides hosted PBX, SIP trunking, phone lines, communication services, internet services, and hosting solutions to help businesses simplify communications
Internet protocol (VoIP) is the technology of digitizing sound, compressing it, breaking it up into data packets, and sending it over an IP network.The conventional technique used for sending voice is PSTN (public switched telephone network) . As data traffic has higher speed than telephone traffic, so what we do most of the time we prefer to send voice over data networks. Voice over internet protocol (VoIP) is a method of telephone communication over a data network.
Overview of VoIP (Voice over IP) and FoIP (Fax over IP) technologies like Session Initiation Protocol and H.323.
Even though voice over IP (VoIP) was hailed as a technological innovation, the idea to transport real-time traffic over TCP/IP networks was not new back in the 1990s when VoIP started being deployed in networks. Chapter 2.5 of the venerable RFC793 (TCP) shows both data oriented application traffic as well as voice being transported over IP based networks.
Nevertheless, VoIP puts high demands on signal and protocol processing capabilities so it became possible at reasonable costs only in the 1990s.
VoIP can be roughly split into two main functions. Signaling protocols like SIP (Session Initiation Protocol), H.323 and MGCP/H.248 are used to establish a conference session and the data path for transporting real-time voice data packets. SIP has largely supplanted H.323 in recent years to its simpler structure and packet sequences. MGCP and H.248 are mostly used in carrier backbone networks.
Protocols like RTP (Real Time Protocol) transport voice packets and provide the necessary information for receivers to equalize packet flow variations to provide a smooth playback of the original voice signal.
Voice codecs are one of the core functions of the data path. Voice compression reduces the bandwidth required to transport voice over an IP based network. Compression may be less of a concern in local area networks with gigabit speeds, on slower links like 3G (UMTS, LTE) it still makes a lot of sense.
The algorithms used in different codecs make use of various characteristics of the characteristics of human speech recognition. Redundant information is removed from the signals thus slightly reducing the quality, but greatly reducing the required bandwidth.
In VoIP networks, the echo problem is typically compounded by the increased delay incurred by packetization of voice signals. To counteract the echo problem, VoIP gear (hard phones, soft phones, gateways) include echo cancelers to remove echo signals from the transmit signal.
To transport facsimile over an IP based network, even more technology is needed. Facsimile protocols are very susceptible to delay and delay variation and thus need more compensation algorithms. Protocols like T.38 terminate facsimile protocols like T.30 (analog facsimile) and transport the fax images as digitized pictures over IP based networks.
VoIP allows users to make phone calls using an Internet connection instead of a traditional phone line. It works by converting voice signals to digital data that is transmitted in packets over the Internet. A VoIP network uses protocols like SIP and RTP to setup calls and transmit voice data. Components include VoIP protocols, gateways to interface with the PSTN, and codecs to compress voice signals. Businesses are attracted to VoIP as it can help reduce costs while improving utilization of bandwidth and network management. However, security risks like hacking and eavesdropping exist since VoIP uses the public Internet.
Astricon 2016 - Scaling ARI and ProductionDan Jenkins
The document discusses scaling and productionizing applications built with the Asterisk Realtime Communications Interface (ARI). It outlines different approaches to scaling an ARI application, from running a single process on one Asterisk server to using multiple processes across many Asterisk servers with an ARI proxy and message bus. The document emphasizes important considerations for ARI applications in production like latency, logging, metrics, inter-process communication and failure handling. It also provides examples of architectures using an ARI proxy and message bus to scale ARI applications across multiple Asterisk servers.
A Carrier Grade VoIP Project with Asterisk - Stefano Carlini
Today Asterisk is a strong appeal project for the design of a carrier-class VoIP solutions. His reliability and flexibility allow the building of complex systems and integrate them inside the data centers of small and medium Telco operators in order to extend their legacy platforms with the VoIP technology. In order to achieve successfully in this kind of projects, the System Integrator have to pay attention not just to the technical skills but also to the management skills required, first of all the ability to create the right commitment for the Customer Decision Makers.Klarya has just finished an interesting project with an Italian Telco Operator. The project goal is to link a VoIP residential network to an existing legacy telephony infrastructure. The project, based on Asterisk and OpenSer technology, manage voip services and fax traffic from and to the VoIP network through the PSTN network (using a proper number of SS#7 signaling links). Initially the Klarya system will manage about 2.500 residential users but it is designed to grow up to about 10.000 users. The project is a good example of Asterisk integration into a carrier-class environment with SS#7 signalling link management.The speech presents all the project phases: from the customer's requirement, the commitment creation to the design and the advanced services deployment.
The document summarizes a carrier grade VoIP project implemented with Asterisk. The project involved developing an Open Voice Soft Switch for a telecommunications company with 10,000 customers. The solution integrated Asterisk with other open source technologies to provide VoIP, fax, voicemail and other services, with high performance and fault tolerance requirements. Key aspects included managing expectations, addressing technical limitations, and meeting requirements for both the company's network and telephony divisions.
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.
VoIP is a technology that allows transmission of voice and multimedia communications over IP networks like the internet rather than traditional phone networks. It converts media like voice and video into digital signals using protocols like SIP and RTP, compresses the signals into IP packets, and sends them over IP networks. At the receiving end, the packets are reassembled and converted back into an analog format. VoIP has advantages like lower costs, mobility, and support for features like conferencing. However, it also faces disadvantages such as potential quality issues, power dependency, and lack of support for emergency services. Research has found that lower communication costs is the main driver for many companies adopting VoIP services within their organizations.
Recording Remote Hosts/Interviews with VoIP/SkypeDan York
The document discusses various methods for recording remote interviews or co-hosts using VoIP/Skype. It covers using built-in recording features, third-party software programs, external recorders, mix minus techniques, and considerations for quality, portability and cost. Specific software and tools are also mentioned, including Audio Hijack Pro, Wiretap Studio, and using an external mixer or recorder with a mix minus configuration.
1. The document introduces VoIP concepts and presents Asterisk as a free and open source PBX software solution that is well-suited for implementing VoIP networks in developing regions.
2. It discusses challenges in developing regions like lack of technical knowledge and affordable infrastructure, and how VoIP solutions like Asterisk can help address these issues by providing flexibility.
3. The document provides an overview of topics covered like basic VoIP concepts, how to set up an Asterisk PBX, equipment options, and presents a case study of introducing VoIP services.
This document provides instructions for configuring Busy Lamp Field (BLF) functionality between an Asterisk server and Grandstream GXP2000 phones. It describes updating the GXP2000 to designate keys for BLF and configuring extensions in Asterisk to enable BLF status monitoring and call pickup. Specific steps include setting BLF keys on the GXP2000, creating hint groups and subscriptions in Asterisk, and adding dial plan logic to match and pickup calls to monitored extensions.
The document discusses testing methodologies for Asterisk IP PBX systems. It describes using the Spirent Abacus 5000 system to generate SIP calls and measure the call setup rate and maximum concurrent calls the Asterisk system can handle. Two main tests are outlined: 1) measuring the call setup rate by varying the number of concurrent calls and 2) determining the maximum number of concurrent calls before call completion rates drop below 99.9%. The results of tests on various Asterisk configurations are presented. The conclusion emphasizes the importance of testing, optimization, and certifying performance for enterprise-grade Asterisk deployments.
LF_APIStrat17_Creating Communication Applications using the Asterisk RESTFul ...LF_APIStrat
The document provides an overview of the Asterisk RESTful Interface (ARI) and demonstrates how to build communication applications using ARI. It discusses the history and purpose of ARI and compares it to other Asterisk APIs like AGI and AMI. The document then demonstrates connecting to ARI via a WebSocket connection to receive events and making REST requests to play audio on a channel. It provides examples of the resources and categories available in the ARI specification.
This document summarizes techniques for testing the performance of Asterisk IP PBX servers under heavy call loads. It describes using the Spirent Abacus 5000 tool to generate SIP calls and measure the call setup rate, maximum concurrent calls, latency, packet loss and other metrics. Two Asterisk server configurations were tested: a basic installation and an enterprise installation. The results showed that the enterprise installation could handle more concurrent calls and higher call rates. Proper performance testing and system optimization are important for deploying enterprise-grade Asterisk solutions.
This document discusses using VOIP and Ruby for building applications. It introduces Asterisk as an open source PBX software and Adhearsion and Telegraph as tools for integrating Ruby and Asterisk. Adhearsion allows developing voice applications independently of Rails while Telegraph tightly integrates with Rails, following the voice/web analogy. Examples demonstrate building interactive voice response systems using weather and games with Adhearsion and a banking application with Telegraph. Real-world uses are proposed like connecting website visitors to customer support by phone.
Srikanth Pilli has over 6 years of experience in embedded software development. He has expertise in C/C++, Python, Linux kernel driver development, video streaming, and networking. He has worked on projects involving home automation, surveillance systems, and embedded device development. His skills include embedded Linux systems, microcontroller programming, real-time protocols, and tools like Git. He holds an M.Tech in embedded systems and postgraduate diplomas in embedded systems and electronics.
Using techniques like ARP spoofing and NAT, it is possible to acquire an IP address and internet access on a network without a DHCP server. By intercepting traffic between an existing node and gateway, one can insert themselves as the "man in the middle" and route traffic through a NAT configuration using the hijacked node's IP address. This allows acquiring internet access without a free IP address by multiplexing sessions through the NAT. Scanrand port scanning observations can also reveal network topology details like firewall locations through analysis of TTL values.
This document discusses iOS application architecture and module design. It recommends separating applications into common, service, and domain modules. It also recommends creating network modules that interact with APIs using Alamofire and creating domain models to encapsulate API responses. The document provides examples of module responsibilities and dependencies.
Tuning and development with SIP Servlets on MobicentsJean Deruelle
The document discusses tuning Java virtual machines for SIP servlet applications and developing SIP servlets using frameworks. It recommends using CMS garbage collection with tuning, enabling parallel young generation GC and other performance options. It also describes how to develop SIP servlets as POJO classes using the Spring Signaling Framework or CDI-Telco Framework to simplify development and add features like aspect-oriented programming.
The document discusses serverless computing and the callback server architecture used by Veracode for dynamic application security testing. It summarizes the advantages of replacing the existing callback server with EC2 and Postgres with a serverless architecture using AWS Lambda, API Gateway, and DynamoDB. While the serverless approach provided benefits like automatic scaling and lower costs, it required learning new skills and significantly more effort on devops tasks for deployment automation compared to development. Security best practices like monitoring, access control, and dependency scanning were also emphasized for serverless architectures.
Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...gree_tech
This material is presented on CUFP 2013.
Functional programming is already an established technology is many areas. However, the lack of skilled developers has been a challenging hurdle in the adoption of such languages. It is easy for an inexperienced programmer to fall into the many traps of functional programming, resulting in a loss of productivity and bad software quality. Resource leaks caused by Haskell's lazy evaluation, for instance, are only the tip of the iceberg. Knowledge sharing and a mature tool-assisted development process are ways to avoid such pitfalls. At GREE, one of the largest mobile gaming companies, we use Haskell and Scala to develop major components of our platform, such as a distributed NoSQL solution, or an image storage infrastructure. However, only 11 programmers use functional programming on their daily task. In this talk, we will describe some unexpected functional programming issues we ran into, how we solved them and how we hope to avoid them in the future. We have developed a system testing framework to enhance regression testing, spent lots of time documenting pitfalls and introduced technical reviews. Recently, we even started holding lunchtime presentations about functional programming in order to attract beginners and prevent them from falling into the same traps.
SMPTE Toronto Presentation - Open-Source Software In Broadcasting: The Power ...Brad Fortner
Presentation to SMPTE Toronto Section on the work Ryerson University undertook to incorporate SIP technology into their Broadcast IP Intercom System. Presentation date January 11, 2011.
This document provides an overview and introduction to network theory and Java programming. It discusses key topics like network communication models (OSI and TCP/IP), protocols, ports, sockets, firewalls, proxies, and an overview of Java. The document also provides code samples for basic Java socket programming including using ServerSocket for servers and Socket for clients. It explains concepts like connection-oriented and connectionless sockets in UDP and TCP. The objective is to help readers understand network environments and be able to develop basic networking applications in Java.
What's new in Xamarin.iOS, by Miguel de IcazaXamarin
This document provides a summary of new features in Xamarin.iOS, including:
1. Features based on Mono 3.0 including a Mono 3.0-based stack, SGen GC, and .NET 4.5 API surface.
2. Size reductions through features like SmartLink, which only includes referenced code, reducing app sizes by up to hundreds of kilobytes.
3. Runtime improvements such as generic value type sharing to reduce errors and enable more generic-rich apps to run without changes.
4. Debugging aids like NSObject.Description and UIApplication.CheckForIllegalCrossThreadCalls to help write threaded apps.
5. Async support with async versions of
Breaking Smart Speakers: We are Listening to You.Priyanka Aash
"In the past two years, smart speakers have become the most popular IoT device, Amazon_ Google and Apple have introduced their own smart speaker products. Most of these smart speakers have natural language recognition, chat, music playback, IoT device control, shopping, and so on. Manufacturers use artificial intelligence technology to make smart speakers have similar human capabilities in the chat conversation. However, with the smart speakers coming into more and more homes, and the function is becoming more powerful, its security has been questioned by many people. People are worried that smart speakers will be hacked to leak their privacy, and our research proves that this concern is very necessary.
In this talk, we will present how to use multiple vulnerabilities to achieve remote attack some of the most popular smart speakers. Our final attack effects include silent listening, control speaker speaking content and other demonstrations. And we're also going to talk about how to extract firmware from BGA packages Flash chips such as EMMC, EMCP, NAND Flash, etc. In addition, it contains how to turn on debug interfaces and get root privileges by modifying firmware content and Re-soldering Flash chips, which can be of great help for subsequent vulnerability analysis and debugging. Finally, we will play several demo videos to demonstrate how we can remotely access some Smart Speaker Root permissions and use smart speakers for eavesdropping and playing voice."
Nokia Asha software platform 1.1 adds voice over IP (VoIP) capabilities for app developers. This webinar shows you how to add VoIP services to your Nokia Asha apps and how to set up a wireless local area network (WLAN) with Nokia Asha SDK 1.1 for testing your apps. We cover how to work with the VoIP API, how to simulate a WLAN for testing, and how to develop full apps that use VoIP.
The webinar is presented by Dalbir Dahiya, engineering manager with Nokia. He begins with an overview of how to implement VoIP in apps for users of Nokia Asha phones, and then covers all the information you need to develop with the VoIP API. He also demonstrates sample apps that you can download and modify to incorporate into your own apps.
Find out more about:
* the VoIP API in the Java Developers Library: http://developer.nokia.com/Resources/Library/Java/#!developers-guides/voip.html
* the Nokia Asha SDK: http://developer.nokia.com/Develop/asha/java/tools.xhtml
* getting started with the Nokia IDE: http://developer.nokia.com/Develop/asha/java/start/nokia_ide/
* getting started with NetBeans: http://developer.nokia.com/Develop/asha/java/start/netbeans/
* all the new APIs in Nokia Asha software platform 1.1: http://developer.nokia.com/Resources/Library/Java/#!whats-new/java-runtime-for-nokia-asha-software-platform-110.html
Check out the current webinar schedule here: http://www.developer.nokia.com/webinars and https://developer.nokia.com/Develop/asha/learning/
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2023/11/building-accelerated-gstreamer-applications-for-video-and-audio-ai-a-presentation-from-wave-spectrum/
Abdo Babukr, Accelerated Computing Consultant at Wave Spectrum, presents the “Building Accelerated GStreamer Applications for Video and Audio AI,” tutorial at the May 2023 Embedded Vision Summit.
GStreamer is a popular open-source framework for creating streaming media applications. Developers often use GStreamer to streamline the development of computer vision and audio perception applications. Since perceptual algorithms are often quite demanding in terms of processing performance, in many cases developers need to find ways to accelerate key GStreamer building blocks, taking advantage of specialized features of their target processor or co-processor.
In this talk, Babukr introduces GStreamer and shows how to use it to build computer vision and audio perception applications. He also shows how to create efficient, high-performance GStreamer applications that utilize specialized hardware features.
Ramaprasad is seeking a job as an ASIC verification engineer with over 3 years of experience in RTL verification. He has experience verifying IP blocks using SystemVerilog and UVM, including projects involving AOP SoC, MIPI-MPHY, CAN, SPI, AXI4, MIPI DSI, and router verification. He is proficient in SystemVerilog, UVM, QuestaSim, and has experience developing testbenches, writing directed and randomized tests, and achieving coverage closure. He holds a BE in electronics and communication engineering.
The document summarizes several emerging tech trends for 2018-2019 including:
- Micro-frontends, which separate large monolithic applications into independent and modular frontends.
- Polly, which records and replays HTTP interactions for deterministic, accurate tests.
- HTTP/3 which will officially replace HTTP-over-QUIC.
- Architecture Decision Records (ADR) which document architectural choices in a standard format.
- Chaos engineering which experiments on distributed systems to build confidence in withstanding turbulent conditions.
- Blazor which allows building web UIs using C#/Razor components running natively in the browser via WebAssembly.
- Nullable reference types coming to C# 8.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
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.
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
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
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
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.
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
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.
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.
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.
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.
Epistemic Interaction - tuning interfaces to provide information for AI support
Using Asterisk in a SIP softswitch
1. Building a SIP softswitch with
Asterisk and Asterisk-Java
Monica McArthur
Adapted from my presentation at AstriCon 2007
2. The task at hand
Build a pure SIP softswitch that can perform the following functions:
• Answer an inbound call and redirect it to a specified target phone
number
– Rules for determining target number can be complex
• Record both legs of the call
• Play prerecorded prompts separately to inbound and outbound legs
• Provide call routing through IVR trees, overflow on busy/no answer,
and voicemail
• Save the call detail record to a database for access by applications to
do reporting and further data processing
• All features can be provisioned in real-time
• System must be highly-available and scalable
– Initial capacity 1250 simultaneous calls
– 99.99% availability requirement
– Scheduled maintenance can be performed with no downtime
3. General solution
• Write a routing application in Java to handle routing rules,
provisioning changes, and interface with the database and other
applications
• Have the Java application direct a third-party host media processing
system that provides the actual SIP signaling, RTP media handling,
prompt playing, call recording, and DTMF input
• The application servers running the Java routing application are load-
balanced by hardware and can be scaled as needed
• The host media processing servers are load-balanced by a SIP proxy
server and can be scaled as needed
4. Particular issues
• Inbound leg must be able to continue even if outbound leg fails
– To provide voicemail and overflow routing
• Outbound leg must be able to continue after inbound leg hangs up on
a connected call
– To provide post-call input and play “index number” for recorded calls
• Outbound calls may play a “whisper” heard only by the target while
the inbound still hears ringback
• If there is no “whisper”, the call must support early media
– Media begins streaming (initially ringback) before outbound connect and must be
played to inbound
– If early media is not streamed to inbound leg, the initial few syllables of the outbound
call may be lost (“media clipping”)
– Ringback must not be included in call recordings
5. Overview of early media issue
• In many standard SIP signaling exchanges, the answering user agent
may start generating media before the first agent is ready for it
(“media clipping”)
• To avoid media clipping, the answering user agent may send a 183
(“session progress”) and then initiate a one-way media stream at that
point
• If the initial user agent ignores the media stream sent with the 183
and only accesses it after receiving a 200, media clipping will still
occur
• This issue is discussed in RFC 3960: Early Media and Ringing Tone
Generation in the Session Initiation Protocol (SIP)
http://www.rfc-archive.org/getrfc.php?rfc=3960
6. Diagram of SIP signaling with early media
Inbound leg Media gateway Outbound leg
Media path established
INVITE
100 TRYING
183 SESSION PROGRESS
Early media
200 OK Media that can be lost
to clipping
Normal media
7. Problems with existing solution
• Ports are expensive!
• Chosen host media platform did not support early media
• Dependent on vendor to implement fixes
– Could take years
– Often broke workarounds in place to support other features
8. New solution: Asterisk
• Port cost now zero
• More port density per server (can easily achieve 150 vs. 125)
• Open source allows us to either find bug fixes in the Asterisk
community or write our own
• FastAGI and AMI provide means for existing Java software to
communicate with Asterisk in ways similar to the previous HMP
– Only need to replace the vendor-specific code
10. How to interface with Asterisk
• Could write our own software to interface with FastAGI and AMI
• Or… could select from a wide variety of existing open source libraries
• After review, selected Asterisk-Java
http://asterisk-java.org
11. Asterisk-Java
• Open source, free library for Asterisk integration
• Hosted in SourceForge
• Current version is 0.3
• Handles the low-level details of FastAGI and AMI communication
• Java code for accessing AGI using Asterisk-Java is structured
similarly to servlets
• AMI communication is handled through ManagerActions (to send AMI
actions) and ManagerEvents (to receive AMI events)
12. Accessing AGI in Asterisk-Java
• AGI applications are implemented as subclasses of BaseAgiScript
• BaseAgiScript provides convenience methods to send all AGI
commands
• AGI scripts are mapped to correct classes in setup code
• service() method of BaseAgiScript has two arguments, AgiRequest
and AgiChannel
• AgiRequest contains information about the call (caller ID, dialed
digits, etc.)
• AgiChannel handles the details of the convenience methods
13. Accessing AGI in Asterisk-Java
(examples)
Agi script to begin handling call
public class AGIInbound extends BaseAgiScript {
public void service(AgiRequest request, AgiChannel channel)
throws AgiException {
Setting up the mapping for AGIInbound
agiMap.put("AGIInbound.agi", new AGIInbound());
SimpleMappingStrategy agiMapping = new SimpleMappingStrategy();
agiMapping.setMappings(agiMap);
agiServer.setMappingStrategy(agiMapping);
Code for voicemail
callID = new Long(getVariable(“APP_CALLID"));
this.streamFile(greetingFile);
this.streamFile("routing/tone");
this.exec("Record", recordingFilename + ".wav" + "|" + silence
+ "|" + maxduration + "|q");
this.hangup();
14. Accessing AMI in Asterisk-Java
• Subclasses of ManagerAction are provided for each AMI action
– e.g., OriginateAction, HangupAction, SetVarAction
• Instances of actions are sent by using an instance of
ManagerConnection
• Subclasses of ManagerEvent are provided for each AMI event
– e.g., DialEvent, HangupEvent, NewChannelEvent
• Subclasses of ManagerEventListener are registered to listen on a
ManagerConnection
• Can also create custom events that are subclasses of ManagerEvent
and register them with the ManagerConnection
15. Accessing AMI in Asterisk-Java
(examples)
Configure event listener and custom event
managerConnection.addEventListener(new
ManagerEventListenerProxy(amiDispatchers.get(routingNode)));
managerConnection.registerUserEventClass(Class.forName(
"astrouting.control.ami.events.ConnectedEvent"));
Create and send OriginateAction
OriginateAction originateAction = new OriginateAction();
originateAction.setChannel(channel);
originateAction.setVariable(“APP_CALLID", "" + astCall.getCallID());
originateAction.setAsync(true);
originateAction.setTimeout(1000L*astCall.getCall().getRNATime()+5000L);
managerResponse = managerConnection.sendAction(originateAction);
Custom ManagerEvent
public class ConnectedEvent extends ManagerEvent {
private String channelName;
private String channelID;
private String userData;
17. Remaining issues
With this architecture and a plain version of Asterisk, we can provide all
of the required features of the softswitch EXCEPT
• Having the outbound leg survive after the inbound disconnects
– Need legs in separate threads
• Early media
– app_dial does provide support for early media, but only with the channel it is running
on
18. Problem 1: having the outbound leg
survive after the inbound disconnects
• The straightforward way to handle connecting an inbound leg to
another number is to dial the number using app_dial
• Unfortunately, in that case the outbound leg does not survive the
hangup of the inbound leg
• Need to have each leg living independently (in its own channel) but
still joined together
19. Solution
• To get the outbound leg in its own channel: use AMI Originate to get a
local channel, connect to AGI, then use app_dial to make the
outbound call
• To join the two channels together: use a patch for bridging
independent legs
– Was bug 5841; in trunk for 1.6
20. Originate on a local channel
• First, use AMI OriginateAction to request a local channel that will start
in a particular context and go to another context when connected
– Syntax is “local/s@<context_name>”
• Then, launch AGI script from context
• In AGI script, use app_dial to make actual call for outbound leg
• Check result of app_dial in start context to handle busy/no answer
• Perform additional functions on connected leg in context specified for
connection
• This is a well-known pattern; see
http://blogs.reucon.com/asterisk-
java/2007/04/18/originate_using_asterisk_local_channels.html
21. Example code for origination
Configure and send OriginateAction
OriginateAction originateAction = new OriginateAction();
originateAction.setChannel("Local/s@ob-agi-dial");
originateAction.setApplication("Agi");
originateAction.setData("agi://" + agiServer+
":4573/AGIOutboundConnect.agi");
managerResponse = managerConnection.sendAction(originateAction);
Launch app_dial and check result
int dialExecResult = exec(“Dial”, "SIP/" + target + "@nextone|" +
dialTimeout);
String DIALSTATUS = this.getVariable("DIALSTATUS");
if (dialExecResult == 0) {
if ("NOANSWER".equals(DIALSTATUS)) {
astCall.noAnswer();
} else if ("BUSY".equals(DIALSTATUS)) {
astCall.busy();
}
// etc. for “CONGESTION”, “CHANUNAVAIL”, “CANCEL”, “HANGUP”, default
}
22. Bridge patch
• Bridge patch was originally submitted with bug 5841: “Bridge two
channels via a Dialplan App or an AMI event”
• Provides a Bridge() application for dialplan/AGI and an AMI Bridge
action that will bridge the current channel with another specified
channel that already exists
• Used to bridge the inbound leg with the connected outbound leg
obtained by app_dial
• Patch we used was bridge-trunk-rev48286.patch
• Code is now included in 1.6 trunk
– See http://bugs.digium.com/view.php?id=5841 for details
23. Problem 2: early media
• app_dial provides support for early media, but only to its inbound leg
• In this architecture, the inbound leg is a local channel and the actual
inbound leg does not receive media from the outbound leg until they
are joined using Bridge()
• In order to provide early media to the inbound leg, app_dial needs to
return if SIP 183 (session progress) is received
• Since calls with whisper cannot use early media, whether app_dial
returns on SIP 183 needs to be configurable
• In order to avoid recording the ringback when early media is used, the
Java application needs to know when the SIP 200 (OK) is received
after app_dial connects on SIP 183
24. Example code to use bridge patch
Get outbound channel ID from DialEvent
public void onManagerEvent(ManagerEvent event) {
…
else if (event instanceof DialEvent) {
astCall = AstRoutingController.getController().
getAstCallByChannel(event.getSrc());
astCall.setObAstChannel(event.getDestination());
}
Execute bridge
exec("Bridge", astCall.getObAstChannel());
25. Solution: app_dial and channel patch
• This required an original patch
– Not yet submitted to Asterisk; will consider based on demand
• app_dial.c changed to have new argument which specifies whether to
connect on SIP 183 if received
• app_dial.c also stores which signal (PROGRESS/183 or ANSWER/200)
it actually connected on
– SIP spec does not require answering user agent to send 183
• channel.c changed to send custom AMI event on receipt of answer
– Used to determine time to start recording if app_dial connected on 183
26. Example code to use the new patch
Call app_dial with new argument
String dialExecString = "SIP/" + target + "@nextone|" + dialTimeout;
if(astCall.earlyMedia())
dialExecString += “||1";
int dialExecResult = exec(“Dial”, dialExecString);
Check channel variable
String connectedSignal = getVariable("CONNECTED_SIGNAL");
if("PROGRESS".equals(connectedSignal)) {
// handle early media
} else {
// handle normal flow
}
Receive notice of connect
public void onManagerEvent(ManagerEvent event) {
…
else if (event instanceof ConnectedEvent) {
astCall = AstRoutingController.getController().
getAstCallByChannel(event.getChannelName());
astCall.connectSignaled();
}
27. Summary of changes
• Asterisk
– Include bridge patch bridge-trunk-rev48286.patch (already included in 1.6 trunk)
– Patch app_dial to optionally consider a progress as answer and to set a channel
variable with which signal resulted in connect; patch channel.c to send an AMI event
when a connect is received
• Asterisk-Java: no changes
• Custom Java code:
– New Java code for AGI scripts and explicit state machine handling
– One new subclass of Asterisk-Java’s ManagerEvent to handle channel.c’s new event
28. Summary of best practices learned
• Go into an AGI script in a context immediately
• Use AMI events (hangup events, dial events, new events as needed)
to keep track of call state and handle graceful hangups
• To get an outbound leg in its own thread, originate on a local channel
and then use app_dial (called from an AGI script) to make the actual
outbound call