\contentsline {chapter}{\numberline {1}Introduction}{8}{chapter.1}
\contentsline {section}{\numberline {1.1}License Information}{8}{section.1.1}
\contentsline {subsection}{\numberline {1.1.1}Hold Music}{9}{subsection.1.1.1}
\contentsline {section}{\numberline {1.2}Security}{10}{section.1.2}
\contentsline {subsection}{\numberline {1.2.1}Introduction}{10}{subsection.1.2.1}
\contentsline {subsection}{\numberline {1.2.2}Network Security}{10}{subsection.1.2.2}
\contentsline {subsection}{\numberline {1.2.3}Dialplan Security}{10}{subsection.1.2.3}
\contentsline {subsection}{\numberline {1.2.4}Log Security}{11}{subsection.1.2.4}
\contentsline {section}{\numberline {1.3}Hardware}{11}{section.1.3}
\contentsline {subsection}{\numberline {1.3.1}Introduction}{11}{subsection.1.3.1}
\contentsline {subsection}{\numberline {1.3.2}DAHDI compatible hardware}{12}{subsection.1.3.2}
\contentsline {subsection}{\numberline {1.3.3}Non-DAHDI compatible hardware}{13}{subsection.1.3.3}
\contentsline {subsection}{\numberline {1.3.4}mISDN compatible hardware}{13}{subsection.1.3.4}
\contentsline {subsection}{\numberline {1.3.5}Miscellaneous other interfaces}{14}{subsection.1.3.5}
\contentsline {chapter}{\numberline {2}Configuration}{15}{chapter.2}
\contentsline {section}{\numberline {2.1}General Configuration Information}{15}{section.2.1}
\contentsline {subsection}{\numberline {2.1.1}Configuration Parser}{15}{subsection.2.1.1}
\contentsline {subsubsection}{Introduction}{15}{section*.1}
\contentsline {subsubsection}{General syntax}{15}{section*.2}
\contentsline {subsubsection}{Comments}{16}{section*.3}
\contentsline {subsubsection}{Including other files}{16}{section*.4}
\contentsline {subsubsection}{Adding to an existing section}{17}{section*.5}
\contentsline {subsubsection}{Defining a template-only section}{17}{section*.6}
\contentsline {subsubsection}{Using templates (or other configuration sections)}{17}{section*.7}
\contentsline {subsubsection}{Additional Examples}{18}{section*.8}
\contentsline {subsection}{\numberline {2.1.2}Asterisk.conf}{19}{subsection.2.1.2}
\contentsline {subsubsection}{Asterisk Main Configuration File}{19}{section*.9}
\contentsline {subsection}{\numberline {2.1.3}CLI Prompt}{22}{subsection.2.1.3}
\contentsline {subsubsection}{Changing the CLI Prompt}{22}{section*.10}
\contentsline {subsection}{\numberline {2.1.4}Extensions}{23}{subsection.2.1.4}
\contentsline {subsubsection}{The Asterisk dialplan}{23}{section*.11}
\contentsline {subsubsection}{Example dialplan}{23}{section*.12}
\contentsline {subsubsection}{Special extensions}{23}{section*.13}
\contentsline {subsection}{\numberline {2.1.5}IP Quality of Service}{24}{subsection.2.1.5}
\contentsline {subsubsection}{Introduction}{24}{section*.14}
\contentsline {subsubsection}{IP TOS values}{25}{section*.15}
\contentsline {subsubsection}{802.1p CoS values}{26}{section*.16}
\contentsline {subsubsection}{Recommended values}{26}{section*.17}
\contentsline {subsubsection}{IAX2}{26}{section*.18}
\contentsline {subsubsection}{SIP}{27}{section*.19}
\contentsline {subsubsection}{Other RTP channels}{27}{section*.20}
\contentsline {subsubsection}{Reference}{27}{section*.21}
\contentsline {subsection}{\numberline {2.1.6}MP3 Support}{28}{subsection.2.1.6}
\contentsline {subsubsection}{MP3 Music On Hold}{28}{section*.22}
\contentsline {subsection}{\numberline {2.1.7}ICES}{28}{subsection.2.1.7}
\contentsline {section}{\numberline {2.2}Database Support}{28}{section.2.2}
\contentsline {subsection}{\numberline {2.2.1}Realtime Database Configuration}{28}{subsection.2.2.1}
\contentsline {subsubsection}{Introduction}{28}{section*.23}
\contentsline {subsubsection}{Two modes: Static and Realtime}{29}{section*.24}
\contentsline {subsubsection}{Realtime SIP friends}{29}{section*.25}
\contentsline {subsubsection}{Realtime H.323 friends}{30}{section*.26}
\contentsline {subsubsection}{New function in the dial plan: The Realtime Switch}{30}{section*.27}
\contentsline {subsubsection}{Capabilities}{30}{section*.28}
\contentsline {subsubsection}{Configuration in extconfig.conf}{30}{section*.29}
\contentsline {subsubsection}{Limitations}{31}{section*.30}
\contentsline {subsubsection}{FreeTDS supported with connection pooling}{31}{section*.31}
\contentsline {subsection}{\numberline {2.2.2}FreeTDS}{31}{subsection.2.2.2}
\contentsline {section}{\numberline {2.3}Privacy}{32}{section.2.3}
\contentsline {subsection}{\numberline {2.3.1}First of all}{32}{subsection.2.3.1}
\contentsline {subsection}{\numberline {2.3.2}Next, Fight against autodialers!!}{32}{subsection.2.3.2}
\contentsline {subsection}{\numberline {2.3.3}Next, Fight against the empty CALLERID!}{32}{subsection.2.3.3}
\contentsline {subsection}{\numberline {2.3.4}Next, use a WELCOME MENU !}{33}{subsection.2.3.4}
\contentsline {subsubsection}{Example usage of Zapateller and PrivacyManager}{33}{section*.32}
\contentsline {subsection}{\numberline {2.3.5}Next: Torture Them!}{34}{subsection.2.3.5}
\contentsline {subsection}{\numberline {2.3.6}Using Call Screening}{35}{subsection.2.3.6}
\contentsline {subsection}{\numberline {2.3.7}The 'N' and 'n' options}{36}{subsection.2.3.7}
\contentsline {subsection}{\numberline {2.3.8}Recorded Introductions}{37}{subsection.2.3.8}
\contentsline {subsubsection}{Philosophical Side Note}{37}{section*.33}
\contentsline {subsubsection}{Introductions}{37}{section*.34}
\contentsline {chapter}{\numberline {3}Channel Variables}{40}{chapter.3}
\contentsline {section}{\numberline {3.1}Introduction}{40}{section.3.1}
\contentsline {section}{\numberline {3.2}Parameter Quoting}{40}{section.3.2}
\contentsline {section}{\numberline {3.3}Variables}{41}{section.3.3}
\contentsline {section}{\numberline {3.4}Variable Inheritance}{41}{section.3.4}
\contentsline {subsection}{\numberline {3.4.1}Example}{42}{subsection.3.4.1}
\contentsline {section}{\numberline {3.5}Selecting Characters from Variables}{42}{section.3.5}
\contentsline {section}{\numberline {3.6}Expressions}{43}{section.3.6}
\contentsline {subsection}{\numberline {3.6.1}Spaces Inside Variables Values}{43}{subsection.3.6.1}
\contentsline {subsection}{\numberline {3.6.2}Operators}{44}{subsection.3.6.2}
\contentsline {subsection}{\numberline {3.6.3}Floating Point Numbers}{46}{subsection.3.6.3}
\contentsline {subsection}{\numberline {3.6.4}Functions}{47}{subsection.3.6.4}
\contentsline {subsection}{\numberline {3.6.5}Examples}{48}{subsection.3.6.5}
\contentsline {subsection}{\numberline {3.6.6}Numbers Vs. Strings}{50}{subsection.3.6.6}
\contentsline {subsection}{\numberline {3.6.7}Conditionals}{50}{subsection.3.6.7}
\contentsline {subsection}{\numberline {3.6.8}Parse Errors}{51}{subsection.3.6.8}
\contentsline {subsection}{\numberline {3.6.9}NULL Strings}{51}{subsection.3.6.9}
\contentsline {subsection}{\numberline {3.6.10}Warning}{51}{subsection.3.6.10}
\contentsline {subsection}{\numberline {3.6.11}Incompatabilities}{52}{subsection.3.6.11}
\contentsline {subsection}{\numberline {3.6.12}Debugging Hints}{53}{subsection.3.6.12}
\contentsline {section}{\numberline {3.7}Asterisk standard channel variables}{55}{section.3.7}
\contentsline {subsection}{\numberline {3.7.1}Application return values}{56}{subsection.3.7.1}
\contentsline {subsection}{\numberline {3.7.2}Various application variables}{57}{subsection.3.7.2}
\contentsline {subsection}{\numberline {3.7.3}The MeetMe Conference Bridge}{58}{subsection.3.7.3}
\contentsline {subsection}{\numberline {3.7.4}The VoiceMail() application}{58}{subsection.3.7.4}
\contentsline {subsection}{\numberline {3.7.5}The VMAuthenticate() application}{58}{subsection.3.7.5}
\contentsline {subsection}{\numberline {3.7.6}DUNDiLookup()}{58}{subsection.3.7.6}
\contentsline {subsection}{\numberline {3.7.7}chan\_dahdi}{58}{subsection.3.7.7}
\contentsline {subsection}{\numberline {3.7.8}chan\_sip}{59}{subsection.3.7.8}
\contentsline {subsection}{\numberline {3.7.9}chan\_agent}{59}{subsection.3.7.9}
\contentsline {subsection}{\numberline {3.7.10}The Dial() application}{59}{subsection.3.7.10}
\contentsline {subsection}{\numberline {3.7.11}The chanisavail() application}{60}{subsection.3.7.11}
\contentsline {subsection}{\numberline {3.7.12}Dialplan Macros}{60}{subsection.3.7.12}
\contentsline {subsection}{\numberline {3.7.13}The ChanSpy() application}{60}{subsection.3.7.13}
\contentsline {subsection}{\numberline {3.7.14}OSP}{60}{subsection.3.7.14}
\contentsline {chapter}{\numberline {4}AEL: Asterisk Extension Language}{62}{chapter.4}
\contentsline {section}{\numberline {4.1}Introduction}{62}{section.4.1}
\contentsline {section}{\numberline {4.2}Asterisk in a Nutshell}{63}{section.4.2}
\contentsline {subsection}{\numberline {4.2.1}Contexts}{63}{subsection.4.2.1}
\contentsline {subsection}{\numberline {4.2.2}Extensions and priorities}{63}{subsection.4.2.2}
\contentsline {subsection}{\numberline {4.2.3}Macros}{64}{subsection.4.2.3}
\contentsline {subsection}{\numberline {4.2.4}Applications}{64}{subsection.4.2.4}
\contentsline {section}{\numberline {4.3}Getting Started}{65}{section.4.3}
\contentsline {section}{\numberline {4.4}Debugging}{65}{section.4.4}
\contentsline {section}{\numberline {4.5}About "aelparse"}{65}{section.4.5}
\contentsline {section}{\numberline {4.6}General Notes about Syntax}{66}{section.4.6}
\contentsline {section}{\numberline {4.7}Keywords}{67}{section.4.7}
\contentsline {section}{\numberline {4.8}Procedural Interface and Internals}{69}{section.4.8}
\contentsline {subsection}{\numberline {4.8.1}AEL version 2 BNF}{69}{subsection.4.8.1}
\contentsline {section}{\numberline {4.9}AEL Example USAGE}{72}{section.4.9}
\contentsline {subsection}{\numberline {4.9.1}Comments}{72}{subsection.4.9.1}
\contentsline {subsection}{\numberline {4.9.2}Context}{73}{subsection.4.9.2}
\contentsline {subsection}{\numberline {4.9.3}Extensions}{73}{subsection.4.9.3}
\contentsline {subsection}{\numberline {4.9.4}Includes}{74}{subsection.4.9.4}
\contentsline {subsection}{\numberline {4.9.5}\#include}{75}{subsection.4.9.5}
\contentsline {subsection}{\numberline {4.9.6}Dialplan Switches}{75}{subsection.4.9.6}
\contentsline {subsection}{\numberline {4.9.7}Ignorepat}{75}{subsection.4.9.7}
\contentsline {subsection}{\numberline {4.9.8}Variables}{75}{subsection.4.9.8}
\contentsline {subsection}{\numberline {4.9.9}Local Variables}{76}{subsection.4.9.9}
\contentsline {subsection}{\numberline {4.9.10}Loops}{77}{subsection.4.9.10}
\contentsline {subsection}{\numberline {4.9.11}Conditionals}{77}{subsection.4.9.11}
\contentsline {subsection}{\numberline {4.9.12}Break, Continue, and Return}{79}{subsection.4.9.12}
\contentsline {subsection}{\numberline {4.9.13}goto, jump, and labels}{79}{subsection.4.9.13}
\contentsline {subsection}{\numberline {4.9.14}Macros}{81}{subsection.4.9.14}
\contentsline {section}{\numberline {4.10}Examples}{81}{section.4.10}
\contentsline {section}{\numberline {4.11}Semantic Checks}{82}{section.4.11}
\contentsline {section}{\numberline {4.12}Differences with the original version of AEL}{84}{section.4.12}
\contentsline {section}{\numberline {4.13}Hints and Bugs}{86}{section.4.13}
\contentsline {section}{\numberline {4.14}The Full Power of AEL}{87}{section.4.14}
\contentsline {chapter}{\numberline {5}SLA: Shared Line Appearances}{88}{chapter.5}
\contentsline {section}{\numberline {5.1}Introduction}{88}{section.5.1}
\contentsline {section}{\numberline {5.2}Configuration}{88}{section.5.2}
\contentsline {subsection}{\numberline {5.2.1}Summary}{88}{subsection.5.2.1}
\contentsline {subsection}{\numberline {5.2.2}Dialplan}{88}{subsection.5.2.2}
\contentsline {subsection}{\numberline {5.2.3}Trunks}{89}{subsection.5.2.3}
\contentsline {subsection}{\numberline {5.2.4}Stations}{90}{subsection.5.2.4}
\contentsline {section}{\numberline {5.3}Configuration Examples}{91}{section.5.3}
\contentsline {subsection}{\numberline {5.3.1}Basic SLA}{91}{subsection.5.3.1}
\contentsline {subsection}{\numberline {5.3.2}SLA and Voicemail}{92}{subsection.5.3.2}
\contentsline {section}{\numberline {5.4}Call Handling}{94}{section.5.4}
\contentsline {subsection}{\numberline {5.4.1}Summary}{94}{subsection.5.4.1}
\contentsline {subsection}{\numberline {5.4.2}Station goes off hook (not ringing)}{94}{subsection.5.4.2}
\contentsline {subsection}{\numberline {5.4.3}Station goes off hook (ringing)}{94}{subsection.5.4.3}
\contentsline {subsection}{\numberline {5.4.4}Line button on a station is pressed}{95}{subsection.5.4.4}
\contentsline {chapter}{\numberline {6}Channel Drivers}{96}{chapter.6}
\contentsline {section}{\numberline {6.1}IAX2}{96}{section.6.1}
\contentsline {subsection}{\numberline {6.1.1}Introduction}{96}{subsection.6.1.1}
\contentsline {subsection}{\numberline {6.1.2}Why IAX2?}{96}{subsection.6.1.2}
\contentsline {subsection}{\numberline {6.1.3}Configuration}{98}{subsection.6.1.3}
\contentsline {subsection}{\numberline {6.1.4}IAX2 Jitterbuffer}{98}{subsection.6.1.4}
\contentsline {subsubsection}{The new jitterbuffer}{98}{section*.35}
\contentsline {subsubsection}{PLC}{98}{section*.36}
\contentsline {subsubsection}{Trunktimestamps}{98}{section*.37}
\contentsline {subsubsection}{Communication with Asterisk v1.0.x systems}{99}{section*.38}
\contentsline {subsubsection}{Testing and monitoring}{99}{section*.39}
\contentsline {subsubsection}{Reporting problems}{100}{section*.40}
\contentsline {section}{\numberline {6.2}mISDN}{101}{section.6.2}
\contentsline {subsection}{\numberline {6.2.1}Introduction}{101}{subsection.6.2.1}
\contentsline {subsection}{\numberline {6.2.2}Features}{101}{subsection.6.2.2}
\contentsline {subsection}{\numberline {6.2.3}Fast Installation Guide}{102}{subsection.6.2.3}
\contentsline {subsection}{\numberline {6.2.4}Pre-Requisites}{102}{subsection.6.2.4}
\contentsline {subsection}{\numberline {6.2.5}Configuration}{102}{subsection.6.2.5}
\contentsline {subsubsection}{misdn.conf: [general]}{103}{section*.41}
\contentsline {subsubsection}{misdn.conf: [default] subsection}{103}{section*.42}
\contentsline {subsubsection}{misdn.conf: user/port subsections}{103}{section*.43}
\contentsline {subsubsection}{Dial and Options String}{103}{section*.44}
\contentsline {subsection}{\numberline {6.2.6}mISDN CLI commands}{105}{subsection.6.2.6}
\contentsline {subsection}{\numberline {6.2.7}mISDN Variables}{105}{subsection.6.2.7}
\contentsline {subsection}{\numberline {6.2.8}Debugging and sending bug reports}{106}{subsection.6.2.8}
\contentsline {subsection}{\numberline {6.2.9}Examples}{106}{subsection.6.2.9}
\contentsline {subsection}{\numberline {6.2.10}Known Problems}{106}{subsection.6.2.10}
\contentsline {section}{\numberline {6.3}Local}{106}{section.6.3}
\contentsline {subsection}{\numberline {6.3.1}Introduction}{106}{subsection.6.3.1}
\contentsline {subsection}{\numberline {6.3.2}Examples}{107}{subsection.6.3.2}
\contentsline {subsection}{\numberline {6.3.3}Trivial Local channel example}{107}{subsection.6.3.3}
\contentsline {subsection}{\numberline {6.3.4}Delay dialing devices}{109}{subsection.6.3.4}
\contentsline {subsection}{\numberline {6.3.5}Dialing destinations with different information}{110}{subsection.6.3.5}
\contentsline {subsection}{\numberline {6.3.6}Using callfiles and Local channels}{111}{subsection.6.3.6}
\contentsline {subsection}{\numberline {6.3.7}Understanding When To Use /n}{113}{subsection.6.3.7}
\contentsline {subsection}{\numberline {6.3.8}Local channel modifiers}{116}{subsection.6.3.8}
\contentsline {chapter}{\numberline {7}Distributed Universal Number Discovery (DUNDi)}{117}{chapter.7}
\contentsline {section}{\numberline {7.1}Introduction}{117}{section.7.1}
\contentsline {section}{\numberline {7.2}DUNDIQUERY and DUNDIRESULT}{118}{section.7.2}
\contentsline {section}{\numberline {7.3}Peering Agreement}{118}{section.7.3}
\contentsline {chapter}{\numberline {8}ENUM}{132}{chapter.8}
\contentsline {section}{\numberline {8.1}The ENUMLOOKUP dialplan function}{132}{section.8.1}
\contentsline {subsection}{\numberline {8.1.1}Arguments}{133}{subsection.8.1.1}
\contentsline {subsection}{\numberline {8.1.2}Examples}{134}{subsection.8.1.2}
\contentsline {subsection}{\numberline {8.1.3}Usage notes and subtle features}{136}{subsection.8.1.3}
\contentsline {subsection}{\numberline {8.1.4}Some more Examples}{138}{subsection.8.1.4}
\contentsline {chapter}{\numberline {9}AMI: Asterisk Manager Interface}{140}{chapter.9}
\contentsline {section}{\numberline {9.1}The Asterisk Manager TCP/IP API}{140}{section.9.1}
\contentsline {section}{\numberline {9.2}Command Syntax}{141}{section.9.2}
\contentsline {section}{\numberline {9.3}Manager commands}{141}{section.9.3}
\contentsline {section}{\numberline {9.4}Examples}{141}{section.9.4}
\contentsline {section}{\numberline {9.5}Ensuring all modules are loaded}{142}{section.9.5}
\contentsline {section}{\numberline {9.6}Device status reports}{143}{section.9.6}
\contentsline {section}{\numberline {9.7}Some standard AMI headers}{143}{section.9.7}
\contentsline {section}{\numberline {9.8}Asynchronous Javascript Asterisk Manger (AJAM)}{146}{section.9.8}
\contentsline {subsection}{\numberline {9.8.1}Setup the Asterisk HTTP server}{147}{subsection.9.8.1}
\contentsline {subsection}{\numberline {9.8.2}Allow Manager Access via HTTP}{147}{subsection.9.8.2}
\contentsline {subsection}{\numberline {9.8.3}Integration with other web servers}{148}{subsection.9.8.3}
\contentsline {chapter}{\numberline {10}CDR: Call Detail Records}{149}{chapter.10}
\contentsline {section}{\numberline {10.1}Applications}{149}{section.10.1}
\contentsline {section}{\numberline {10.2}CDR Fields}{149}{section.10.2}
\contentsline {section}{\numberline {10.3}Variables}{151}{section.10.3}
\contentsline {section}{\numberline {10.4}Storage Backends}{152}{section.10.4}
\contentsline {subsection}{\numberline {10.4.1}Microsoft SQL Server}{152}{subsection.10.4.1}
\contentsline {subsubsection}{ODBC using cdr_odbc}{152}{section*.45}
\contentsline {subsubsection}{TDS, using cdr_tds}{154}{section*.46}
\contentsline {subsection}{\numberline {10.4.2}MySQL}{155}{subsection.10.4.2}
\contentsline {subsection}{\numberline {10.4.3}PostgreSQL}{155}{subsection.10.4.3}
\contentsline {subsection}{\numberline {10.4.4}SQLite 2}{156}{subsection.10.4.4}
\contentsline {subsection}{\numberline {10.4.5}SQLite 3}{156}{subsection.10.4.5}
\contentsline {subsection}{\numberline {10.4.6}RADIUS}{156}{subsection.10.4.6}
\contentsline {subsubsection}{What is needed}{156}{section*.47}
\contentsline {subsubsection}{Installation of the Radiusclient library}{157}{section*.48}
\contentsline {subsubsection}{Configuration of the Radiusclient library}{157}{section*.49}
\contentsline {subsubsection}{Install FreeRADIUS Server (Version 1.1.1)}{158}{section*.50}
\contentsline {subsubsection}{Configuration of the FreeRADIUS Server}{158}{section*.51}
\contentsline {subsubsection}{Asterisk Accounting Configuration}{159}{section*.52}
\contentsline {subsubsection}{Logged Values}{159}{section*.53}
\contentsline {chapter}{\numberline {11}Voicemail}{161}{chapter.11}
\contentsline {section}{\numberline {11.1}ODBC Storage}{161}{section.11.1}
\contentsline {section}{\numberline {11.2}IMAP Storage}{162}{section.11.2}
\contentsline {subsection}{\numberline {11.2.1}Installation Notes}{162}{subsection.11.2.1}
\contentsline {subsubsection}{University of Washington IMAP C-Client}{162}{section*.54}
\contentsline {subsubsection}{Compiling Asterisk}{163}{section*.55}
\contentsline {subsection}{\numberline {11.2.2}Modify voicemail.conf}{164}{subsection.11.2.2}
\contentsline {subsection}{\numberline {11.2.3}IMAP Folders}{165}{subsection.11.2.3}
\contentsline {subsection}{\numberline {11.2.4}Separate vs. Shared Email Accounts}{165}{subsection.11.2.4}
\contentsline {subsection}{\numberline {11.2.5}IMAP Server Implementations}{165}{subsection.11.2.5}
\contentsline {subsubsection}{UW IMAP-2005 or earlier}{166}{section*.56}
\contentsline {subsubsection}{UW IMAP-2006}{166}{section*.57}
\contentsline {subsubsection}{UW IMAP-2007}{166}{section*.58}
\contentsline {subsubsection}{Cyrus IMAP}{166}{section*.59}
\contentsline {subsection}{\numberline {11.2.6}Quota Support}{166}{subsection.11.2.6}
\contentsline {subsection}{\numberline {11.2.7}Application Notes}{166}{subsection.11.2.7}
\contentsline {chapter}{\numberline {12}SMS}{168}{chapter.12}
\contentsline {section}{\numberline {12.1}Introduction}{168}{section.12.1}
\contentsline {section}{\numberline {12.2}Background}{168}{section.12.2}
\contentsline {section}{\numberline {12.3}Typical use with Asterisk}{169}{section.12.3}
\contentsline {section}{\numberline {12.4}Terminology}{169}{section.12.4}
\contentsline {section}{\numberline {12.5}Sub address}{170}{section.12.5}
\contentsline {section}{\numberline {12.6}extensions.conf}{170}{section.12.6}
\contentsline {section}{\numberline {12.7}Using smsq}{171}{section.12.7}
\contentsline {section}{\numberline {12.8}File formats}{177}{section.12.8}
\contentsline {section}{\numberline {12.9}Delivery reports}{179}{section.12.9}
\contentsline {chapter}{\numberline {13}Queues}{180}{chapter.13}
\contentsline {section}{\numberline {13.1}Introduction}{180}{section.13.1}
\contentsline {section}{\numberline {13.2}Configuring Call Queues}{180}{section.13.2}
\contentsline {subsection}{\numberline {13.2.1}queues.conf}{180}{subsection.13.2.1}
\contentsline {subsection}{\numberline {13.2.2}Routing incoming Calls to Queues}{181}{subsection.13.2.2}
\contentsline {subsubsection}{The Main Menu}{181}{section*.60}
\contentsline {subsubsection}{The Contexts referenced from the queues.conf file}{182}{section*.61}
\contentsline {subsection}{\numberline {13.2.3}Assigning agents to Queues}{184}{subsection.13.2.3}
\contentsline {subsubsection}{Agents Log In and Out}{185}{section*.62}
\contentsline {subsection}{\numberline {13.2.4}Controlling The Way Queues Call the Agents}{187}{subsection.13.2.4}
\contentsline {subsection}{\numberline {13.2.5}Pre Acknowledgement Message}{189}{subsection.13.2.5}
\contentsline {subsection}{\numberline {13.2.6}Caveats}{189}{subsection.13.2.6}
\contentsline {section}{\numberline {13.3}Queue Logs}{190}{section.13.3}
\contentsline {chapter}{\numberline {14}Phone Provisioning}{193}{chapter.14}
\contentsline {section}{\numberline {14.1}Introduction}{193}{section.14.1}
\contentsline {section}{\numberline {14.2}Configuration of phoneprov.conf}{193}{section.14.2}
\contentsline {subsection}{\numberline {14.2.1}The [general] section}{193}{subsection.14.2.1}
\contentsline {subsection}{\numberline {14.2.2}Creating phone profiles}{194}{subsection.14.2.2}
\contentsline {section}{\numberline {14.3}Configuration of users.conf}{195}{section.14.3}
\contentsline {subsection}{\numberline {14.3.1}The [general] section}{195}{subsection.14.3.1}
\contentsline {subsection}{\numberline {14.3.2}Invdividual Users}{196}{subsection.14.3.2}
\contentsline {section}{\numberline {14.4}Templates}{196}{section.14.4}
\contentsline {section}{\numberline {14.5}Putting it all together}{198}{section.14.5}
\contentsline {chapter}{\numberline {15}Packet Loss Concealment}{200}{chapter.15}
\contentsline {section}{\numberline {15.1}What is PLC?}{200}{section.15.1}
\contentsline {section}{\numberline {15.2}How does Asterisk detect packet loss?}{200}{section.15.2}
\contentsline {section}{\numberline {15.3}A bit of background on translation}{201}{section.15.3}
\contentsline {section}{\numberline {15.4}Additional restrictions and caveats}{202}{section.15.4}
\contentsline {section}{\numberline {15.5}Summary}{203}{section.15.5}
\contentsline {section}{\numberline {15.6}Protip}{203}{section.15.6}
\contentsline {chapter}{\numberline {16}Development}{205}{chapter.16}
\contentsline {section}{\numberline {16.1}Backtrace}{205}{section.16.1}
