معرفی و مطالعه آنلاین کتاب آموزش Asterisk

asterisk-bubble

Asterisk که قدرتمند ترین و محبوب تریین سیستم تلفنی مبتنی بر IP می باشد،بطوری که در حال حاضر پایه ی بسیاری از IP PBX های دیگر می باشد و یکی از پر کاربردترین نرم افزار در زمینه ی VoIP می باشد.

برای یادگیری این سیستم تلفنی، کتابی با نام Asterisk The Definitive Guide توسط Leif Madsen,Jim Van Meggelen و Russell Bryant  نوشته شده است که علاقه مندان می توانند آن را مطالعه کنند.

فهرست مطالب این کتاب به شرح پایین می باشد :

Foreword

Preface

 Audience

Organization

Software

Conventions Used in This Book

Using Code Examples

Safari Books Online

How to Contact Us

Acknowledgments

Leif Madsen

Jim Van Meggelen

Russell Bryant

۱٫ A Telephony Revolution

Asterisk and VoIP: Bridging the Gap Between Traditional and Network Telephony

 The Zapata Telephony Project

 Massive Change Requires Flexible Technology

Asterisk: The Hacker’s PBX

Asterisk: The Professional’s PBX

The Asterisk Community

 The Asterisk Mailing Lists

Asterisk Wiki Sites

The IRC Channels

Asterisk User Groups

The Asterisk Documentation Project

The Business Case

Conclusion

۲٫ Asterisk Architecture

 Modules

Applications

Bridging Modules

Call Detail Recording Modules

Channel Event Logging Modules

Channel Drivers

Codec Translators

Format Interpreters

Dialplan Functions

PBX Modules

Resource Modules

Addon Modules

Test Modules

File Structure

 Configuration Files

Modules

The Resource Library

The Spool

Logging

The Dialplan

Hardware

Asterisk Versioning

 Previous Release Methodologies

The New Release Methodology

 Conclusion

۳٫ Installing Asterisk

 Installation Cheat Sheet

Distribution Installation

 CentOS Server

 Base system installation

Base system update

Enabling NTP for accurate system time

Adding a system user

Ubuntu Server

Base system installation

Base system update

Enable NTP for accurate system time

 Software Dependencies

Downloading What You Need

 Getting the Source via Subversion

Getting the Source via wget

 How to Install It

 LibPRI

DAHDI

Asterisk

Setting File Permissions

Base Configuration

 Disable SELinux

Initial Configuration

indications.conf and asterisk.conf

modules.conf

musiconhold.conf

 make menuselect

 Uses for menuselect

menuselect interfaces

Using menuselect

Scripting menuselect

Updating Asterisk

Common Issues

 -bash: wget: command not found

configure: error: no acceptable C compiler found in $PATH

make: gcc: command not found

configure: error: C++ preprocessor “/lib/cpp” fails sanity check

configure: error: *** Please install GNU make. It is required to build Asterisk!

configure: *** XML documentation will not be available because the ‘libxml2’ development package is missing.

configure: error: *** termcap support not found

You do not appear to have the sources for the 2.6.18-164.6.1.el5 kernel installed.

E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

Upgrading Asterisk

Conclusion

۴٫ Initial Configuration Tasks

 asterisk.conf

 The [directories] Section

The [options] Section

The [files] Section

The [compat] Section

 modules.conf

The [modules] Section

indications.conf

musiconhold.conf

 Converting Music to a Format That Works Best with Asterisk

 CentOS

Ubuntu

Completing file conversion

Conclusion

۵٫ User Device Configuration

 Telephone Naming Concepts

Hardphones, Softphones, and ATAs

Configuring Asterisk

 How Channel Configuration Files Work with the Dialplan

sip.conf

iax.conf

Modifying Your Channel Configuration Files for Your Environment

 Loading Your New Channel Configurations

 The Asterisk CLI

 Testing to Ensure Your Devices Have Registered

Analog Phones

A Basic Dialplan to Test Your Devices

Under the Hood: Your First Call

Conclusion

۶٫ Dialplan Basics

Dialplan Syntax

 Contexts

Extensions

Priorities

Unnumbered priorities

The ‘same =>’ operator

Priority labels

 Applications

The Answer(), Playback(), and Hangup() Applications

A Simple Dialplan

 Hello World

Building an Interactive Dialplan

 The Goto(), Background(), and WaitExten() Applications

Handling Invalid Entries and Timeouts

Using the Dial() Application

 Argument 1: Destination

Argument 2: Timeout

Argument 3: Option

Argument 4: URI

Updating the dialplan

Blank arguments

Using Variables

Global variables

Channel variables

Environment variables

Adding variables to our dialplan

 Pattern Matching

 Pattern-matching syntax

Pattern-matching examples

Using the ${EXTEN} channel variable

 Includes

 Conclusion

۷٫ Outside Connectivity

 The Basics of Trunking

Fundamental Dialplan for Outside Connectivity

PSTN Circuits

 Traditional PSTN Trunks

 Analog telephony

Digital telephony

Installing PSTN Trunks

 Downloading and installing DAHDI

Configuring digital circuits

Configuring analog circuits

VoIP

PSTN Termination

PSTN Origination

VoIP to VoIP

Configuring VoIP Trunks

 Configuring SIP trunks between Asterisk systems

Configuring IAX trunks between Asterisk systems

 Emergency Dialing

Conclusion

۸٫ Voicemail

 Comedian Mail

The [general] Section

The [zonemessages] Section

The Contexts Section

An Initial voicemail.conf File

 Dialplan Integration

The VoiceMail() Dialplan Application

The VoiceMailMain() Dialplan Application

Creating a Dial-by-Name Directory

Using a Jitterbuffer

 Storage Backends

Linux Filesystem

ODBC

IMAP

 Using Asterisk As a Standalone Voicemail Server

 Integrating Asterisk into a SIP Environment As a Standalone Voicemail Server

 Dialplan requirements

sip.conf requirements

 SMDI (Simplified Message Desk Interface)

Conclusion

۹٫ Internationalization

 Devices External to the Asterisk Server

PSTN Connectivity, DAHDI, Digium Cards, and Analog Phones

DAHDI Drivers

Asterisk

Caller ID

Language and/or Accent of Prompts

Time/Date Stamps and Pronunciation

Conclusion—Easy Reference Cheat Sheet

۱۰٫ Deeper into the Dialplan

 Expressions and Variable Manipulation

Basic Expressions

Operators

Dialplan Functions

 Syntax

Examples of Dialplan Functions

Conditional Branching

The GotoIf() Application

Time-Based Conditional Branching with GotoIfTime()

 Macros

Defining Macros

Calling Macros from the Dialplan

Using Arguments in Macros

GoSub()

 Defining Subroutines

Calling Subroutines from the Dialplan

Using Arguments in Subroutines

Returning from a Subroutine

 Local Channels

Using the Asterisk Database (AstDB)

Storing Data in the AstDB

Retrieving Data from the AstDB

Deleting Data from the AstDB

Using the AstDB in the Dialplan

 Handy Asterisk Features

Zapateller()

Call Parking

Conferencing with MeetMe()

 Conclusion

۱۱٫ Parking and Paging

features.conf

 The [general] section

The [featuremap] Section

The [applicationmap] Section

Application Map Grouping

Parking Lots

Overhead and “Underchin” Paging (a.k.a. Public Address)

 Places to Send Your Pages

 External paging

Set paging

Multicast paging via the MulticastRTP channel

VoIP paging adaptors

Combination paging

Bringing it all together

Zone Paging

 Conclusion

۱۲٫ Internet Call Routing

 DNS and SIP URIs

The SIP URI

SRV Records

Accepting Calls to Your System

 Modifying sip.conf

Standard dialplan

File parsing

Database lookup

Dialing SIP URIs from Asterisk

 ENUM and E.164

E.164 and the ITU

ENUM

Asterisk and ENUM

 ISN, ITAD, and freenum.org

 Got ISN?

ITAD Subscriber Numbers (ISNs)

Management of Internet Numbering

IP Telephony Administrative Domains (ITADs)

Create a DNS Entry for Your ITAD

Testing Your ITAD

Using ISNs in Your Asterisk System

 Receiving calls to your ITAD

Security and Identity

 Toll Fraud

Spam over Internet Telephony (SPIT)

Distributed Denial of Service Attacks

Phishing

Security Is an Ongoing Process

Conclusion

۱۳٫ Automatic Call Distribution (ACD) Queues

 Creating a Simple ACD Queue

Queue Members

Controlling Queue Members via the CLI

Controlling Queue Members with Dialplan Logic

Automatically Logging Into and Out of Multiple Queues

An Introduction to Device State

 The queues.conf File

The agents.conf File

Advanced Queues

Priority Queue (Queue Weighting)

Queue Member Priority

Changing Penalties Dynamically (queuerules.conf)

Announcement Control

Overflow

 Controlling timeouts

Controlling when to join and leave a queue

 Using Local Channels

 Queue Statistics: The queue_log File

Conclusion

۱۴٫ Device States

Device States

Checking Device States

 Extension States

Hints

Checking Extension States

 SIP Presence

 Asterisk Configuration

 Using Custom Device States

 An Example

 Distributed Device States

 Using OpenAIS

 Installation

OpenAIS configuration

Asterisk configuration

Testing device state changes

 Using XMPP

 Installation

Creating XMPP accounts

Asterisk configuration

Testing

Shared Line Appearances

 Installing the SLA Applications

Configuration Overview

Key System Example with Analog Trunks

sla.conf

extensions.conf

Additional phone configuration tasks

 Key System Example with SIP Trunks

sla.conf

extensions.conf

Shared Extension Example

 sla.conf

extensions.conf

Additional Configuration

Limitations

 Conclusion

۱۵٫ The Automated Attendant

 An Auto Attendant Is Not an IVR

Designing Your Auto Attendant

The Greeting

The Main Menu

Selection 1

Selection 2

Selection #

Selection 3

Selection 9

Selection 0

 Timeout

Invalid

Dial by Extension

Building Your Auto Attendant

 Recording Prompts

 Using the dialplan to create recordings

 The Dialplan

Delivering Incoming Calls to the Auto Attendant

IVR

 Conclusion

۱۶٫ Relational Database Integration

 Installing and Configuring PostgreSQL and MySQL

 Installing PostgreSQL for CentOS

Installing PostgreSQL for Ubuntu

Installing MySQL for CentOS

Installing MySQL for Ubuntu

Configuring PostgreSQL

Configuring MySQL

 Installing and Configuring ODBC

 Configuring ODBC for PostgreSQL

Configuring ODBC for MySQL

Configuring ODBC for Microsoft SQL

Validating the ODBC Connector

Configuring res_odbc to Allow Asterisk to Connect Through ODBC

 Managing Databases

 Troubleshooting Database Issues

 A Gentle Introduction to func_odbc

Getting Funky with func_odbc: Hot-Desking

Using Realtime

Static Realtime

Dynamic Realtime

Storing Call Detail Records (CDRs)

ODBC Voicemail

 Creating the Large Object Type for PostgreSQL

ODBC Voicemail Storage Table Layout

Configuring voicemail.conf for ODBC Storage

Testing ODBC Voicemail

 Verifying binary data stored in PostgreSQL

Verifying binary data stored in MySQL

Conclusion

۱۷٫ Interactive Voice Response

What Is IVR?

Components of an IVR

IVR Design Considerations

 Do

Don’t

 Asterisk Modules for Building IVRs

 CURL

func_odbc

AGI

AMI

 A Simple IVR Using CURL

 Installing the cURL Module

The Dialplan

A Prompt-Recording Application

Speech Recognition and Text-to-Speech

 Text-to-Speech

Speech Recognition

 Conclusion

۱۸٫ External Services

Calendar Integration

Compiling Calendaring Support into Asterisk

CentOS dependencies

Ubuntu dependencies

 Configuring Calendar Support for Asterisk

Triggering Calendar Reminders to Your Phone

 Triggering a wakeup call

Scheduling calls between two participants

Calling meeting participants and placing them into a conference

 Controlling Calls Based on Calendar Information

Writing Call Information to a Calendar

Conclusion

VoiceMail IMAP Integration

Compiling IMAP VoiceMail Support into Asterisk

CentOS dependencies

Ubuntu dependencies

Compiling the IMAP library

Compiling Asterisk

Configuring Asterisk

 Using XMPP (Jabber) with Asterisk

Compiling Jabber Support into Asterisk

 CentOS dependencies

Ubuntu dependencies

Jabber Dialplan Commands

Connecting to an XMPP server

Sending messages with JabberSend()

Receiving messages with JABBER_RECEIVE()

chan_gtalk

Configuring gtalk.conf

Accepting calls from Google Talk

Accepting calls from Google Voice

Outgoing calls via Google Talk

Outgoing calls via Google Voice

 Skype Integration

 Installation of Skype for Asterisk

Using Skype for Asterisk

Configuring chan_skype.conf

Placing and receiving calls via Skype

Sending and receiving messages via Skype

Calling your Skype buddies without assigning extension numbers

LDAP Integration

Configuring OpenLDAP

Compiling LDAP Support into Asterisk

Ubuntu dependencies

CentOS dependencies

Configuring Asterisk for LDAP Support

 Configuring res_ldap.conf

Configuring extconfig.conf

Configuring sip.conf for realtime

Text-to-Speech Utilities

 Festival

 Installing Festival on CentOS

Installing Festival on Ubuntu

Using Festival with Asterisk

 Cepstral

Conclusion

 ۱۹٫ Fax

What Is a Fax?

Ways to Handle Faxes in Asterisk

spandsp

 Obtaining spandsp

Compiling and Installing spandsp

Adding the spandsp Library to Your libpath

Recompiling Asterisk with spandsp Support

Disabling spandsp (Should You Want to Test Digium Fax)

 Digium Fax For Asterisk

Obtaining Digium FFA

Disabling Digium FFA (Should You Want to Test spandsp)

 Incoming Fax Handling

 Fax to TIFF

Fax to Email

Fax Detection

Outgoing Fax Handling

 Transmitting a Fax from Asterisk

File Format for Faxing

An Experiment in Email to Fax

 Fax Pass-Through

Using Fax Buffers in chan_dahdi.conf

 Conclusion

۲۰٫ Asterisk Manager Interface (AMI)

Quick Start

 AMI over TCP

AMI over HTTP

Configuration

 manager.conf

http.conf

 Protocol Overview

 Message Encoding

Events

Actions

AMI over HTTP

 Authentication and session handling

/rawman encoding

/manager encoding

/mxml encoding

Manager events

 Development Frameworks

CSTA

 Interesting Applications

 AsteriskGUI

Flash Operator Panel

Conclusion

۲۱٫ Asterisk Gateway Interface (AGI)

 Quick Start

AGI Variants

 Process-Based AGI

EAGI

 DeadAGI Is Dead

FastAGI—AGI over TCP

Async AGI—AMI-Controlled AGI

 AGI Communication Overview

 Setting Up an AGI Session

 Process-based AGI/FastAGI

Async AGI

 Commands and Responses

 Process-based AGI/FastAGI

Async AGI

 Ending an AGI Session

 Process-based AGI/FastAGI

Async AGI

 Development Frameworks

Conclusion

۲۲٫ Clustering

 Traditional Call Centers

Hybrid Systems

Pure Asterisk, Nondistributed

Asterisk and Database Integration

Single Database

Replicated Databases

 Asterisk and Distributed Device States

 Distributing Device States over a LAN

Distributing Device States over a WAN

 Multiple Queues, Multiple Sites

Conclusion

۲۳٫ Distributed Universal Number Discovery (DUNDi)

 How Does DUNDi Work?

The dundi.conf File

Configuring Asterisk for Use with DUNDi

 General Configuration

Initial DUNDi Peer Definition

Creating Mapping Contexts

Using Mapping Contexts with Peers

Allowing Remote Connections

Controlling Responses

 Manually adding responses

Using pattern matches

Dynamically adding extension numbers

Using dialplan functions in mappings

Performing Lookups from the Dialplan

 Conclusion

۲۴٫ System Monitoring and Logging

 logger.conf

Reviewing Asterisk Logs

Logging to the Linux syslog Daemon

Verifying Logging

Call Detail Records

 CDR Contents

Dialplan Applications

cdr.conf

Backends

 cdr_adaptive_odbc

cdr_csv

cdr_custom

cdr_manager

cdr_mysql

cdr_odbc

cdr_pgsql

cdr_radius

cdr_sqlite

cdr_sqlite3_custom

cdr_syslog

cdr_tds

 Example Call Detail Records

 Single-party call

Two-party call

 Caveats

 CEL (Channel Event Logging)

Channel Event Types

Channel Event Contents

Dialplan Applications

cel.conf

Backends

 cel_odbc

cel_custom

cel_manager

cel_pgsql

cel_radius

cel_sqlite3_custom

cel_tds

 Example Channel Events

 Single-party call

Two-party call

Blind transfer

SNMP

 Installing the SNMP Module for Asterisk

 CentOS dependency

Ubuntu dependency

Recompiling Asterisk with the res_snmp module

 Configuring SNMP for Asterisk Using OpenNMS

 Installing OpenNMS

Editing /etc/asterisk/res_snmp.conf to work with your OpenNMS server

Editing /etc/snmp/snmpd.conf to work with your OpenNMS server

Enabling SNMPv3

Monitoring Asterisk with OpenNMS

 Conclusion

۲۵٫ Web Interfaces

 Flash Operator Panel

Queue Status and Reporting

 Queue Status Display

Queue Reporting

Call Detail Records

A2Billing

Conclusion

۲۶٫ Security

Scanning for Valid Accounts

Authentication Weaknesses

Fail2ban

Installation

 iptables

Sending email

 Configuration

Encrypted Media

Dialplan Vulnerabilities

Securing Asterisk Network APIs

IAX2 Denial of Service

Other Risk Mitigation

Resources

Conclusion—A Better Idiot

۲۷٫ Asterisk: A Future for Telephony

The Problems with Traditional Telephony

Closed Thinking

Limited Standards Compliancy

Slow Release Cycles

Refusing to Let Go of the Past and Embrace the Future

 Paradigm Shift

The Promise of Open Source Telephony

The Itch That Asterisk Scratches

Open Architecture

Standards Compliance

Lightning-Fast Response to New Technologies

Passionate Community

Some Things That Are Now Possible

 Legacy PBX migration gateway

Low-barrier IVR

Conference rooms

Home automation

The Future of Asterisk

 Speech Processing

 Festival

Speech recognition

 High-Fidelity Voice

Video

 The challenge of videoconferencing

Why we love videoconferencing

Why videoconferencing may never totally replace voice

 Wireless

 WiFi

WiMAX

 Unified Messaging

Peering

E.164

ENUM

e164.org

 Challenges

 Too much change, too few standards

Toll fraud

VoIP spam

Fear, uncertainty, and doubt

Bottleneck engineering

Regulatory wars

Quality of service

Complexity

 Opportunities

 Tailor-made private telecommunications networks

Low barrier to entry

Hosted solutions of similar complexity to corporate websites

Proper integration of communications technologies

A. Understanding Telephony

 Analog Telephony

Parts of an Analog Telephone

 Ringer

Dialpad

Hybrid (or network)

 Tip and Ring

 Digital Telephony

 Pulse-Code Modulation

 Digitally encoding an analog waveform

Increasing the sampling resolution and rate

Nyquist’s Theorem

Logarithmic companding

Aliasing

 The Digital Circuit-Switched Telephone Network

Circuit Types

The humble DS-0―The foundation of it all

T-carrier circuits

SONET and OC circuits

 Digital Signaling Protocols

Channel Associated Signaling (CAS)

ISDN

Signaling System 7

 Packet-Switched Networks

Conclusion

B. Protocols for VoIP

 The Need for VoIP Protocols

VoIP Protocols

IAX (The “Inter-Asterisk eXchange” Protocol)

History

Future

Security considerations

IAX and NAT

 SIP

 History

Future

Security considerations

SIP and NAT

 H.323

 History

Future

Security considerations

H.323 and NAT

 MGCP

Proprietary Protocols

 Skinny/SCCP

UNISTIM

 Codecs

 G.711

G.726

G.729A

GSM

iLBC

Speex

G.722

MP3

 Quality of Service

 TCP, UDP, and SCTP

 Transmission Control Protocol

User Datagram Protocol

Stream Control Transmission Protocol

 Differentiated Service

Guaranteed Service

MPLS

RSVP

 Best Effort

 Echo

Why Echo Occurs

Managing Echo on DAHDI Channels

Hardware Echo Cancellation

 Asterisk and VoIP

 Users and Peers and Friends—Oh My!

 Users

Peers

Friends

 register Statements

 VoIP Security

 Spam over Internet Telephony (SPIT)

Encrypting Audio with Secure RTP

Spoofing

What Can Be Done?

 Basic network security

Encryption

Physical security

 Conclusion

C. Preparing a System for Asterisk

 Server Hardware Selection

 Performance Issues

Choosing a Processor

 Small systems

Medium systems

Large systems

Choosing a Motherboard

Power Supply Requirements

 Computer power supplies

Redundant power supplies

 Environment

 Power Conditioning and Uninterruptible Power Supplies

Power-conditioned UPSs

 Grounding

Electrical Circuits

The Equipment Room

 Humidity

Temperature

Dust

Security

 Telephony Hardware

 Connecting to the PSTN

Analog interface cards

Digital interface cards

Channel banks

Other types of PSTN interfaces

 Connecting Exclusively to a Packet-Based Telephone Network

Echo Cancellation

 Types of Phones

Physical Telephones

 Analog telephones

Proprietary digital telephones

ISDN telephones

IP telephones

 Softphones

Telephony Adaptors

Communications Terminals

 Linux Considerations

Conclusion

برای مطالعه ی آنلاین و سفارش این کتاب می توانید به اینجا مراجعه نمایید.

۹ دیدگاه

دیدگاه شما چیست؟