This page lists unconfirmed errors and comments from readers. They have not yet been approved or disproved by the author or editor and represent solely the opinion of the reader. Asterisk: The Future of Telephony, 2e by Jim Van Meggelen, Jared Smith, Leif Madsen The catalog page for this title is http://www.oreilly.com/catalog/9780596510480/ This page was last updated July 7, 2008. If you have technical questions or error reports, you can send them to booktech@oreilly.com. Please specify the printing date of your copy or the digital version accessed. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem UNCONFIRMED errors and comments from readers: (copyright page) I noticed that the copyright page of the Asterisk book references a Canadian version of a CC license. The link http://creativecommons.org/licenses/by-nc-nd/2.0/ca/, which is what's listed there, takes you to a copy of the license in a language that is not recognizable to me (it's not standard French, perhaps Portuguese?). I think it's probably best to have the CC license link be to the English version on the next reprint, unless you feel otherwise. (18) end of page 17's text box; The word 'extrememly' should be 'extremely'. (29) Third paragraph; The word "algorythems" should be "algorithms". (40) First paragraph of "Release Versus Trunk" text box; The word "communty" should be "community". (51) End of first paragraph of "Other Useful Add-ons" text box; The word "considred" should be "considered". {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. (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. [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 {78} code example; Published code reads as follows: ; define channels context=incoming ; Incoming calls go to [incoming] in extensions.conf signaling=fxs_ks ; Use FXS signaling for an FXO channel channel => 2 ; PSTN attached to port 2 Correct code is below, note the configuration parameter is called 'signalling' (with two ell): ; define channels context=incoming ; Incoming calls go to [incoming] in extensions.conf signalling=fxs_ks ; Use FXS signaling for an FXO channel channel => 2 ; PSTN attached to port 2 (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). [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? {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. {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. {112, 113, 114 and 115} The author uses two sites, Osaka and Toronto as examples for an IAX2 connection. On page 112 the code references a context called incoming_osaka and on page 113 references it's partner incoming_toronto yet on page 114 and 115 the contexts do not match as they should and appear as Osaka_incoming and Toronto_incoming which will cause the example code to fail if someone uses it verbatim in a test environment. [143] In code for the 'extensions.conf' file, below '[incoming]'; The first 3 lines of code after '[incoming]' should have 's' as the extension, instead of '123'. So they should read: exten => s,1,Answer() exten => s,n,Background(enter-ext-of-person) exten => s,n,WaitExten() According to paragraphs earlier in the chapter, 's' is the extension used when calls aren't calling an actual extension (such as those coming from FXO channels). So 's' needs to be there to handle correctly calls coming from the outside/trunk line(s) - at least this is what the author professes his/her dialplan is supposed to be doing. It seems to me that the mistake started somewhere on page 129, after the author providing examples using extension '123' for several pages before, all of a sudden extension '123' appears where extension 's' use to be in the example dialplan. If the use of extension '123' is intentional in the final plan, it is certainly downright confusing, and doesn't have any prior explanation for its use in the dialplan. {153} exten => s,1,GotoIfTime(*,*,4,jul?open,s,1) should be exten => s,1,GotoIfTime(*,*,4,jul?closed,s,1) (159) Second Code Example; MCRAO_EXTEN instead of MACRO_EXTEN in a couple lines of the example. (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" {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". (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..." {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=[,] 378 ; Examples: 379 ; domain=myasterisk.dom 380 ; domain=customer.com,customer-context See also: http://bugs.digium.com/view.php?id=12413 {398} In the section on Goto(), 2nd paragraph of explanatory text; "Named priorities work only within the current extension." - if this has become true in 1.4, it certainly was not true in 1.2 as I use several Gotos (and similar) using (context,extension,named_priority). I suspect that it should actually be more clearly stated that a priority may be a number or, where one has been give, a name, whether within the extension or not, and that just because a priority has a given name in one extension, that does not stop it appearing in another, even in the same context. This will also affect GotoIf, and similar. [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.