Errata

Asterisk: The Future of Telephony

Errata for Asterisk: The Future of Telephony

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
PDF
Page 81
configuration text in "Dialplan Configuration" section

The errata is the same as described above for the page number 73. There should be the line of code like "exten => 500,n,Answer() between the following lines:

exten => 500,1,Verbose(1|Echo test application)
exten => 500,n,Echo()

Note from the Author or Editor:
This is correct. The book should therefore read as:

exten => 500,1,Verbose(1|Echo test application)
exten => 500,n,Answer()
exten => 500,n,Echo()

michael  Aug 20, 2010 
Printed
Page 152
days_of_week syntax

For the GotoIfTime() application, the book states that you can match specified days using the & sign, ie

GotoIfTime(08:00-17:00,mon&fri,*,*?label)

However, the & sign can only be used from Asterisk 1.6.2 onwards and is not possible in version 1.4 which the book covers.

Note from the Author or Editor:
Several references to using ampersands in the commands is wrong. Find corrections for text below:

ORIGINAL:

days_of_week
This is a list of one or more days of the week. The days should be specified as mon, tue, wed, thu, fri, sat, and/or sun. Monday through Friday would be expressed as mon-fri. Tuesday and Thursday would be expressed as tue&thu.

Note that you can specify a combination of ranges and single days, as in: sun-mon&wed&fri-sat, or, more simply: wed&fri-mon.

days_of_month
This is a list of the numerical days of the month. Days are specified by the numbers 1 through 31. The 7th through the 12th would be expressed as 7-12, and the 15th and 30th of the month would be written as 15&30.

months
This is a list of one or more months of the year. The months should be written as jan-apr for a range, and separated with ampersands when wanting to include nonsequencial months, such as jan&mar&jun. You can also combine them like so: jan-apr&jun&oct-dec.

FIXED:

days_of_week
This is a list of one or more days of the week. The days should be specified as mon, tue, wed, thu, fri, sat, and/or sun. Monday through Friday would be expressed as mon-fri. Non-contiguous days of the week are required to be handled on separate lines.

*** REMOVE THIS NOTE ***
Note that you can specify a combination of ranges and single days, as in: sun-mon&wed&fri-sat, or, more simply: wed&fri-mon.
*** REMOVE THIS NOTE ***

days_of_month
This is a list of the numerical days of the month. Days are specified by the numbers 1 through 31. The 7th through the 12th would be expressed as 7-12. Non-contiguous days are required to be handled on separate lines.

months
This is a list of one or more months of the year. The months should be written as jan-apr for a range. Non-contiguous months are required to be handled on separate lines.


Viktor  Apr 16, 2010 
PDF
Page 162
bottom of page

In the last example, this line:
exten => 124,1,GotoIf($[${BLACKLIST()]?blocked,1)

should be:
exten => 124,1,GotoIf($[${BLACKLIST()}]?blocked,1)
or
exten => 124,1,GotoIf(${BLACKLIST()}?blocked,1)

Page 403 mentions the latter syntax:
LookupBlacklist() - This application has been deprecated in favor of GotoIf(${BLACKLIST()}?context|extension|priority)

Note from the Author or Editor:
As the description points out, the line should actually read as:

exten => 124,1,GotoIf($[${BLACKLIST()}]?blocked,1)

This is on page 162 of the PDF version.

Tim Banks  Aug 24, 2009 
Printed
Page 78
1st paragraph (example)

There is syntax error is in the given example for zapata.conf on page 78. One of the lines is
signaling=fxs_ks
It should be signalling (with double "l"), otherwise asterisk doesnt understand it, and thus it does not load the zaptel (or dahdi) module.
I havent searched for this definition on other pages. I have confirmed this with asterisk-1.4.24.1.

Note from the Author or Editor:
Yes, the word 'signaling' should be updated to say, 'signalling'

Georgi Iovchev  Jun 15, 2009  Dec 01, 2009
PDF
Page 159
2nd paragraph

[macro-voicemail]
exten => s,1,Dial(${ARG1},10)
exten => s,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail)
exten => s,n(unavail),Voicemail(${MCARO_EXTEN}@default,u)
;MCARO_EXTEN is a Syntax Mistake,I think the correct word is:${MCARO_EXTEN}
exten => s,n,Hangup()
exten => s,n(busy),VoiceMail(${MCARO_EXTEN}@default,b)
;MCARO_EXTEN is a Syntax Mistake, I think the correct word is ${MACRO_EXTEN}
exten => s,n,Hangup()

Note from the Author or Editor:
Both references to ${MCARO_EXTEN} should really be ${MACRO_EXTEN}

GERMAFEL  May 01, 2009  Dec 01, 2009
Printed
Page 295
3rd paragraph

The Example script for logrotate specifies the postrotate command to use

asterisk -rx "logger rotate" > /dev/null 2> /dev/null

which will do the same task as logrotate, the correct command should be

asterisk -rx "logger reload" > /dev/null 2> /dev/null

to cause asterisk to reopen the empty logfile.

Note from the Author or Editor:
Please replace the phrase "logger rotate" with "logger reload" as specified by the person who submitted the errata. He is indeed correct.

Anonymous  Feb 25, 2009  Dec 01, 2009
PDF
Page 420
PrivacyManager()

The result returned in PRIVACYMGRSTATUS on failure should be FAILED not FAILURE. This needs to change in the first para of the description and also in the third line of the example extension from:
exten => 123,n,GotoIf($["${PRIVACYMGRSTATUS}" = "FAILURE"]?bad)
to
exten => 123,n,GotoIf($["${PRIVACYMGRSTATUS}" = "FAILED"]?bad)

Note from the Author or Editor:
Change the word "FAILURE" to "FAILED" in the mentioned code snippet.

Geoff Lane  Feb 05, 2009  Dec 01, 2009
Printed
Page 352
Second definition (domain)

The definition of domain is wrong. What this actually provides is an entry in a list of *local* domain names. INVITE and REFER will always be *accepted* for these. There is also a second parameter that is missing in the book, which gives a context to be used for calls addressed to that domain.

There are/were two comments in sip.conf relating to this. One of them was wrong and this is the one that was used for the book.

This is the bad comment (from http://svn.digium.com/view/asterisk/tags/1.4.21/configs/sip.conf.sample?revision=122049&view=markup):

47 ;domain=mydomain.tld ; Set default domain for this host
48 ; If configured, Asterisk will only allow
49 ; INVITE and REFER to non-local domains
50 ; Use "sip show domains" to list local domains

This is the correct description:

371 ;----------------------------------------- SIP DOMAIN SUPPORT ------------------------
372 ; Incoming INVITE and REFER messages can be matched against a list of 'allowed'
373 ; domains, each of which can direct the call to a specific context if desired.
374 ; By default, all domains are accepted and sent to the default context or the
375 ; context associated with the user/peer placing the call.
376 ; Domains can be specified using:
377 ; domain=<domain>[,<context>]
378 ; Examples:
379 ; domain=myasterisk.dom
380 ; domain=customer.com,customer-context

See also: http://bugs.digium.com/view.php?id=12413

Anonymous  Jun 19, 2008 
Printed
Page 18
end of page 17's text box

The word 'extrememly' should be 'extremely'.

Note from the Author or Editor:
The reporter is correct that the word needs to be fixed.

Anonymous    Dec 01, 2009
Printed
Page 29
Third paragraph

The word "algorythems" should be "algorithms".

Note from the Author or Editor:
The reporter is correct that the word needs to be corrected.

Anonymous    Dec 01, 2009
Printed
Page 40
First paragraph of "Release Versus Trunk" text box

The word "communty" should be "community".

Note from the Author or Editor:
The reporter is correct that the word needs to be corrected.

Anonymous    Dec 01, 2009
Printed
Page 51
End of first paragraph of "Other Useful Add-ons" text box

The word "considred" should be "considered".

Note from the Author or Editor:
The reporter is correct that the word needs to be corrected.

Anonymous    Dec 01, 2009
Printed
Page 55
Between the first and second paragraph

The first paragraph in page 55 says that to see the usage of the asterisk and zaptel service you
should run:

# service zaptel start
# service asterisk start

But, that is to actually start the services, not to see their usage. To see their usage you
should do:

# service zaptel
# service asterisk

Otherwise, the reader is going to inadvertently start their asterisk server, possibly before they
are ready to do so.

Note from the Author or Editor:
The reporter is correct. Usage should be changed to:

service zaptel
service asterisk

Anonymous    Dec 01, 2009
Printed
Page 71
Near the top

In the (first?) paragraph, it states:

"if you want to build an IP-only configuration, you can skip to the section on configuring SIP."

when it should say:

"if you want to build an IP-only configuration, you can skip to the section on configuring SIP
after reading the section on creating configuration files."

That is, if you take that literally (as I did) and skip ahead from that point, you miss out on
some critical configuration steps.

Note from the Author or Editor:
The reporter is correct, and has provided an adequate documentation update. Thanks!

Anonymous    Dec 01, 2009
Printed
Page 73
example extensions.conf listing

Page 73, under the heading "Setting Up the Dialplan for Some Test Calls" is this snippet:

[internal]
exten => 500,1,Verbose(1|Echo test application)
exten => 500,n,Echo()
exten => 500,n,Hangup()

which should read:

[internal]
exten => 500,1,Verbose(1|Echo test application)
exten => 500,n,Answer()
exten => 500,n,Echo()
exten => 500,n,Hangup()

note the additional line with Answer() in it. Without this line asterisk never picks up the line
and the following Echo() doesn't work (at least for me). Very confusing for a new user like me.

version tested is Asterisk 1.4.19

Note from the Author or Editor:
The addition by the reporter is correct.

Anonymous    Dec 01, 2009
Printed
Page 99
Near the top

The first sentence contains:

"providers may insteadSession Initiation Protocol"

and from the context, it's not clear what the sentence actually meant to say (compounded by the
fact that I'm a newbie to the subject).

Note from the Author or Editor:
Simply remove the words "Session Initiation Protocol". It appears to be a copy-paste error. Sentence should read:

"Some service providers may instead be sending their calls to you via multiple IP addresses, ..."

Anonymous    Dec 01, 2009
Printed
Page 104
SIP Phone Configuration

I'm new to Asterisks, but on page 104 under SIP Phone Configuration it looks like if SIP phone
1001 registered in Osaka tries to dial 1000 in Toronto, the Osaka extensions.conf displayed on
the bottom of page 105 and top of 106 is going to try and route the call internally since the
internal context has matches for extensions beginning with _1XXX. The number will also never
match the remote context since it is looking for a _2XXX. Am I mistaken?

Note from the Author or Editor:
This is correct. The following corrections should be made. I'm using the page numbers from the PDF (http://downloads.oreilly.com/books/9780596510480.pdf):

Page 104 correct statements:

Toronto sip.conf:

[2000]
type=friend
host=dynamic
context=phones

Osaka sip.conf:
[1000]
type=friend
host=dynamic
context=phones

You should now have extension 2000 registered to Toronto, and extension 1000 registered to Osaka.

Anonymous    Dec 01, 2009
Printed
Page 110
5th line

The example dialplan shows a line "include => phones" in the [phones] context. This should be
"include => internal", as it is in previous iterations of the dialplan in this chapter.

Note from the Author or Editor:
Reporter is correct.

Anonymous    Dec 01, 2009
Printed
Page 112
middle of page 112

The Toronto iax.conf file has a context=incoming_osaka, but the Toronto
extensions.conf file on page 114 has a context of toronto_incoming. Also, the Osaka iax.conf file
has a context=incoming_toronto, but the Osaka extensions.conf file has a context of
osaka_incoming. Looks like the contexts are switched along with the city/direction.

Note from the Author or Editor:
The dialplan on pages 114-115 has the dialplan flipped under the headings of:

The extensions.conf file on Toronto

and

The extensions.conf file on Osaka


Correction: The dialplan under the Toronto header should be moved to under the Osaka header, and the dialplan under the Osaka header should be moved to under the Toronto header.
Thanks!

Anonymous    Dec 01, 2009
Printed
Page 153

exten => s,1,GotoIfTime(*,*,4,jul?open,s,1)
should be
exten => s,1,GotoIfTime(*,*,4,jul?closed,s,1)

Note from the Author or Editor:

Confirmed

Anonymous    Dec 01, 2009
Printed
Page 194
First footnote

Page 194 in the book, first footnote, one of the words with the inner letters garbled has a
misspelling. It says "iprmoetnt," but it should say "iprmoatnt"

Anonymous    Dec 01, 2009
Printed
Page 250

On page 250, Chapter 11: The Asterisk GUI Framework, the heading that says "Setting up httpd.conf and manager.conf", should say "Setting up http.conf and manager.conf".

Anonymous    Dec 01, 2009
Printed
Page 298
1st sentence of last paragraph

"..sounds that come with Asterisk are delivered in [??what format??] format. We would not
normally recommend storing them in this format..."

Note from the Author or Editor:
"...sounds that come with Asterisk are delivered in GSM format."

Anonymous    Dec 01, 2009
Printed
Page 462
End of "modules.conf"

The end of "modules.conf" section states "Let's take a look at each of them." but they are all
omitted in the 2nd Edition & OK in the First Edition. I need to know if there are changes in
Asterisk 1.4.

Note from the Author or Editor:
Remove the line, "Let's take a look at each of them."

Anonymous    Dec 01, 2009