Asterisk: The Definitive Guide

Errata for Asterisk: The Definitive Guide

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.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.


Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question Note Update



Version Location Description Submitted By Date Submitted
Printed Page 364f
text and example for extension "logout_login"

The chapter deals with some custom functions defined in func_odbc.conf The mentioned example uses the function "HOTDESK_LOGGED_IN_USER", but does not provide the implementation of this function itself. From context I would say the function is identical to the "HOTDESK_PHONE_STATUS" defined on Page 366. (the function is supposed to return the extension of every logged in 'agent' with the given location) Is this correct?

Marco M  Mar 17, 2013 
Printed Page 367
dialplan example, context "[hotdesk_outbound]"

The text explaining the example states, that in case the "WHO" Variable is NULL, the outgoing call shall be rejected. To achieve this, the example for extension _X. shows a conditional Goto: same => n,GotoIf($[${ISNULL(WHO)}]?no_outgoing,1) the extension "no_outgoing" however is not defined. If I am right, Asterisk will look for the extension "i" in this case, and as this is not existing either in the current context, it will look for the extension "h" - which also is not existing. The behaviour however will in fact be, that asterisks will close the channel and hang up the call, but as a result of error handling instead of a programmed behaviour. I think it would make a more clean attempt to provide at least the "i" extension (which is existent in the other contexts showed on the page) or maybe even better, the originally extension "no_outgoing" called by the GotoIf. My suggestion for the extension (in order to match the behaviour of the other mentioned contexts): exten => no_outgoing,1,NoOp() same => n,Playback()silence/2&sorry-cant-let-you-do-that2) same => n,Hangup()

Marco M  Mar 17, 2013 
Printed Page 371
second to the last paragraph (below the hint)

The line says "In our example, we'll be using the ast_sippeers table [...]" in fact the example uses the "ast_sipfriends" table. I think this is a typo - the standard name would be "sippeers", which is stated some lines before.

Marco M  Mar 17, 2013