FreePBX 2.5 Powerful Telephony Solutions - Alex Robar - E-Book

FreePBX 2.5 Powerful Telephony Solutions E-Book

Alex Robar

0,0
31,19 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

FreePBX is an easy-to-use GUI that controls and manages Asterisk. It gives you pre-programmed functionality accessible through user-friendly web interfaces that allows you to have a fully functional PBX pretty much straight away with no programming. With this book it's easy to master the many features of FreePBX, which will help you to save time and money as you set up your enterprise-class network.
This book will guide you through these features to install, configure, and maintain a professional PBX with plenty of examples and screenshots. By the end of this book, you will have learned to create an enterprise-class VoIP PBX that features the stability and feature set of traditional telephony systems without the hefty price tag.
This book will help its readers to roll out a robust, web-based, and inexpensive yet powerful telephony solution through the GUI. By following the practical examples in this book, you will learn how to install, configure, and manage an enterprise-class PBX using open source telephony tools Asterisk and FreePBX. From here on, this book takes a closer look at the open source telephony engine software, discussing a broad range of topics from how to build and deploy an enterprise-class VoIP PBX to creating VoIP trunks using SIP, IAX2, and ZAP technologies and setting up user extensions with voicemail. FreePBX 2.5 Powerful Telephony Solutions will introduce you to advanced options such as call routing, voicemail, and other calling features. Finally, this book will provide you with the relevant information to help you personalize and secure your PBX.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB

Seitenzahl: 346

Veröffentlichungsjahr: 2009

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

FreePBX 2.5 Powerful Telephony Solutions
Credits
About the Author
About the Reviewer
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code for the book
Errata
Piracy
Questions
1. Installing FreePBX
Installing FreePBX on CentOS 5.2
Prerequisite packages
Setting up the database
Setting up file permissions
FreePBX base installation
Installing FreePBX on Ubuntu Server 8.10
Prerequisite packages
Setting up the database
Setting up file permissions
FreePBX base installation
Summary
2. Module Maintenance
Updating modules from the online repository
Installing new modules from the online repository
Installing and updating modules from a file
Summary
3. Devices and Extensions
Operational modes for extensions
Endpoint types
SIP endpoints
IAX2 endpoints
Zap (DAHDI) endpoints
Custom endpoints
Common fields
Common general Extension/user fields
Common endpoint fields
Common SIP/IAX2 fields
Additional SIP fields
Transcoding
Additional IAX2 fields
Common Zap fields
Additional Zap fields
Common custom fields
Setting up a new extension in Extensions mode
Configuring FreePBX for Extensions mode
Configuring extensions
Setting up a new extension in DeviceAndUser mode
Configuring FreePBX for DeviceAndUser mode
Configuring users
Configuring devices
Voicemail setup
Voicemail delivery options
Managing voicemail messages
Directory listing
Summary
4. Trunks
Trunk types
Setting up a new trunk
Common trunk setup fields
Zap trunks
IAX2 and SIP trunks
ENUM trunks
DUNDi trunks
Custom trunks
Checking trunk status
Checking trunk status using the Asterisk CLI
Monitoring trunk status with FreePBX failure scripts
Summary
5. Basic Call Targets
Terminate Call
Extension and Voicemail
Ring Groups
Conferences
Day Night Mode
Phonebook Directory
Summary
6. Advanced Call Targets
Queue
Queue Priorities
Queues
Add Queue
Queue Options
Caller Position Announcements
Periodic Announcements
Time conditions
Time Groups
Time Conditions
IVR (Digital Receptionist)
Summary
7. Call Routing
Inbound routing
Inbound routing priorities
Follow Me and the VmX Locater
Default Follow Me
VmX Locater
Outbound routing and Least Cost Routing
Summary
8. Recording Calls
Recording formats
Transcoding during recording
General call recording options
Recording calls
Recording calls to extensions
Recording calls to queues
Recording calls to conferences
Maintaining call recordings
Using cron
Summary
9. Personalizing Your PBX
Custom Music on Hold
Using audio files for Music on Hold
Using audio streams for Music on Hold
Custom voice prompts
Recording custom voice prompts
Merging existing voice prompts
Directory search options
Customizing feature codes
Callback
Direct Inward System Access (DISA)
CallerID Lookup Sources
HTTP source type
MySQL source type
PIN Sets
Misc applications
Misc Destinations
Summary
10. System Protection, Backup and Restoration
System protection
Uninterruptible power supplies
Redundant components
Redundant servers
Surge protection
Backups
Taking a backup
Maintaining and protecting backups
Maintaining backups
Protecting backups
Restoration
Summary
11. Security and Access Control
System packages
Updating Ubuntu Server
Updating CentOS
Maintaining Asterisk versions
Securing MySQL
MySQL passwords
Remove history
Disabling remote access to MySQL
Remote access and lock down
Changing ports
Using iptables to restrict access
VPN or SSH tunnels
SSH tunneling under Linux
SSH tunneling under Windows
Administrator accounts in FreePBX
Enabling administrator account authentication
Managing administrator accounts and permissions
Summary
A. FreePBX Modules
Basic
CID and number management
Games
Inbound call control
Internal options and configuration
Support
System administration
Third-party add-on
B. Feature Codes
Blacklist
Call Forward
Call Waiting
Core
Day Night Mode
Dictation
Do-Not-Disturb (DND)
Follow Me
Info Services
Paging and Intercom
Phonebook Directory
Recordings
Speed Dial Functions
Voicemail
C. Voicemail.conf Options
D. Common Trunk Configurations
FreePBX SIP by Bandwidth.com
Unlimitel (SIP)
Unlimitel (IAX2)
SIPGate
Teliax (SIP)
Teliax (IAX2)
BroadVoice
Gizmo5
SIP Broker
Via Talk
Index

FreePBX 2.5 Powerful Telephony Solutions

Alex Robar

FreePBX 2.5 Powerful Telephony Solutions

Copyright © 2009 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: August 2009

Production Reference: 1200809

Published by Packt Publishing Ltd.

32 Lincoln Road

Olton

Birmingham, B27 6PA, UK.

ISBN 978-1-847194-72-5

www.packtpub.com

Cover Image by Vinayak Chittar (<[email protected]>)

Credits

Author

Alex Robar

Reviewer

Justin Zimmer

Acquisition Editor

Sarah Cullington

Development Editor

Darshana D. Shinde

Technical Editors

Conrad Sardinha

Charumathi Sankaran

Copy Editor

Sanchari Mukherjee

Indexer

Rekha Nair

Editorial Team Leader

Gagandeep Singh

Project Team Leader

Priya Mukherji

Project Coordinator

Leena Purkait

Proofreader

Lynda Sliwoski

Drawing Coordinator

Nilesh Mohite

Production Coordinator

Shantanu Zagade

Cover Work

Shantanu Zagade

About the Author

Alex Robar is a strong supporter of Open Source Software and has worked in the IT industry for seven years. He has worked with Digium's Asterisk software since version 1.2, and typically uses Asterisk to replace existing closed source PBX systems for SMBs. As the Technical Services Manager for GearyTech (a Canadian Managed Services Provider), he develops IT automation solutions for SMBs. He has worked with open source telephony solutions for the past four years, and has collaborated on the development and growth of an international Asterisk-based VoIP peering network.

In 2005, Alex co-authored Secure Your E-mail Server on IBM eServer i5 with Linux, an IBM Redpaper on using OSS solutions on the iSeries server platform to create an integrated security appliance for a small business. Alex has also authored several freely available short tutorials for Asterisk and FreePBX.

I would like to thank my parents for always supporting my inner geek, no matter what, my sister Amanda for always giving me her time even when I was unable to give her mine, and my fiancée Eveline who has always pushed her own interests aside to help support mine when I needed it.

I would also like to thank Leena Purkait and Darshana Shinde of Packt Publishing for keeping me on track throughout this entire process, and helping me solve whatever difficulties I had.

About the Reviewer

Justin Zimmer has worked in the contact center technology field for over ten years. During that time he has performed extensive software and computer telephony integrations using both PSTN and IP telephony. His current projects include system designs utilizing open source soft switches over more traditional proprietary hardware based telephony, and the integration of these technologies into market specific CRM products.

As CTO of Unicore Technologies out of Phoenix, AZ, Justin is developing hosted contact center solutions for the low-end market. Unicore's solutions present contact centers with low startup costs in a turbulent economy, and allows those centers to scale their business while maintaining a consistent and familiar user interface.

Justin has worked on countless software user manuals and instructional guides for both internal and customer usage.

He also worked on the Hopewell Blogs: a science fiction adventure novel that will be released chapter by chapter online and available in print once the final chapter has been released.

I'd like to thank the countless community contributors that have provided enough online documentation to make this book as accurate and helpful as possible. And I'd like to thank my wife Nicole for putting up with the extra hours spent reviewing this book, as well as my boys Micah and Caden and my daughter Keira for giving up some of their daddy-time for this project.

Preface

FreePBX 2.5 Powerful Telephony Solutions was written to help system administrators build, configure, and maintain an enterprise class PBX using the Asterisk and FreePBX open source software packages. This book covers the complete process of going from a bare metal server to a completely configured PBX with extensions, voicemail, least cost routing, digital receptionists, and dozens of other features.

Each chapter of the book discusses a specific feature set of FreePBX. The chapters contain step-by-step set up instructions for configuring each feature alongside screenshots of the FreePBX interface. Chapters that cover the installation of Asterisk and FreePBX as well as securing the PBX once it is built, are also included.

What this book covers

In Chapter 1: Installing FreePBX, we discuss the base requirements for a Linux operating system that will run Asterisk and FreePBX. We step through configuring Apache and MySQL, and then proceed to download and install Asterisk and FreePBX under both CentOS and Ubuntu.

In Chapter 2: Module Maintenance, we introduce the modularized structure of FreePBX and the online FreePBX module repository. Instructions for installing, updating, and removing modules are provided.

In Chapter 3: Devices and Extensions, we cover the concept of extensions within FreePBX. We discuss both the operational modes for extensions, as well as the various types of endpoints that FreePBX makes available. Instructions are provided for configuring extensions, users and devices, as well as voicemail boxes.

In Chapter 4: Trunks, we introduce the concept of trunking as a method of connecting our PBX to the outside world. Instructions are provided for setting up each type of trunk that FreePBX supports. We also discuss methods for checking the status of configured trunks to make sure that nothing has failed.

In Chapter 5: Basic Call Targets, we explain the concept of directing inbound calls to call targets. Usage instructions are provided for sending calls to a termination target, an extension, or a voicemail box. Step-by-step instructions are provided for configuring ring groups, conferences, day night modes, and phonebook directories.

In Chapter 6: Advanced Call Targets, we provide step-by-step instructions for configuring queues, time conditions, time groups, and IVRs (digital receptionists).

In Chapter 7: Call Routing, we discuss directing inbound calls to the call targets created in Chapters 5 and 6. We also discuss routing outbound calls over specific trunks, and setting up outbound routes to achieve least cost routing.

In Chapter 8: Recording Calls, we delve into the call recording features of FreePBX. Instructions are provided for setting up permanent or selective call recording for specific extensions, conferences, or queues.

In Chapter 9: Personalizing Your PBX, we introduce some FreePBX features that allow us to make our PBX on our own. Step-by-step instructions are provided for configuring custom music on hold, voice prompts, feature codes, applications, and destinations. We discuss how to set up FreePBX to call back inbound callers and how to provide dial tone to external callers who are not calling from an extension on the PBX. We also cover how to configure FreePBX to check additional sources for caller ID information if none is provided, and how to configure PIN sets to password protect various FreePBX features.

In Chapter 10: System Protection, Backup and Restoration, we cover the concept of ensuring that our PBX is protected against failure. We discuss backing and restoring our FreePBX configuration data in case our PBX does encounter a failure.

In Chapter 11: Security and Access Control, we provide steps that should be taken to secure our PBX against malicious users and unauthorized access. Instructions for updating the operating system, updating Asterisk, securing MySQL, securing remote access, and configuring FreePBX administrator accounts are provided.

In Appendix A:FreePBX Modules, we provide a listing of all modules available for installation from the online repository and their functions.

In Appendix B:Feature Codes, we list all of the default feature codes and their actions.

In Appendix C:Voicemail.conf Options, we provide options that affect the behavior of a mailbox and the way the voicemail messages are received and processed.

In Appendix D:Common Trunk Configurations, we provide the trunk configuration settings for common VoIP providers.

What you need for this book

This book assumes a basic knowledge of Linux and telephony, though neither is strictly required. All commands that need to be run are provided and concepts that need to be understood are explained.

This book requires a server that is capable of running Linux, Asterisk, and FreePBX. The hardware requirements for the server will depend upon how many calls the PBX will be routing, and which actions callers can perform once they reach the PBX (for example, a PBX that records every call will require more resources than one that does not). The server should not have any operating system on it to start with. Recommended installation options are provided for both CentOS and Ubuntu.

Who this book is for

This book is written for systems administrators who want to get started with Asterisk and FreePBX. This book is perfect for administrators who want to reduce costs by replacing a proprietary PBX with a PBX that runs on open source packages, or an administrator who needs their PBX to do more than it currently does. Anyone who wants to build a stable, feature rich PBX will find this book useful.

Conventions

In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

Code words in text are shown as follows: "Replace newpassword with the password you would like to set for the MySQL root user."

A block of code is set as follows:

#!/bin/bash # Change this path to reflect your backup storage # location (default is /var/lib/asterisk/backups) BACKUPS=/var/lib/asterisk/backups

Any command-line input or output is written as follows:

sed -i "s/Port 22/Port 38000/" /etc/ssh/sshd_config /etc/init.d/ssh restart

New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "In order to set up a backup, click on the Tools tab at the top of the navigation menu on the left".

Note

Warnings or important notes appear in a box like this.

Note

Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send us general feedback, simply send an email to <[email protected]>, and mention the book title via the subject of your message.

If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or email <[email protected]>.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book on, see our author guide on www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the example code for the book

Visit http://www.packtpub.com/files/code/4725_Code.zip to directly download the example code.

The downloadable files contain instructions on how to use them.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration, and help us to improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the let us know link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata added to any list of existing errata. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.

Piracy

Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or web site name immediately so that we can pursue a remedy.

Please contact us at <[email protected]> with a link to the suspected pirated material.

We appreciate your help in protecting our authors, and our ability to bring you valuable content.

Questions

You can contact us at <[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.

Installing FreePBX on Ubuntu Server 8.10

Ubuntu Server is a popular and stable operating system based on Debian GNU/Linux. It is becoming increasingly popular for general-purpose server deployments, and is a good choice for an Asterisk/FreePBX server.

Ubuntu Server 8.10 should be installed with the following options:

DNS serverLAMP serverMail serverOpenSSH server

Once you have a clean Ubuntu Server 8.10 install to work from, the prerequisite packages can be installed.

Prerequisite packages

FreePBX requires several prerequisite packages to install and function properly. Most prerequisite packages are not included in standard Linux distribution installations, but all should be available in your distributions package management system.

The first important step is to update your system, ensuring that all security updates are installed and all installed packages are at the latest version. To update all of the installed packages on Ubuntu Server 8.10, log in as the standard user that you created during the setup, and type the following into the system console:

sudo aptitude update sudo aptitude upgrade -y

Enter your user account password when prompted.

The system will proceed to download and install any of the packages that have been updated since the release of your operating system. Depending on how many updates are required and the speed of your Internet connection, this process can take anything from a few minutes to several hours.

Once the system is fully up to date, it is a good idea to reboot so that the updated services can restart and newer kernels can be booted. To reboot, type the following into the console:

sudo reboot

Now that the system is up to date, the required prerequisite libraries and packages can be installed. To install the required prerequisite packages on Ubuntu Server 8.10, log in as a standard user and type the following:

sudo aptitude install build-essential autoconf automake libtool flex bison libssl-dev libnewt-dev libncurses5-dev linux-headers-$(uname -r) sox curl mysql-client libmysqlclient-dev php5 php5-cli php5-gd php5-curl php5-mcrypt php5-xmlrpc php5-mhash php5-suhosin php5-common php5-xsl libapache2-mod-php5 php-pear lame subversion -y

Note

Note that all of the above is a single aptitude command, and should be typed as if it was written on a single line.

Now that all prerequisite packages are installed, we can install Asterisk.

First, switch to the /usr/src directory by typing the following into the console:

cd /usr/src

Tip

Install Asterisk from source

Many Linux distributions provide Asterisk and its dependent libraries in their package management systems. It is recommended that Asterisk, Asterisk-Addons, LibPRI, and Zaptel always be compiled and installed from source. This avoids improperly built or outdated installations.

A core Asterisk installation consists of four components—Asterisk, Asterisk-Addons, DAHDI, and LibPRI:

"Asterisk" is the main Asterisk routing engineAsterisk-Addons component contains commonly used Asterisk applications (such as the application that writes CDR records to a MySQL database, which FreePBX uses)DAHDI is the Digium Asterisk Hardware Device Interface package, which allows Asterisk to communicate with additional telephony hardware devices (such as analog trunk cards)The LibPRI package enables Asterisk to interface with PRI, BRI, and QSIG trunks

Type the following into the console to download the source code for Asterisk, Asterisk-Addons, DAHDI, and LibPRI:

sudo wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz sudo wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4-current.tar.gz sudo wget http://downloads.digium.com/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz sudo wget http://downloads.digium.com/pub/libpri/libpri-1.4-current. tar.gz

Extract the source code:

sudo tar zxf asterisk-1.4-current.tar.gz sudo tar zxf asterisk-addons-1.4-current.tar.gz sudo tar zxf zaptel-1.4-current.tar.gz sudo tar zxf libpri-1.4-current.tar.gz

Compile and install the DAHDI telephony hardware interface modules:

cd dahdi-linux-complete-2.* sudo make all sudo make install make config

Compile and install Asterisk:

cd ../asterisk-1.4.* ./configure sudo make install make samples

Compile and install the Asterisk-Addons modules:

cd ../asterisk-addons-1.4.* ./configure sudo make install

Compile and install the LibPRI modules:

cd ../libpri-1.4.* make sudo make install

The PEAR DB module is installed through PEAR software by typing the following into the console:

pear install db

Finally, we start Asterisk as a background process by typing:

asterisk &

Note that this method of starting Asterisk is only temporary. Once installed, the FreePBX startup script will be configured to run at boot.

Setting up the database

FreePBX utilizes a MySQL database to store all of the configurations shown in the web interface it provides.

Under Ubuntu Server 8.10, MySQL must simply be started. A MySQL root password is entered during the Ubuntu install process, and Ubuntu automatically sets up the MySQL service to start at boot time. To start MySQL, type the following command:

/etc/init.d/invoke-rc.d mysql start

A separate user account under which Asterisk can run should also be created. It is common for Asterisk to run as the root user on a system (and almost always an easier way to make things work), but it is a security risk. Should Asterisk or Apache be compromised by a remote exploit, the flaw cannot be used to take over the entire server when Asterisk runs as its own user. Create a user account called asterisk that Asterisk will run as, using the following command:

adduser -gecos "Asterisk PBX" --home /var/lib/asterisk --system --group asterisk

Note

Note that all of the above is a single adduser command, and should be typed as if it was written on a single line.

Create a database to store Asterisk configuration and another to store call detail records:

mysqladmin -u root -p create asterisk mysqladmin -u root -p create asteriskcdrdb

Enter your MySQL root password when prompted.

FreePBX has created prepared SQL statements to set up the structure of each database it uses. Type the following to switch to the /usr/src directory and download the FreePBX installer archive:

cd /usr/src sudo wget http://internap.dl.sourceforge.net/sourceforge/amportal/freepbx-2.5.1.tar.gz

The above command will download FreePBX version 2.5.1. To check for the current version of FreePBX, visit the site http://freepbx.org/download-freepbx. The current version will be listed next to the Download FreePBX button. If the listed version is newer than 2.5.1, it should be used instead.

Extract FreePBX using the following command:

tar zxf freepbx-2.5.1.tar.gz

Switch to the FreePBX SQL directory:

cd freepbx-2.5.1/SQL

The two prepared statements provided by FreePBX are newinstall.sql and cdr_mysql_table.sql. The newinstall.sql file contains the necessary SQL statements to create the tables that store all FreePBX configuration data (extensions, call targets, call routing information, etc.). The cd_mysql_table.sql file contains one single statement that creates a CDR table for storing all call details records. To run the SQL statements contained in these files, run the following commands:

mysql -u root -p asterisk < newinstall.sql mysql -u root -p asteriskcdrdb < cdr_mysql_table.sql

Enter your MySQL root password when prompted.

Now we must grant the Asterisk user permissions on the Asterisk and Asterisk CDR databases. FreePBX will not function without this access. To grant permissions, we must first drop to a MySQL shell:

mysql -u root -p

Enter your MySQL root password when prompted.

Once at the MySQL shell, type the following commands to grant the appropriate privileges to the Asterisk user. Remember to replace freepbxdbpassword with a password of your choice and note that the password should be enclosed in single quotes.

mysql> GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY 'freepbxdbpassword'; mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asterisk@localhost IDENTIFIED BY 'freepbxdbpassword'; mysql> flush privileges; mysql> \q

Setting up file permissions

The final installation step is to set up appropriate permissions and general configurations. To make the required configuration changes, the examples shown as follows make use of the sed command. The sed command can take a stream of input and rewrite it on the fly based on patterns listed in the command. The syntax for the following sed commands used works as follows:

sed -i "s/pattern_to_find/replacement_pattern/" /path/to/file

The -i option tells sed to edit the input file in place, such that the listed file is changed and a new file with the requested changes is not created in its place.

The s/ tells sed that we are looking to replace a specific pattern with text of our own.

The pattern_to_find token should be replaced by the text that we are searching for. This can be a normal alphanumeric pattern, or a regular expression.

The replacement_pattern