[-]
[+]
|
Changed |
asterisk162.spec
|
|
[-]
[+]
|
Deleted |
asterisk-1.6.2.17.2.tar.bz2/asterisk-1.6.2.17.2-summary.html
^
|
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Release Summary - asterisk-1.6.2.17.2</title></head>
-<body>
-<h1 align="center"><a name="top">Release Summary</a></h1>
-<h3 align="center">asterisk-1.6.2.17.2</h3>
-<h3 align="center">Date: 2011-03-17</h3>
-<h3 align="center"><asteriskteam@digium.com></h3>
-<hr/>
-<h2 align="center">Table of Contents</h2>
-<ol>
- <li><a href="#summary">Summary</a></li>
- <li><a href="#contributors">Contributors</a></li>
- <li><a href="#commits">Other Changes</a></li>
- <li><a href="#diffstat">Diffstat</a></li>
-</ol>
-<hr/>
-<a name="summary"><h2 align="center">Summary</h2></a>
-<center><a href="#top">[Back to Top]</a></center><br/><p>This release has been made to address one or more security vulnerabilities that have been identified. A security advisory document has been published for each vulnerability that includes additional information. Users of versions of Asterisk that are affected are strongly encouraged to review the advisories and determine what action they should take to protect their systems from these issues.</p>
-<p>Security Advisories: <a href="http://downloads.asterisk.org/pub/security/AST-2011-003.html">AST-2011-003</a>, <a href="http://downloads.asterisk.org/pub/security/AST-2011-004.html">AST-2011-004</a></p>
-<p>The data in this summary reflects changes that have been made since the previous release, asterisk-1.6.2.17.</p>
-<hr/>
-<a name="contributors"><h2 align="center">Contributors</h2></a>
-<center><a href="#top">[Back to Top]</a></center><br/><p>This table lists the people who have submitted code, those that have tested patches, as well as those that reported issues on the issue tracker that were resolved in this release. For coders, the number is how many of their patches (of any size) were committed into this release. For testers, the number is the number of times their name was listed as assisting with testing a patch. Finally, for reporters, the number is the number of issues that they reported that were closed by commits that went into this release.</p>
-<table width="100%" border="0">
-<tr>
-<td width="33%"><h3>Coders</h3></td>
-<td width="33%"><h3>Testers</h3></td>
-<td width="33%"><h3>Reporters</h3></td>
-</tr>
-<tr valign="top">
-<td>
-3 lmadsen<br/>
-</td>
-<td>
-</td>
-<td>
-</td>
-</tr>
-</table>
-<hr/>
-<a name="commits"><h2 align="center">Commits Not Associated with an Issue</h2></a>
-<center><a href="#top">[Back to Top]</a></center><br/><p>This is a list of all changes that went into this release that did not directly close an issue from the issue tracker. The commits may have been marked as being related to an issue. If that is the case, the issue numbers are listed here, as well.</p>
-<table width="100%" border="1">
-<tr><td><b>Revision</b></td><td><b>Author</b></td><td><b>Summary</b></td><td><b>Issues Referenced</b></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/tags/1.6.2.17.2?view=revision&revision=311178">311178</a></td><td>lmadsen</td><td>Copy Asterisk 1.6.2.17 to 1.6.2.17.2</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/tags/1.6.2.17.2?view=revision&revision=311190">311190</a></td><td>lmadsen</td><td>Update ChangeLog, .version. Patches for AST-2011-003, and AST-2011-004.</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/tags/1.6.2.17.2?view=revision&revision=311191">311191</a></td><td>lmadsen</td><td>Fix typo in ChangeLog message.</td>
-<td></td></tr></table>
-<hr/>
-<a name="diffstat"><h2 align="center">Diffstat Results</h2></a>
-<center><a href="#top">[Back to Top]</a></center><br/><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p>
-<pre>
-.version | 2
-ChangeLog | 11 +
-asterisk-1.6.2.17-summary.html | 332 ---------------------------------
-asterisk-1.6.2.17-summary.txt | 411 -----------------------------------------
-main/manager.c | 15 -
-main/tcptls.c | 8
-6 files changed, 28 insertions(+), 751 deletions(-)
-</pre><br/>
-<hr/>
-</body>
-</html>
|
[-]
[+]
|
Deleted |
asterisk-1.6.2.17.2.tar.bz2/asterisk-1.6.2.17.2-summary.txt
^
|
@@ -1,96 +0,0 @@
- Release Summary
-
- asterisk-1.6.2.17.2
-
- Date: 2011-03-17
-
- <asteriskteam@digium.com>
-
- ----------------------------------------------------------------------
-
- Table of Contents
-
- 1. Summary
- 2. Contributors
- 3. Other Changes
- 4. Diffstat
-
- ----------------------------------------------------------------------
-
- Summary
-
- [Back to Top]
-
- This release has been made to address one or more security vulnerabilities
- that have been identified. A security advisory document has been published
- for each vulnerability that includes additional information. Users of
- versions of Asterisk that are affected are strongly encouraged to review
- the advisories and determine what action they should take to protect their
- systems from these issues.
-
- Security Advisories: AST-2011-003, AST-2011-004
-
- The data in this summary reflects changes that have been made since the
- previous release, asterisk-1.6.2.17.
-
- ----------------------------------------------------------------------
-
- Contributors
-
- [Back to Top]
-
- This table lists the people who have submitted code, those that have
- tested patches, as well as those that reported issues on the issue tracker
- that were resolved in this release. For coders, the number is how many of
- their patches (of any size) were committed into this release. For testers,
- the number is the number of times their name was listed as assisting with
- testing a patch. Finally, for reporters, the number is the number of
- issues that they reported that were closed by commits that went into this
- release.
-
- Coders Testers Reporters
- 3 lmadsen
-
- ----------------------------------------------------------------------
-
- Commits Not Associated with an Issue
-
- [Back to Top]
-
- This is a list of all changes that went into this release that did not
- directly close an issue from the issue tracker. The commits may have been
- marked as being related to an issue. If that is the case, the issue
- numbers are listed here, as well.
-
- +------------------------------------------------------------------------+
- | Revision | Author | Summary | Issues Referenced |
- |----------+---------+-------------------------------+-------------------|
- | 311178 | lmadsen | Copy Asterisk 1.6.2.17 to | |
- | | | 1.6.2.17.2 | |
- |----------+---------+-------------------------------+-------------------|
- | | | Update ChangeLog, .version. | |
- | 311190 | lmadsen | Patches for AST-2011-003, and | |
- | | | AST-2011-004. | |
- |----------+---------+-------------------------------+-------------------|
- | 311191 | lmadsen | Fix typo in ChangeLog | |
- | | | message. | |
- +------------------------------------------------------------------------+
-
- ----------------------------------------------------------------------
-
- Diffstat Results
-
- [Back to Top]
-
- This is a summary of the changes to the source code that went into this
- release that was generated using the diffstat utility.
-
- .version | 2
- ChangeLog | 11 +
- asterisk-1.6.2.17-summary.html | 332 ---------------------------------
- asterisk-1.6.2.17-summary.txt | 411 -----------------------------------------
- main/manager.c | 15 -
- main/tcptls.c | 8
- 6 files changed, 28 insertions(+), 751 deletions(-)
-
- ----------------------------------------------------------------------
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/.version
^
|
@@ -1 +1 @@
-1.6.2.17.2
+1.6.2.18
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/ChangeLog
^
|
@@ -1,13 +1,753 @@
-2011-03-17 Leif Madsen <lmadsen@digium.com>
+2011-04-25 Leif Madsen <lmadsen@digium.com>
- * Asterisk 1.6.2.17.2 Released.
+ * Asterisk 1.6.2.18 Released.
- (Asterisk 1.6.2.17.1 was released a day earlier, but a bug existed in
- the patch for AST-2011-003 so this is a reissue of that release.)
+ * AST-2011-005, AST-2011-006
- * AST-2011-003: Resource exhaustion in Asterisk Manager Interface
+2011-02-23 Leif Madsen <lmadsen@digium.com>
- * AST-2011-004: Remote crash vulnerability in TCP/TLS server
+ * Asterisk 1.6.2.18-rc1 Released.
+
+2011-02-22 15:37 +0000 [r308528] Andrew Latham <lathama@gmail.com>
+
+ * main/http.c: Add HTTP URI log, use ast_debug for console logging
+ Guessed the log levels based on info that level 3 is the soft
+ roof. Can we create a page / document to define the levels?
+
+2011-02-21 15:00 +0000 [r308414] Matthew Nicholson <mnicholson@digium.com>
+
+ * main/udptl.c, /: Merged revisions 308413 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r308413 | mnicholson | 2011-02-21 08:57:15 -0600 (Mon, 21 Feb
+ 2011) | 5 lines Properly check the bounds of arrays when decoding
+ UDPTL packets. Also, remove broken support for receiving UDPTL
+ packets larger than 16k. That shouldn't ever happen anyway.
+ AST-2011-002 FAX-281 ........
+
+2011-02-19 14:03 +0000 [r308329] Andrew Latham <lathama@gmail.com>
+
+ * main/http.c: Add CSS MIME Type Modern browsers are checking for
+ the MIME Type of pages and in some cases will not load a file if
+ the type is wrong.
+
+2011-02-15 23:33 +0000 [r308007] Jason Parker <jparker@digium.com>
+
+ * apps/app_queue.c, /: Merged revisions 308002 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r308002 | qwell | 2011-02-15 17:32:20 -0600 (Tue, 15 Feb 2011) |
+ 10 lines Fix regression that changed behavior of queues when
+ ringing a queue member. This reverts r298596, which was to fix a
+ highly bizarre and contrived issue with a queue member that
+ called into his own queue being transferred back into his own
+ queue. I couldn't reproduce that issue in any way. I think one of
+ the other recent transfer fixes actually fixed this. (closes
+ issue #18747) Reported by: vrban ........
+
+2011-02-15 07:01 +0000 [r307792-307836] Tilghman Lesher <tilghman@meg.abyt.es>
+
+ * funcs/func_odbc.c: Need to retrieve the rows affected before
+ using the associated variable. (closes issue #18795) Reported by:
+ irroot Patches: 20110211__issue18795.diff.txt uploaded by
+ tilghman (license 14) Tested by: tilghman
+
+ * res/res_odbc.c: Increment usage count at first reference, to
+ avoid a race condition with many threads creating connections all
+ at once. (issue #18156) Reported by: asgaroth Patches:
+ 20110214__issue18156.diff.txt uploaded by tilghman (license 14)
+ Tested by: tilghman
+
+2011-02-11 01:02 +0000 [r307624] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_dahdi.c, /: Merged revisions 307623 via svnmerge
+ from https://origsvn.digium.com/svn/asterisk/branches/1.4
+ ........ r307623 | rmudgett | 2011-02-10 18:29:17 -0600 (Thu, 10
+ Feb 2011) | 13 lines Reentrancy problem if outgoing call gets
+ different B channel than requested. The chan_dahdi
+ pri_fixup_principle() routine needs to protect the Asterisk
+ channel with the channel lock when it changes the technology
+ private pointer to a new private structure. * Added lock
+ protection while pri_fixup_principle() moves a call from one
+ private structure to another. * Made some pri_fixup_principle()
+ messages more meaningful. Partial backport from v1.8 -r300714.
+ ........
+
+2011-02-10 22:35 +0000 [r307535] Jason Parker <jparker@digium.com>
+
+ * main/asterisk.c, contrib/init.d/rc.debian.asterisk, /: Merged
+ revisions 307534 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r307534 | qwell | 2011-02-10 16:33:09 -0600 (Thu, 10 Feb 2011) |
+ 8 lines Remove color when executing commands via a remote
+ console. Essentially this makes '-x' imply '-n' on rasterisk.
+ This was done in a different and incomplete way previously, which
+ I'm reverting here. (issue #18776) Reported by: alecdavis
+ ........
+
+2011-02-09 21:48 +0000 [r307316] Andrew Latham <lathama@gmail.com>
+
+ * contrib/init.d/rc.debian.asterisk: Disable color during running
+ test (closes issue #18776) Reported by: alecdavis Patches:
+ ast_deb_init.diff uploaded by lathama (license 1028) Tested by:
+ andrel, lathama
+
+2011-02-09 19:52 +0000 [r307227] Jeff Peeler <jpeeler@digium.com>
+
+ * main/features.c: Make sure to set parking dial context for
+ non-default parking lots. Since parking_con_dial isn't settable,
+ set all parking lots to "park-dial". (closes issue #17946)
+ Reported by: bluecrow76 Patches:
+ asterisk-1.8.0-beta4-multipark-fixes-2010SEP02.diff uploaded by
+ bluecrow76 (license 270) modified by me
+
+2011-02-08 20:14 +0000 [r306973] Terry Wilson <twilson@digium.com>
+
+ * /, channels/chan_sip.c: Merged revisions 306972 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r306972 | twilson | 2011-02-08 12:05:13 -0800 (Tue, 08 Feb 2011)
+ | 2 lines Fix comparison for REFER Replaces tags with
+ pedantic=yes ........
+
+2011-02-08 19:41 +0000 [r306865-306966] Jeff Peeler <jpeeler@digium.com>
+
+ * apps/app_voicemail.c, /: Merged revisions 306965 via svnmerge
+ from https://origsvn.digium.com/svn/asterisk/branches/1.4
+ ........ r306965 | jpeeler | 2011-02-08 13:40:58 -0600 (Tue, 08
+ Feb 2011) | 1 line fix this line again ........
+
+ * apps/app_voicemail.c, /: Merged revisions 306960 via svnmerge
+ from https://origsvn.digium.com/svn/asterisk/branches/1.4
+ ........ r306960 | jpeeler | 2011-02-08 13:18:50 -0600 (Tue, 08
+ Feb 2011) | 9 lines Backup file storing message duration is not
+ used with IMAP_STORAGE, remove code. The message duration is
+ stored in the body of the email when using IMAP_STORAGE, so
+ nothing needs to happen with the backup file. (closes issue
+ #18718) Reported by: kerframil ........
+
+ * apps/app_voicemail.c, /: Merged revisions 306864 via svnmerge
+ from https://origsvn.digium.com/svn/asterisk/branches/1.4
+ ........ r306864 | jpeeler | 2011-02-08 10:19:17 -0600 (Tue, 08
+ Feb 2011) | 1 line make this safer and fully correct, pointed out
+ by Steve Davis ........
+
+2011-02-07 22:40 +0000 [r306618-306673] Terry Wilson <twilson@digium.com>
+
+ * /, main/features.c: Merged revisions 306672 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r306672 | twilson | 2011-02-07 14:35:20 -0800 (Mon, 07 Feb 2011)
+ | 10 lines Don't try to pickup a call in the middle of a
+ masquerade If A calls B which doesn't answer and C & D both try
+ to do a call pickup, it is possible for ast_pickup_call to answer
+ the call, then fail to masquerade one of the calls because the
+ other one is already in the process of masquerading. This patch
+ checks to see if the channel is in the process of masquerading
+ before call before selecting it for a pickup. Review:
+ https://reviewboard.asterisk.org/r/1094/ ........
+
+ * /, channels/chan_sip.c: Merged revisions 306617 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r306617 | twilson | 2011-02-07 13:51:43 -0800 (Mon, 07 Feb 2011)
+ | 10 lines Don't allow a REFER w/replaces to replace its own
+ dialog Asterisk currently accepts a REFER with a Refer-To with an
+ embedded Replaces header that matches the dialog of the REFER.
+ This would be a situation like A calls B, A calls C, A transfers
+ B to A, which is just silly. This patch makes the transfer fail
+ instead of making Asterisk freak out and forget to hang other
+ channels up. Review: https://reviewboard.asterisk.org/r/1093/
+ ........
+
+2011-02-04 19:21 +0000 [r306346] Jason Parker <jparker@digium.com>
+
+ * apps/app_queue.c: Don't fallthrough to 'unknown' in the 'ringing'
+ case. This could cause improper exits from the queue. (closes
+ issue #18499) Reported by: zaltar Patches: app_queue.patch
+ uploaded by zaltar (license 1148)
+
+2011-02-03 20:56 +0000 [r306126] Terry Wilson <twilson@digium.com>
+
+ * channels/chan_local.c, /: Merged revisions 306119 via svnmerge
+ from https://origsvn.digium.com/svn/asterisk/branches/1.4
+ ........ r306119 | twilson | 2011-02-03 12:36:34 -0800 (Thu, 03
+ Feb 2011) | 9 lines Set hangup cause in local_hangup When a call
+ involves a local channel (like SIP -> Local -> SIP), the hangup
+ cause was not being set. This resulted in SIP channels sometimes
+ getting a 503 error instead of a 486 when the far side sent a
+ busy. In Asterisk 1.8+ this also can cause issues with CCSS that
+ involve a local channel. This patch sets the hangupcause for one
+ side of the local channel to the other in local_hangup for
+ outbound calls. ........
+
+2011-02-03 20:49 +0000 [r306123] Jeff Peeler <jpeeler@digium.com>
+
+ * main/features.c: Set exception on channel in parking thread when
+ POLLPRI event detected. This is done just to make the code be
+ equivalent to the old select code. As noted in 303106 the same
+ issue was already fixed in this branch, but the exception was not
+ set on the channel in the case of POLLPRI. The reason that this
+ did not cause a problem here is because in 122923 the check in
+ __ast_read to check the exception flag was removed. (related to
+ #18637)
+
+2011-02-03 15:41 +0000 [r305985] Andrew Latham <lathama@gmail.com>
+
+ * phoneprov/snom-mac.xml (added), configs/phoneprov.conf.sample:
+ res_phoneprov add snom 300, 320, 360, 370, 820, 821, 870 support
+ (issue #18713) Reported by: lathama Patches: snom_dir.diff
+ uploaded by lathama (license 1028) Tested by: lathama
+
+2011-02-03 00:15 +0000 [r305889] Richard Mudgett <rmudgett@digium.com>
+
+ * main/channel.c, main/manager.c, /, channels/chan_sip.c,
+ apps/app_sendtext.c: Merged revisions 305888 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r305888 | rmudgett | 2011-02-02 18:02:43 -0600 (Wed, 02 Feb 2011)
+ | 8 lines Minor AST_FRAME_TEXT related issues. * Include the null
+ terminator in the buffer length. When the frame is queued it is
+ copied. If the null terminator is not part of the frame buffer
+ length, the receiver could see garbage appended onto it. * Add
+ channel lock protection with ast_sendtext(). * Fixed AMI SendText
+ action ast_sendtext() return value check. ........
+
+2011-02-02 14:40 +0000 [r305648-305752] Andrew Latham <lathama@gmail.com>
+
+ * channels/chan_sip.c: Replace link to old doc with new wiki page.
+ Link to
+ https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions
+
+ * configs/sip.conf.sample: SIP Configuration Documentation sip show
+ settings reports qualifyfreq in milliseconds. sip.conf configures
+ qualifyfreg in seconds.
+
+2011-02-01 17:02 +0000 [r305472] Jason Parker <jparker@digium.com>
+
+ * res/res_musiconhold.c, /: Merged revisions 305471 via svnmerge
+ from https://origsvn.digium.com/svn/asterisk/branches/1.4
+ ........ r305471 | qwell | 2011-02-01 11:00:55 -0600 (Tue, 01 Feb
+ 2011) | 9 lines Close file descriptor for timing source when a
+ MOH class gets destroyed. (closes issue #18457) Reported by:
+ mcallist Patches: 18457-closetimer.diff uploaded by qwell
+ (license 4) 18457-closetimer_trunk.diff uploaded by qwell
+ (license 4) Tested by: qwell, loloski ........
+
+2011-01-31 23:50 +0000 [r305342] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_dahdi.c, /: Merged revisions 305341 via svnmerge
+ from https://origsvn.digium.com/svn/asterisk/branches/1.4
+ ........ r305341 | rmudgett | 2011-01-31 17:45:58 -0600 (Mon, 31
+ Jan 2011) | 7 lines Obtain the pri lock for PRI queue counters.
+ Need to obtain the pri lock when calling pri_dump_info_str() to
+ avoid a reentrancy problem when calculating the Q.921 Q count
+ statistic. JIRA AST-484 ........
+
+2011-01-31 22:59 +0000 [r305130-305253] Jason Parker <jparker@digium.com>
+
+ * apps/app_dial.c, /, channels/chan_sip.c: Merged revisions 305252
+ via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r305252 | qwell | 2011-01-31 16:56:54 -0600 (Mon, 31 Jan 2011) |
+ 10 lines Prevent a crash when dialing a technology with no
+ destination (ex: Dial(SIP/)) chan_iax2 and other channel drivers
+ already had code to prevent this. The attempt that app_dial was
+ making to prevent it was not correct, so I fixed that. (closes
+ issue #18371) Reported by: gbour Patches: 18371.patch uploaded by
+ gbour (license 1162) ........
+
+ * res/res_musiconhold.c, /: Merged revisions 305129 via svnmerge
+ from https://origsvn.digium.com/svn/asterisk/branches/1.4
+ ........ r305129 | qwell | 2011-01-31 14:56:25 -0600 (Mon, 31 Jan
+ 2011) | 2 lines Set file descriptors to -1 on creation, so that
+ we don't see weirdness later. ........
+
+2011-01-31 13:52 +0000 [r305082] Andrew Latham <lathama@gmail.com>
+
+ * main/http.c: Asterisk HTTP response Content-type Address content
+ type for BSD and other platforms (closes issue #18456) Reported
+ by: alexo Patches: asterisk18_http.patch uploaded by alexo
+ (license 1175) Tested by: alexo
+
+2011-01-31 07:25 +0000 [r304978] Tilghman Lesher <tilghman@meg.abyt.es>
+
+ * apps/app_voicemail.c, /: Merged revisions 304952 via svnmerge
+ from https://origsvn.digium.com/svn/asterisk/branches/1.4
+ ........ r304952 | tilghman | 2011-01-31 00:54:45 -0600 (Mon, 31
+ Jan 2011) | 2 lines Fix compilation when ODBC_STORAGE is defined.
+ ........
+
+2011-01-29 23:05 +0000 [r304659-304865] Sean Bright <sean@malleable.com>
+
+ * res/res_config_ldap.c: Plug some memory leaks in the LDAP
+ realtime driver. (closes issue #18435) Reported by: zaltar
+ Patches: res_config_ldap.patch uploaded by zaltar (license 1148)
+
+ * apps/app_meetme.c: If we fail to allocate our announcement
+ objects, make sure we don't leak objects. The majority of this
+ patch was committed already in r304726 and r304729. (issue
+ #18225) Reported by: kenji (issue #18444) Reported by: junky
+ (closes issue #18343) Reported by: kobaz Patches:
+ meetme-refs.diff uploaded by kobaz (license 834)
+
+ * apps/app_meetme.c: When we pass the S() or L() options to MeetMe,
+ make sure that we honor C as well. Without this patch, if the
+ user was kicked from the conference via the S() or L() mechanism,
+ we would just hang up on them even if we also passed C (continue
+ in dialplan when kicked). With this patch we honor the C flag in
+ those cases. (closes issue #17317) Reported by: var
+
+ * apps/app_meetme.c: Make sure that we unref the correct object
+ when ejecting the most recent caller. Currently, when we kick the
+ last user to enter, we decrement our own reference count which
+ results in a crash when we kick another user or when we exit the
+ conference ourselves. This will fix #18225 in 1.8 and trunk, but
+ that particular bug does not exist in 1.6.2. (closes issue
+ #18225) Reported by: kenji Patches: issue18225.patch uploaded by
+ seanbright (license 71) Tested by: seanbright
+
+ * apps/app_meetme.c: Fix user reference leak in MeetMe. We were
+ unlinking the user from the conferences user container, but not
+ decrementing the reference count of the user as well, resulting
+ in a leak. (closes issue #18444) Reported by: junky Tested by:
+ seanbright
+
+ * apps/app_meetme.c: Revert part of the previous commit that snuck
+ in.
+
+ * apps/app_meetme.c: Don't leak references if we can't create a
+ pseudo channel for mixing in MeetMe. If there was a problem
+ allocating a pseudo channel when building our meetme, we weren't
+ destroying our user container or destroying the mutexes that we
+ created.
+
+2011-01-27 17:01 +0000 [r304461-304465] Jason Parker <jparker@digium.com>
+
+ * /, configure, configure.ac: Merged revisions 304464 via svnmerge
+ from https://origsvn.digium.com/svn/asterisk/branches/1.4
+ ........ r304464 | qwell | 2011-01-27 10:57:46 -0600 (Thu, 27 Jan
+ 2011) | 9 lines Fix default prefix=/usr regression on non-Linux
+ systems. This partially reverts a change made in branches/1.4/
+ r267759, which will cause issue #17013 to be reopened. This issue
+ was pointed out by a user on #asterisk, who helpfully discovered
+ that paths were being set incorrectly. To truly understand what
+ was wrong, one should run: svn diff --force -c<this revision>
+ configure ........
+
+ * /, configure: Merged revisions 304460 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r304460 | qwell | 2011-01-27 10:47:03 -0600 (Thu, 27 Jan 2011) |
+ 1 line Rerun bootstrap.sh with no changes, so that it is more
+ obvious what my next commit changes. ........
+
+2011-01-26 22:26 +0000 [r304338] Jeff Peeler <jpeeler@digium.com>
+
+ * main/features.c: Change delimiter used internally for
+ GOTO_ON_BLINDXFR to commas to match 76703.
+
+2011-01-26 21:02 +0000 [r304250] Mark Michelson <mmichelson@digium.com>
+
+ * main/udptl.c, /: Merged revisions 304242 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r304242 | mmichelson | 2011-01-26 14:38:37 -0600 (Wed, 26 Jan
+ 2011) | 3 lines Get rid of unused 'verbose' field in ast_udptl
+ ........
+
+2011-01-26 21:01 +0000 [r304244-304249] Matthew Nicholson <mnicholson@digium.com>
+
+ * /: Merged revisions 304247 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r304247 | mnicholson | 2011-01-26 15:00:15 -0600 (Wed, 26 Jan
+ 2011) | 2 lines Convert from network to host byte ordering before
+ checking if an IP is a multicast address. ........
+
+ * /, channels/chan_sip.c: Merged revisions 304241 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r304241 | mnicholson | 2011-01-26 14:38:22 -0600 (Wed, 26 Jan
+ 2011) | 6 lines This patch modifies chan_sip to route responses
+ to the address the request came from. It also modifies chan_sip
+ to respect the maddr parameter in the Via header. ABE-2664
+ Review: https://reviewboard.asterisk.org/r/1059/ ........
+
+2011-01-26 20:22 +0000 [r304181] Sean Bright <sean@malleable.com>
+
+ * /, configs/queues.conf.sample: Merged revisions 304159 via
+ svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r304159 | seanbright | 2011-01-26 15:18:29 -0500 (Wed, 26 Jan
+ 2011) | 1 line Make sure the sample queues.conf is properly
+ commented. ........
+
+2011-01-26 19:38 +0000 [r304149] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_dahdi.c: Merged revisions 304148 from
+ https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier
+ .......... r304148 | rmudgett | 2011-01-26 13:23:46 -0600 (Wed,
+ 26 Jan 2011) | 2 lines Update documentation for
+ DAHDISendCallreroutingFacility() application. ..........
+
+2011-01-26 01:24 +0000 [r304096] Sean Bright <sean@malleable.com>
+
+ * main/file.c: Per the man page, setvbuf() must be called before
+ any other operation on an open file. We use setvbuf() to
+ associate a buffer with a stream, but we have already written to
+ the open file. This works (by chance) on Linux, but fails on
+ other platforms, such as OpenSolaris. (closes issue #16610)
+ Reported by: bklang Patches: setvbuf.patch uploaded by crjw
+ (license 963) Tested by: bklang, asgaroth, efutch
+
+2011-01-25 23:25 +0000 [r304006] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/features.c: Merged revisions 304005 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r304005 | rmudgett | 2011-01-25 17:21:09 -0600 (Tue, 25 Jan 2011)
+ | 8 lines DTMF attended transfers sometimes fail for no apparent
+ reason. The loop in feature_request_and_dial() can exit when
+ Party C has answered without processing an AST_CONTROL_ANSWER.
+ Also sometimes an AST_CONTROL_ANSWER never happens even though
+ Party C has answered. Don't hangup Party C if he is up or we
+ receive an AST_CONTROL_ANSWER. ........
+
+2011-01-25 22:02 +0000 [r303960] Terry Wilson <twilson@digium.com>
+
+ * /, channels/chan_sip.c: Merged revisions 303906 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r303906 | twilson | 2011-01-25 14:50:59 -0600 (Tue, 25 Jan 2011)
+ | 16 lines Guard against retransmitting BYEs indefinitely In the
+ case of an attended transfer (A calls B, A atxfers to C) where A
+ becomes unreachable before replying to Asterisk's BYE, Asterisk
+ can sometimes retransmit the BYE indefinitely. This is because
+ __sip_autodestruct tests p->refer && !ast_test_flag(&p->flags[0],
+ SIP_ALREADYGONE and will then transmit a BYE. When this BYE times
+ out, it will not ever be marked as ALREADYGONE, so when
+ __sip_autodestruct is called again, we end up starting the cycle
+ over. This patch adds a call to sip_alreadygone(pkt->owner) in
+ retrans_pkt in the case of a BYE that has timed out. This should
+ prevent Asterisk from trying to transmit new BYE messages in the
+ future. Review: https://reviewboard.asterisk.org/r/1077/ ........
+
+2011-01-25 18:41 +0000 [r303858] Tilghman Lesher <tilghman@meg.abyt.es>
+
+ * channels/chan_sip.c: Fix "sip show user <tab>", so that it
+ actually shows results, instead of just completing the last
+ entry. (closes issue #16675) Reported by: pj
+
+2011-01-25 17:42 +0000 [r303769] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_dahdi.c, /: Merged revisions 303765 via svnmerge
+ from https://origsvn.digium.com/svn/asterisk/branches/1.4
+ ........ r303765 | rmudgett | 2011-01-25 11:36:50 -0600 (Tue, 25
+ Jan 2011) | 40 lines Sending out unnecessary PROCEEDING messages
+ breaks overlap dialing. Issue #16789 was a good idea.
+ Unfortunately, it breaks overlap dialing through Asterisk. There
+ is not enough information available at this point to know if
+ dialing is complete. The ast_exists_extension(),
+ ast_matchmore_extension(), and ast_canmatch_extension() calls are
+ not adequate to detect a dial through extension pattern of "_9!".
+ Workaround is to use the dialplan Proceeding() application early
+ in non-dial through extensions. * Effectively revert issue
+ #16789. * Allow outgoing overlap dialing to hear dialtone and
+ other early media. A PROGRESS "inband-information is now
+ available" message is now sent after the SETUP_ACKNOWLEDGE
+ message for non-digital calls. An AST_CONTROL_PROGRESS is now
+ generated for incoming SETUP_ACKNOWLEDGE messages for non-digital
+ calls. * Handling of the AST_CONTROL_CONGESTION in
+ chan_dahdi/sig_pri was inconsistent with the cause codes. * Added
+ better protection from sending out of sequence messages by
+ combining several flags into a single enum value representing
+ call progress level. * Added diagnostic messages for deferred
+ overlap digits handling corner cases. (closes issue #17085)
+ Reported by: shawkris (closes issue #18509) Reported by: wimpy
+ Patches: issue18509_early_media_v1.8_v3.patch uploaded by
+ rmudgett (license 664) Expanded upon
+ issue18509_early_media_v1.8_v3.patch to include analog and SS7
+ because of backporting requirements. Tested by: wimpy, rmudgett
+ ........
+
+2011-01-25 16:59 +0000 [r303677] Jeff Peeler <jpeeler@digium.com>
+
+ * apps/app_voicemail.c, /: Merged revisions 303676 via svnmerge
+ from https://origsvn.digium.com/svn/asterisk/branches/1.4
+ ........ r303676 | jpeeler | 2011-01-25 10:58:29 -0600 (Tue, 25
+ Jan 2011) | 20 lines Fix voicemail sequencing for file based
+ storage. A previous change was made to account for when the
+ number of voicemail messages exceeds the max limit to be handled
+ properly, but it caused gaps in the messages to not be properly
+ handled. This has now been resolved. In later non 1.4 branches,
+ it appears that resequencing wasn't even occurring due from what
+ appears and accidental code removal. (closes issue #18498)
+ Reported by: JJCinAZ Patches: bug18498v2.patch uploaded by
+ jpeeler (license 325) (closes issue #18486) Reported by: bluefox
+ Patches: bug18486.patch uploaded by jpeeler (license 325)
+ ........
+
+2011-01-24 20:49 +0000 [r303548] Russell Bryant <russell@digium.com>
+
+ * main/channel.c, main/pbx.c, /, apps/app_meetme.c,
+ main/features.c, include/asterisk/channel.h: Merged revisions
+ 303546 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r303546 | russell | 2011-01-24 14:32:21 -0600 (Mon, 24 Jan 2011)
+ | 31 lines Fix channel redirect out of MeetMe() and other issues
+ with channel softhangup. Mantis issue #18585 reports that a
+ channel redirect out of MeetMe() stopped working properly. This
+ issue includes a patch that resolves the issue by removing a call
+ to ast_check_hangup() from app_meetme.c. I left that in my patch,
+ as it doesn't need to be there. However, the rest of the patch
+ fixes this problem with or without the change to app_meetme. The
+ key difference between what happens before and after this patch
+ is the effect of the END_OF_Q control frame. After END_OF_Q is
+ hit in ast_read(), ast_read() will return NULL. With the
+ ast_check_hangup() removed, app_meetme sees this which causes it
+ to exit as intended. Checking ast_check_hangup() caused
+ app_meetme to exit earlier in the process, and the target of the
+ redirect saw the condition where ast_read() returned NULL.
+ Removing ast_check_hangup() works around the issue in app_meetme,
+ but doesn't solve the issue if another application did the same
+ thing. There are also other edge cases where if an application
+ finishes at the same time that a redirect happens, the target of
+ the redirect will think that the channel hung up. So, I made some
+ changes in pbx.c to resolve it at a deeper level. There are
+ already places that unset the SOFTHANGUP_ASYNCGOTO flag in an
+ attempt to abort the hangup process. My patch extends this to
+ remove the END_OF_Q frame from the channel's read queue, making
+ the "abort hangup" more complete. This same technique was used in
+ every place where a softhangup flag was cleared. (closes issue
+ #18585) Reported by: oej Tested by: oej, wedhorn, russell Review:
+ https://reviewboard.asterisk.org/r/1082/ ........
+
+2011-01-21 21:48 +0000 [r303285] Jason Parker <jparker@digium.com>
+
+ * channels/chan_dahdi.c, /: Merged revisions 303284 via svnmerge
+ from https://origsvn.digium.com/svn/asterisk/branches/1.4
+ ........ r303284 | qwell | 2011-01-21 15:45:34 -0600 (Fri, 21 Jan
+ 2011) | 8 lines Reset configuration before parsing users.conf.
+ Some values configured in chan_dahdi.conf were able to leak in to
+ users.conf configuration. This was surprising users, and
+ potentially setting non-sane "defaults". ASTNOW-125 ........
+
+2011-01-21 16:12 +0000 [r303273] Leif Madsen <lmadsen@digium.com>
+
+ * apps/app_dial.c: Fix changes to L() flag in Dial(). Tony
+ Mountifield pointed out an error I had in my patch. I was a bit
+ too aggressive on changing 'seconds' to 'milliseconds'. So I
+ decided to do some additioanl testing and have no changed just
+ the appropriate lines. One line says milliseconds, and the other
+ says seconds. Probably should change this to be either just
+ seconds or milliseconds, but I've spent too much time on this
+ already :) (issue #18264)
+
+2011-01-20 19:56 +0000 [r303106] Shaun Ruffell <sruffell@digium.com>
+
+ * main/features.c: main/features: Use POLLPRI when waiting for
+ events on parked channels. This change resolves a regression in
+ the 1.6.2 when converting from select to poll. The DAHDI timers
+ use POLLPRI to indicate that the timer fired, but features was
+ not waiting for that flag. The result was no audio for MOH when a
+ call was parked and res_timing_dahdi was in use. This patch is
+ slightly modified from the one on the mantis issue. It does not
+ set an exception on the channel if the POLLPRI flag is set.
+ (closes issue #18262) Reported by: francesco_r Patches:
+ patch_park_moh-trunk-2.txt uploaded by cjacobsen (license 1029)
+ Tested by: francesco_r, rfrantik, one47
+
+2011-01-20 17:07 +0000 [r303008] Jeff Peeler <jpeeler@digium.com>
+
+ * apps/app_queue.c, /, configs/queues.conf.sample: Merged revisions
+ 303007 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r303007 | jpeeler | 2011-01-20 11:04:08 -0600 (Thu, 20 Jan 2011)
+ | 8 lines Add new queue strategy to preserve behavior for when
+ queue members moved to ao2. Add queue strategy called "rrordered"
+ to mimic old behavior from when queue members were stored in a
+ linked list. ABE-2707 ........
+
+2011-01-20 16:11 +0000 [r302920] Russell Bryant <russell@digium.com>
+
+ * apps/app_privacy.c: Resolve a compiler warning.
+
+2011-01-20 15:42 +0000 [r302917] Leif Madsen <lmadsen@digium.com>
+
+ * apps/app_dial.c, /: Option L() is milliseconds, not seconds. >
+ Change the verbose output of option L() to say milliseconds and
+ not seconds > as the value is in milliseconds. > > (closes issue
+ #18264) > Reported by: jacco > Patches: > app_dial_patch.txt
+ uploaded by lmadsen (license 10)
+
+2011-01-19 23:47 +0000 [r302833] Sean Bright <sean@malleable.com>
+
+ * apps/app_voicemail.c: Support greetingsfolder as documented in
+ voicemail.conf.sample. (closes issue #17870) Reported by:
+ edhorton Patches:
+ __20100816-app_voicemail-greetingsfolder-support.txt uploaded by
+ lmadsen (license 10)
+
+2011-01-19 23:06 +0000 [r302788] Russell Bryant <russell@digium.com>
+
+ * main/manager.c: Turn a noisy verbose message into a debug
+ message. This can drown your console if you're using the AMI over
+ HTTP.
+
+2011-01-19 21:25 +0000 [r302693] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/features.c: Merged revisions 302671 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r302671 | rmudgett | 2011-01-19 15:21:56 -0600 (Wed, 19 Jan 2011)
+ | 15 lines DTMF transfer plays the wrong sounds for wrong number
+ or other call failure. * Set the default for features.conf.sample
+ xferfailsound option to "beeperr" as documented instead of
+ "pbx-invalid" and corrected the use of it in DTMF blind transfer
+ (#1). * Improved DTMF blind transfer handling of wrong numbers.
+ Most of the concerns in this issue were taken care of by the
+ patch for issue 17999: Issues with DTMF triggered attended
+ transfers. (closes issue #18379) Reported by: gincantalupo Tested
+ by: rmudgett ........
+
+2011-01-19 21:22 +0000 [r302599-302675] Tilghman Lesher <tilghman@meg.abyt.es>
+
+ * include/asterisk/astdb.h, /: Merged revisions 302663 via svnmerge
+ from https://origsvn.digium.com/svn/asterisk/branches/1.4
+ ........ r302663 | tilghman | 2011-01-19 15:20:28 -0600 (Wed, 19
+ Jan 2011) | 2 lines Add some API documentation ........
+
+ * main/app.c: Kill zombies. When we ast_safe_fork() with a non-zero
+ argument, we're expected to reap our own zombies. On a zero
+ argument, however, the zombies are only reaped when there aren't
+ any non-zero forked children alive. At other times, we accumulate
+ zombies. This code is forward ported from res_agi in 1.4, so that
+ forked children are always reaped, thus preventing an
+ accumulation of zombie processes. (closes issue #18515) Reported
+ by: ernied Patches: 20101221__issue18515.diff.txt uploaded by
+ tilghman (license 14) Tested by: ernied
+
+2011-01-19 19:02 +0000 [r302504-302554] Sean Bright <sean@malleable.com>
+
+ * main/utils.c: Don't call strlen() when we only need to look at
+ the next character or two. (closes issue #18042) Reported by:
+ wdoekes Patches: astsvn-inefficient-ast-uri-decode.patch uploaded
+ by wdoekes (license 717)
+
+ * main/features.c: Remove an extraneous \r\n at the end of a
+ parking manager events. (closes issue #18363) Reported by:
+ clegall_proformatique Patches:
+ asterisk_1.8_295998_parking_manager_events_format.patch uploaded
+ by clegall proformatique (license 1139)
+
+ * res/res_agi.c: Properly handle partial reads from fgets() when
+ handling AGIs. When fgets() failed with EAGAIN, we were
+ continually decrementing the available space left in our buffer,
+ resulting in botched command handling. (closes issue #16032)
+ Reported by: notahat Patches: agi_buffer_patch2.diff uploaded by
+ fnordian (license 110)
+
+ * main/utils.c: Make sure that h_length is set when we
+ short-circuit out of ast_gethostbyname. (closes issue #16135)
+ Reported by: thedavidfactor Patches: utils.patch uploaded by
+ thedavidfactor (license 903)
+
+2011-01-19 17:08 +0000 [r302461] Paul Belanger <pabelanger@digium.com>
+
+ * res/res_timing_timerfd.c: Handle 'Resource temporarily
+ unavailable' error more gracefully.
+
+2011-01-19 15:52 +0000 [r302416] Sean Bright <sean@malleable.com>
+
+ * configs/extensions.conf.sample: Remove references to
+ priorityjumping from the sample extensions.conf. Priority jumping
+ was removed from pbx_config in r68970. (closes issue #18622)
+ Reported by: kshumard Patches: extensions.conf.sample.patch
+ uploaded by kshumard (license 92)
+
+2011-01-18 21:40 +0000 [r302313] Matthew Nicholson <mnicholson@digium.com>
+
+ * /, channels/chan_sip.c: Merged revisions 302311 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r302311 | mnicholson | 2011-01-18 15:35:03 -0600 (Tue, 18 Jan
+ 2011) | 4 lines URI encode the user part of the contact header.
+ ABE-2705 ........
+
+2011-01-18 20:13 +0000 [r302265] Jeff Peeler <jpeeler@digium.com>
+
+ * main/pbx.c: Convert device state callbacks to ao2 objects to fix
+ a deadlock in chan_sip. Lock scenario presented here: Thread 1
+ holds ast_rdlock_contexts &conlock holds handle_statechange hints
+ holds handle_statechange hint waiting for cb_extensionstate
+ Locked Here: chan_sip.c line 7428 (find_call) Thread 2 holds
+ handle_request_do &netlock holds find_call sip_pvt_ptr waiting
+ for ast_rdlock_contexts &conlock Locked Here: pbx.c line 9911
+ (ast_rdlock_contexts) Chan_sip has an established locking order
+ of locking the sip_pvt and then getting the context lock. So the
+ as stated by the summary, the operations in thread 2 have been
+ modified to no longer require the context lock. (closes issue
+ #18310) Reported by: one47 Patches: statecbs_ao2.mk2.patch
+ uploaded by one47 (license 23), modified by me Review:
+ https://reviewboard.asterisk.org/r/1072/
+
+2011-01-18 18:07 +0000 [r302173] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/features.c: Merged revisions 302172 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.4 ........
+ r302172 | rmudgett | 2011-01-18 12:04:36 -0600 (Tue, 18 Jan 2011)
+ | 88 lines Issues with DTMF triggered attended transfers. Issue
+ #17999 1) A calls B. B answers. 2) B using DTMF dial *2 (code in
+ features.conf for attended transfer). 3) A hears MOH. B dial
+ number C 4) C ringing. A hears MOH. 5) B hangup. A still hears
+ MOH. C ringing. 6) A hangup. C still ringing until
+ "atxfernoanswertimeout" expires. For v1.4 C will ring forever
+ until C answers the dead line. (Issue #17096) Problem: When A and
+ B hangup, C is still ringing. Issue #18395 SIP call limit of B is
+ 1 1. A call B, B answered 2. B *2(atxfer) call C 3. B hangup, C
+ ringing 4. Timeout waiting for C to answer 5. Recall to B fails
+ because B has reached its call limit. Because B reached its call
+ limit, it cannot do anything until the transfer it started
+ completes. Issue #17273 Same scenario as issue 18395 but party B
+ is an FXS port. Party B cannot do anything until the transfer it
+ started completes. If B goes back off hook before C answers, B
+ hears ringback instead of the expected dialtone. ********** Note
+ for the issue #17273 and #18395 fix: DTMF attended transfer works
+ within the channel bridge. Unfortunately, when either party A or
+ B in the channel bridge hangs up, that channel is not completely
+ hung up until the transfer completes. This is a real problem
+ depending upon the channel technology involved. For chan_dahdi,
+ the channel is crippled until the hangup is complete. Either the
+ channel is not useable (analog) or the protocol disconnect
+ messages are held up (PRI/BRI/SS7) and the media is not released.
+ For chan_sip, a call limit of one is going to block that endpoint
+ from any further calls until the hangup is complete. For party A
+ this is a minor problem. The party A channel will only be in this
+ condition while party B is dialing and when party B and C are
+ conferring. The conversation between party B and C is expected to
+ be a short one. Party B is either asking a question of party C or
+ announcing party A. Also party A does not have much incentive to
+ hangup at this point. For party B this can be a major problem
+ during a blonde transfer. (A blonde transfer is our term for an
+ attended transfer that is converted into a blind transfer. :))
+ Party B could be the operator. When party B hangs up, he assumes
+ that he is out of the original call entirely. The party B channel
+ will be in this condition while party C is ringing, while
+ attempting to recall party B, and while waiting between call
+ attempts. WARNING: The ATXFER_NULL_TECH conditional is a hack to
+ fix the problem. It will replace the party B channel technology
+ with a NULL channel driver to complete hanging up the party B
+ channel technology. The consequences of this code is that the 'h'
+ extension will not be able to access any channel technology
+ specific information like SIP statistics for the call.
+ ATXFER_NULL_TECH is not defined by default. ********** (closes
+ issue #17999) Reported by: iskatel Tested by: rmudgett JIRA
+ SWP-2246 (closes issue #17096) Reported by: gelo Tested by:
+ rmudgett JIRA SWP-1192 (closes issue #18395) Reported by:
+ shihchuan Tested by: rmudgett (closes issue #17273) Reported by:
+ grecco Tested by: rmudgett Review:
+ https://reviewboard.asterisk.org/r/1047/ ........
+
+2011-01-17 16:53 +0000 [r302049] Terry Wilson <twilson@digium.com>
+
+ * channels/chan_sip.c: Merged revisions 293493 via svnmerge from
+ https://origsvn.digium.com/svn/asterisk/branches/1.8 [^] ........
+ r293493 | twilson | 2010-11-01 09:58:00 -0500 (Mon, 01 Nov 2010)
+ | 14 lines Only offer codecs both sides support for directmedia
+ When using directmedia, Asterisk needs to limit the codecs
+ offered to just the ones that both sides recognize, otherwise
+ they may end up sending audio that the other side doesn't
+ understand. (closes issue 0017403) Reported by: one47 Patches:
+ sip_codecs_simplified4 uploaded by one47 (license 23) Tested by:
+ one47, falves11 Review: https://reviewboard.asterisk.org/r/967/
+ [^] ........ Backporting a bugfix that should have been included.
2011-02-22 Leif Madsen <lmadsen@digium.com>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/apps/app_dial.c
^
|
@@ -32,7 +32,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 296001 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 305253 $")
#include <sys/time.h>
#include <sys/signal.h>
@@ -1614,7 +1614,7 @@
pbx_builtin_setvar_helper(chan, "DIALSTATUS", pa.status);
goto done;
}
- ast_verb(3, "Setting call duration limit to %.3lf seconds.\n", calldurationlimit.tv_sec + calldurationlimit.tv_usec / 1000000.0);
+ ast_verb(3, "Setting call duration limit to %.3lf milliseconds.\n", calldurationlimit.tv_sec + calldurationlimit.tv_usec / 1000000.0);
}
if (ast_test_flag64(&opts, OPT_SENDDTMF) && !ast_strlen_zero(opt_args[OPT_ARG_SENDDTMF])) {
@@ -1671,7 +1671,7 @@
struct ast_dialed_interface *di;
AST_LIST_HEAD(, ast_dialed_interface) *dialed_interfaces;
num_dialed++;
- if (!number) {
+ if (ast_strlen_zero(number)) {
ast_log(LOG_WARNING, "Dial argument takes format (technology/[device:]number1)\n");
goto out;
}
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/apps/app_meetme.c
^
|
@@ -35,7 +35,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 301089 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 304776 $")
#include <dahdi/user.h>
@@ -1123,6 +1123,11 @@
ast_log(LOG_WARNING, "Unable to open DAHDI pseudo device\n");
if (cnf->fd >= 0)
close(cnf->fd);
+ ao2_ref(cnf->usercontainer, -1);
+ ast_mutex_destroy(&cnf->playlock);
+ ast_mutex_destroy(&cnf->listenlock);
+ ast_mutex_destroy(&cnf->recordthreadlock);
+ ast_mutex_destroy(&cnf->announcethreadlock);
ast_free(cnf);
cnf = NULL;
goto cnfout;
@@ -1144,7 +1149,11 @@
ast_hangup(cnf->chan);
else
close(cnf->fd);
-
+ ao2_ref(cnf->usercontainer, -1);
+ ast_mutex_destroy(&cnf->playlock);
+ ast_mutex_destroy(&cnf->listenlock);
+ ast_mutex_destroy(&cnf->recordthreadlock);
+ ast_mutex_destroy(&cnf->announcethreadlock);
ast_free(cnf);
cnf = NULL;
goto cnfout;
@@ -2043,7 +2052,6 @@
static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int confflags, char *optargs[])
{
struct ast_conf_user *user = NULL;
- struct ast_conf_user *usr = NULL;
int fd;
struct dahdi_confinfo dahdic, dahdic_empty;
struct ast_frame *f;
@@ -2467,7 +2475,7 @@
if (!(confflags & CONFFLAG_QUIET) && ((confflags & CONFFLAG_INTROUSER) || (confflags & CONFFLAG_INTROUSERNOREVIEW)) && conf->users > 1) {
struct announce_listitem *item;
if (!(item = ao2_alloc(sizeof(*item), NULL)))
- return -1;
+ goto outrun;
ast_copy_string(item->namerecloc, user->namerecloc, sizeof(item->namerecloc));
ast_copy_string(item->language, chan->language, sizeof(item->language));
item->confchan = conf->chan;
@@ -2641,6 +2649,11 @@
}
if (user->kicktime && (user->kicktime <= now.tv_sec)) {
+ if (confflags & CONFFLAG_KICK_CONTINUE) {
+ ret = 0;
+ } else {
+ ret = -1;
+ }
break;
}
@@ -2711,6 +2724,11 @@
now = ast_tvnow();
if (timeout && now.tv_sec >= timeout) {
+ if (confflags & CONFFLAG_KICK_CONTINUE) {
+ ret = 0;
+ } else {
+ ret = -1;
+ }
break;
}
@@ -2909,11 +2927,6 @@
break;
}
- /* Perform an extra hangup check just in case */
- if (ast_check_hangup(chan)) {
- break;
- }
-
c = ast_waitfor_nandfds(&chan, 1, &fd, nfds, NULL, &outfd, &ms);
if (c) {
@@ -3051,6 +3064,7 @@
break;
case '3': /* Eject last user */
{
+ struct ast_conf_user *usr = NULL;
int max_no = 0;
menu_active = 0;
ao2_callback(conf->usercontainer, OBJ_NODATA, user_max_cmp, &max_no);
@@ -3061,7 +3075,7 @@
} else {
usr->adminflags |= ADMINFLAG_KICKME;
}
- ao2_ref(user, -1);
+ ao2_ref(usr, -1);
ast_stopstream(chan);
break;
}
@@ -3361,7 +3375,7 @@
if (!(confflags & CONFFLAG_QUIET) && ((confflags & CONFFLAG_INTROUSER) || (confflags & CONFFLAG_INTROUSERNOREVIEW)) && conf->users > 1) {
struct announce_listitem *item;
if (!(item = ao2_alloc(sizeof(*item), NULL)))
- return -1;
+ goto outrun;
ast_copy_string(item->namerecloc, user->namerecloc, sizeof(item->namerecloc));
ast_copy_string(item->language, chan->language, sizeof(item->language));
item->confchan = conf->chan;
@@ -3383,9 +3397,8 @@
ast_dsp_free(dsp);
}
- if (!user->user_no) {
- ao2_ref(user, -1);
- } else { /* Only cleanup users who really joined! */
+ if (user->user_no) {
+ /* Only cleanup users who really joined! */
now = ast_tvnow();
hr = (now.tv_sec - user->jointime) / 3600;
min = ((now.tv_sec - user->jointime) % 3600) / 60;
@@ -3439,6 +3452,7 @@
pbx_builtin_setvar_helper(chan, "MEETMEBOOKID", conf->bookid);
}
}
+ ao2_ref(user, -1);
AST_LIST_UNLOCK(&confs);
return ret;
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/apps/app_privacy.c
^
|
@@ -27,7 +27,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 262659 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 302920 $")
#include "asterisk/lock.h"
#include "asterisk/file.h"
@@ -106,7 +106,7 @@
}
}
- parse = ast_strdupa(S_OR(data, ""));
+ parse = ast_strdupa(data);
AST_STANDARD_APP_ARGS(args, parse);
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/apps/app_queue.c
^
|
@@ -62,7 +62,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 308143 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 308007 $")
#include <sys/time.h>
#include <sys/signal.h>
@@ -497,7 +497,8 @@
QUEUE_STRATEGY_RANDOM,
QUEUE_STRATEGY_RRMEMORY,
QUEUE_STRATEGY_LINEAR,
- QUEUE_STRATEGY_WRANDOM
+ QUEUE_STRATEGY_WRANDOM,
+ QUEUE_STRATEGY_RRORDERED,
};
enum queue_reload_mask {
@@ -519,6 +520,7 @@
{ QUEUE_STRATEGY_RRMEMORY, "roundrobin" },
{ QUEUE_STRATEGY_LINEAR, "linear" },
{ QUEUE_STRATEGY_WRANDOM, "wrandom"},
+ { QUEUE_STRATEGY_RRORDERED, "rrordered"},
};
static struct ast_taskprocessor *devicestate_tps;
@@ -985,6 +987,7 @@
ast_debug(4, "%s is unavailable because his device state is 'ringing'\n", member->membername);
break;
}
+ goto default_case;
case AST_DEVICE_UNKNOWN:
if (conditions & QUEUE_EMPTY_UNKNOWN) {
ast_debug(4, "%s is unavailable because his device state is 'unknown'\n", member->membername);
@@ -1216,7 +1219,7 @@
q->numperiodicannounce = 0;
q->timeoutpriority = TIMEOUT_PRIORITY_APP;
if (!q->members) {
- if (q->strategy == QUEUE_STRATEGY_LINEAR)
+ if (q->strategy == QUEUE_STRATEGY_LINEAR || q->strategy == QUEUE_STRATEGY_RRORDERED)
/* linear strategy depends on order, so we have to place all members in a single bucket */
q->members = ao2_container_alloc(1, member_hash_fn, member_cmp_fn);
else
@@ -3351,6 +3354,7 @@
}
tmp->metric += mem->penalty * 1000000;
break;
+ case QUEUE_STRATEGY_RRORDERED:
case QUEUE_STRATEGY_RRMEMORY:
if (pos < q->rrpos) {
tmp->metric = 1000 + pos;
@@ -3674,7 +3678,7 @@
ast_set_flag(&(bridge_config.features_caller), AST_FEATURE_PARKCALL);
break;
case 'n':
- if (qe->parent->strategy == QUEUE_STRATEGY_RRMEMORY || qe->parent->strategy == QUEUE_STRATEGY_LINEAR)
+ if (qe->parent->strategy == QUEUE_STRATEGY_RRMEMORY || qe->parent->strategy == QUEUE_STRATEGY_LINEAR || qe->parent->strategy == QUEUE_STRATEGY_RRORDERED)
(*tries)++;
else
*tries = qe->parent->membercount;
@@ -3851,8 +3855,9 @@
}
ast_channel_unlock(qe->chan);
ao2_lock(qe->parent);
- if (qe->parent->strategy == QUEUE_STRATEGY_RRMEMORY) {
+ if (qe->parent->strategy == QUEUE_STRATEGY_RRMEMORY || qe->parent->strategy == QUEUE_STRATEGY_RRORDERED) {
store_next_rr(qe, outgoing);
+
}
if (qe->parent->strategy == QUEUE_STRATEGY_LINEAR) {
store_next_lin(qe, outgoing);
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/apps/app_sendtext.c
^
|
@@ -29,7 +29,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 187366 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 305889 $")
#include "asterisk/file.h"
#include "asterisk/channel.h"
@@ -99,10 +99,10 @@
return 0;
}
status = "FAILURE";
- ast_channel_unlock(chan);
res = ast_sendtext(chan, args.text);
if (!res)
status = "SUCCESS";
+ ast_channel_unlock(chan);
pbx_builtin_setvar_helper(chan, "SENDTEXTSTATUS", status);
return 0;
}
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/apps/app_voicemail.c
^
|
@@ -85,7 +85,7 @@
#endif
#endif
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 301046 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 306966 $")
#include "asterisk/paths.h" /* use ast_config_AST_SPOOL_DIR */
#include <sys/time.h>
@@ -3762,6 +3762,8 @@
DIR *msgdir;
struct dirent *msgdirent;
int msgdirint;
+ char extension[4];
+ int stopcount = 0;
/* Reading the entire directory into a file map scales better than
* doing a stat repeatedly on a predicted sequence. I suspect this
@@ -3772,14 +3774,20 @@
}
while ((msgdirent = readdir(msgdir))) {
- if (sscanf(msgdirent->d_name, "msg%30d", &msgdirint) == 1 && msgdirint < MAXMSGLIMIT)
+ if (sscanf(msgdirent->d_name, "msg%30d.%3s", &msgdirint, extension) == 2 && !strcmp(extension, "txt") && msgdirint < MAXMSGLIMIT) {
map[msgdirint] = 1;
+ stopcount++;
+ ast_debug(4, "%s map[%d] = %d, count = %d\n", dir, msgdirint, map[msgdirint], stopcount);
+ }
}
closedir(msgdir);
for (x = 0; x < vmu->maxmsg; x++) {
- if (map[x] == 0)
+ if (map[x] == 1) {
+ stopcount--;
+ } else if (map[x] == 0 && !stopcount) {
break;
+ }
}
return x - 1;
@@ -5750,6 +5758,36 @@
return res;
}
+#if !defined(IMAP_STORAGE) && !defined(ODBC_STORAGE)
+static int resequence_mailbox(struct ast_vm_user *vmu, char *dir, int stopcount)
+{
+ /* we know the actual number of messages, so stop process when number is hit */
+
+ int x, dest;
+ char sfn[PATH_MAX];
+ char dfn[PATH_MAX];
+
+ if (vm_lock_path(dir))
+ return ERROR_LOCK_PATH;
+
+ for (x = 0, dest = 0; dest != stopcount && x < vmu->maxmsg + 10; x++) {
+ make_file(sfn, sizeof(sfn), dir, x);
+ if (EXISTS(dir, x, sfn, NULL)) {
+
+ if (x != dest) {
+ make_file(dfn, sizeof(dfn), dir, dest);
+ RENAME(dir, x, vmu->mailbox, vmu->context, dir, dest, sfn, dfn);
+ }
+
+ dest++;
+ }
+ }
+ ast_unlock_path(dir);
+
+ return dest;
+}
+#endif
+
static int say_and_wait(struct ast_channel *chan, int num, const char *language)
{
int d;
@@ -6467,14 +6505,16 @@
}
/* Back up the original file, so we can retry the prepend and restore it after forward. */
+#ifndef IMAP_STORAGE
if (already_recorded) {
ast_filecopy(backup, msgfile, NULL);
copy(backup_textfile, textfile);
}
else {
ast_filecopy(msgfile, backup, NULL);
- copy(textfile,backup_textfile);
+ copy(textfile, backup_textfile);
}
+#endif
already_recorded = 1;
if (record_gain)
@@ -7440,8 +7480,11 @@
if (last_msg < -1) {
return last_msg;
+#ifndef ODBC_STORAGE
} else if (vms->lastmsg != last_msg) {
- ast_log(LOG_NOTICE, "Mailbox: %s, expected %d but found %d message(s) in box with max threshold of %d.\n", vms->curdir, last_msg + 1, vms->lastmsg + 1, vmu->maxmsg);
+ ast_log(LOG_NOTICE, "Resequencing mailbox: %s, expected %d but found %d message(s) in box with max threshold of %d.\n", vms->curdir, last_msg + 1, vms->lastmsg + 1, vmu->maxmsg);
+ resequence_mailbox(vmu, vms->curdir, count_msg);
+#endif
}
return 0;
@@ -10976,6 +11019,9 @@
}
if ((val = ast_variable_retrieve(cfg, "general", "greetingfolder"))) {
ast_copy_string(greetingfolder, val, sizeof(greetingfolder));
+ } else if ((val = ast_variable_retrieve(cfg, "general", "greetingsfolder"))) {
+ /* Also support greetingsfolder as documented in voicemail.conf.sample */
+ ast_copy_string(greetingfolder, val, sizeof(greetingfolder));
} else {
ast_copy_string(greetingfolder, imapfolder, sizeof(greetingfolder));
}
|
[-]
[+]
|
Added |
asterisk-1.6.2.18.tar.bz2/asterisk-1.6.2.18-summary.html
^
|
@@ -0,0 +1,438 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Release Summary - asterisk-1.6.2.18</title></head>
+<body>
+<h1 align="center"><a name="top">Release Summary</a></h1>
+<h3 align="center">asterisk-1.6.2.18</h3>
+<h3 align="center">Date: 2011-04-25</h3>
+<h3 align="center"><asteriskteam@digium.com></h3>
+<hr/>
+<h2 align="center">Table of Contents</h2>
+<ol>
+ <li><a href="#summary">Summary</a></li>
+ <li><a href="#contributors">Contributors</a></li>
+ <li><a href="#issues">Closed Issues</a></li>
+ <li><a href="#commits">Other Changes</a></li>
+ <li><a href="#diffstat">Diffstat</a></li>
+</ol>
+<hr/>
+<a name="summary"><h2 align="center">Summary</h2></a>
+<center><a href="#top">[Back to Top]</a></center><br/><p>This release includes only bug fixes. The changes included were made only to address problems that have been identified in this release series. Users should be able to safely upgrade to this version if this release series is already in use. Users considering upgrading from a previous release series are strongly encouraged to review the UPGRADE.txt document as well as the CHANGES document for information about upgrading to this release series.</p>
+<p>The data in this summary reflects changes that have been made since the previous release, asterisk-1.6.2.17.</p>
+<hr/>
+<a name="contributors"><h2 align="center">Contributors</h2></a>
+<center><a href="#top">[Back to Top]</a></center><br/><p>This table lists the people who have submitted code, those that have tested patches, as well as those that reported issues on the issue tracker that were resolved in this release. For coders, the number is how many of their patches (of any size) were committed into this release. For testers, the number is the number of times their name was listed as assisting with testing a patch. Finally, for reporters, the number is the number of issues that they reported that were closed by commits that went into this release.</p>
+<table width="100%" border="0">
+<tr>
+<td width="33%"><h3>Coders</h3></td>
+<td width="33%"><h3>Testers</h3></td>
+<td width="33%"><h3>Reporters</h3></td>
+</tr>
+<tr valign="top">
+<td>
+12 rmudgett<br/>
+8 jpeeler<br/>
+7 qwell<br/>
+6 lathama<br/>
+6 seanbright<br/>
+6 tilghman<br/>
+6 twilson<br/>
+5 lmadsen<br/>
+4 mnicholson<br/>
+3 russell<br/>
+2 zaltar<br/>
+1 alexo<br/>
+1 bluecrow76<br/>
+1 cjacobsen<br/>
+1 clegall<br/>
+1 crjw<br/>
+1 fnordian<br/>
+1 gbour<br/>
+1 kobaz<br/>
+1 kshumard<br/>
+1 mmichelson<br/>
+1 one47<br/>
+1 pabelanger<br/>
+1 thedavidfactor<br/>
+1 wdoekes<br/>
+</td>
+<td>
+7 rmudgett<br/>
+2 seanbright<br/>
+2 wimpy<br/>
+1 alexo<br/>
+1 andrel<br/>
+1 asgaroth<br/>
+1 bklang<br/>
+1 efutch<br/>
+1 ernied<br/>
+1 francesco_r<br/>
+1 lathama<br/>
+1 loloski<br/>
+1 oej<br/>
+1 one47<br/>
+1 qwell<br/>
+1 rfrantik<br/>
+1 russell<br/>
+1 tilghman<br/>
+1 wedhorn<br/>
+</td>
+<td>
+2 zaltar<br/>
+1 alecdavis<br/>
+1 alexo<br/>
+1 bklang<br/>
+1 bluecrow76<br/>
+1 bluefox<br/>
+1 clegall_proformatique<br/>
+1 edhorton<br/>
+1 ernied<br/>
+1 francesco_r<br/>
+1 gbour<br/>
+1 gelo<br/>
+1 gincantalupo<br/>
+1 grecco<br/>
+1 irroot<br/>
+1 iskatel<br/>
+1 jacco<br/>
+1 JJCinAZ<br/>
+1 junky<br/>
+1 kenji<br/>
+1 kerframil<br/>
+1 kobaz<br/>
+1 kshumard<br/>
+1 mcallist<br/>
+1 notahat<br/>
+1 oej<br/>
+1 one47<br/>
+1 pj<br/>
+1 shawkris<br/>
+1 shihchuan<br/>
+1 thedavidfactor<br/>
+1 var<br/>
+1 vrban<br/>
+1 wdoekes<br/>
+1 wimpy<br/>
+</td>
+</tr>
+</table>
+<hr/>
+<a name="issues"><h2 align="center">Closed Issues</h2></a>
+<center><a href="#top">[Back to Top]</a></center><br/><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p>
+<h3>Category: Applications/app_dial</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=18264">#18264</a>: [patch] Dail L(x) shows "Setting call duration limit to x seconds" in CLI<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302917">302917</a><br/>
+Reporter: jacco<br/>
+Coders: lmadsen<br/>
+<br/>
+<a href="https://issues.asterisk.org/view.php?id=18379">#18379</a>: attended transfer weird behaviour<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302693">302693</a><br/>
+Reporter: gincantalupo<br/>
+Testers: rmudgett<br/>
+Coders: rmudgett<br/>
+<br/>
+<h3>Category: Applications/app_meetme</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=17317">#17317</a>: [patch] MeetMe 'L' and 'S' ignore 'C' option<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304773">304773</a><br/>
+Reporter: var<br/>
+Coders: seanbright<br/>
+<br/>
+<a href="https://issues.asterisk.org/view.php?id=18225">#18225</a>: [patch] Segfault with new meetme function (count callers in menu8)<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304729">304729</a><br/>
+Reporter: kenji<br/>
+Testers: seanbright<br/>
+Coders: seanbright<br/>
+<br/>
+<a href="https://issues.asterisk.org/view.php?id=18343">#18343</a>: [patch] [regression] meetme conf_run leaks refs<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304776">304776</a><br/>
+Reporter: kobaz<br/>
+Coders: kobaz<br/>
+<br/>
+<a href="https://issues.asterisk.org/view.php?id=18444">#18444</a>: [patch] leak in meetme<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304726">304726</a><br/>
+Reporter: junky<br/>
+Testers: seanbright<br/>
+Coders: seanbright<br/>
+<br/>
+<h3>Category: Applications/app_queue</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=18499">#18499</a>: [patch] Fallthrough in get_member_status can cause unwarranted exit from queue<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=306346">306346</a><br/>
+Reporter: zaltar<br/>
+Coders: zaltar<br/>
+<br/>
+<a href="https://issues.asterisk.org/view.php?id=18747">#18747</a>: [regression] changeset 298596 harm the ring/moh logic in queues<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=308007">308007</a><br/>
+Reporter: vrban<br/>
+Coders: qwell<br/>
+<br/>
+<h3>Category: Applications/app_voicemail</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=18486">#18486</a>: [patch] Voicemail files out of sequence<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=303677">303677</a><br/>
+Reporter: bluefox<br/>
+Coders: jpeeler<br/>
+<br/>
+<a href="https://issues.asterisk.org/view.php?id=18498">#18498</a>: [patch] [regression] Resequencing of mailbox not working as expected.<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=303677">303677</a><br/>
+Reporter: JJCinAZ<br/>
+Coders: jpeeler<br/>
+<br/>
+<h3>Category: Applications/app_voicemail/IMAP</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=17870">#17870</a>: [patch] greetingsfolder variable should be greetingfolder<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302833">302833</a><br/>
+Reporter: edhorton<br/>
+Coders: lmadsen<br/>
+<br/>
+<a href="https://issues.asterisk.org/view.php?id=18718">#18718</a>: [regression] Implicit declaration of copy yields broken app_voicemail when building with IMAP support<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=306961">306961</a><br/>
+Reporter: kerframil<br/>
+Coders: jpeeler<br/>
+<br/>
+<h3>Category: Channels/General</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=18585">#18585</a>: [patch] AMI redirect from meetme - calls fail<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=303548">303548</a><br/>
+Reporter: oej<br/>
+Testers: oej, wedhorn, russell<br/>
+Coders: russell<br/>
+<br/>
+<h3>Category: Channels/chan_dahdi</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=17085">#17085</a>: [patch] [regression] Overlap dialing to PSTN failing after #16789<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=303769">303769</a><br/>
+Reporter: shawkris<br/>
+Testers: wimpy, rmudgett<br/>
+Coders: rmudgett<br/>
+<br/>
+<a href="https://issues.asterisk.org/view.php?id=17273">#17273</a>: atxfer *2 channel dahdi FXS no hangup<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302173">302173</a><br/>
+Reporter: grecco<br/>
+Testers: rmudgett<br/>
+Coders: rmudgett<br/>
+<br/>
+<a href="https://issues.asterisk.org/view.php?id=18509">#18509</a>: [patch] Sending out unnecessary PROCEEDING messages breaks overlap dialing<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=303769">303769</a><br/>
+Reporter: wimpy<br/>
+Testers: wimpy, rmudgett<br/>
+Coders: rmudgett<br/>
+<br/>
+<h3>Category: Channels/chan_sip/General</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=16675">#16675</a>: "sip show peer/user <tab>" doesn't complete correctly<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=303858">303858</a><br/>
+Reporter: pj<br/>
+Coders: tilghman<br/>
+<br/>
+<a href="https://issues.asterisk.org/view.php?id=18371">#18371</a>: [patch] asterisk crash when dialing SIP/${var} where var is empty or not set<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=305253">305253</a><br/>
+Reporter: gbour<br/>
+Coders: gbour<br/>
+<br/>
+<h3>Category: Core/General</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=18515">#18515</a>: [patch] Asterisk produces many zombie processes while under load.<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302599">302599</a><br/>
+Reporter: ernied<br/>
+Testers: ernied<br/>
+Coders: tilghman<br/>
+<br/>
+<a href="https://issues.asterisk.org/view.php?id=18776">#18776</a>: [patch] asterisk -rx 'core show version' returns an ANSI string, which is not evaluated correctly with debian init.d script.<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=307316">307316</a><br/>
+Reporter: alecdavis<br/>
+Testers: andrel, lathama<br/>
+Coders: lathama<br/>
+<br/>
+<h3>Category: Core/ManagerInterface</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=18363">#18363</a>: [patch] bad format in post_manager_event() i.e. ParkedCallGiveUp and ParkedCallTimeOut<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302551">302551</a><br/>
+Reporter: clegall_proformatique<br/>
+Coders: clegall<br/>
+<br/>
+<h3>Category: Core/Netsock</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=16135">#16135</a>: [patch] ast_gethostbyname doesn't set h_length if argument is an IP Address<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302504">302504</a><br/>
+Reporter: thedavidfactor<br/>
+Coders: thedavidfactor<br/>
+<br/>
+<h3>Category: Core/PBX</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=17999">#17999</a>: Issues with DTMF triggered attended transfers<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302173">302173</a><br/>
+Reporter: iskatel<br/>
+Testers: rmudgett<br/>
+Coders: rmudgett<br/>
+<br/>
+<a href="https://issues.asterisk.org/view.php?id=18310">#18310</a>: [patch] hint state changes deadlock/race<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302265">302265</a><br/>
+Reporter: one47<br/>
+Coders: one47<br/>
+<br/>
+<h3>Category: Documentation</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=18622">#18622</a>: [patch] Remove reference to "priorityjumping" configuration option in extensions.conf.sample<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302416">302416</a><br/>
+Reporter: kshumard<br/>
+Coders: kshumard<br/>
+<br/>
+<h3>Category: Features</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=18395">#18395</a>: C should not receive request call again after C cancel if B blind transfer using atxfer call C<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302173">302173</a><br/>
+Reporter: shihchuan<br/>
+Testers: rmudgett<br/>
+Coders: rmudgett<br/>
+<br/>
+<h3>Category: Features/Parking</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=17946">#17946</a>: [patch] Minor fixes to multiparking<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=307227">307227</a><br/>
+Reporter: bluecrow76<br/>
+Coders: bluecrow76<br/>
+<br/>
+<h3>Category: Formats/format_wav</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=16610">#16610</a>: [patch] [OpenSolaris] wav format produces garbage files<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304096">304096</a><br/>
+Reporter: bklang<br/>
+Testers: bklang, asgaroth, efutch<br/>
+Coders: crjw<br/>
+<br/>
+<h3>Category: Functions/func_odbc</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=18795">#18795</a>: [patch] func_odbc insertsql option may not work<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=307836">307836</a><br/>
+Reporter: irroot<br/>
+Testers: tilghman<br/>
+Coders: tilghman<br/>
+<br/>
+<h3>Category: General</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=18042">#18042</a>: [patch] inefficient strlen() in ast_uri_decode loop<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302554">302554</a><br/>
+Reporter: wdoekes<br/>
+Coders: wdoekes<br/>
+<br/>
+<a href="https://issues.asterisk.org/view.php?id=18456">#18456</a>: [patch] Asterisk HTTP response contains wrong Content-type<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=305082">305082</a><br/>
+Reporter: alexo<br/>
+Testers: alexo<br/>
+Coders: alexo<br/>
+<br/>
+<h3>Category: Resources/res_agi</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=16032">#16032</a>: [patch] AGI returns bogus "510 Invalid or unknown command"<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302548">302548</a><br/>
+Reporter: notahat<br/>
+Coders: fnordian<br/>
+<br/>
+<h3>Category: Resources/res_config_ldap</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=18435">#18435</a>: [patch] Memory leak in res_config_ldap when using realtime<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304865">304865</a><br/>
+Reporter: zaltar<br/>
+Coders: zaltar<br/>
+<br/>
+<h3>Category: Resources/res_features</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=17096">#17096</a>: C keeps ringing when hanging A and B after blind transfer using atxfer<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302173">302173</a><br/>
+Reporter: gelo<br/>
+Testers: rmudgett<br/>
+Coders: rmudgett<br/>
+<br/>
+<a href="https://issues.asterisk.org/view.php?id=18262">#18262</a>: [patch] No MOH When Call Parked<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=303106">303106</a><br/>
+Reporter: francesco_r<br/>
+Testers: francesco_r, rfrantik, one47<br/>
+Coders: cjacobsen<br/>
+<br/>
+<h3>Category: Resources/res_musiconhold</h3><br/>
+<a href="https://issues.asterisk.org/view.php?id=18457">#18457</a>: [patch] moh reload leaks file descriptors to dahdi timing channel<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=305472">305472</a><br/>
+Reporter: mcallist<br/>
+Testers: qwell, loloski<br/>
+Coders: qwell<br/>
+<br/>
+<hr/>
+<a name="commits"><h2 align="center">Commits Not Associated with an Issue</h2></a>
+<center><a href="#top">[Back to Top]</a></center><br/><p>This is a list of all changes that went into this release that did not directly close an issue from the issue tracker. The commits may have been marked as being related to an issue. If that is the case, the issue numbers are listed here, as well.</p>
+<table width="100%" border="1">
+<tr><td><b>Revision</b></td><td><b>Author</b></td><td><b>Summary</b></td><td><b>Issues Referenced</b></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302049">302049</a></td><td>twilson</td><td>Only offer codecs both sides support for directmedia</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302313">302313</a></td><td>mnicholson</td><td>URI encode the user part of the contact header.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302461">302461</a></td><td>pabelanger</td><td>Handle 'Resource temporarily unavailable' error more gracefully.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302675">302675</a></td><td>tilghman</td><td>Add some API documentation</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302788">302788</a></td><td>russell</td><td>Turn a noisy verbose message into a debug message.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=302920">302920</a></td><td>russell</td><td>Resolve a compiler warning.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=303008">303008</a></td><td>jpeeler</td><td>Add new queue strategy to preserve behavior for when queue members moved to ao2.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=303273">303273</a></td><td>lmadsen</td><td>Fix changes to L() flag in Dial().</td>
+<td><a href="https://issues.asterisk.org/view.php?id=18264">#18264</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=303285">303285</a></td><td>qwell</td><td>Reset configuration before parsing users.conf.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=303960">303960</a></td><td>twilson</td><td>Guard against retransmitting BYEs indefinitely</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304006">304006</a></td><td>rmudgett</td><td>DTMF attended transfers sometimes fail for no apparent reason.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304149">304149</a></td><td>rmudgett</td><td>Update documentation for DAHDISendCallreroutingFacility() application.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304181">304181</a></td><td>seanbright</td><td>Make sure the sample queues.conf is properly commented.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304244">304244</a></td><td>mnicholson</td><td>This patch modifies chan_sip to route responses to the address the request came from. It also modifies chan_sip to respect the maddr parameter in the Via header.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304249">304249</a></td><td>mnicholson</td><td>Convert from network to host byte ordering before checking if an IP is a multicast address.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304250">304250</a></td><td>mmichelson</td><td>Get rid of unused 'verbose' field in ast_udptl</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304338">304338</a></td><td>jpeeler</td><td>Change delimiter used internally for GOTO_ON_BLINDXFR to commas to match 76703.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304461">304461</a></td><td>qwell</td><td>Rerun bootstrap.sh with no changes, so that it is more obvious what my next commit changes.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304465">304465</a></td><td>qwell</td><td>Fix default prefix=/usr regression on non-Linux systems.</td>
+<td><a href="https://issues.asterisk.org/view.php?id=17013">#17013</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304659">304659</a></td><td>seanbright</td><td>Don't leak references if we can't create a pseudo channel for mixing in MeetMe.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304682">304682</a></td><td>seanbright</td><td>Revert part of the previous commit that snuck in.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=304978">304978</a></td><td>tilghman</td><td>Fix compilation when ODBC_STORAGE is defined.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=305130">305130</a></td><td>qwell</td><td>Set file descriptors to -1 on creation, so that we don't see weirdness later.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=305342">305342</a></td><td>rmudgett</td><td>Obtain the pri lock for PRI queue counters.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=305648">305648</a></td><td>lathama</td><td>SIP Configuration Documentation</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=305752">305752</a></td><td>lathama</td><td>Replace link to old doc with new wiki page.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=305889">305889</a></td><td>rmudgett</td><td>Minor AST_FRAME_TEXT related issues.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=305985">305985</a></td><td>lathama</td><td>res_phoneprov add snom 300, 320, 360, 370, 820, 821, 870 support</td>
+<td><a href="https://issues.asterisk.org/view.php?id=18713">#18713</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=306123">306123</a></td><td>jpeeler</td><td>Set exception on channel in parking thread when POLLPRI event detected.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=306126">306126</a></td><td>twilson</td><td>Set hangup cause in local_hangup</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=306618">306618</a></td><td>twilson</td><td>Don't allow a REFER w/replaces to replace its own dialog</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=306673">306673</a></td><td>twilson</td><td>Don't try to pickup a call in the middle of a masquerade</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=306865">306865</a></td><td>jpeeler</td><td>make this safer and fully correct, pointed out by Steve Davis</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=306966">306966</a></td><td>jpeeler</td><td>fix this line again</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=306973">306973</a></td><td>twilson</td><td>Fix comparison for REFER Replaces tags with pedantic=yes</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=307535">307535</a></td><td>qwell</td><td>Remove color when executing commands via a remote console.</td>
+<td><a href="https://issues.asterisk.org/view.php?id=18776">#18776</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=307624">307624</a></td><td>rmudgett</td><td>Reentrancy problem if outgoing call gets different B channel than requested.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=307792">307792</a></td><td>tilghman</td><td>Increment usage count at first reference, to avoid a race condition with many threads creating connections all at once.</td>
+<td><a href="https://issues.asterisk.org/view.php?id=18156">#18156</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=308329">308329</a></td><td>lathama</td><td>Add CSS MIME Type</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=308414">308414</a></td><td>mnicholson</td><td>Properly check the bounds of arrays when decoding UDPTL packets. Also, remove broken support for receiving UDPTL packets larger than 16k. That shouldn't ever happen anyway.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=308528">308528</a></td><td>lathama</td><td>Add HTTP URI log, use ast_debug for console logging</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=315200">315200</a></td><td>lmadsen</td><td>Create Asterisk 1.6.2.18 from 1.6.2.18-rc1</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.6.2?view=revision&revision=315201">315201</a></td><td>lmadsen</td><td>Update .version, ChangeLog, merge changes from AST-2011-005 and AST-2011-006</td>
+<td></td></tr></table>
+<hr/>
+<a name="diffstat"><h2 align="center">Diffstat Results</h2></a>
+<center><a href="#top">[Back to Top]</a></center><br/><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p>
+<pre>
+.version | 2
+ChangeLog | 6
+apps/app_dial.c | 4
+apps/app_meetme.c | 40 +
+apps/app_privacy.c | 2
+apps/app_queue.c | 14
+apps/app_sendtext.c | 2
+apps/app_voicemail.c | 54 ++
+asterisk-1.6.2.18-rc1-summary.html | 428 ------------------
+asterisk-1.6.2.18-rc1-summary.txt | 549 ------------------------
+channels/chan_dahdi.c | 548 +++++++++++++++++-------
+channels/chan_local.c | 1
+channels/chan_sip.c | 419 +++++++++++++++++-
+channels/chan_skinny.c | 78 +++
+configs/extensions.conf.sample | 8
+configs/http.conf.sample | 5
+configs/manager.conf.sample | 11
+configs/phoneprov.conf.sample | 3
+configs/queues.conf.sample | 2
+configs/sip.conf.sample | 13
+configs/skinny.conf.sample | 9
+configure.ac | 4
+funcs/func_odbc.c | 5
+include/asterisk/astdb.h | 27 -
+include/asterisk/channel.h | 23 +
+main/app.c | 53 ++
+main/asterisk.c | 2
+main/channel.c | 40 +
+main/features.c | 841 +++++++++++++++++++++++++------------
+main/file.c | 10
+main/http.c | 30 +
+main/manager.c | 121 ++++-
+main/pbx.c | 174 ++++---
+main/udptl.c | 53 --
+main/utils.c | 4
+phoneprov/snom-mac.xml | 24 +
+res/res_agi.c | 4
+res/res_config_ldap.c | 6
+res/res_musiconhold.c | 7
+res/res_odbc.c | 11
+res/res_timing_timerfd.c | 2
+41 files changed, 2002 insertions(+), 1637 deletions(-)
+</pre><br/>
+<hr/>
+</body>
+</html>
|
[-]
[+]
|
Added |
asterisk-1.6.2.18.tar.bz2/asterisk-1.6.2.18-summary.txt
^
|
@@ -0,0 +1,564 @@
+ Release Summary
+
+ asterisk-1.6.2.18
+
+ Date: 2011-04-25
+
+ <asteriskteam@digium.com>
+
+ ----------------------------------------------------------------------
+
+ Table of Contents
+
+ 1. Summary
+ 2. Contributors
+ 3. Closed Issues
+ 4. Other Changes
+ 5. Diffstat
+
+ ----------------------------------------------------------------------
+
+ Summary
+
+ [Back to Top]
+
+ This release includes only bug fixes. The changes included were made only
+ to address problems that have been identified in this release series.
+ Users should be able to safely upgrade to this version if this release
+ series is already in use. Users considering upgrading from a previous
+ release series are strongly encouraged to review the UPGRADE.txt document
+ as well as the CHANGES document for information about upgrading to this
+ release series.
+
+ The data in this summary reflects changes that have been made since the
+ previous release, asterisk-1.6.2.17.
+
+ ----------------------------------------------------------------------
+
+ Contributors
+
+ [Back to Top]
+
+ This table lists the people who have submitted code, those that have
+ tested patches, as well as those that reported issues on the issue tracker
+ that were resolved in this release. For coders, the number is how many of
+ their patches (of any size) were committed into this release. For testers,
+ the number is the number of times their name was listed as assisting with
+ testing a patch. Finally, for reporters, the number is the number of
+ issues that they reported that were closed by commits that went into this
+ release.
+
+ Coders Testers Reporters
+ 12 rmudgett 7 rmudgett 2 zaltar
+ 8 jpeeler 2 seanbright 1 alecdavis
+ 7 qwell 2 wimpy 1 alexo
+ 6 lathama 1 alexo 1 bklang
+ 6 seanbright 1 andrel 1 bluecrow76
+ 6 tilghman 1 asgaroth 1 bluefox
+ 6 twilson 1 bklang 1 clegall_proformatique
+ 5 lmadsen 1 efutch 1 edhorton
+ 4 mnicholson 1 ernied 1 ernied
+ 3 russell 1 francesco_r 1 francesco_r
+ 2 zaltar 1 lathama 1 gbour
+ 1 alexo 1 loloski 1 gelo
+ 1 bluecrow76 1 oej 1 gincantalupo
+ 1 cjacobsen 1 one47 1 grecco
+ 1 clegall 1 qwell 1 irroot
+ 1 crjw 1 rfrantik 1 iskatel
+ 1 fnordian 1 russell 1 jacco
+ 1 gbour 1 tilghman 1 JJCinAZ
+ 1 kobaz 1 wedhorn 1 junky
+ 1 kshumard 1 kenji
+ 1 mmichelson 1 kerframil
+ 1 one47 1 kobaz
+ 1 pabelanger 1 kshumard
+ 1 thedavidfactor 1 mcallist
+ 1 wdoekes 1 notahat
+ 1 oej
+ 1 one47
+ 1 pj
+ 1 shawkris
+ 1 shihchuan
+ 1 thedavidfactor
+ 1 var
+ 1 vrban
+ 1 wdoekes
+ 1 wimpy
+
+ ----------------------------------------------------------------------
+
+ Closed Issues
+
+ [Back to Top]
+
+ This is a list of all issues from the issue tracker that were closed by
+ changes that went into this release.
+
+ Category: Applications/app_dial
+
+ #18264: [patch] Dail L(x) shows "Setting call duration limit to x seconds"
+ in CLI
+ Revision: 302917
+ Reporter: jacco
+ Coders: lmadsen
+
+ #18379: attended transfer weird behaviour
+ Revision: 302693
+ Reporter: gincantalupo
+ Testers: rmudgett
+ Coders: rmudgett
+
+ Category: Applications/app_meetme
+
+ #17317: [patch] MeetMe 'L' and 'S' ignore 'C' option
+ Revision: 304773
+ Reporter: var
+ Coders: seanbright
+
+ #18225: [patch] Segfault with new meetme function (count callers in menu8)
+ Revision: 304729
+ Reporter: kenji
+ Testers: seanbright
+ Coders: seanbright
+
+ #18343: [patch] [regression] meetme conf_run leaks refs
+ Revision: 304776
+ Reporter: kobaz
+ Coders: kobaz
+
+ #18444: [patch] leak in meetme
+ Revision: 304726
+ Reporter: junky
+ Testers: seanbright
+ Coders: seanbright
+
+ Category: Applications/app_queue
+
+ #18499: [patch] Fallthrough in get_member_status can cause unwarranted
+ exit from queue
+ Revision: 306346
+ Reporter: zaltar
+ Coders: zaltar
+
+ #18747: [regression] changeset 298596 harm the ring/moh logic in queues
+ Revision: 308007
+ Reporter: vrban
+ Coders: qwell
+
+ Category: Applications/app_voicemail
+
+ #18486: [patch] Voicemail files out of sequence
+ Revision: 303677
+ Reporter: bluefox
+ Coders: jpeeler
+
+ #18498: [patch] [regression] Resequencing of mailbox not working as
+ expected.
+ Revision: 303677
+ Reporter: JJCinAZ
+ Coders: jpeeler
+
+ Category: Applications/app_voicemail/IMAP
+
+ #17870: [patch] greetingsfolder variable should be greetingfolder
+ Revision: 302833
+ Reporter: edhorton
+ Coders: lmadsen
+
+ #18718: [regression] Implicit declaration of copy yields broken
+ app_voicemail when building with IMAP support
+ Revision: 306961
+ Reporter: kerframil
+ Coders: jpeeler
+
+ Category: Channels/General
+
+ #18585: [patch] AMI redirect from meetme - calls fail
+ Revision: 303548
+ Reporter: oej
+ Testers: oej, wedhorn, russell
+ Coders: russell
+
+ Category: Channels/chan_dahdi
+
+ #17085: [patch] [regression] Overlap dialing to PSTN failing after #16789
+ Revision: 303769
+ Reporter: shawkris
+ Testers: wimpy, rmudgett
+ Coders: rmudgett
+
+ #17273: atxfer *2 channel dahdi FXS no hangup
+ Revision: 302173
+ Reporter: grecco
+ Testers: rmudgett
+ Coders: rmudgett
+
+ #18509: [patch] Sending out unnecessary PROCEEDING messages breaks overlap
+ dialing
+ Revision: 303769
+ Reporter: wimpy
+ Testers: wimpy, rmudgett
+ Coders: rmudgett
+
+ Category: Channels/chan_sip/General
+
+ #16675: "sip show peer/user " doesn't complete correctly
+ Revision: 303858
+ Reporter: pj
+ Coders: tilghman
+
+ #18371: [patch] asterisk crash when dialing SIP/${var} where var is empty
+ or not set
+ Revision: 305253
+ Reporter: gbour
+ Coders: gbour
+
+ Category: Core/General
+
+ #18515: [patch] Asterisk produces many zombie processes while under load.
+ Revision: 302599
+ Reporter: ernied
+ Testers: ernied
+ Coders: tilghman
+
+ #18776: [patch] asterisk -rx 'core show version' returns an ANSI string,
+ which is not evaluated correctly with debian init.d script.
+ Revision: 307316
+ Reporter: alecdavis
+ Testers: andrel, lathama
+ Coders: lathama
+
+ Category: Core/ManagerInterface
+
+ #18363: [patch] bad format in post_manager_event() i.e. ParkedCallGiveUp
+ and ParkedCallTimeOut
+ Revision: 302551
+ Reporter: clegall_proformatique
+ Coders: clegall
+
+ Category: Core/Netsock
+
+ #16135: [patch] ast_gethostbyname doesn't set h_length if argument is an
+ IP Address
+ Revision: 302504
+ Reporter: thedavidfactor
+ Coders: thedavidfactor
+
+ Category: Core/PBX
+
+ #17999: Issues with DTMF triggered attended transfers
+ Revision: 302173
+ Reporter: iskatel
+ Testers: rmudgett
+ Coders: rmudgett
+
+ #18310: [patch] hint state changes deadlock/race
+ Revision: 302265
+ Reporter: one47
+ Coders: one47
+
+ Category: Documentation
+
+ #18622: [patch] Remove reference to "priorityjumping" configuration option
+ in extensions.conf.sample
+ Revision: 302416
+ Reporter: kshumard
+ Coders: kshumard
+
+ Category: Features
+
+ #18395: C should not receive request call again after C cancel if B blind
+ transfer using atxfer call C
+ Revision: 302173
+ Reporter: shihchuan
+ Testers: rmudgett
+ Coders: rmudgett
+
+ Category: Features/Parking
+
+ #17946: [patch] Minor fixes to multiparking
+ Revision: 307227
+ Reporter: bluecrow76
+ Coders: bluecrow76
+
+ Category: Formats/format_wav
+
+ #16610: [patch] [OpenSolaris] wav format produces garbage files
+ Revision: 304096
+ Reporter: bklang
+ Testers: bklang, asgaroth, efutch
+ Coders: crjw
+
+ Category: Functions/func_odbc
+
+ #18795: [patch] func_odbc insertsql option may not work
+ Revision: 307836
+ Reporter: irroot
+ Testers: tilghman
+ Coders: tilghman
+
+ Category: General
+
+ #18042: [patch] inefficient strlen() in ast_uri_decode loop
+ Revision: 302554
+ Reporter: wdoekes
+ Coders: wdoekes
+
+ #18456: [patch] Asterisk HTTP response contains wrong Content-type
+ Revision: 305082
+ Reporter: alexo
+ Testers: alexo
+ Coders: alexo
+
+ Category: Resources/res_agi
+
+ #16032: [patch] AGI returns bogus "510 Invalid or unknown command"
+ Revision: 302548
+ Reporter: notahat
+ Coders: fnordian
+
+ Category: Resources/res_config_ldap
+
+ #18435: [patch] Memory leak in res_config_ldap when using realtime
+ Revision: 304865
+ Reporter: zaltar
+ Coders: zaltar
+
+ Category: Resources/res_features
+
+ #17096: C keeps ringing when hanging A and B after blind transfer using
+ atxfer
+ Revision: 302173
+ Reporter: gelo
+ Testers: rmudgett
+ Coders: rmudgett
+
+ #18262: [patch] No MOH When Call Parked
+ Revision: 303106
+ Reporter: francesco_r
+ Testers: francesco_r, rfrantik, one47
+ Coders: cjacobsen
+
+ Category: Resources/res_musiconhold
+
+ #18457: [patch] moh reload leaks file descriptors to dahdi timing channel
+ Revision: 305472
+ Reporter: mcallist
+ Testers: qwell, loloski
+ Coders: qwell
+
+ ----------------------------------------------------------------------
+
+ Commits Not Associated with an Issue
+
+ [Back to Top]
+
+ This is a list of all changes that went into this release that did not
+ directly close an issue from the issue tracker. The commits may have been
+ marked as being related to an issue. If that is the case, the issue
+ numbers are listed here, as well.
+
+ +------------------------------------------------------------------------+
+ | Revision | Author | Summary | Issues |
+ | | | | Referenced |
+ |----------+------------+-----------------------------------+------------|
+ | 302049 | twilson | Only offer codecs both sides | |
+ | | | support for directmedia | |
+ |----------+------------+-----------------------------------+------------|
+ | 302313 | mnicholson | URI encode the user part of the | |
+ | | | contact header. | |
+ |----------+------------+-----------------------------------+------------|
+ | | | Handle 'Resource temporarily | |
+ | 302461 | pabelanger | unavailable' error more | |
+ | | | gracefully. | |
+ |----------+------------+-----------------------------------+------------|
+ | 302675 | tilghman | Add some API documentation | |
+ |----------+------------+-----------------------------------+------------|
+ | 302788 | russell | Turn a noisy verbose message into | |
+ | | | a debug message. | |
+ |----------+------------+-----------------------------------+------------|
+ | 302920 | russell | Resolve a compiler warning. | |
+ |----------+------------+-----------------------------------+------------|
+ | | | Add new queue strategy to | |
+ | 303008 | jpeeler | preserve behavior for when queue | |
+ | | | members moved to ao2. | |
+ |----------+------------+-----------------------------------+------------|
+ | 303273 | lmadsen | Fix changes to L() flag in | #18264 |
+ | | | Dial(). | |
+ |----------+------------+-----------------------------------+------------|
+ | 303285 | qwell | Reset configuration before | |
+ | | | parsing users.conf. | |
+ |----------+------------+-----------------------------------+------------|
+ | 303960 | twilson | Guard against retransmitting BYEs | |
+ | | | indefinitely | |
+ |----------+------------+-----------------------------------+------------|
+ | 304006 | rmudgett | DTMF attended transfers sometimes | |
+ | | | fail for no apparent reason. | |
+ |----------+------------+-----------------------------------+------------|
+ | | | Update documentation for | |
+ | 304149 | rmudgett | DAHDISendCallreroutingFacility() | |
+ | | | application. | |
+ |----------+------------+-----------------------------------+------------|
+ | 304181 | seanbright | Make sure the sample queues.conf | |
+ | | | is properly commented. | |
+ |----------+------------+-----------------------------------+------------|
+ | | | This patch modifies chan_sip to | |
+ | | | route responses to the address | |
+ | 304244 | mnicholson | the request came from. It also | |
+ | | | modifies chan_sip to respect the | |
+ | | | maddr parameter in the Via | |
+ | | | header. | |
+ |----------+------------+-----------------------------------+------------|
+ | | | Convert from network to host byte | |
+ | 304249 | mnicholson | ordering before checking if an IP | |
+ | | | is a multicast address. | |
+ |----------+------------+-----------------------------------+------------|
+ | 304250 | mmichelson | Get rid of unused 'verbose' field | |
+ | | | in ast_udptl | |
+ |----------+------------+-----------------------------------+------------|
+ | | | Change delimiter used internally | |
+ | 304338 | jpeeler | for GOTO_ON_BLINDXFR to commas to | |
+ | | | match 76703. | |
+ |----------+------------+-----------------------------------+------------|
+ | | | Rerun bootstrap.sh with no | |
+ | 304461 | qwell | changes, so that it is more | |
+ | | | obvious what my next commit | |
+ | | | changes. | |
+ |----------+------------+-----------------------------------+------------|
+ | 304465 | qwell | Fix default prefix=/usr | #17013 |
+ | | | regression on non-Linux systems. | |
+ |----------+------------+-----------------------------------+------------|
+ | | | Don't leak references if we can't | |
+ | 304659 | seanbright | create a pseudo channel for | |
+ | | | mixing in MeetMe. | |
+ |----------+------------+-----------------------------------+------------|
+ | 304682 | seanbright | Revert part of the previous | |
+ | | | commit that snuck in. | |
+ |----------+------------+-----------------------------------+------------|
+ | 304978 | tilghman | Fix compilation when ODBC_STORAGE | |
+ | | | is defined. | |
+ |----------+------------+-----------------------------------+------------|
+ | | | Set file descriptors to -1 on | |
+ | 305130 | qwell | creation, so that we don't see | |
+ | | | weirdness later. | |
+ |----------+------------+-----------------------------------+------------|
+ | 305342 | rmudgett | Obtain the pri lock for PRI queue | |
+ | | | counters. | |
+ |----------+------------+-----------------------------------+------------|
+ | 305648 | lathama | SIP Configuration Documentation | |
+ |----------+------------+-----------------------------------+------------|
+ | 305752 | lathama | Replace link to old doc with new | |
+ | | | wiki page. | |
+ |----------+------------+-----------------------------------+------------|
+ | 305889 | rmudgett | Minor AST_FRAME_TEXT related | |
+ | | | issues. | |
+ |----------+------------+-----------------------------------+------------|
+ | 305985 | lathama | res_phoneprov add snom 300, 320, | #18713 |
+ | | | 360, 370, 820, 821, 870 support | |
+ |----------+------------+-----------------------------------+------------|
+ | | | Set exception on channel in | |
+ | 306123 | jpeeler | parking thread when POLLPRI event | |
+ | | | detected. | |
+ |----------+------------+-----------------------------------+------------|
+ | 306126 | twilson | Set hangup cause in local_hangup | |
+ |----------+------------+-----------------------------------+------------|
+ | 306618 | twilson | Don't allow a REFER w/replaces to | |
+ | | | replace its own dialog | |
+ |----------+------------+-----------------------------------+------------|
+ | 306673 | twilson | Don't try to pickup a call in the | |
+ | | | middle of a masquerade | |
+ |----------+------------+-----------------------------------+------------|
+ | | | make this safer and fully | |
+ | 306865 | jpeeler | correct, pointed out by Steve | |
+ | | | Davis | |
+ |----------+------------+-----------------------------------+------------|
+ | 306966 | jpeeler | fix this line again | |
+ |----------+------------+-----------------------------------+------------|
+ | 306973 | twilson | Fix comparison for REFER Replaces | |
+ | | | tags with pedantic=yes | |
+ |----------+------------+-----------------------------------+------------|
+ | 307535 | qwell | Remove color when executing | #18776 |
+ | | | commands via a remote console. | |
+ |----------+------------+-----------------------------------+------------|
+ | | | Reentrancy problem if outgoing | |
+ | 307624 | rmudgett | call gets different B channel | |
+ | | | than requested. | |
+ |----------+------------+-----------------------------------+------------|
+ | | | Increment usage count at first | |
+ | 307792 | tilghman | reference, to avoid a race | #18156 |
+ | | | condition with many threads | |
+ | | | creating connections all at once. | |
+ |----------+------------+-----------------------------------+------------|
+ | 308329 | lathama | Add CSS MIME Type | |
+ |----------+------------+-----------------------------------+------------|
+ | | | Properly check the bounds of | |
+ | | | arrays when decoding UDPTL | |
+ | 308414 | mnicholson | packets. Also, remove broken | |
+ | | | support for receiving UDPTL | |
+ | | | packets larger than 16k. That | |
+ | | | shouldn't ever happen anyway. | |
+ |----------+------------+-----------------------------------+------------|
+ | 308528 | lathama | Add HTTP URI log, use ast_debug | |
+ | | | for console logging | |
+ |----------+------------+-----------------------------------+------------|
+ | 315200 | lmadsen | Create Asterisk 1.6.2.18 from | |
+ | | | 1.6.2.18-rc1 | |
+ |----------+------------+-----------------------------------+------------|
+ | | | Update .version, ChangeLog, merge | |
+ | 315201 | lmadsen | changes from AST-2011-005 and | |
+ | | | AST-2011-006 | |
+ +------------------------------------------------------------------------+
+
+ ----------------------------------------------------------------------
+
+ Diffstat Results
+
+ [Back to Top]
+
+ This is a summary of the changes to the source code that went into this
+ release that was generated using the diffstat utility.
+
+ .version | 2
+ ChangeLog | 6
+ apps/app_dial.c | 4
+ apps/app_meetme.c | 40 +
+ apps/app_privacy.c | 2
+ apps/app_queue.c | 14
+ apps/app_sendtext.c | 2
+ apps/app_voicemail.c | 54 ++
+ asterisk-1.6.2.18-rc1-summary.html | 428 ------------------
+ asterisk-1.6.2.18-rc1-summary.txt | 549 ------------------------
+ channels/chan_dahdi.c | 548 +++++++++++++++++-------
+ channels/chan_local.c | 1
+ channels/chan_sip.c | 419 +++++++++++++++++-
+ channels/chan_skinny.c | 78 +++
+ configs/extensions.conf.sample | 8
+ configs/http.conf.sample | 5
+ configs/manager.conf.sample | 11
+ configs/phoneprov.conf.sample | 3
+ configs/queues.conf.sample | 2
+ configs/sip.conf.sample | 13
+ configs/skinny.conf.sample | 9
+ configure.ac | 4
+ funcs/func_odbc.c | 5
+ include/asterisk/astdb.h | 27 -
+ include/asterisk/channel.h | 23 +
+ main/app.c | 53 ++
+ main/asterisk.c | 2
+ main/channel.c | 40 +
+ main/features.c | 841 +++++++++++++++++++++++++------------
+ main/file.c | 10
+ main/http.c | 30 +
+ main/manager.c | 121 ++++-
+ main/pbx.c | 174 ++++---
+ main/udptl.c | 53 --
+ main/utils.c | 4
+ phoneprov/snom-mac.xml | 24 +
+ res/res_agi.c | 4
+ res/res_config_ldap.c | 6
+ res/res_musiconhold.c | 7
+ res/res_odbc.c | 11
+ res/res_timing_timerfd.c | 2
+ 41 files changed, 2002 insertions(+), 1637 deletions(-)
+
+ ----------------------------------------------------------------------
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/channels/chan_dahdi.c
^
|
@@ -48,7 +48,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 299533 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 307624 $")
#if defined(__NetBSD__) || defined(__FreeBSD__)
#include <pthread.h>
@@ -122,7 +122,7 @@
</application>
<application name="DAHDISendCallreroutingFacility" language="en_US">
<synopsis>
- Send QSIG call rerouting facility over a PRI.
+ Send an ISDN call rerouting/deflection facility message.
</synopsis>
<syntax argsep=",">
<parameter name="destination" required="true">
@@ -136,8 +136,9 @@
</parameter>
</syntax>
<description>
- <para>This application will send a Callrerouting Facility IE over the
- current channel.</para>
+ <para>This application will send an ISDN switch specific call
+ rerouting/deflection facility message over the current channel.
+ Supported switches depend upon the version of libpri in use.</para>
</description>
</application>
<application name="DAHDIAcceptR2Call" language="en_US">
@@ -505,6 +506,22 @@
#define PRI_SPAN(p) (((p) >> 8) & 0xff)
#define PRI_EXPLICIT(p) (((p) >> 16) & 0x01)
+/*! Call establishment life cycle level for simple comparisons. */
+enum dahdi_call_level {
+ /*! Call does not exist. */
+ DAHDI_CALL_LEVEL_IDLE,
+ /*! Call is present but has no response yet. (SETUP) */
+ DAHDI_CALL_LEVEL_SETUP,
+ /*! Call is collecting digits for overlap dialing. (SETUP ACKNOWLEDGE) */
+ DAHDI_CALL_LEVEL_OVERLAP,
+ /*! Call routing is happening. (PROCEEDING) */
+ DAHDI_CALL_LEVEL_PROCEEDING,
+ /*! Called party is being alerted of the call. (ALERTING) */
+ DAHDI_CALL_LEVEL_ALERTING,
+ /*! Call is connected/answered. (CONNECT) */
+ DAHDI_CALL_LEVEL_CONNECT,
+};
+
struct dahdi_pri {
pthread_t master; /*!< Thread of master */
ast_mutex_t lock; /*!< Mutex */
@@ -918,14 +935,17 @@
* \note Applies to SS7 channels.
*/
unsigned int remotelyblocked:1;
+ /*!
+ * \brief TRUE if SMDI (Simplified Message Desk Interface) is enabled
+ * \note Set from the "usesmdi" value read in from chan_dahdi.conf
+ */
+ unsigned int use_smdi:1;
#if defined(HAVE_PRI) || defined(HAVE_SS7)
/*!
* \brief XXX BOOLEAN Purpose???
* \note Applies to SS7 channels.
*/
unsigned int rlt:1;
- /*! \brief TRUE if channel is alerting/ringing */
- unsigned int alerting:1;
/*! \brief TRUE if the call has already gone/hungup */
unsigned int alreadyhungup:1;
/*!
@@ -933,29 +953,17 @@
* \note Applies to PRI channels.
*/
unsigned int isidlecall:1;
- /*!
- * \brief TRUE if call is in a proceeding state.
- * The call has started working its way through the network.
- */
- unsigned int proceeding:1;
- /*! \brief TRUE if the call has seen progress through the network. */
+ /*! \brief TRUE if the call has seen inband-information progress through the network. */
unsigned int progress:1;
/*!
* \brief TRUE if this channel is being reset/restarted
* \note Applies to PRI channels.
*/
unsigned int resetting:1;
- /*!
- * \brief TRUE if this channel has received a SETUP_ACKNOWLEDGE
- * \note Applies to PRI channels.
- */
- unsigned int setup_ack:1;
+
+ /*! Call establishment life cycle level for simple comparisons. */
+ enum dahdi_call_level call_level;
#endif
- /*!
- * \brief TRUE if SMDI (Simplified Message Desk Interface) is enabled
- * \note Set from the "usesmdi" value read in from chan_dahdi.conf
- */
- unsigned int use_smdi:1;
struct mwisend_info mwisend_data;
/*! \brief The serial port to listen for SMDI data on */
struct ast_smdi_interface *smdi_iface;
@@ -2298,21 +2306,37 @@
#ifdef HAVE_PRI
if (((pvt->sig == SIG_PRI) || (pvt->sig == SIG_BRI) || (pvt->sig == SIG_BRI_PTMP))
- && (chan->_state == AST_STATE_DIALING) && !pvt->proceeding) {
- if (pvt->setup_ack) {
+ && chan->_state == AST_STATE_DIALING) {
+ if (pvt->call_level < DAHDI_CALL_LEVEL_OVERLAP) {
+ unsigned int len;
+
+ len = strlen(pvt->dialdest);
+ if (len < sizeof(pvt->dialdest) - 1) {
+ ast_debug(1, "Queueing digit '%c' since setup_ack not yet received\n",
+ digit);
+ pvt->dialdest[len++] = digit;
+ pvt->dialdest[len] = '\0';
+ } else {
+ ast_log(LOG_WARNING,
+ "Span %d: Deferred digit buffer overflow for digit '%c'.\n",
+ pvt->span, digit);
+ }
+ goto out;
+ }
+ if (pvt->call_level < DAHDI_CALL_LEVEL_PROCEEDING) {
if (!pri_grab(pvt, pvt->pri)) {
pri_information(pvt->pri->pri, pvt->call, digit);
pri_rel(pvt->pri);
- } else
+ } else {
ast_log(LOG_WARNING, "Unable to grab PRI on span %d\n", pvt->span);
- } else if (strlen(pvt->dialdest) < sizeof(pvt->dialdest) - 1) {
- int res;
- ast_debug(1, "Queueing digit '%c' since setup_ack not yet received\n", digit);
- res = strlen(pvt->dialdest);
- pvt->dialdest[res++] = digit;
- pvt->dialdest[res] = '\0';
+ }
+ goto out;
+ }
+ if (pvt->call_level < DAHDI_CALL_LEVEL_CONNECT) {
+ ast_log(LOG_WARNING,
+ "Span %d: Digit '%c' may be ignored by peer. (Call level:%d)\n",
+ pvt->span, digit, pvt->call_level);
}
- goto out;
}
#endif
if ((dtmf = digit_to_dtmfindex(digit)) == -1)
@@ -3582,6 +3606,7 @@
ast_channel_unlock(ast);
+ p->call_level = DAHDI_CALL_LEVEL_SETUP;
isup_iam(p->ss7->ss7, p->ss7call);
ast_setstate(ast, AST_STATE_DIALING);
ss7_rel(p->ss7);
@@ -3897,11 +3922,14 @@
if (pri_setup(p->pri->pri, p->call, sr)) {
ast_log(LOG_WARNING, "Unable to setup call to %s (using %s)\n",
c + p->stripmsd + dp_strip, dialplan2str(p->pri->dialplan));
+ pri_destroycall(p->pri->pri, p->call);
+ p->call = NULL;
pri_rel(p->pri);
ast_mutex_unlock(&p->lock);
pri_sr_free(sr);
return -1;
}
+ p->call_level = DAHDI_CALL_LEVEL_SETUP;
pri_sr_free(sr);
ast_setstate(ast, AST_STATE_DIALING);
pri_rel(p->pri);
@@ -4570,12 +4598,10 @@
p->pulsedial = 0;
p->onhooktime = time(NULL);
#if defined(HAVE_PRI) || defined(HAVE_SS7)
- p->proceeding = 0;
p->dialing = 0;
p->progress = 0;
- p->alerting = 0;
- p->setup_ack = 0;
p->rlt = 0;
+ p->call_level = DAHDI_CALL_LEVEL_IDLE;
#endif
if (p->dsp) {
ast_dsp_free(p->dsp);
@@ -4879,7 +4905,9 @@
case SIG_PRI:
/* Send a pri acknowledge */
if (!pri_grab(p, p->pri)) {
- p->proceeding = 1;
+ if (p->call_level < DAHDI_CALL_LEVEL_CONNECT) {
+ p->call_level = DAHDI_CALL_LEVEL_CONNECT;
+ }
p->dialing = 0;
res = pri_answer(p->pri->pri, p->call, 0, !p->digital);
pri_rel(p->pri);
@@ -4892,7 +4920,9 @@
#ifdef HAVE_SS7
case SIG_SS7:
if (!ss7_grab(p, p->ss7)) {
- p->proceeding = 1;
+ if (p->call_level < DAHDI_CALL_LEVEL_CONNECT) {
+ p->call_level = DAHDI_CALL_LEVEL_CONNECT;
+ }
res = isup_anm(p->ss7->ss7, p->ss7call);
ss7_rel(p->ss7);
} else {
@@ -5966,7 +5996,10 @@
p->pulsedial = (res & DAHDI_EVENT_PULSEDIGIT) ? 1 : 0;
ast_debug(1, "Detected %sdigit '%c'\n", p->pulsedial ? "pulse ": "", res & 0xff);
#if defined(HAVE_PRI)
- if (!p->proceeding && ((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP)) && p->pri && (p->pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING)) {
+ if (((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP))
+ && p->call_level < DAHDI_CALL_LEVEL_PROCEEDING
+ && p->pri
+ && (p->pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING)) {
/* absorb event */
} else
#endif /* defined(HAVE_PRI) */
@@ -5983,7 +6016,10 @@
if (res & DAHDI_EVENT_DTMFDOWN) {
ast_debug(1, "DTMF Down '%c'\n", res & 0xff);
#if defined(HAVE_PRI)
- if (!p->proceeding && ((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP)) && p->pri && (p->pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING)) {
+ if (((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP))
+ && p->call_level < DAHDI_CALL_LEVEL_PROCEEDING
+ && p->pri
+ && (p->pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING)) {
/* absorb event */
} else
#endif /* defined(HAVE_PRI) */
@@ -7309,9 +7345,11 @@
} else if (f->frametype == AST_FRAME_DTMF_BEGIN
|| f->frametype == AST_FRAME_DTMF_END) {
#ifdef HAVE_PRI
- if (!p->proceeding && ((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP)) && p->pri &&
- ((!p->outgoing && (p->pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING)) ||
- (p->outgoing && (p->pri->overlapdial & DAHDI_OVERLAPDIAL_OUTGOING)))) {
+ if (((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP))
+ && p->call_level < DAHDI_CALL_LEVEL_PROCEEDING
+ && p->pri
+ && ((!p->outgoing && (p->pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING))
+ || (p->outgoing && (p->pri->overlapdial & DAHDI_OVERLAPDIAL_OUTGOING)))) {
/* Don't accept in-band DTMF when in overlap dial mode */
ast_debug(1, "Absorbing inband %s DTMF digit: 0x%02X '%c' on %s\n",
f->frametype == AST_FRAME_DTMF_BEGIN ? "begin" : "end",
@@ -7422,22 +7460,6 @@
return -1;
}
-#if 0
-#ifdef HAVE_PRI
- ast_mutex_lock(&p->lock);
- if (!p->proceeding && p->sig==SIG_PRI && p->pri && !p->outgoing) {
- if (p->pri->pri) {
- if (!pri_grab(p, p->pri)) {
- pri_progress(p->pri->pri,p->call, PVT_TO_CHANNEL(p), !p->digital);
- pri_rel(p->pri);
- } else
- ast_log(LOG_WARNING, "Unable to grab PRI on span %d\n", p->span);
- }
- p->proceeding=1;
- }
- ast_mutex_unlock(&p->lock);
-#endif
-#endif
/* Write a frame of (presumably voice) data */
if (frame->frametype != AST_FRAME_VOICE) {
if (frame->frametype != AST_FRAME_IMAGE)
@@ -7513,57 +7535,60 @@
switch (condition) {
case AST_CONTROL_BUSY:
#ifdef HAVE_PRI
- if (p->priindication_oob && ((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP))) {
- chan->hangupcause = AST_CAUSE_USER_BUSY;
- chan->_softhangup |= AST_SOFTHANGUP_DEV;
- res = 0;
- } else if (!p->progress &&
- ((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP))
- && p->pri && !p->outgoing) {
- if (p->pri->pri) {
- if (!pri_grab(p, p->pri)) {
+ if ((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP)) {
+ if (p->priindication_oob) {
+ chan->hangupcause = AST_CAUSE_USER_BUSY;
+ chan->_softhangup |= AST_SOFTHANGUP_DEV;
+ res = 0;
+ break;
+ }
+ res = tone_zone_play_tone(p->subs[idx].dfd, DAHDI_TONE_BUSY);
+ if (p->call_level < DAHDI_CALL_LEVEL_ALERTING && !p->outgoing) {
+ chan->hangupcause = AST_CAUSE_USER_BUSY;
+ p->progress = 1;/* No need to send plain PROGRESS after this. */
+ if (p->pri && p->pri->pri) {
+ if (!pri_grab(p, p->pri)) {
#ifdef HAVE_PRI_PROG_W_CAUSE
- pri_progress_with_cause(p->pri->pri,p->call, PVT_TO_CHANNEL(p), 1, PRI_CAUSE_USER_BUSY); /* cause = 17 */
+ pri_progress_with_cause(p->pri->pri, p->call, PVT_TO_CHANNEL(p), 1, chan->hangupcause);
#else
- pri_progress(p->pri->pri,p->call, PVT_TO_CHANNEL(p), 1);
+ pri_progress(p->pri->pri,p->call, PVT_TO_CHANNEL(p), 1);
#endif
- pri_rel(p->pri);
+ pri_rel(p->pri);
+ } else {
+ ast_log(LOG_WARNING, "Unable to grab PRI on span %d\n", p->span);
+ }
}
- else
- ast_log(LOG_WARNING, "Unable to grab PRI on span %d\n", p->span);
}
- p->progress = 1;
- res = tone_zone_play_tone(p->subs[idx].dfd, DAHDI_TONE_BUSY);
- } else
+ break;
+ }
#endif
- res = tone_zone_play_tone(p->subs[idx].dfd, DAHDI_TONE_BUSY);
+ res = tone_zone_play_tone(p->subs[idx].dfd, DAHDI_TONE_BUSY);
break;
case AST_CONTROL_RINGING:
#ifdef HAVE_PRI
- if ((!p->alerting) && ((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP))
- && p->pri && !p->outgoing && (chan->_state != AST_STATE_UP)) {
- if (p->pri->pri) {
+ if (((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP))
+ && p->call_level < DAHDI_CALL_LEVEL_ALERTING && !p->outgoing) {
+ p->call_level = DAHDI_CALL_LEVEL_ALERTING;
+ if (p->pri && p->pri->pri) {
if (!pri_grab(p, p->pri)) {
pri_acknowledge(p->pri->pri,p->call, PVT_TO_CHANNEL(p), !p->digital);
pri_rel(p->pri);
- }
- else
+ } else {
ast_log(LOG_WARNING, "Unable to grab PRI on span %d\n", p->span);
+ }
}
- p->alerting = 1;
}
-
#endif
#ifdef HAVE_SS7
- if ((!p->alerting) && (p->sig == SIG_SS7) && p->ss7 && !p->outgoing && (chan->_state != AST_STATE_UP)) {
- if (p->ss7->ss7) {
+ if (p->sig == SIG_SS7
+ && p->call_level < DAHDI_CALL_LEVEL_ALERTING && !p->outgoing) {
+ p->call_level = DAHDI_CALL_LEVEL_ALERTING;
+ if (p->ss7 && p->ss7->ss7) {
ss7_grab(p, p->ss7);
-
if ((isup_far(p->ss7->ss7, p->ss7call)) != -1)
p->rlt = 1;
if (p->rlt != 1) /* No need to send CPG if call will be RELEASE */
isup_cpg(p->ss7->ss7, p->ss7call, CPG_EVENT_ALERTING);
- p->alerting = 1;
ss7_rel(p->ss7);
}
}
@@ -7582,34 +7607,35 @@
case AST_CONTROL_PROCEEDING:
ast_debug(1,"Received AST_CONTROL_PROCEEDING on %s\n",chan->name);
#ifdef HAVE_PRI
- if (!p->proceeding && ((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP))
- && p->pri && !p->outgoing) {
- if (p->pri->pri) {
+ if (((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP))
+ && p->call_level < DAHDI_CALL_LEVEL_PROCEEDING && !p->outgoing) {
+ p->call_level = DAHDI_CALL_LEVEL_PROCEEDING;
+ if (p->pri && p->pri->pri) {
if (!pri_grab(p, p->pri)) {
pri_proceeding(p->pri->pri,p->call, PVT_TO_CHANNEL(p), !p->digital);
pri_rel(p->pri);
- }
- else
+ } else {
ast_log(LOG_WARNING, "Unable to grab PRI on span %d\n", p->span);
+ }
}
- p->proceeding = 1;
p->dialing = 0;
}
#endif
#ifdef HAVE_SS7
- /* This IF sends the FAR for an answered ALEG call */
- if (chan->_state == AST_STATE_UP && (p->rlt != 1) && (p->sig == SIG_SS7)){
- if ((isup_far(p->ss7->ss7, p->ss7call)) != -1)
- p->rlt = 1;
- }
-
- if (!p->proceeding && p->sig == SIG_SS7 && p->ss7 && !p->outgoing) {
- if (p->ss7->ss7) {
- ss7_grab(p, p->ss7);
- isup_acm(p->ss7->ss7, p->ss7call);
- p->proceeding = 1;
- ss7_rel(p->ss7);
+ if (p->sig == SIG_SS7) {
+ /* This IF sends the FAR for an answered ALEG call */
+ if (chan->_state == AST_STATE_UP && (p->rlt != 1)){
+ if ((isup_far(p->ss7->ss7, p->ss7call)) != -1)
+ p->rlt = 1;
+ }
+ if (p->call_level < DAHDI_CALL_LEVEL_PROCEEDING && !p->outgoing) {
+ p->call_level = DAHDI_CALL_LEVEL_PROCEEDING;
+ if (p->ss7 && p->ss7->ss7) {
+ ss7_grab(p, p->ss7);
+ isup_acm(p->ss7->ss7, p->ss7call);
+ ss7_rel(p->ss7);
+ }
}
}
#endif
@@ -7620,9 +7646,11 @@
ast_debug(1,"Received AST_CONTROL_PROGRESS on %s\n",chan->name);
#ifdef HAVE_PRI
p->digital = 0; /* Digital-only calls isn't allows any inband progress messages */
- if (!p->progress && !p->alerting && ((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP))
- && p->pri && !p->outgoing) {
- if (p->pri->pri) {
+ if (((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP))
+ && !p->progress && p->call_level < DAHDI_CALL_LEVEL_ALERTING
+ && !p->outgoing) {
+ p->progress = 1;/* No need to send plain PROGRESS again. */
+ if (p->pri && p->pri->pri) {
if (!pri_grab(p, p->pri)) {
#ifdef HAVE_PRI_PROG_W_CAUSE
pri_progress_with_cause(p->pri->pri,p->call, PVT_TO_CHANNEL(p), 1, -1); /* no cause at all */
@@ -7630,23 +7658,23 @@
pri_progress(p->pri->pri,p->call, PVT_TO_CHANNEL(p), 1);
#endif
pri_rel(p->pri);
- }
- else
+ } else {
ast_log(LOG_WARNING, "Unable to grab PRI on span %d\n", p->span);
+ }
}
- p->progress = 1;
}
#endif
#ifdef HAVE_SS7
- if (!p->progress && p->sig==SIG_SS7 && p->ss7 && !p->outgoing) {
- if (p->ss7->ss7) {
+ if (p->sig == SIG_SS7
+ && !p->progress && p->call_level < DAHDI_CALL_LEVEL_ALERTING
+ && !p->outgoing) {
+ p->progress = 1;/* No need to send inband-information progress again. */
+ if (p->ss7 && p->ss7->ss7) {
ss7_grab(p, p->ss7);
isup_cpg(p->ss7->ss7, p->ss7call, CPG_EVENT_INBANDINFO);
- p->progress = 1;
ss7_rel(p->ss7);
/* enable echo canceler here on SS7 calls */
dahdi_enable_ec(p);
-
}
}
#endif
@@ -7654,30 +7682,66 @@
res = 0;
break;
case AST_CONTROL_CONGESTION:
- chan->hangupcause = AST_CAUSE_CONGESTION;
#ifdef HAVE_PRI
- if (p->priindication_oob && ((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP))) {
- chan->hangupcause = AST_CAUSE_SWITCH_CONGESTION;
- chan->_softhangup |= AST_SOFTHANGUP_DEV;
- res = 0;
- } else if (!p->progress && ((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP))
- && p->pri && !p->outgoing) {
- if (p->pri) {
- if (!pri_grab(p, p->pri)) {
+ if ((p->sig == SIG_PRI) || (p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP)) {
+ if (p->priindication_oob) {
+ /* There are many cause codes that generate an AST_CONTROL_CONGESTION. */
+ switch (chan->hangupcause) {
+ case AST_CAUSE_USER_BUSY:
+ case AST_CAUSE_NORMAL_CLEARING:
+ case 0:/* Cause has not been set. */
+ /* Supply a more appropriate cause. */
+ chan->hangupcause = AST_CAUSE_SWITCH_CONGESTION;
+ break;
+ default:
+ break;
+ }
+ chan->_softhangup |= AST_SOFTHANGUP_DEV;
+ res = 0;
+ break;
+ }
+ res = tone_zone_play_tone(p->subs[idx].dfd, DAHDI_TONE_CONGESTION);
+ if (p->call_level < DAHDI_CALL_LEVEL_ALERTING && !p->outgoing) {
+ /* There are many cause codes that generate an AST_CONTROL_CONGESTION. */
+ switch (chan->hangupcause) {
+ case AST_CAUSE_USER_BUSY:
+ case AST_CAUSE_NORMAL_CLEARING:
+ case 0:/* Cause has not been set. */
+ /* Supply a more appropriate cause. */
+ chan->hangupcause = AST_CAUSE_SWITCH_CONGESTION;
+ break;
+ default:
+ break;
+ }
+ p->progress = 1;/* No need to send plain PROGRESS after this. */
+ if (p->pri && p->pri->pri) {
+ if (!pri_grab(p, p->pri)) {
#ifdef HAVE_PRI_PROG_W_CAUSE
- pri_progress_with_cause(p->pri->pri,p->call, PVT_TO_CHANNEL(p), 1, PRI_CAUSE_SWITCH_CONGESTION); /* cause = 42 */
+ pri_progress_with_cause(p->pri->pri, p->call, PVT_TO_CHANNEL(p), 1, chan->hangupcause);
#else
- pri_progress(p->pri->pri,p->call, PVT_TO_CHANNEL(p), 1);
+ pri_progress(p->pri->pri,p->call, PVT_TO_CHANNEL(p), 1);
#endif
- pri_rel(p->pri);
- } else
- ast_log(LOG_WARNING, "Unable to grab PRI on span %d\n", p->span);
+ pri_rel(p->pri);
+ } else {
+ ast_log(LOG_WARNING, "Unable to grab PRI on span %d\n", p->span);
+ }
+ }
}
- p->progress = 1;
- res = tone_zone_play_tone(p->subs[idx].dfd, DAHDI_TONE_CONGESTION);
- } else
+ break;
+ }
#endif
- res = tone_zone_play_tone(p->subs[idx].dfd, DAHDI_TONE_CONGESTION);
+ /* There are many cause codes that generate an AST_CONTROL_CONGESTION. */
+ switch (chan->hangupcause) {
+ case AST_CAUSE_USER_BUSY:
+ case AST_CAUSE_NORMAL_CLEARING:
+ case 0:/* Cause has not been set. */
+ /* Supply a more appropriate cause. */
+ chan->hangupcause = AST_CAUSE_CONGESTION;
+ break;
+ default:
+ break;
+ }
+ res = tone_zone_play_tone(p->subs[idx].dfd, DAHDI_TONE_CONGESTION);
break;
case AST_CONTROL_HOLD:
#ifdef HAVE_PRI
@@ -8085,12 +8149,28 @@
if (p->dsp) {
ast_dsp_digitreset(p->dsp);
}
- if (p->pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING) {
+#if defined(ISSUE_16789)
+ /*
+ * Conditionaled out this code to effectively revert the Mantis
+ * issue 16789 change. It breaks overlap dialing through
+ * Asterisk. There is not enough information available at this
+ * point to know if dialing is complete. The
+ * ast_exists_extension(), ast_matchmore_extension(), and
+ * ast_canmatch_extension() calls are not adequate to detect a
+ * dial through extension pattern of "_9!".
+ *
+ * Workaround is to use the dialplan Proceeding() application
+ * early on non-dial through extensions.
+ */
+ if ((p->pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING)
+ && !ast_matchmore_extension(chan, chan->context, exten, 1, p->cid_num)) {
ast_mutex_lock(&p->lock);
- if (p->pri->pri) {
+ if (p->pri->pri) {
if (!pri_grab(p, p->pri)) {
+ if (p->call_level < DAHDI_CALL_LEVEL_PROCEEDING) {
+ p->call_level = DAHDI_CALL_LEVEL_PROCEEDING;
+ }
pri_proceeding(p->pri->pri, p->call, PVT_TO_CHANNEL(p), 0);
- p->proceeding = 1;
pri_rel(p->pri);
} else {
ast_log(LOG_WARNING, "Unable to grab PRI on span %d\n", p->span);
@@ -8098,6 +8178,8 @@
}
ast_mutex_unlock(&p->lock);
}
+#endif /* defined(ISSUE_16789) */
+
dahdi_enable_ec(p);
ast_setstate(chan, AST_STATE_RING);
res = ast_pbx_run(chan);
@@ -11618,17 +11700,19 @@
ast_log(LOG_WARNING, "Unable to set law on channel %d\n", p->channel);
if (!(linkset->flags & LINKSET_FLAG_EXPLICITACM)) {
- p->proceeding = 1;
+ p->call_level = DAHDI_CALL_LEVEL_PROCEEDING;
isup_acm(ss7, p->ss7call);
+ } else {
+ p->call_level = DAHDI_CALL_LEVEL_SETUP;
}
ast_mutex_unlock(&linkset->lock);
c = dahdi_new(p, AST_STATE_RING, 1, SUB_REAL, law, 0);
-
if (!c) {
ast_log(LOG_WARNING, "Unable to start PBX on CIC %d\n", p->cic);
/* Holding this lock is assumed entering the function */
ast_mutex_lock(&linkset->lock);
+ p->call_level = DAHDI_CALL_LEVEL_IDLE;
return;
} else
ast_verb(3, "Accepting call to '%s' on CIC %d\n", p->exten, p->cic);
@@ -11883,7 +11967,9 @@
ast_mutex_lock(&p->lock);
switch (e->cpg.event) {
case CPG_EVENT_ALERTING:
- p->alerting = 1;
+ if (p->call_level < DAHDI_CALL_LEVEL_ALERTING) {
+ p->call_level = DAHDI_CALL_LEVEL_ALERTING;
+ }
p->subs[SUB_REAL].needringing = 1;
break;
case CPG_EVENT_PROGRESS:
@@ -12123,11 +12209,15 @@
ast_mutex_lock(&p->lock);
dahdi_queue_frame(p, &f, linkset);
- p->proceeding = 1;
+ if (p->call_level < DAHDI_CALL_LEVEL_PROCEEDING) {
+ p->call_level = DAHDI_CALL_LEVEL_PROCEEDING;
+ }
p->dialing = 0;
/* Send alerting if subscriber is free */
if (e->acm.called_party_status_ind == 1) {
- p->alerting = 1;
+ if (p->call_level < DAHDI_CALL_LEVEL_ALERTING) {
+ p->call_level = DAHDI_CALL_LEVEL_ALERTING;
+ }
p->subs[SUB_REAL].needringing = 1;
}
ast_mutex_unlock(&p->lock);
@@ -12231,6 +12321,9 @@
} else {
p = linkset->pvts[chanpos];
ast_mutex_lock(&p->lock);
+ if (p->call_level < DAHDI_CALL_LEVEL_CONNECT) {
+ p->call_level = DAHDI_CALL_LEVEL_CONNECT;
+ }
p->subs[SUB_REAL].needanswer = 1;
if (p->dsp && p->dsp_features) {
ast_dsp_set_features(p->dsp, p->dsp_features);
@@ -12409,6 +12502,51 @@
#endif /* defined(HAVE_PRI) */
#if defined(HAVE_PRI)
+/*!
+ * \internal
+ * \brief Obtain the DAHDI owner channel lock if the owner exists.
+ * \since 1.8
+ *
+ * \param pri DAHDI PRI control structure.
+ * \param chanpos Channel position in the span.
+ *
+ * \note Assumes the pri->lock is already obtained.
+ * \note Assumes the pri->pvts[chanpos]->lock is already obtained.
+ *
+ * \return Nothing
+ */
+static void sig_pri_lock_owner(struct dahdi_pri *pri, int chanpos)
+{
+ for (;;) {
+ if (!pri->pvts[chanpos]->owner) {
+ /* There is no owner lock to get. */
+ break;
+ }
+ if (!ast_channel_trylock(pri->pvts[chanpos]->owner)) {
+ /* We got the lock */
+ break;
+ }
+ /* We must unlock the PRI to avoid the possibility of a deadlock */
+ ast_mutex_unlock(&pri->lock);
+ DEADLOCK_AVOIDANCE(&pri->pvts[chanpos]->lock);
+ ast_mutex_lock(&pri->lock);
+ }
+}
+#endif /* defined(HAVE_PRI) */
+
+#if defined(HAVE_PRI)
+/*!
+ * \internal
+ * \brief Find the private structure for the libpri call.
+ *
+ * \param pri Span controller structure.
+ * \param channel LibPRI encoded channel ID.
+ *
+ * \note Assumes the pri->lock is already obtained.
+ *
+ * \retval array-index into private pointer array on success.
+ * \retval -1 on error.
+ */
static int pri_find_principle(struct dahdi_pri *pri, int channel)
{
int x;
@@ -12439,6 +12577,19 @@
#endif /* defined(HAVE_PRI) */
#if defined(HAVE_PRI)
+/*!
+ * \internal
+ * \brief Fixup the private structure associated with the libpri call.
+ *
+ * \param pri Span controller structure.
+ * \param principle Array-index into private array to move call to if not already there.
+ * \param c LibPRI opaque call pointer to find if need to move call.
+ *
+ * \note Assumes the pri->lock is already obtained.
+ *
+ * \retval principle on success.
+ * \retval -1 on error.
+ */
static int pri_fixup_principle(struct dahdi_pri *pri, int principle, q931_call *c)
{
int x;
@@ -12462,13 +12613,27 @@
if (principle != x) {
struct dahdi_pvt *new = pri->pvts[principle], *old = pri->pvts[x];
- ast_verb(3, "Moving call from channel %d to channel %d\n",
- old->channel, new->channel);
+ /* Get locks to safely move to the new private structure. */
+ ast_mutex_lock(&old->lock);
+ sig_pri_lock_owner(pri, x);
+ ast_mutex_lock(&new->lock);
+
+ ast_verb(3, "Moving call (%s) from channel %d to %d.\n",
+ old->owner ? old->owner->name : "",
+ old->channel, new->channel);
if (new->owner) {
- ast_log(LOG_WARNING, "Can't fix up channel from %d to %d because %d is already in use\n",
- old->channel, new->channel, new->channel);
+ ast_log(LOG_WARNING,
+ "Can't move call (%s) from channel %d to %d. It is already in use.\n",
+ old->owner ? old->owner->name : "",
+ old->channel, new->channel);
+ ast_mutex_unlock(&new->lock);
+ if (old->owner) {
+ ast_channel_unlock(old->owner);
+ }
+ ast_mutex_unlock(&old->lock);
return -1;
}
+
/* Fix it all up now */
new->owner = old->owner;
old->owner = NULL;
@@ -12490,6 +12655,28 @@
new->dsp_features = old->dsp_features;
old->dsp = NULL;
old->dsp_features = 0;
+
+ /* Transfer flags from the old channel. */
+ new->alreadyhungup = old->alreadyhungup;
+ new->isidlecall = old->isidlecall;
+ new->progress = old->progress;
+ new->outgoing = old->outgoing;
+ new->digital = old->digital;
+ old->alreadyhungup = 0;
+ old->isidlecall = 0;
+ old->progress = 0;
+ old->outgoing = 0;
+ old->digital = 0;
+
+ /* More stuff to transfer to the new channel. */
+ new->call_level = old->call_level;
+ old->call_level = DAHDI_CALL_LEVEL_IDLE;
+
+ ast_mutex_unlock(&old->lock);
+ if (new->owner) {
+ ast_channel_unlock(new->owner);
+ }
+ ast_mutex_unlock(&new->lock);
}
return principle;
}
@@ -13266,13 +13453,14 @@
ast_log(LOG_WARNING, "Unable to set gains on channel %d\n", pri->pvts[chanpos]->channel);
if (e->ring.complete || !(pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING)) {
/* Just announce proceeding */
- pri->pvts[chanpos]->proceeding = 1;
+ pri->pvts[chanpos]->call_level = DAHDI_CALL_LEVEL_PROCEEDING;
pri_proceeding(pri->pri, e->ring.call, PVT_TO_CHANNEL(pri->pvts[chanpos]), 0);
+ } else if (pri->switchtype == PRI_SWITCH_GR303_TMC) {
+ pri->pvts[chanpos]->call_level = DAHDI_CALL_LEVEL_CONNECT;
+ pri_answer(pri->pri, e->ring.call, PVT_TO_CHANNEL(pri->pvts[chanpos]), 1);
} else {
- if (pri->switchtype != PRI_SWITCH_GR303_TMC)
- pri_need_more_info(pri->pri, e->ring.call, PVT_TO_CHANNEL(pri->pvts[chanpos]), 1);
- else
- pri_answer(pri->pri, e->ring.call, PVT_TO_CHANNEL(pri->pvts[chanpos]), 1);
+ pri->pvts[chanpos]->call_level = DAHDI_CALL_LEVEL_OVERLAP;
+ pri_need_more_info(pri->pri, e->ring.call, PVT_TO_CHANNEL(pri->pvts[chanpos]), 1);
}
/* Get the use_callingpres state */
pri->pvts[chanpos]->callingpres = e->ring.callingpres;
@@ -13316,6 +13504,21 @@
pbx_builtin_setvar_helper(c, "CALLEDTON", calledtonstr);
if (e->ring.redirectingreason >= 0)
pbx_builtin_setvar_helper(c, "PRIREDIRECTREASON", redirectingreason2str(e->ring.redirectingreason));
+
+ if (!pri->pvts[chanpos]->digital) {
+ /*
+ * Call has a channel.
+ * Indicate that we are providing dialtone.
+ */
+ pri->pvts[chanpos]->progress = 1;/* No need to send plain PROGRESS again. */
+#ifdef HAVE_PRI_PROG_W_CAUSE
+ pri_progress_with_cause(pri->pri, e->ring.call,
+ PVT_TO_CHANNEL(pri->pvts[chanpos]), 1, -1);/* no cause at all */
+#else
+ pri_progress(pri->pri, e->ring.call,
+ PVT_TO_CHANNEL(pri->pvts[chanpos]), 1);
+#endif
+ }
}
if (c && !ast_pthread_create_detached(&threadid, NULL, ss_thread, c)) {
ast_verb(3, "Accepting overlap call from '%s' to '%s' on channel %d/%d, span %d\n",
@@ -13419,7 +13622,9 @@
if (ast_strlen_zero(pri->pvts[chanpos]->dop.dialstr)) {
dahdi_enable_ec(pri->pvts[chanpos]);
pri->pvts[chanpos]->subs[SUB_REAL].needringing = 1;
- pri->pvts[chanpos]->alerting = 1;
+ if (pri->pvts[chanpos]->call_level < DAHDI_CALL_LEVEL_ALERTING) {
+ pri->pvts[chanpos]->call_level = DAHDI_CALL_LEVEL_ALERTING;
+ }
} else
ast_debug(1, "Deferring ringing notification because of extra digits to dial...\n");
@@ -13507,10 +13712,11 @@
case PRI_EVENT_PROCEEDING:
chanpos = pri_find_principle(pri, e->proceeding.channel);
if (chanpos > -1) {
- if (!pri->pvts[chanpos]->proceeding) {
+ ast_mutex_lock(&pri->pvts[chanpos]->lock);
+ if (pri->pvts[chanpos]->call_level < DAHDI_CALL_LEVEL_PROCEEDING) {
struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_PROCEEDING, };
- ast_mutex_lock(&pri->pvts[chanpos]->lock);
+ pri->pvts[chanpos]->call_level = DAHDI_CALL_LEVEL_PROCEEDING;
ast_debug(1, "Queuing frame from PRI_EVENT_PROCEEDING on channel %d/%d span %d\n",
pri->pvts[chanpos]->logicalspan, pri->pvts[chanpos]->prioffset,pri->span);
dahdi_queue_frame(pri->pvts[chanpos], &f, pri);
@@ -13530,10 +13736,9 @@
f.subclass = AST_CONTROL_PROGRESS;
dahdi_queue_frame(pri->pvts[chanpos], &f, pri);
}
- pri->pvts[chanpos]->proceeding = 1;
pri->pvts[chanpos]->dialing = 0;
- ast_mutex_unlock(&pri->pvts[chanpos]->lock);
}
+ ast_mutex_unlock(&pri->pvts[chanpos]->lock);
}
break;
case PRI_EVENT_FACNAME:
@@ -13602,7 +13807,9 @@
ast_debug(1, "Waiting on answer confirmation on channel %d!\n", pri->pvts[chanpos]->channel);
} else {
pri->pvts[chanpos]->dialing = 0;
- pri->pvts[chanpos]->proceeding = 1;
+ if (pri->pvts[chanpos]->call_level < DAHDI_CALL_LEVEL_CONNECT) {
+ pri->pvts[chanpos]->call_level = DAHDI_CALL_LEVEL_CONNECT;
+ }
pri->pvts[chanpos]->subs[SUB_REAL].needanswer =1;
/* Enable echo cancellation if it's not on already */
dahdi_enable_ec(pri->pvts[chanpos]);
@@ -13871,14 +14078,37 @@
} else {
chanpos = pri_fixup_principle(pri, chanpos, e->setup_ack.call);
if (chanpos > -1) {
+ unsigned int len;
+
ast_mutex_lock(&pri->pvts[chanpos]->lock);
- pri->pvts[chanpos]->setup_ack = 1;
+ if (pri->pvts[chanpos]->call_level < DAHDI_CALL_LEVEL_OVERLAP) {
+ pri->pvts[chanpos]->call_level = DAHDI_CALL_LEVEL_OVERLAP;
+ }
+
/* Send any queued digits */
- for (x = 0;x < strlen(pri->pvts[chanpos]->dialdest); x++) {
+ len = strlen(pri->pvts[chanpos]->dialdest);
+ for (x = 0; x < len; ++x) {
ast_debug(1, "Sending pending digit '%c'\n", pri->pvts[chanpos]->dialdest[x]);
pri_information(pri->pri, pri->pvts[chanpos]->call,
pri->pvts[chanpos]->dialdest[x]);
}
+
+ if (!pri->pvts[chanpos]->progress
+ && (pri->overlapdial & DAHDI_OVERLAPDIAL_OUTGOING)
+ && !pri->pvts[chanpos]->digital) {
+ /*
+ * Call has a channel.
+ * Indicate for overlap dialing that dialtone may be present.
+ */
+ struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_PROGRESS, };
+ dahdi_queue_frame(pri->pvts[chanpos], &f, pri);
+ pri->pvts[chanpos]->progress = 1;/* Claim to have seen inband-information */
+ pri->pvts[chanpos]->dialing = 0;
+ if (pri->pvts[chanpos]->dsp && pri->pvts[chanpos]->dsp_features) {
+ ast_dsp_set_features(pri->pvts[chanpos]->dsp, pri->pvts[chanpos]->dsp_features);
+ pri->pvts[chanpos]->dsp_features = 0;
+ }
+ }
ast_mutex_unlock(&pri->pvts[chanpos]->lock);
} else
ast_log(LOG_WARNING, "Unable to move channel %d!\n", e->setup_ack.channel);
@@ -14243,6 +14473,7 @@
ast_cli(a->fd, "%s D-channel: %d\n", pri_order(x), pris[span-1].dchannels[x]);
build_status(status, sizeof(status), pris[span-1].dchanavail[x], pris[span-1].dchans[x] == pris[span-1].pri);
ast_cli(a->fd, "Status: %s\n", status);
+ ast_mutex_lock(&pris[span - 1].lock);
#ifdef PRI_DUMP_INFO_STR
info_str = pri_dump_info_str(pris[span-1].pri);
if (info_str) {
@@ -14252,6 +14483,7 @@
#else
pri_dump_info(pris[span-1].pri);
#endif
+ ast_mutex_unlock(&pris[span - 1].lock);
ast_cli(a->fd, "Overlap Recv: %s\n\n", (pris[span-1].overlapdial & DAHDI_OVERLAPDIAL_INCOMING)?"Yes":"No");
}
}
@@ -17593,6 +17825,8 @@
if (ucfg) {
const char *chans;
+ /* Reset conf back to defaults, so values from chan_dahdi.conf don't leak in. */
+ base_conf = dahdi_chan_conf_default();
process_dahdi(&base_conf, "", ast_variable_browse(ucfg, "general"), 1, 0);
for (cat = ast_category_browse(ucfg, NULL); cat ; cat = ast_category_browse(ucfg, cat)) {
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/channels/chan_local.c
^
|
@@ -27,7 +27,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 299625 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 306126 $")
#include <fcntl.h>
#include <sys/signal.h>
@@ -760,6 +760,7 @@
ao2_lock(p);
}
if (p->owner) {
+ p->owner->hangupcause = p->chan->hangupcause;
pbx_builtin_setvar_helper(p->owner, "CHANLOCALSTATUS", status);
ast_channel_unlock(p->owner);
}
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/channels/chan_sip.c
^
|
@@ -207,7 +207,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 301682 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 315201 $")
#include <ctype.h>
#include <sys/ioctl.h>
@@ -500,6 +500,8 @@
#define DEFAULT_MWI_EXPIRY 3600
#define DEFAULT_REGISTRATION_TIMEOUT 20
#define DEFAULT_MAX_FORWARDS "70"
+#define DEFAULT_AUTHLIMIT 100
+#define DEFAULT_AUTHTIMEOUT 30
/* guard limit must be larger than guard secs */
/* guard min must be < 1000, and should be >= 250 */
@@ -552,6 +554,10 @@
#define SDP_MAX_RTPMAP_CODECS 32 /*!< Maximum number of codecs allowed in received SDP */
+static int unauth_sessions = 0;
+static int authlimit = DEFAULT_AUTHLIMIT;
+static int authtimeout = DEFAULT_AUTHTIMEOUT;
+
/*! \brief Global jitterbuffer configuration - by default, jb is disabled */
static struct ast_jb_conf default_jbconf =
{
@@ -1205,6 +1211,7 @@
char debug; /*!< print extra debugging if non zero */
char has_to_tag; /*!< non-zero if packet has To: tag */
char ignore; /*!< if non-zero This is a re-transmit, ignore it */
+ char authenticated; /*!< non-zero if this request was authenticated */
/* Array of offsets into the request string of each SIP header*/
ptrdiff_t header[SIP_MAX_HEADERS];
/* Array of offsets into the request string of each SDP line*/
@@ -1253,6 +1260,17 @@
char hop[0];
};
+/*! \brief Structure to store Via information */
+struct sip_via {
+ char *via;
+ const char *protocol;
+ const char *sent_by;
+ const char *branch;
+ const char *maddr;
+ unsigned int port;
+ unsigned char ttl;
+};
+
/*! \brief Modes for SIP domain handling in the PBX */
enum domain_mode {
SIP_DOMAIN_AUTO, /*!< This domain is auto-configured */
@@ -2552,6 +2570,8 @@
static int get_destination(struct sip_pvt *p, struct sip_request *oreq);
static int get_msg_text(char *buf, int len, struct sip_request *req, int addnewline);
static int transmit_state_notify(struct sip_pvt *p, int state, int full, int timeout);
+static struct sip_via *parse_via(const char *header);
+static void free_via(struct sip_via *v);
/*-- TCP connection handling ---*/
static void *_sip_tcp_helper_thread(struct sip_pvt *pvt, struct ast_tcptls_session_instance *tcptls_session);
@@ -2900,21 +2920,48 @@
return _sip_tcp_helper_thread(NULL, tcptls_session);
}
+/*! \brief Check if the authtimeout has expired.
+ * \param start the time when the session started
+ *
+ * \retval 0 the timeout has expired
+ * \retval -1 error
+ * \return the number of milliseconds until the timeout will expire
+ */
+static int sip_check_authtimeout(time_t start)
+{
+ int timeout;
+ time_t now;
+ if(time(&now) == -1) {
+ ast_log(LOG_ERROR, "error executing time(): %s\n", strerror(errno));
+ return -1;
+ }
+
+ timeout = (authtimeout - (now - start)) * 1000;
+ if (timeout < 0) {
+ /* we have timed out */
+ return 0;
+ }
+
+ return timeout;
+}
+
/*! \brief SIP TCP thread management function
This function reads from the socket, parses the packet into a request
*/
static void *_sip_tcp_helper_thread(struct sip_pvt *pvt, struct ast_tcptls_session_instance *tcptls_session)
{
- int res, cl;
+ int res, cl, timeout = -1, authenticated = 0, flags;
+ time_t start;
struct sip_request req = { 0, } , reqcpy = { 0, };
struct sip_threadinfo *me = NULL;
char buf[1024] = "";
struct pollfd fds[2] = { { 0 }, { 0 }, };
struct ast_tcptls_session_args *ca = NULL;
- /* If this is a server session, then the connection has already been setup,
- * simply create the threadinfo object so we can access this thread for writing.
- *
+ /* If this is a server session, then the connection has already been
+ * setup. Check if the authlimit has been reached and if not create the
+ * threadinfo object so we can access this thread for writing.
+ *
* if this is a client connection more work must be done.
* 1. We own the parent session args for a client connection. This pointer needs
* to be held on to so we can decrement it's ref count on thread destruction.
@@ -2923,6 +2970,22 @@
* 3. Last, the tcptls_session must be started.
*/
if (!tcptls_session->client) {
+ if (ast_atomic_fetchadd_int(&unauth_sessions, +1) >= authlimit) {
+ /* unauth_sessions is decremented in the cleanup code */
+ goto cleanup;
+ }
+
+ if ((flags = fcntl(tcptls_session->fd, F_GETFL)) == -1) {
+ ast_log(LOG_ERROR, "error setting socket to non blocking mode, fcntl() failed: %s\n", strerror(errno));
+ goto cleanup;
+ }
+
+ flags |= O_NONBLOCK;
+ if (fcntl(tcptls_session->fd, F_SETFL, flags) == -1) {
+ ast_log(LOG_ERROR, "error setting socket to non blocking mode, fcntl() failed: %s\n", strerror(errno));
+ goto cleanup;
+ }
+
if (!(me = sip_threadinfo_create(tcptls_session, tcptls_session->ssl ? SIP_TRANSPORT_TLS : SIP_TRANSPORT_TCP))) {
goto cleanup;
}
@@ -2952,14 +3015,41 @@
if (!(reqcpy.data = ast_str_create(SIP_MIN_PACKET)))
goto cleanup;
+ if(time(&start) == -1) {
+ ast_log(LOG_ERROR, "error executing time(): %s\n", strerror(errno));
+ goto cleanup;
+ }
+
for (;;) {
struct ast_str *str_save;
- res = ast_poll(fds, 2, -1); /* polls for both socket and alert_pipe */
+ if (!tcptls_session->client && req.authenticated && !authenticated) {
+ authenticated = 1;
+ ast_atomic_fetchadd_int(&unauth_sessions, -1);
+ }
+ /* calculate the timeout for unauthenticated server sessions */
+ if (!tcptls_session->client && !authenticated ) {
+ if ((timeout = sip_check_authtimeout(start)) < 0) {
+ goto cleanup;
+ }
+
+ if (timeout == 0) {
+ ast_debug(2, "SIP %s server timed out\n", tcptls_session->ssl ? "SSL": "TCP");
+ goto cleanup;
+ }
+ } else {
+ timeout = -1;
+ }
+
+ res = ast_poll(fds, 2, timeout); /* polls for both socket and alert_pipe */
if (res < 0) {
ast_debug(2, "SIP %s server :: ast_wait_for_input returned %d\n", tcptls_session->ssl ? "SSL": "TCP", res);
goto cleanup;
+ } else if (res == 0) {
+ /* timeout */
+ ast_debug(2, "SIP %s server timed out\n", tcptls_session->ssl ? "SSL": "TCP");
+ goto cleanup;
}
/* handle the socket event, check for both reads from the socket fd,
@@ -2992,6 +3082,29 @@
/* Read in headers one line at a time */
while (req.len < 4 || strncmp(REQ_OFFSET_TO_STR(&req, len - 4), "\r\n\r\n", 4)) {
+ if (!tcptls_session->client && !authenticated ) {
+ if ((timeout = sip_check_authtimeout(start)) < 0) {
+ goto cleanup;
+ }
+
+ if (timeout == 0) {
+ ast_debug(2, "SIP %s server timed out\n", tcptls_session->ssl ? "SSL": "TCP");
+ goto cleanup;
+ }
+ } else {
+ timeout = -1;
+ }
+
+ res = ast_wait_for_input(tcptls_session->fd, timeout);
+ if (res < 0) {
+ ast_debug(2, "SIP %s server :: ast_wait_for_input returned %d\n", tcptls_session->ssl ? "SSL": "TCP", res);
+ goto cleanup;
+ } else if (res == 0) {
+ /* timeout */
+ ast_debug(2, "SIP %s server timed out\n", tcptls_session->ssl ? "SSL": "TCP");
+ goto cleanup;
+ }
+
ast_mutex_lock(&tcptls_session->lock);
if (!fgets(buf, sizeof(buf), tcptls_session->f)) {
ast_mutex_unlock(&tcptls_session->lock);
@@ -3009,6 +3122,29 @@
if (sscanf(get_header(&reqcpy, "Content-Length"), "%30d", &cl)) {
while (cl > 0) {
size_t bytes_read;
+ if (!tcptls_session->client && !authenticated ) {
+ if ((timeout = sip_check_authtimeout(start)) < 0) {
+ goto cleanup;
+ }
+
+ if (timeout == 0) {
+ ast_debug(2, "SIP %s server timed out", tcptls_session->ssl ? "SSL": "TCP");
+ goto cleanup;
+ }
+ } else {
+ timeout = -1;
+ }
+
+ res = ast_wait_for_input(tcptls_session->fd, timeout);
+ if (res < 0) {
+ ast_debug(2, "SIP %s server :: ast_wait_for_input returned %d\n", tcptls_session->ssl ? "SSL": "TCP", res);
+ goto cleanup;
+ } else if (res == 0) {
+ /* timeout */
+ ast_debug(2, "SIP %s server timed out", tcptls_session->ssl ? "SSL": "TCP");
+ goto cleanup;
+ }
+
ast_mutex_lock(&tcptls_session->lock);
if (!(bytes_read = fread(buf, 1, MIN(sizeof(buf) - 1, cl), tcptls_session->f))) {
ast_mutex_unlock(&tcptls_session->lock);
@@ -3066,6 +3202,10 @@
ast_debug(2, "Shutting down thread for %s server\n", tcptls_session->ssl ? "SSL" : "TCP");
cleanup:
+ if (!tcptls_session->client && !authenticated) {
+ ast_atomic_fetchadd_int(&unauth_sessions, -1);
+ }
+
if (me) {
ao2_t_unlink(threadt, me, "Removing tcptls helper thread, thread is closing");
ao2_t_ref(me, -1, "Removing tcp_helper_threads threadinfo ref");
@@ -3825,11 +3965,11 @@
/* Too many retries */
if (pkt->owner && pkt->method != SIP_OPTIONS && xmitres == 0) {
if (pkt->is_fatal || sipdebug) /* Tell us if it's critical or if we're debugging */
- ast_log(LOG_WARNING, "Maximum retries exceeded on transmission %s for seqno %d (%s %s) -- See doc/sip-retransmit.txt.\n",
+ ast_log(LOG_WARNING, "Maximum retries exceeded on transmission %s for seqno %d (%s %s) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions \n",
pkt->owner->callid, pkt->seqno,
pkt->is_fatal ? "Critical" : "Non-critical", pkt->is_resp ? "Response" : "Request");
} else if (pkt->method == SIP_OPTIONS && sipdebug) {
- ast_log(LOG_WARNING, "Cancelling retransmit of OPTIONs (call id %s) -- See doc/sip-retransmit.txt.\n", pkt->owner->callid);
+ ast_log(LOG_WARNING, "Cancelling retransmit of OPTIONs (call id %s) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions \n", pkt->owner->callid);
}
if (xmitres == XMIT_ERROR) {
@@ -3852,7 +3992,7 @@
if (pkt->owner->owner) {
sip_alreadygone(pkt->owner);
- ast_log(LOG_WARNING, "Hanging up call %s - no reply to our critical packet (see doc/sip-retransmit.txt).\n", pkt->owner->callid);
+ ast_log(LOG_WARNING, "Hanging up call %s - no reply to our critical packet (see https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions ).\n", pkt->owner->callid);
ast_queue_hangup_with_cause(pkt->owner->owner, AST_CAUSE_PROTOCOL_ERROR);
ast_channel_unlock(pkt->owner->owner);
} else {
@@ -3869,6 +4009,7 @@
if (pkt->method == SIP_BYE) {
/* We're not getting answers on SIP BYE's. Tear down the call anyway. */
+ sip_alreadygone(pkt->owner);
if (pkt->owner->owner)
ast_channel_unlock(pkt->owner->owner);
append_history(pkt->owner, "ByeFailure", "Remote peer doesn't respond to bye. Destroying call anyway.");
@@ -7401,6 +7542,177 @@
return p;
}
+static void free_via(struct sip_via *v)
+{
+ if (!v) {
+ return;
+ }
+
+ if (v->via) {
+ ast_free(v->via);
+ }
+
+ ast_free(v);
+}
+
+/*!
+ * \brief Parse a Via header
+ *
+ * This function parses the Via header and processes it according to section
+ * 18.2 of RFC 3261 and RFC 3581. Since we don't have a transport layer, we
+ * only care about the maddr and ttl parms. The received and rport params are
+ * not parsed.
+ *
+ * \note This function fails to parse some odd combinations of SWS in parameter
+ * lists.
+ *
+ * \code
+ * VIA syntax. RFC 3261 section 25.1
+ * Via = ( "Via" / "v" ) HCOLON via-parm *(COMMA via-parm)
+ * via-parm = sent-protocol LWS sent-by *( SEMI via-params )
+ * via-params = via-ttl / via-maddr
+ * / via-received / via-branch
+ * / via-extension
+ * via-ttl = "ttl" EQUAL ttl
+ * via-maddr = "maddr" EQUAL host
+ * via-received = "received" EQUAL (IPv4address / IPv6address)
+ * via-branch = "branch" EQUAL token
+ * via-extension = generic-param
+ * sent-protocol = protocol-name SLASH protocol-version
+ * SLASH transport
+ * protocol-name = "SIP" / token
+ * protocol-version = token
+ * transport = "UDP" / "TCP" / "TLS" / "SCTP"
+ * / other-transport
+ * sent-by = host [ COLON port ]
+ * ttl = 1*3DIGIT ; 0 to 255
+ * \endcode
+ */
+static struct sip_via *parse_via(const char *header)
+{
+ struct sip_via *v = ast_calloc(1, sizeof(*v));
+ char *via, *parm;
+
+ if (!v) {
+ return NULL;
+ }
+
+ v->via = ast_strdup(header);
+ v->ttl = 1;
+
+ via = v->via;
+
+ if (ast_strlen_zero(via)) {
+ ast_log(LOG_ERROR, "received request without a Via header\n");
+ free_via(v);
+ return NULL;
+ }
+
+ /* seperate the first via-parm */
+ via = strsep(&via, ",");
+
+ /* chop off sent-protocol */
+ v->protocol = strsep(&via, " \t\r\n");
+ if (ast_strlen_zero(v->protocol)) {
+ ast_log(LOG_ERROR, "missing sent-protocol in Via header\n");
+ free_via(v);
+ return NULL;
+ }
+ v->protocol = ast_skip_blanks(v->protocol);
+
+ if (via) {
+ via = ast_skip_blanks(via);
+ }
+
+ /* chop off sent-by */
+ v->sent_by = strsep(&via, "; \t\r\n");
+ if (ast_strlen_zero(v->sent_by)) {
+ ast_log(LOG_ERROR, "missing sent-by in Via header\n");
+ free_via(v);
+ return NULL;
+ }
+ v->sent_by = ast_skip_blanks(v->sent_by);
+
+ /* store the port */
+ if ((parm = strchr(v->sent_by, ':'))) {
+ char *endptr;
+
+ v->port = strtol(++parm, &endptr, 10);
+ }
+
+ /* evaluate any via-parms */
+ while ((parm = strsep(&via, "; \t\r\n"))) {
+ char *c;
+ if ((c = strstr(parm, "maddr="))) {
+ v->maddr = ast_skip_blanks(c + sizeof("maddr=") - 1);
+ } else if ((c = strstr(parm, "branch="))) {
+ v->branch = ast_skip_blanks(c + sizeof("branch=") - 1);
+ } else if ((c = strstr(parm, "ttl="))) {
+ char *endptr;
+ c = ast_skip_blanks(c + sizeof("ttl=") - 1);
+ v->ttl = strtol(c, &endptr, 10);
+
+ /* make sure we got a valid ttl value */
+ if (c == endptr) {
+ v->ttl = 1;
+ }
+ }
+ }
+
+ return v;
+}
+
+/*!
+ * \brief Check if an ip is an multicast IP.
+ * \parm addr the address to check
+ *
+ * This function checks if an address is in the 224.0.0.0/4 network block.
+ * \return non-zero if this is a multicast address
+ */
+static int addr_is_multicast(struct in_addr *addr)
+{
+ return ((ntohl(addr->s_addr) & 0xf0000000) == 0xe0000000);
+}
+
+static int process_via(struct sip_pvt *p, const struct sip_request *req)
+{
+ struct sip_via *via = parse_via(get_header(req, "Via"));
+
+ if (!via) {
+ ast_log(LOG_ERROR, "error processing via header\n");
+ return -1;
+ }
+
+ if (via->maddr) {
+ struct hostent *hp;
+ struct ast_hostent ahp;
+
+ hp = ast_gethostbyname(via->maddr, &ahp);
+ if (hp == NULL) {
+ ast_log(LOG_WARNING, "Can't find address for maddr '%s'\n", via->maddr);
+ ast_log(LOG_ERROR, "error processing via header\n");
+ free_via(via);
+ return -1;
+ }
+
+ p->sa.sin_family = AF_INET;
+ memcpy(&p->sa.sin_addr, hp->h_addr, sizeof(p->sa.sin_addr));
+
+ if (via->port) {
+ p->sa.sin_port = via->port;
+ } else {
+ p->sa.sin_port = STANDARD_SIP_PORT;
+ }
+
+ if (addr_is_multicast(&p->sa.sin_addr)) {
+ setsockopt(sipsock, IPPROTO_IP, IP_MULTICAST_TTL, &via->ttl, sizeof(via->ttl));
+ }
+ }
+
+ free_via(via);
+ return 0;
+}
+
/*! \brief argument to the helper function to identify a call */
struct find_call_cb_arg {
enum sipmethod method;
@@ -9604,6 +9916,15 @@
ast_string_field_set(p, url, NULL);
}
+ /* default to routing the response to the address where the request
+ * came from. Since we don't have a transport layer, we do this here.
+ */
+ p->sa = p->recv;
+
+ if (process_via(p, req)) {
+ ast_log(LOG_WARNING, "error processing via header, will send response to originating address\n");
+ }
+
return 0;
}
@@ -10193,6 +10514,7 @@
static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p, int oldsdp, int add_audio, int add_t38)
{
int alreadysent = 0;
+ int doing_directmedia = FALSE;
struct sockaddr_in sin;
struct sockaddr_in vsin;
@@ -10254,6 +10576,7 @@
}
if (add_audio) {
+ doing_directmedia = (p->redirip.sin_addr.s_addr && p->redircodecs) ? TRUE : FALSE;
/* Check if we need video in this call */
if ((p->jointcapability & AST_FORMAT_VIDEO_MASK) && !p->novideo) {
if (p->vrtp) {
@@ -10284,6 +10607,16 @@
snprintf(connection, sizeof(connection), "c=IN IP4 %s\r\n", ast_inet_ntoa(dest.sin_addr));
if (add_audio) {
+ if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD) == SIP_PAGE2_CALL_ONHOLD_ONEDIR) {
+ hold = "a=recvonly\r\n";
+ doing_directmedia = FALSE;
+ } else if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD) == SIP_PAGE2_CALL_ONHOLD_INACTIVE) {
+ hold = "a=inactive\r\n";
+ doing_directmedia = FALSE;
+ } else {
+ hold = "a=sendrecv\r\n";
+ }
+
capability = p->jointcapability;
/* XXX note, Video and Text are negated - 'true' means 'no' */
@@ -10291,6 +10624,11 @@
p->novideo ? "True" : "False", p->notext ? "True" : "False");
ast_debug(1, "** Our prefcodec: %s \n", ast_getformatname_multiple(codecbuf, sizeof(codecbuf), p->prefcodec));
+ if (doing_directmedia) {
+ capability &= p->redircodecs;
+ ast_debug(1, "** Our native-bridge filtered capablity: %s\n", ast_getformatname_multiple(codecbuf, sizeof(codecbuf), capability));
+ }
+
/* Check if we need audio */
if (capability & AST_FORMAT_AUDIO_MASK)
needaudio = TRUE;
@@ -10336,13 +10674,6 @@
ast_str_append(&m_audio, 0, "m=audio %d RTP/AVP", ntohs(dest.sin_port));
- if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD) == SIP_PAGE2_CALL_ONHOLD_ONEDIR)
- hold = "a=recvonly\r\n";
- else if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD) == SIP_PAGE2_CALL_ONHOLD_INACTIVE)
- hold = "a=inactive\r\n";
- else
- hold = "a=sendrecv\r\n";
-
/* Now, start adding audio codecs. These are added in this order:
- First what was requested by the calling channel
- Then preferences in order from sip.conf device config for this peer/user
@@ -10726,19 +11057,21 @@
/*! \brief Build contact header - the contact header we send out */
static void build_contact(struct sip_pvt *p)
{
-
+ char tmp[SIPBUFSIZE];
+ char *user = ast_uri_encode(p->exten, tmp, sizeof(tmp), 1);
int ourport = ntohs(p->ourip.sin_port);
+
/* only add port if it's non-standard for the transport type */
if (!sip_standard_port(p->socket.type, ourport)) {
if (p->socket.type == SIP_TRANSPORT_UDP)
- ast_string_field_build(p, our_contact, "<sip:%s%s%s:%d>", p->exten, ast_strlen_zero(p->exten) ? "" : "@", ast_inet_ntoa(p->ourip.sin_addr), ourport);
+ ast_string_field_build(p, our_contact, "<sip:%s%s%s:%d>", user, ast_strlen_zero(user) ? "" : "@", ast_inet_ntoa(p->ourip.sin_addr), ourport);
else
- ast_string_field_build(p, our_contact, "<sip:%s%s%s:%d;transport=%s>", p->exten, ast_strlen_zero(p->exten) ? "" : "@", ast_inet_ntoa(p->ourip.sin_addr), ourport, get_transport(p->socket.type));
+ ast_string_field_build(p, our_contact, "<sip:%s%s%s:%d;transport=%s>", user, ast_strlen_zero(user) ? "" : "@", ast_inet_ntoa(p->ourip.sin_addr), ourport, get_transport(p->socket.type));
} else {
if (p->socket.type == SIP_TRANSPORT_UDP)
- ast_string_field_build(p, our_contact, "<sip:%s%s%s>", p->exten, ast_strlen_zero(p->exten) ? "" : "@", ast_inet_ntoa(p->ourip.sin_addr));
+ ast_string_field_build(p, our_contact, "<sip:%s%s%s>", user, ast_strlen_zero(user) ? "" : "@", ast_inet_ntoa(p->ourip.sin_addr));
else
- ast_string_field_build(p, our_contact, "<sip:%s%s%s;transport=%s>", p->exten, ast_strlen_zero(p->exten) ? "" : "@", ast_inet_ntoa(p->ourip.sin_addr), get_transport(p->socket.type));
+ ast_string_field_build(p, our_contact, "<sip:%s%s%s;transport=%s>", user, ast_strlen_zero(user) ? "" : "@", ast_inet_ntoa(p->ourip.sin_addr), get_transport(p->socket.type));
}
}
@@ -13839,7 +14172,15 @@
*to = '\0';
ast_copy_string(referdata->replaces_callid_fromtag, ptr, sizeof(referdata->replaces_callid_fromtag));
}
-
+
+ if (!strcmp(referdata->replaces_callid, transferer->callid) &&
+ (!sip_cfg.pedanticsipchecking ||
+ (!strcmp(referdata->replaces_callid_fromtag, transferer->theirtag) &&
+ !strcmp(referdata->replaces_callid_totag, transferer->tag)))) {
+ ast_log(LOG_WARNING, "Got an attempt to replace own Call-ID on %s\n", transferer->callid);
+ return -4;
+ }
+
if (!sip_cfg.pedanticsipchecking)
ast_debug(2, "Attended transfer: Will use Replace-Call-ID : %s (No check of from/to tags)\n", referdata->replaces_callid );
else
@@ -14504,7 +14845,7 @@
f.subclass = 0;
f.offset = 0;
f.data.ptr = buf;
- f.datalen = strlen(buf);
+ f.datalen = strlen(buf) + 1;
ast_queue_frame(p->owner, &f);
transmit_response(p, "202 Accepted", req); /* We respond 202 accepted, since we relay the message */
return;
@@ -15847,6 +16188,9 @@
}
ao2_unlock(user);
unref_peer(user, "complete sip user");
+ if (result) {
+ break;
+ }
}
ao2_iterator_destroy(&user_iter);
return result;
@@ -20254,6 +20598,8 @@
}
}
+ req->authenticated = 1;
+
/* We have a succesful authentication, process the SDP portion if there is one */
if (find_sdp(req)) {
if (process_sdp(p, req, SDP_T38_INITIATE)) {
@@ -21827,8 +22173,10 @@
get_header(req, "To"), ast_inet_ntoa(sin->sin_addr),
reason);
append_history(p, "RegRequest", "Failed : Account %s : %s", get_header(req, "To"), reason);
- } else
+ } else {
+ req->authenticated = 1;
append_history(p, "RegRequest", "Succeeded : Account %s", get_header(req, "To"));
+ }
if (res < 1) {
/* Destroy the session, but keep us around for just a bit in case they don't
@@ -22283,6 +22631,11 @@
}
p->recv = *sin;
+ /* if we have an owner, then this request has been authenticated */
+ if (p->owner) {
+ req->authenticated = 1;
+ }
+
if (p->do_history) /* This is a request or response, note what it was for */
append_history(p, "Rx", "%s / %s / %s", req->data->str, get_header(req, "CSeq"), REQ_OFFSET_TO_STR(req, rlPart2));
@@ -23402,6 +23755,12 @@
}
ast_debug(1, "Asked to create a SIP channel with formats: %s\n", ast_getformatname_multiple(tmp, sizeof(tmp), oldformat));
+ if (ast_strlen_zero(dest)) {
+ ast_log(LOG_ERROR, "Unable to create channel with empty destination.\n");
+ *cause = AST_CAUSE_CHANNEL_UNACCEPTABLE;
+ return NULL;
+ }
+
if (!(p = sip_alloc(NULL, NULL, 0, SIP_INVITE, NULL))) {
ast_log(LOG_ERROR, "Unable to build sip pvt data for '%s' (Out of memory or socket error)\n", dest);
*cause = AST_CAUSE_SWITCH_CONGESTION;
@@ -24839,6 +25198,8 @@
global_qualifyfreq = DEFAULT_QUALIFYFREQ;
global_t38_maxdatagram = -1;
global_shrinkcallerid = 1;
+ authlimit = DEFAULT_AUTHLIMIT;
+ authtimeout = DEFAULT_AUTHTIMEOUT;
sip_cfg.matchexterniplocally = DEFAULT_MATCHEXTERNIPLOCALLY;
@@ -25085,6 +25446,18 @@
mwi_expiry = atoi(v->value);
if (mwi_expiry < 1)
mwi_expiry = DEFAULT_MWI_EXPIRY;
+ } else if (!strcasecmp(v->name, "tcpauthtimeout")) {
+ if (ast_parse_arg(v->value, PARSE_INT32|PARSE_DEFAULT|PARSE_IN_RANGE,
+ &authtimeout, DEFAULT_AUTHTIMEOUT, 1, INT_MAX)) {
+ ast_log(LOG_WARNING, "Invalid %s '%s' at line %d of %s\n",
+ v->name, v->value, v->lineno, config);
+ }
+ } else if (!strcasecmp(v->name, "tcpauthlimit")) {
+ if (ast_parse_arg(v->value, PARSE_INT32|PARSE_DEFAULT|PARSE_IN_RANGE,
+ &authlimit, DEFAULT_AUTHLIMIT, 1, INT_MAX)) {
+ ast_log(LOG_WARNING, "Invalid %s '%s' at line %d of %s\n",
+ v->name, v->value, v->lineno, config);
+ }
} else if (!strcasecmp(v->name, "sipdebug")) {
if (ast_true(v->value))
sipdebug |= sip_debug_config;
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/channels/chan_skinny.c
^
|
@@ -28,7 +28,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 287642 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 315201 $")
#include <sys/socket.h>
#include <netinet/in.h>
@@ -100,6 +100,8 @@
#define DEFAULT_SKINNY_PORT 2000
#define DEFAULT_SKINNY_BACKLOG 2
#define SKINNY_MAX_PACKET 1000
+#define DEFAULT_AUTH_TIMEOUT 30
+#define DEFAULT_AUTH_LIMIT 50
static struct {
unsigned int tos;
@@ -111,6 +113,9 @@
} qos = { 0, 0, 0, 0, 0, 0 };
static int keep_alive = 120;
+static int auth_timeout = DEFAULT_AUTH_TIMEOUT;
+static int auth_limit = DEFAULT_AUTH_LIMIT;
+static int unauth_sessions = 0;
static char global_vmexten[AST_MAX_EXTENSION]; /* Voicemail pilot number */
static char used_context[AST_MAX_EXTENSION]; /* placeholder to check if context are already used in regcontext */
static char regcontext[AST_MAX_CONTEXT]; /* Context for auto-extension */
@@ -1307,6 +1312,7 @@
struct skinnysession {
pthread_t t;
ast_mutex_t lock;
+ time_t start;
struct sockaddr_in sin;
int fd;
char inbuf[SKINNY_MAX_PACKET];
@@ -4558,6 +4564,8 @@
return 0;
}
+ ast_atomic_fetchadd_int(&unauth_sessions, -1);
+
ast_verb(3, "Device '%s' successfully registered\n", name);
d = s->device;
@@ -6244,6 +6252,9 @@
if (s->fd > -1)
close(s->fd);
+ if (!s->device)
+ ast_atomic_fetchadd_int(&unauth_sessions, -1);
+
ast_mutex_destroy(&s->lock);
ast_free(s);
@@ -6259,13 +6270,30 @@
{
int res;
int dlen = 0;
+ int timeout = keep_alive * 1100;
+ time_t now;
int *bufaddr;
struct pollfd fds[1];
+ if (!s->device) {
+ if(time(&now) == -1) {
+ ast_log(LOG_ERROR, "error executing time(): %s\n", strerror(errno));
+ return -1;
+ }
+
+ timeout = (auth_timeout - (now - s->start)) * 1000;
+ if (timeout < 0) {
+ /* we have timed out */
+ if (skinnydebug)
+ ast_verb(1, "Skinny Client failed to authenticate in %d seconds\n", auth_timeout);
+ return -1;
+ }
+ }
+
fds[0].fd = s->fd;
fds[0].events = POLLIN;
fds[0].revents = 0;
- res = ast_poll(fds, 1, (keep_alive * 1100)); /* If nothing has happen, client is dead */
+ res = ast_poll(fds, 1, timeout); /* If nothing has happen, client is dead */
/* we add 10% to the keep_alive to deal */
/* with network delays, etc */
if (res < 0) {
@@ -6274,8 +6302,13 @@
return res;
}
} else if (res == 0) {
- if (skinnydebug)
- ast_verb(1, "Skinny Client was lost, unregistering\n");
+ if (skinnydebug) {
+ if (s->device) {
+ ast_verb(1, "Skinny Client was lost, unregistering\n");
+ } else {
+ ast_verb(1, "Skinny Client failed to authenticate in %d seconds\n", auth_timeout);
+ }
+ }
skinny_unregister(NULL, s);
return -1;
}
@@ -6408,18 +6441,35 @@
ast_log(LOG_NOTICE, "Accept returned -1: %s\n", strerror(errno));
continue;
}
+
+ if (ast_atomic_fetchadd_int(&unauth_sessions, +1) >= auth_limit) {
+ close(as);
+ ast_atomic_fetchadd_int(&unauth_sessions, -1);
+ continue;
+ }
+
p = getprotobyname("tcp");
if(p) {
if( setsockopt(as, p->p_proto, TCP_NODELAY, (char *)&arg, sizeof(arg) ) < 0 ) {
ast_log(LOG_WARNING, "Failed to set Skinny tcp connection to TCP_NODELAY mode: %s\n", strerror(errno));
}
}
- if (!(s = ast_calloc(1, sizeof(struct skinnysession))))
+ if (!(s = ast_calloc(1, sizeof(struct skinnysession)))) {
+ close(as);
+ ast_atomic_fetchadd_int(&unauth_sessions, -1);
continue;
+ }
memcpy(&s->sin, &sin, sizeof(sin));
ast_mutex_init(&s->lock);
s->fd = as;
+
+ if(time(&s->start) == -1) {
+ ast_log(LOG_ERROR, "error executing time(): %s; disconnecting client\n", strerror(errno));
+ destroy_session(s);
+ continue;
+ }
+
AST_LIST_LOCK(&sessions);
AST_LIST_INSERT_HEAD(&sessions, s, list);
AST_LIST_UNLOCK(&sessions);
@@ -6573,6 +6623,26 @@
} else if (!strcasecmp(v->name, "keepalive")) {
keep_alive = atoi(v->value);
continue;
+ } else if (!strcasecmp(v->name, "authtimeout")) {
+ int timeout = atoi(v->value);
+
+ if (timeout < 1) {
+ ast_log(LOG_WARNING, "Invalid authtimeout value '%s', using default value\n", v->value);
+ auth_timeout = DEFAULT_AUTH_TIMEOUT;
+ } else {
+ auth_timeout = timeout;
+ }
+ continue;
+ } else if (!strcasecmp(v->name, "authlimit")) {
+ int limit = atoi(v->value);
+
+ if (limit < 1) {
+ ast_log(LOG_WARNING, "Invalid authlimit value '%s', using default value\n", v->value);
+ auth_limit = DEFAULT_AUTH_LIMIT;
+ } else {
+ auth_limit = limit;
+ }
+ continue;
} else if (!strcasecmp(v->name, "regcontext")) {
ast_copy_string(newcontexts, v->value, sizeof(newcontexts));
stringp = newcontexts;
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/configs/extensions.conf.sample
^
|
@@ -88,14 +88,6 @@
;
clearglobalvars=no
;
-; If priorityjumping is set to 'yes', then applications that support
-; 'jumping' to a different priority based on the result of their operations
-; will do so (this is backwards compatible behavior with pre-1.2 releases
-; of Asterisk). Individual applications can also be requested to do this
-; by passing a 'j' option in their arguments.
-;
-;priorityjumping=yes
-;
; User context is where entries from users.conf are registered. The
; default value is 'default'
;
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/configs/http.conf.sample
^
|
@@ -32,6 +32,11 @@
;
;prefix=asterisk
;
+; sessionlimit specifies the maximum number of httpsessions that will be
+; allowed to exist at any given time. (default: 100)
+;
+;sessionlimit=100
+;
; Whether Asterisk should serve static content from http-static
; Default is no.
;
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/configs/manager.conf.sample
^
|
@@ -25,6 +25,17 @@
;webenabled = yes
port = 5038
+; authtimeout specifies the maximum number of seconds a client has to
+; authenticate. If the client does not authenticate beofre this timeout
+; expires, the client will be disconnected. (default: 30 seconds)
+
+;authtimeout = 30
+
+; authlimit specifies the maximum number of unauthenticated sessions that will
+; be allowed to connect at any given time.
+
+;authlimit = 50
+
;httptimeout = 60
; a) httptimeout sets the Max-Age of the http cookie
; b) httptimeout is the amount of time the webserver waits
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/configs/phoneprov.conf.sample
^
|
@@ -131,3 +131,6 @@
config/${MAC} => polycom.xml ; Dynamic Filename => template file
${MAC}-directory.xml => 000000000000-directory.xml
setvar => CUSTOM_CONFIG=/var/lib/asterisk/phoneprov/configs/custom.cfg ; Custom variable
+
+;snom 300, 320, 360, 370, 820, 821, 870 support
+snom-${MAC}.xml => snom-mac.xml
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/configs/queues.conf.sample
^
|
@@ -88,6 +88,8 @@
; fewestcalls - ring the one with fewest completed calls from this queue
; random - ring random interface
; rrmemory - round robin with memory, remember where we left off last ring pass
+; rrordered - same as rrmemory, except the queue member order from config file
+; is preserved
; linear - rings interfaces in the order specified in this configuration file.
; If you use dynamic members, the members will be rung in the order in
; which they were added
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/configs/sip.conf.sample
^
|
@@ -144,6 +144,16 @@
; A list of valid SSL cipher strings can be found at:
; http://www.openssl.org/docs/apps/ciphers.html#CIPHER_STRINGS
+;tcpauthtimeout = 30 ; tcpauthtimeout specifies the maximum number
+ ; of seconds a client has to authenticate. If
+ ; the client does not authenticate beofre this
+ ; timeout expires, the client will be
+ ; disconnected. (default: 30 seconds)
+
+;tcpauthlimit = 100 ; tcpauthlimit specifies the maximum number of
+ ; unauthenticated sessions that will be allowed
+ ; to connect at any given time. (default: 100)
+
srvlookup=yes ; Enable DNS SRV lookups on outbound calls
; Note: Asterisk only uses the first host
; in SRV records
@@ -176,7 +186,8 @@
;defaultexpiry=120 ; Default length of incoming/outgoing registration
;mwiexpiry=3600 ; Expiry time for outgoing MWI subscriptions
;qualifyfreq=60 ; Qualification: How often to check for the
- ; host to be up in seconds
+ ; host to be up in seconds. sip show settings reports in
+ ; milliseconds.
; Set to low value if you use low timeout for
; NAT of UDP sessions
;qualifygap=100 ; Number of milliseconds between each group of peers being qualified
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/configs/skinny.conf.sample
^
|
@@ -9,6 +9,15 @@
; Use M for month, D for day, Y for year, A for 12-hour time.
keepalive=120
+;authtimeout = 30 ; authtimeout specifies the maximum number of seconds a
+ ; client has to authenticate. If the client does not
+ ; authenticate beofre this timeout expires, the client
+ ; will be disconnected. (default: 30 seconds)
+
+;authlimit = 50 ; authlimit specifies the maximum number of
+ ; unauthenticated sessions that will be allowed to
+ ; connect at any given time. (default: 50)
+
;vmexten=8500 ; Systemwide voicemailmain pilot number
; It must be in the same context as the calling
; device/line
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/configure
^
|
@@ -1,14 +1,14 @@
#! /bin/sh
-# From configure.ac Revision: 298957 .
+# From configure.ac Revision: 301220 .
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.65 for asterisk 1.6.2.
+# Generated by GNU Autoconf 2.67 for asterisk 1.6.2.
#
# Report bugs to <https://issues.asterisk.org>.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+# Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -322,7 +322,7 @@
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
@@ -362,19 +362,19 @@
fi # as_fn_arith
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
+# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
- as_status=$?; test $as_status -eq 0 && as_status=1
- if test "$3"; then
- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $1" >&2
+ $as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -536,7 +536,7 @@
exec 6>&1
# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
@@ -598,8 +598,6 @@
#endif"
ac_default_prefix=/usr/local
-ac_default_prefix=/usr/local
-ac_default_prefix=/usr
ac_header_list=
ac_subst_vars='LTLIBOBJS
PBX_GENERIC_ODBC
@@ -1177,8 +1175,9 @@
fi
case $ac_option in
- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *) ac_optarg=yes ;;
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
esac
# Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1223,7 +1222,7 @@
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1249,7 +1248,7 @@
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1453,7 +1452,7 @@
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1469,7 +1468,7 @@
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1499,8 +1498,8 @@
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
- -*) as_fn_error "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information."
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
;;
*=*)
@@ -1508,7 +1507,7 @@
# Reject names that are not valid shell variable names.
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
@@ -1526,13 +1525,13 @@
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error "missing argument to $ac_option"
+ as_fn_error $? "missing argument to $ac_option"
fi
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
- fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
@@ -1555,7 +1554,7 @@
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
- as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: `$host'
@@ -1569,8 +1568,8 @@
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
- $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
+ $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used" >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
@@ -1585,9 +1584,9 @@
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error "working directory cannot be determined"
+ as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error "pwd does not report name of working directory"
+ as_fn_error $? "pwd does not report name of working directory"
# Find the source files, if location was not specified.
@@ -1626,11 +1625,11 @@
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1670,7 +1669,7 @@
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
+ -q, --quiet, --silent do not print \`checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
@@ -1887,9 +1886,9 @@
if $ac_init_version; then
cat <<\_ACEOF
asterisk configure 1.6.2
-generated by GNU Autoconf 2.65
+generated by GNU Autoconf 2.67
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
@@ -1961,7 +1960,7 @@
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } >/dev/null && {
+ test $ac_status = 0; } > conftest.i && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.err
}; then :
@@ -1985,10 +1984,10 @@
ac_fn_c_check_header_mongrel ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ if eval "test \"\${$3+set}\"" = set; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$3+set}\"" = set; then :
$as_echo_n "(cached) " >&6
fi
eval ac_res=\$$3
@@ -2024,7 +2023,7 @@
else
ac_header_preproc=no
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
$as_echo "$ac_header_preproc" >&6; }
@@ -2047,17 +2046,15 @@
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( cat <<\_ASBOX
-## ------------------------------------------ ##
+( $as_echo "## ------------------------------------------ ##
## Report this to https://issues.asterisk.org ##
-## ------------------------------------------ ##
-_ASBOX
+## ------------------------------------------ ##"
) | sed "s/^/$as_me: WARNING: /" >&2
;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$3+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
eval "$3=\$ac_header_compiler"
@@ -2121,7 +2118,7 @@
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$3+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2202,7 +2199,7 @@
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } >/dev/null && {
+ test $ac_status = 0; } > conftest.i && {
test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
test ! -s conftest.err
}; then :
@@ -2272,7 +2269,7 @@
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$3+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2340,7 +2337,7 @@
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$3+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
eval "$3=no"
@@ -2394,7 +2391,7 @@
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
$as_echo_n "checking for $2.$3... " >&6; }
-if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$4+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2628,10 +2625,10 @@
ac_fn_cxx_check_header_mongrel ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ if eval "test \"\${$3+set}\"" = set; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$3+set}\"" = set; then :
$as_echo_n "(cached) " >&6
fi
eval ac_res=\$$3
@@ -2667,7 +2664,7 @@
else
ac_header_preproc=no
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
$as_echo "$ac_header_preproc" >&6; }
@@ -2690,17 +2687,15 @@
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( cat <<\_ASBOX
-## ------------------------------------------ ##
+( $as_echo "## ------------------------------------------ ##
## Report this to https://issues.asterisk.org ##
-## ------------------------------------------ ##
-_ASBOX
+## ------------------------------------------ ##"
) | sed "s/^/$as_me: WARNING: /" >&2
;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$3+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
eval "$3=\$ac_header_compiler"
@@ -2768,7 +2763,7 @@
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$3+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2794,7 +2789,7 @@
running configure, to aid debugging if configure makes a mistake.
It was created by asterisk $as_me 1.6.2, which was
-generated by GNU Autoconf 2.65. Invocation command line was
+generated by GNU Autoconf 2.67. Invocation command line was
$ $0 $@
@@ -2904,11 +2899,9 @@
{
echo
- cat <<\_ASBOX
-## ---------------- ##
+ $as_echo "## ---------------- ##
## Cache variables. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
echo
# The following way of writing the cache mishandles newlines in values,
(
@@ -2942,11 +2935,9 @@
)
echo
- cat <<\_ASBOX
-## ----------------- ##
+ $as_echo "## ----------------- ##
## Output variables. ##
-## ----------------- ##
-_ASBOX
+## ----------------- ##"
echo
for ac_var in $ac_subst_vars
do
@@ -2959,11 +2950,9 @@
echo
if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------------- ##
+ $as_echo "## ------------------- ##
## File substitutions. ##
-## ------------------- ##
-_ASBOX
+## ------------------- ##"
echo
for ac_var in $ac_subst_files
do
@@ -2977,11 +2966,9 @@
fi
if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
+ $as_echo "## ----------- ##
## confdefs.h. ##
-## ----------- ##
-_ASBOX
+## ----------- ##"
echo
cat confdefs.h
echo
@@ -3036,7 +3023,12 @@
ac_site_file1=NONE
ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
- ac_site_file1=$CONFIG_SITE
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
elif test "x$prefix" != xNONE; then
ac_site_file1=$prefix/share/config.site
ac_site_file2=$prefix/etc/config.site
@@ -3051,7 +3043,11 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5 ; }
fi
done
@@ -3131,7 +3127,7 @@
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
@@ -3148,16 +3144,22 @@
# cross-compile macros
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
- for ac_t in install-sh install.sh shtool; do
- if test -f "$ac_dir/$ac_t"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/$ac_t -c"
- break 2
- fi
- done
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
done
if test -z "$ac_aux_dir"; then
- as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
@@ -3171,7 +3173,7 @@
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
@@ -3182,16 +3184,16 @@
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
- as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
-*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
@@ -3216,7 +3218,7 @@
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
fi
fi
@@ -3224,7 +3226,7 @@
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
-*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
@@ -3246,16 +3248,22 @@
ac_aux_dir=
for ac_dir in `pwd` "$srcdir"/`pwd`; do
- for ac_t in install-sh install.sh shtool; do
- if test -f "$ac_dir/$ac_t"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/$ac_t -c"
- break 2
- fi
- done
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
done
if test -z "$ac_aux_dir"; then
- as_fn_error "cannot find install-sh, install.sh, or shtool in \`pwd\` \"$srcdir\"/\`pwd\`" "$LINENO" 5
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in \`pwd\` \"$srcdir\"/\`pwd\`" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
@@ -3587,8 +3595,8 @@
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "no acceptable C compiler found in \$PATH
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5 ; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3702,9 +3710,8 @@
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "C compiler cannot create executables
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5 ; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -3746,8 +3753,8 @@
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5 ; }
fi
rm -f conftest conftest$ac_cv_exeext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -3804,9 +3811,9 @@
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot run C compiled programs.
+as_fn_error $? "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
fi
fi
fi
@@ -3857,8 +3864,8 @@
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5 ; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
@@ -4121,7 +4128,7 @@
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
@@ -4137,11 +4144,11 @@
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
break
fi
@@ -4180,7 +4187,7 @@
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
@@ -4196,18 +4203,18 @@
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5 ; }
fi
ac_ext=c
@@ -4268,7 +4275,7 @@
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_GREP"; then
- as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_GREP=$GREP
@@ -4334,7 +4341,7 @@
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
- as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
@@ -4466,8 +4473,7 @@
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -4541,7 +4547,7 @@
case "${host_os}" in
freebsd*)
-
+ ac_default_prefix=/usr/local
CPPFLAGS=-I/usr/local/include
LDFLAGS=-L/usr/local/lib
;;
@@ -4567,7 +4573,7 @@
;;
*)
-
+ ac_default_prefix=/usr
if test ${prefix} = '/usr' || test ${prefix} = 'NONE'; then
if test ${sysconfdir} = '${prefix}/etc'; then
sysconfdir=/etc
@@ -5421,8 +5427,8 @@
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "no acceptable C compiler found in \$PATH
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5 ; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -5960,7 +5966,7 @@
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
@@ -5976,11 +5982,11 @@
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
break
fi
@@ -6019,7 +6025,7 @@
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
@@ -6035,18 +6041,18 @@
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5 ; }
fi
ac_ext=c
@@ -6093,7 +6099,7 @@
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
@@ -6109,11 +6115,11 @@
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
break
fi
@@ -6152,7 +6158,7 @@
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
@@ -6168,18 +6174,18 @@
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5 ; }
fi
ac_ext=c
@@ -6247,7 +6253,7 @@
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_SED"; then
- as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
fi
else
ac_cv_path_SED=$SED
@@ -6358,7 +6364,7 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -6639,7 +6645,7 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_GNU_MAKE" >&5
$as_echo "$ac_cv_GNU_MAKE" >&6; } ;
if test "x$ac_cv_GNU_MAKE" = "xNot Found" ; then
- as_fn_error "*** Please install GNU make. It is required to build Asterisk!" "$LINENO" 5
+ as_fn_error $? "*** Please install GNU make. It is required to build Asterisk!" "$LINENO" 5
exit 1
fi
GNU_MAKE=$ac_cv_GNU_MAKE
@@ -6699,7 +6705,7 @@
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
- as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
@@ -8323,7 +8329,7 @@
enableval=$enable_dev_mode; case "${enableval}" in
y|ye|yes) AST_DEVMODE=yes ;;
n|no) AST_DEVMODE=no ;;
- *) as_fn_error "bad value ${enableval} for --enable-dev-mode" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-dev-mode" "$LINENO" 5 ;;
esac
fi
@@ -10952,8 +10958,7 @@
for ac_func in _getb67 GETB67 getb67; do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define CRAY_STACKSEG_END $ac_func
@@ -11020,7 +11025,7 @@
as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Header+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11047,8 +11052,7 @@
eval ac_res=\$$as_ac_Header
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
_ACEOF
@@ -11331,8 +11335,7 @@
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -11346,8 +11349,7 @@
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -12190,8 +12192,7 @@
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -12574,8 +12575,7 @@
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -12772,8 +12772,7 @@
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -13327,8 +13326,7 @@
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -13387,8 +13385,7 @@
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -13439,7 +13436,7 @@
enableval=$enable_internal_poll; case "${enableval}" in
y|ye|yes) HAS_POLL="";;
n|no) HAS_POLL="${HAS_POLL}" ;;
- *) as_fn_error "bad value ${enableval} for --enable-internal-poll" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-internal-poll" "$LINENO" 5 ;;
esac
fi
@@ -13453,8 +13450,7 @@
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -13690,7 +13686,7 @@
$as_echo_n "(cached) " >&6
else
test "$cross_compiling" = yes &&
- as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5
+ as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r "/dev/urandom"; then
ac_cv_file__dev_urandom=yes
else
@@ -14107,8 +14103,8 @@
if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot run test program while cross compiling
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5 ; }
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -15234,9 +15230,8 @@
if test "$ac_cv_type_int" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (int)
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "cannot compute sizeof (int)
+See \`config.log' for more details" "$LINENO" 5 ; }
else
ac_cv_sizeof_int=0
fi
@@ -15268,9 +15263,8 @@
if test "$ac_cv_type_long" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (long)
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "cannot compute sizeof (long)
+See \`config.log' for more details" "$LINENO" 5 ; }
else
ac_cv_sizeof_long=0
fi
@@ -15302,9 +15296,8 @@
if test "$ac_cv_type_long_long" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (long long)
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "cannot compute sizeof (long long)
+See \`config.log' for more details" "$LINENO" 5 ; }
else
ac_cv_sizeof_long_long=0
fi
@@ -15343,9 +15336,8 @@
if test "$ac_cv_type_fd_set_fds_bits" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (fd_set.fds_bits)
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "cannot compute sizeof (fd_set.fds_bits)
+See \`config.log' for more details" "$LINENO" 5 ; }
else
ac_cv_sizeof_fd_set_fds_bits=0
fi
@@ -15532,7 +15524,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_asound_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lasound" >&5
$as_echo_n "checking for ${pbxfuncname} in -lasound... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -15567,8 +15559,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_ALSA_FOUND=yes
else
AST_ALSA_FOUND=no
@@ -15638,7 +15629,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_bfd_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lbfd" >&5
$as_echo_n "checking for ${pbxfuncname} in -lbfd... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -15673,8 +15664,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_BFD_FOUND=yes
else
AST_BFD_FOUND=no
@@ -15744,7 +15734,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_curses_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lcurses" >&5
$as_echo_n "checking for ${pbxfuncname} in -lcurses... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -15779,8 +15769,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_CURSES_FOUND=yes
else
AST_CURSES_FOUND=no
@@ -15851,7 +15840,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_cap_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lcap" >&5
$as_echo_n "checking for ${pbxfuncname} in -lcap... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -15886,8 +15875,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_CAP_FOUND=yes
else
AST_CAP_FOUND=no
@@ -16333,8 +16321,7 @@
if test "x${GSM_DIR}" != "x" ; then
as_ac_Header=`$as_echo "ac_cv_header_${GSM_DIR}/include/gsm.h" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "${GSM_DIR}/include/gsm.h" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
GSM_HEADER_FOUND=1
else
GSM_HEADER_FOUND=0
@@ -16343,8 +16330,7 @@
as_ac_Header=`$as_echo "ac_cv_header_${GSM_DIR}/include/gsm/gsm.h" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "${GSM_DIR}/include/gsm/gsm.h" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
GSM_GSM_HEADER_FOUND=1
else
GSM_GSM_HEADER_FOUND=0
@@ -16443,7 +16429,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_iconv_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -liconv" >&5
$as_echo_n "checking for ${pbxfuncname} in -liconv... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -16478,8 +16464,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_ICONV_FOUND=yes
else
AST_ICONV_FOUND=no
@@ -16549,7 +16534,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_c_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lc" >&5
$as_echo_n "checking for ${pbxfuncname} in -lc... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -16584,8 +16569,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_ICONV_FOUND=yes
else
AST_ICONV_FOUND=no
@@ -16655,7 +16639,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_iksemel_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -liksemel" >&5
$as_echo_n "checking for ${pbxfuncname} in -liksemel... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -16690,8 +16674,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_IKSEMEL_FOUND=yes
else
AST_IKSEMEL_FOUND=no
@@ -17389,7 +17372,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_iodbc_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -liodbc" >&5
$as_echo_n "checking for ${pbxfuncname} in -liodbc... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -17424,8 +17407,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_IODBC_FOUND=yes
else
AST_IODBC_FOUND=no
@@ -17495,7 +17477,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_c_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lc" >&5
$as_echo_n "checking for ${pbxfuncname} in -lc... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -17530,8 +17512,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_INOTIFY_FOUND=yes
else
AST_INOTIFY_FOUND=no
@@ -17601,7 +17582,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_jack_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -ljack" >&5
$as_echo_n "checking for ${pbxfuncname} in -ljack... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -17636,8 +17617,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_JACK_FOUND=yes
else
AST_JACK_FOUND=no
@@ -17708,7 +17688,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_ltdl_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lltdl" >&5
$as_echo_n "checking for ${pbxfuncname} in -lltdl... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -17743,8 +17723,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_LTDL_FOUND=yes
else
AST_LTDL_FOUND=no
@@ -17814,7 +17793,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_ldap_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lldap" >&5
$as_echo_n "checking for ${pbxfuncname} in -lldap... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -17849,8 +17828,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_LDAP_FOUND=yes
else
AST_LDAP_FOUND=no
@@ -17905,7 +17883,7 @@
enableval=$enable_xmldoc; case "${enableval}" in
y|ye|yes) disable_xmldoc=no ;;
n|no) disable_xmldoc=yes ;;
- *) as_fn_error "bad value ${enableval} for --disable-xmldoc" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --disable-xmldoc" "$LINENO" 5 ;;
esac
else
disable_xmldoc=no
@@ -18096,7 +18074,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_mISDN_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lmISDN" >&5
$as_echo_n "checking for ${pbxfuncname} in -lmISDN... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -18131,8 +18109,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_MISDN_FOUND=yes
else
AST_MISDN_FOUND=no
@@ -18203,7 +18180,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_isdnnet_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lisdnnet" >&5
$as_echo_n "checking for ${pbxfuncname} in -lisdnnet... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -18238,8 +18215,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_ISDNNET_FOUND=yes
else
AST_ISDNNET_FOUND=no
@@ -18308,7 +18284,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_suppserv_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lsuppserv" >&5
$as_echo_n "checking for ${pbxfuncname} in -lsuppserv... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -18343,8 +18319,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_SUPPSERV_FOUND=yes
else
AST_SUPPSERV_FOUND=no
@@ -18517,7 +18492,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_nbs_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lnbs" >&5
$as_echo_n "checking for ${pbxfuncname} in -lnbs... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -18552,8 +18527,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_NBS_FOUND=yes
else
AST_NBS_FOUND=no
@@ -18623,7 +18597,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_ncurses_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lncurses" >&5
$as_echo_n "checking for ${pbxfuncname} in -lncurses... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -18658,8 +18632,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_NCURSES_FOUND=yes
else
AST_NCURSES_FOUND=no
@@ -18884,7 +18857,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_newt_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lnewt" >&5
$as_echo_n "checking for ${pbxfuncname} in -lnewt... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -18919,8 +18892,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_NEWT_FOUND=yes
else
AST_NEWT_FOUND=no
@@ -18990,7 +18962,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_odbc_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lodbc" >&5
$as_echo_n "checking for ${pbxfuncname} in -lodbc... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -19025,8 +18997,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_UNIXODBC_FOUND=yes
else
AST_UNIXODBC_FOUND=no
@@ -19096,7 +19067,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_ogg_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -logg" >&5
$as_echo_n "checking for ${pbxfuncname} in -logg... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -19131,8 +19102,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_OGG_FOUND=yes
else
AST_OGG_FOUND=no
@@ -19203,7 +19173,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_execinfo_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lexecinfo" >&5
$as_echo_n "checking for ${pbxfuncname} in -lexecinfo... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -19238,8 +19208,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_BKTR_FOUND=yes
else
AST_BKTR_FOUND=no
@@ -19309,7 +19278,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_c_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lc" >&5
$as_echo_n "checking for ${pbxfuncname} in -lc... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -19344,8 +19313,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_BKTR_FOUND=yes
else
AST_BKTR_FOUND=no
@@ -19416,7 +19384,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_ossaudio_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lossaudio" >&5
$as_echo_n "checking for ${pbxfuncname} in -lossaudio... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -19451,8 +19419,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_OSS_FOUND=yes
else
AST_OSS_FOUND=no
@@ -19521,7 +19488,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_ossaudio_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lossaudio" >&5
$as_echo_n "checking for ${pbxfuncname} in -lossaudio... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -19556,8 +19523,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_OSS_FOUND=yes
else
AST_OSS_FOUND=no
@@ -19626,7 +19592,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_ossaudio_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lossaudio" >&5
$as_echo_n "checking for ${pbxfuncname} in -lossaudio... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -19661,8 +19627,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_OSS_FOUND=yes
else
AST_OSS_FOUND=no
@@ -20061,7 +20026,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_popt_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lpopt" >&5
$as_echo_n "checking for ${pbxfuncname} in -lpopt... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -20096,8 +20061,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_POPT_FOUND=yes
else
AST_POPT_FOUND=no
@@ -20167,7 +20131,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_portaudio_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lportaudio" >&5
$as_echo_n "checking for ${pbxfuncname} in -lportaudio... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -20202,8 +20166,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_PORTAUDIO_FOUND=yes
else
AST_PORTAUDIO_FOUND=no
@@ -20273,7 +20236,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_pri_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lpri" >&5
$as_echo_n "checking for ${pbxfuncname} in -lpri... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -20308,8 +20271,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_PRI_FOUND=yes
else
AST_PRI_FOUND=no
@@ -20379,7 +20341,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_pri_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lpri" >&5
$as_echo_n "checking for ${pbxfuncname} in -lpri... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -20414,8 +20376,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_PRI_PROG_W_CAUSE_FOUND=yes
else
AST_PRI_PROG_W_CAUSE_FOUND=no
@@ -20485,7 +20446,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_pri_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lpri" >&5
$as_echo_n "checking for ${pbxfuncname} in -lpri... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -20520,8 +20481,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_PRI_INBANDDISCONNECT_FOUND=yes
else
AST_PRI_INBANDDISCONNECT_FOUND=no
@@ -20591,7 +20551,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_resample_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lresample" >&5
$as_echo_n "checking for ${pbxfuncname} in -lresample... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -20626,8 +20586,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_RESAMPLE_FOUND=yes
else
AST_RESAMPLE_FOUND=no
@@ -20759,7 +20718,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_spandsp_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lspandsp" >&5
$as_echo_n "checking for ${pbxfuncname} in -lspandsp... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -20794,8 +20753,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_SPANDSP_FOUND=yes
else
AST_SPANDSP_FOUND=no
@@ -20869,7 +20827,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_spandsp_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lspandsp" >&5
$as_echo_n "checking for ${pbxfuncname} in -lspandsp... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -20904,8 +20862,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_SPANDSP_FOUND=yes
else
AST_SPANDSP_FOUND=no
@@ -20990,7 +20947,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_ss7_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lss7" >&5
$as_echo_n "checking for ${pbxfuncname} in -lss7... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -21025,8 +20982,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_SS7_FOUND=yes
else
AST_SS7_FOUND=no
@@ -21096,7 +21052,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_openr2_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lopenr2" >&5
$as_echo_n "checking for ${pbxfuncname} in -lopenr2... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -21131,8 +21087,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_OPENR2_FOUND=yes
else
AST_OPENR2_FOUND=no
@@ -21200,8 +21155,7 @@
if test "${PWLIBDIR:-unset}" != "unset" ; then
as_ac_Header=`$as_echo "ac_cv_header_${PWLIBDIR}/version.h" | $as_tr_sh`
ac_fn_cxx_check_header_mongrel "$LINENO" "${PWLIBDIR}/version.h" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
HAS_PWLIB=1
fi
@@ -21211,8 +21165,7 @@
if test "${OPENH323DIR:-unset}" != "unset"; then
as_ac_Header=`$as_echo "ac_cv_header_${OPENH323DIR}/../pwlib/version.h" | $as_tr_sh`
ac_fn_cxx_check_header_mongrel "$LINENO" "${OPENH323DIR}/../pwlib/version.h" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
HAS_PWLIB=1
fi
@@ -21223,8 +21176,7 @@
else
as_ac_Header=`$as_echo "ac_cv_header_${HOME}/pwlib/include/ptlib.h" | $as_tr_sh`
ac_fn_cxx_check_header_mongrel "$LINENO" "${HOME}/pwlib/include/ptlib.h" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
HAS_PWLIB=1
fi
@@ -21636,8 +21588,7 @@
if test "${OPENH323DIR:-unset}" != "unset" ; then
as_ac_Header=`$as_echo "ac_cv_header_${OPENH323DIR}/version.h" | $as_tr_sh`
ac_fn_cxx_check_header_mongrel "$LINENO" "${OPENH323DIR}/version.h" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
HAS_OPENH323=1
fi
@@ -21646,8 +21597,7 @@
if test "${HAS_OPENH323:-unset}" = "unset" ; then
as_ac_Header=`$as_echo "ac_cv_header_${PWLIBDIR}/../openh323/version.h" | $as_tr_sh`
ac_fn_cxx_check_header_mongrel "$LINENO" "${PWLIBDIR}/../openh323/version.h" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
OPENH323DIR="${PWLIBDIR}/../openh323"; HAS_OPENH323=1
fi
@@ -21659,8 +21609,7 @@
as_ac_Header=`$as_echo "ac_cv_header_${OPENH323DIR}/include/h323.h" | $as_tr_sh`
ac_fn_cxx_check_header_compile "$LINENO" "${OPENH323DIR}/include/h323.h" "$as_ac_Header" "#include <ptlib.h>
"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
else
OPENH323_INCDIR="${PWLIB_INCDIR}/openh323"; OPENH323_LIBDIR="${PWLIB_LIBDIR}"
@@ -21674,8 +21623,7 @@
as_ac_Header=`$as_echo "ac_cv_header_${HOME}/openh323/include/h323.h" | $as_tr_sh`
ac_fn_cxx_check_header_compile "$LINENO" "${HOME}/openh323/include/h323.h" "$as_ac_Header" "#include <ptlib.h>
"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
HAS_OPENH323=1
fi
@@ -21949,7 +21897,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_lua5.1_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -llua5.1" >&5
$as_echo_n "checking for ${pbxfuncname} in -llua5.1... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -21984,8 +21932,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_LUA_FOUND=yes
else
AST_LUA_FOUND=no
@@ -22063,7 +22010,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_lua_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -llua" >&5
$as_echo_n "checking for ${pbxfuncname} in -llua... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -22098,8 +22045,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_LUA_FOUND=yes
else
AST_LUA_FOUND=no
@@ -22169,7 +22115,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_radiusclient-ng_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lradiusclient-ng" >&5
$as_echo_n "checking for ${pbxfuncname} in -lradiusclient-ng... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -22204,8 +22150,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_RADIUS_FOUND=yes
else
AST_RADIUS_FOUND=no
@@ -22284,7 +22229,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_SaClm_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lSaClm" >&5
$as_echo_n "checking for ${pbxfuncname} in -lSaClm... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -22319,8 +22264,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_OPENAIS_FOUND=yes
else
AST_OPENAIS_FOUND=no
@@ -22405,7 +22349,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_speex_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lspeex" >&5
$as_echo_n "checking for ${pbxfuncname} in -lspeex... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -22440,8 +22384,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_SPEEX_FOUND=yes
else
AST_SPEEX_FOUND=no
@@ -22512,7 +22455,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_speex_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lspeex" >&5
$as_echo_n "checking for ${pbxfuncname} in -lspeex... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -22547,8 +22490,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_SPEEX_PREPROCESS_FOUND=yes
else
AST_SPEEX_PREPROCESS_FOUND=no
@@ -22621,7 +22563,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_speexdsp_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lspeexdsp" >&5
$as_echo_n "checking for ${pbxfuncname} in -lspeexdsp... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -22656,8 +22598,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_SPEEXDSP_FOUND=yes
else
AST_SPEEXDSP_FOUND=no
@@ -22732,7 +22673,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_sqlite_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lsqlite" >&5
$as_echo_n "checking for ${pbxfuncname} in -lsqlite... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -22767,8 +22708,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_SQLITE_FOUND=yes
else
AST_SQLITE_FOUND=no
@@ -22838,7 +22778,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_sqlite3_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lsqlite3" >&5
$as_echo_n "checking for ${pbxfuncname} in -lsqlite3... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -22873,8 +22813,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_SQLITE3_FOUND=yes
else
AST_SQLITE3_FOUND=no
@@ -22944,7 +22883,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_crypto_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lcrypto" >&5
$as_echo_n "checking for ${pbxfuncname} in -lcrypto... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -22979,8 +22918,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_CRYPTO_FOUND=yes
else
AST_CRYPTO_FOUND=no
@@ -23052,7 +22990,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_ssl_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lssl" >&5
$as_echo_n "checking for ${pbxfuncname} in -lssl... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -23087,8 +23025,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_OPENSSL_FOUND=yes
else
AST_OPENSSL_FOUND=no
@@ -23223,8 +23160,8 @@
if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot run test program while cross compiling
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5 ; }
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -23458,7 +23395,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_hoard_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lhoard" >&5
$as_echo_n "checking for ${pbxfuncname} in -lhoard... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -23493,8 +23430,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_HOARD_FOUND=yes
else
AST_HOARD_FOUND=no
@@ -23564,7 +23500,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_sybdb_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lsybdb" >&5
$as_echo_n "checking for ${pbxfuncname} in -lsybdb... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -23599,8 +23535,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_FREETDS_FOUND=yes
else
AST_FREETDS_FOUND=no
@@ -23670,7 +23605,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_termcap_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -ltermcap" >&5
$as_echo_n "checking for ${pbxfuncname} in -ltermcap... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -23705,8 +23640,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_TERMCAP_FOUND=yes
else
AST_TERMCAP_FOUND=no
@@ -23776,7 +23710,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_tinfo_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -ltinfo" >&5
$as_echo_n "checking for ${pbxfuncname} in -ltinfo... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -23811,8 +23745,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_TINFO_FOUND=yes
else
AST_TINFO_FOUND=no
@@ -23929,7 +23862,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_tonezone_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -ltonezone" >&5
$as_echo_n "checking for ${pbxfuncname} in -ltonezone... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -23964,8 +23897,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_TONEZONE_FOUND=yes
else
AST_TONEZONE_FOUND=no
@@ -24035,7 +23967,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_usb_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lusb" >&5
$as_echo_n "checking for ${pbxfuncname} in -lusb... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -24070,8 +24002,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_USB_FOUND=yes
else
AST_USB_FOUND=no
@@ -24143,7 +24074,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_vorbis_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lvorbis" >&5
$as_echo_n "checking for ${pbxfuncname} in -lvorbis... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -24178,8 +24109,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_VORBIS_FOUND=yes
else
AST_VORBIS_FOUND=no
@@ -24249,7 +24179,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_vorbis_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lvorbis" >&5
$as_echo_n "checking for ${pbxfuncname} in -lvorbis... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -24284,8 +24214,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_VORBIS_FOUND=yes
else
AST_VORBIS_FOUND=no
@@ -24428,7 +24357,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_z_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lz" >&5
$as_echo_n "checking for ${pbxfuncname} in -lz... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -24463,8 +24392,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_ZLIB_FOUND=yes
else
AST_ZLIB_FOUND=no
@@ -24524,7 +24452,7 @@
elif test "x$NCURSES_LIB" != "x" ; then
EDITLINE_LIB="$NCURSES_LIB"
else
- as_fn_error "*** termcap support not found (on modern systems, this typically means the ncurses development package is missing)" "$LINENO" 5
+ as_fn_error $? "*** termcap support not found (on modern systems, this typically means the ncurses development package is missing)" "$LINENO" 5
fi
@@ -24766,7 +24694,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_SDL_image_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lSDL_image" >&5
$as_echo_n "checking for ${pbxfuncname} in -lSDL_image... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -24801,8 +24729,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_SDL_IMAGE_FOUND=yes
else
AST_SDL_IMAGE_FOUND=no
@@ -24871,7 +24798,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_avcodec_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lavcodec" >&5
$as_echo_n "checking for ${pbxfuncname} in -lavcodec... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -24906,8 +24833,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_FFMPEG_FOUND=yes
else
AST_FFMPEG_FOUND=no
@@ -24990,7 +24916,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_X11_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lX11" >&5
$as_echo_n "checking for ${pbxfuncname} in -lX11... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -25025,8 +24951,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_X11_FOUND=yes
else
AST_X11_FOUND=no
@@ -25099,7 +25024,7 @@
as_ac_Lib=`$as_echo "ac_cv_lib_X11_${pbxfuncname}" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lX11" >&5
$as_echo_n "checking for ${pbxfuncname} in -lX11... " >&6; }
-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -25134,8 +25059,7 @@
eval ac_res=\$$as_ac_Lib
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Lib
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
AST_X11_FOUND=yes
else
AST_X11_FOUND=no
@@ -25197,7 +25121,7 @@
$as_echo_n "(cached) " >&6
else
test "$cross_compiling" = yes &&
- as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5
+ as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r "/sbin/launchd"; then
ac_cv_file__sbin_launchd=yes
else
@@ -25526,6 +25450,7 @@
ac_libobjs=
ac_ltlibobjs=
+U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -25687,19 +25612,19 @@
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
+# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
- as_status=$?; test $as_status -eq 0 && as_status=1
- if test "$3"; then
- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $1" >&2
+ $as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -25895,7 +25820,7 @@
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
@@ -25949,7 +25874,7 @@
# values after options handling.
ac_log="
This file was extended by asterisk $as_me 1.6.2, which was
-generated by GNU Autoconf 2.65. Invocation command line was
+generated by GNU Autoconf 2.67. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -26011,10 +25936,10 @@
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
asterisk config.status 1.6.2
-configured by $0, generated by GNU Autoconf 2.65,
+configured by $0, generated by GNU Autoconf 2.67,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -26031,11 +25956,16 @@
while test $# != 0
do
case $1 in
- --*=*)
+ --*=?*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
*)
ac_option=$1
ac_optarg=$2
@@ -26057,6 +25987,7 @@
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
@@ -26069,7 +26000,7 @@
ac_need_defaults=false;;
--he | --h)
# Conflict between --help and --header
- as_fn_error "ambiguous option: \`$1'
+ as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
$as_echo "$ac_cs_usage"; exit ;;
@@ -26078,7 +26009,7 @@
ac_cs_silent=: ;;
# This is an error.
- -*) as_fn_error "unrecognized option: \`$1'
+ -*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
@@ -26132,7 +26063,7 @@
"makeopts") CONFIG_FILES="$CONFIG_FILES makeopts" ;;
"channels/h323/Makefile") CONFIG_FILES="$CONFIG_FILES channels/h323/Makefile" ;;
- *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
esac
done
@@ -26169,7 +26100,7 @@
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
-} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
@@ -26186,7 +26117,7 @@
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\r'
+ ac_cs_awk_cr='\\r'
else
ac_cs_awk_cr=$ac_cr
fi
@@ -26200,18 +26131,18 @@
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
@@ -26300,20 +26231,28 @@
else
cat
fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
- || as_fn_error "could not setup config files machinery" "$LINENO" 5
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[ ]*\):*/\1/
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
s/^[^=]*=[ ]*$//
}'
fi
@@ -26341,7 +26280,7 @@
if test -z "$ac_t"; then
break
elif $ac_last_try; then
- as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
@@ -26426,7 +26365,7 @@
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error "could not setup config headers machinery" "$LINENO" 5
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"
@@ -26439,7 +26378,7 @@
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
- :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
@@ -26467,7 +26406,7 @@
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
- as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
@@ -26494,7 +26433,7 @@
case $ac_tag in
*:-:* | *:-) cat >"$tmp/stdin" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
@@ -26625,22 +26564,22 @@
$ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&5
+which seems to be undefined. Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&2;}
+which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$tmp/stdin"
case $ac_file in
-) cat "$tmp/out" && rm -f "$tmp/out";;
*) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
esac \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
:H)
#
@@ -26651,19 +26590,19 @@
$as_echo "/* $configure_input */" \
&& eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
} >"$tmp/config.h" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
$as_echo "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
mv "$tmp/config.h" "$ac_file" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
$as_echo "/* $configure_input */" \
&& eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error "could not create -" "$LINENO" 5
+ || as_fn_error $? "could not create -" "$LINENO" 5
fi
;;
@@ -26678,7 +26617,7 @@
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
- as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
@@ -26699,7 +26638,7 @@
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit $?
+ $ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/configure.ac
^
|
@@ -20,7 +20,7 @@
AC_CONFIG_AUX_DIR(`pwd`)
AC_COPYRIGHT("Asterisk")
-AC_REVISION($Revision: 301220 $)
+AC_REVISION($Revision: 304465 $)
# preserve any CFLAGS or LDFLAGS that may be set
# NOTE: This must be done before calling any macros that end up
@@ -41,7 +41,7 @@
case "${host_os}" in
freebsd*)
- AC_PREFIX_DEFAULT([/usr/local])
+ ac_default_prefix=/usr/local
CPPFLAGS=-I/usr/local/include
LDFLAGS=-L/usr/local/lib
;;
@@ -63,7 +63,7 @@
AC_DEFINE([_DARWIN_UNLIMITED_SELECT], 1, [Define to 1 if running on Darwin.])
;;
*)
- AC_PREFIX_DEFAULT([/usr])
+ ac_default_prefix=/usr
if test ${prefix} = '/usr' || test ${prefix} = 'NONE'; then
if test ${sysconfdir} = '${prefix}/etc'; then
sysconfdir=/etc
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/contrib/init.d/rc.debian.asterisk
^
|
@@ -1,5 +1,5 @@
#! /bin/sh
-# $Id: rc.debian.asterisk 287198 2010-09-16 22:12:51Z qwell $
+# $Id: rc.debian.asterisk 307535 2011-02-10 22:35:49Z qwell $
#
# Mon Jun 04 2007 Iñaki Baz Castillo <ibc@in.ilimit.es>
# - Eliminated SAFE_ASTERISK since it doesn't work as LSB script (it could require a independent "safe_asterisk" init script).
|
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk.dvi
^
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk.log
^
|
@@ -1,4 +1,4 @@
-This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=latex 2010.4.27) 17 MAR 2011 11:15
+This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=latex 2010.4.27) 25 APR 2011 12:25
entering extended mode
%&-line parsing enabled.
**asterisk.tex
@@ -3648,10 +3648,10 @@
Here is how much of TeX's memory you used:
3126 strings out of 95087
44463 string characters out of 1183278
- 120827 words of memory out of 1500000
+ 120825 words of memory out of 1500000
6189 multiletter control sequences out of 10000+50000
14573 words of font info for 47 fonts, out of 1200000 for 2000
28 hyphenation exceptions out of 8191
26i,8n,36p,294b,581s stack positions out of 5000i,500n,6000p,200000b,5000s
-Output written on asterisk.dvi (212 pages, 706680 bytes).
+Output written on asterisk.dvi (212 pages, 706676 bytes).
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk.pdf
^
|
@@ -1408,11 +1408,13 @@
<< /S /GoTo /D [942 0 R /Fit ] >>
endobj
944 0 obj <<
-/Length 216
+/Length 213
/Filter /FlateDecode
>>
stream
-xÚeÍJÆ0E÷},0cfæg©¨ àFqQ>§ú¡m%->¿M³w7s.÷:wwèðzGÁCN¸@`ê×xWëÆå¼~*m
É'¹ð|âö¼Ç¥LÃv^fõDï¬Ðä Ðüg¢ä²Väpv0�Ueß:°ÎSÝ ÷Lî-ÿÈËþQ$-ßÏ5níU$ÉÃt,q ¢{]díßXÊûi4àú(´µSlÔãPNµõ£µb¸hbµºÛÜý88Oî
+xÚe=OÄ0÷þDLì$N:Þ `Db8.ª¸¶§´â÷CZÄöÚïc×Ü> +rÀLQu½ÂÄ1¨\}½«W}XV)Ãòi¬w¤¥"ÓYöóqêç2ÖaÌ[÷¤ØCIY
+к´¼µ¥f¶æÚøAH
+øÀT,!DÏÊFî?±¾/CIËe¾2U¹îFg2i9Hh!WLÐzÿwæò±
,C¨¬÷Ûüºá²R¼©"irµÐÜwÍ7sENì
endstream
endobj
942 0 obj <<
@@ -10583,52 +10585,52 @@
>> endobj
2301 0 obj <<
/Length1 1407
-/Length2 7997
+/Length2 8048
/Length3 0
-/Length 8817
+/Length 8869
/Filter /FlateDecode
>>
stream
-xÚeXk×°I¡S¤¤»»»Kjè¥;¤Cº;¤Aîî)iDºÞÙ{¿ÏÖïyÿ~Çüsu¯ë¼×}]ÔäªLbf÷ i33?PBIÈÆÌ
- ¦p8!v&Î ~ PÌÅÈÎ
-dãæçàågçP% ö`Kg ý_E<@1[#ØÔĨdâl ²
ö05±j@LÁ gf
Pý¯+ê '£+ÈÀÆ4:ß,Àv�¿äìÌ!@Âf.öÿI¹ R@:¨$=ªh±³ñ�Ì,ÊèZ ¨Éÿ©ÿn.íbc£lbûWû¿ôÒ&¶`ÿ-ØÚ»8J3£ÝêþqS]lÿ;+çlb6³³°Yÿ ¤Áî 3U°³©%ÐÜÄÆ ôwdgößйýÀ"¯"®¡®ÄðÏóü;§j¶sÖô°ÿ·ë_Å3ÛoNÇìÔgefeeB_ÿy÷î¿Ö²3
í hâèhâî(q½Ø`;3;äfa¶8C/Bgâ48þzÜ\@±¿BÿEâ7ñY$Eê_âá�²Èý&n âovQúMÐ.Êÿ/+Eõ7±YÔ~;Eý7AWÐøMPOß]Oû_î+ß]ïýoZþK\Ð)ĺoÿac
-ýP#ÐU2ÿø,TÑâä²XþPå?¡Ö TÅæzÚþF6¨ÕÐsÉù9¡µ»?,ÿò²ÿ^koâ²³;ÿ²ýoôùo:I{èü16è}8þÐûpú=¿ä
-úmÇ-wîÖß@{þ^ªãìù#
Ëë#ÿѪíñ7þß#&.q÷bâà�2±Cáãäòpòùü?u¦.Ð[vþûÓzNÿÃæ`è©ÜA¦Å9©@ UrCp¯TÞD)âXqÆXåºÎévÔ
8XÂ!7kµºwei¸»»¯ÝÂÛ¼ÕF¥O?:ĦÌ>íºï¦y6ëþLSòر§¸8ÄlmùuÄ«2µ6\ ßûù¬ï0GNRsi
æ¾ëoéÜ<ºÒi6Z!Aµ4äêX)%¡!«nX VÇ|BÏ!m.8wyÈÙñOFHÙ9�üêcÄYøÏùÄì5vycÉÔùôuú`öh~º[Èа eKÆÅÐ×ﶽ#=Ùzy÷x<H¸ªïNåXÐT4¨EyãÁ
-Î.)iVËEÆëV0_ýDÄaA¤´nqmõMLRo F¥þÎJ<Å>é³!5ú!¯N~Öàýí.ö±"÷êÏE?*UZª(/ó6|øxß©ãËtE7"ʹصDÿªó.¡*D3úr'Xé+3'¦$^ªÈá:j§¥ýD)>Ø,\¨øµÉÛà8U°)ɤLò9±J¿Ô}塤íÀ>¶fYìZί®ÐUþ±^OH7Ýth¢ÛÖ-gÓf{öb¡îNô[è1FwÝê5!·;{ÇûÒQ¢/ÄÓÅ,pdBļKîM£x5ð¹u>\ÔÝe#ë.
âYþí,µt2fÀÉÔ4FYÍ<
-YvO:N«¨!þ«á9çcêÜMÓ#¯íN¾Ý8&/¨îñÊÌ4Fµ#¨l8RxG÷h":ª¿}Û¬¹ña(MPN£¿qã.1¾~ÓùÚ}Ôòþ}hA²ÄÕÅOa4ñwû<²\ííLÇܱòdÑÛ&¨#L#ÃÁGgª§Óf*êz·M¿5åÂ^<Ù\ÂÐ-}[kõ%!Áí¾"Á¶O
¨Ö&quÜå*ú¥8ÂÄJ_>u·S6ýFf˯ùèE&×vbý)¸¸èt8qÖef4µÂÉöèØÝ
²}ëäeLgb¯_4ÝëÍ¿J²ëWqs§ý${J¦fÒ&»*p{§ì@)i$1ü\çÍU´Rþ°WVc)4Ð*³³ÝõnZw̽9N)]ÎÕ»®FVT¥7Z=fê)v£ls:èîðáYbC×\,¨ß?D?¹Ùßo0~Ã!=.0Ôr<,UTi¯q=T±*~¦#ÈkÅÂ@v$²Ðµ9ÇDT8¼§þµª�}$
Xjä%3yBgxà¨1zÂ
-C ÜóÂ&-+vÞYùN¤uéÊ[?2»]â|1Çòïʺ2âwäµOTmü%:,Ç1'ÕÑo¿Üï4ÎíåÆù÷]|VmÄuZ¹$^Ûbóçävv~¡¨Ý&ãnew÷:÷H
{?7Jà÷x]u9Åãc2áÁQï®÷;,\
> ¨h£!Ò76=lo
¡½0ß?¥ÔÙ§e�S*iôé´j[H³æ¼íÚqW_ïerPF£íhæÍ{÷:f7Úiaâµ=<¹Û¢öØ[%HÆZxG_Â&ûÁn$¤Þ
-
Pfi93 ÆrÏè÷eþ\D©sYÿ®³e¹üJn&{4a¥æ£
-÷âà4æôëW§#=(1`ÔÇ×AxÌneeÎá,¯ëÉyÏå´ØE6O¾¾Ä1ÂbÝz`Q8«ß²O¼[æáÞ£oàkU9¯®>VâÛ°åbî¬6áfãÏêLX\È÷btX{UiIÂ7jõ<¾/zNrIýA5»ÙNÂ¥l¶¸Ä-oÐ$Ùª#îÄàÃ#Yà+jÌVÿ¤5÷4Ó¬¡$^lÀ)D¨º,Â5Âaßpú*8^ÉÂwEtnÕ1¢.>$ã~U|ð¶V±®@ýÞÍDòð-1Ò©Fy¹Þn¼*,Òéý4ÙÍÌQb´RÊå:_Øò6Qå¹mÚëÇz³ÂÐQRR+ÕÍ:9iÛÚ]9ɱ¸>B>»kÆY]4RåZý={
y¼Ø¦WJ³¸ª½nÚ¯&z0Jý4
-Ë'y®¤÷F0#¡ó3Å
dWÍ{ðÕ\Ü´ÈØgÀ'ýW¯"d!O)ÔLû6îmîbø¼¨3û²zË]ì]=,ÞZ_Rx~¯/}'Á`^m'kÐò¹íÇYçXÓèý:Ú#2@.bB?ZßÝ¢íDÅ\Õ¯õ²ØîYI¶ê9L´J×|e5Ü_5ÂõÃo濼Q½;P¶#¨�÷?=(<*§4IFñ÷ ~éÙH»a»:uÛlÚfzmdaóºBúæ»û̦_å\·øäÎòìî5»aUßÏeÙÌîÑh«¤¼ö^¹Ýga)ë$é=6[Æ´o`|þx/\ÇçYE¤8áe¬Û¶E`qGbH´<b§ÑV¸Äî6]bâm1üöS®d\:¹>VQpÉ=|ýþ]!ÆðS¢)iZsÏ"T®ÉÆ+J½¤Ây+òà/!u-C¯¦�çñ_ynv¸y©ÝEà8·µu$·Ö¦4È5ó#JuÈ)ÒsþN96nåd}Æò¥zS©Sd¼ªh½éÁ2Å
®O¸YVfáaÒ*ºËK|Ĥýã0 RŽ8À/Z~íòNo«ã
-8e¶¦uhÊí5[!|©©d÷ §ÞùðÃIsZÜMXù·£ã
xåÖxêï©e2çÅ7¹1'È`ǺKííi ],YòQÀ¤@)"ÚÇXJt2,stTȼÊ>¹msÚwgêä´J2U xØÞ.hóú!åªfÔkþ£ºOuuæÓ0]×"i«°A> ©Ëe*S#úâCAè®]º:bÜu.!ÎñÞEòýåÕ^äÛ¤ëÍcuií{
-J°Z?v~èN+Õ{Ôbþ¸Û-Ù¢ÓöuĢ˶µÓ:[µèµ¹ÝÈÖº&¯Ú8ïD2J¾wsÂ]^i¥`Êù1>á}PEé5CÝrD±¬ú÷ú²JnX¶F/ÑwФԶlÆR¤bOèĹ0JY¬Ñ|+àë1
ϺáJÌ|{VÈ8þ`þò{é¶$óc¦&[üñ9ÿl¹Ã}àåÓ%æfwÖícÞO"Ö¼2¥Hõ¼Cò3c¦`Á
Ç®«ôd¿XG4×\3"í}¶Æù£°´D*<©uâýbNÖÍh×Äå.ê8ñÊüP[SmÜVçëÒ¾ÞAÐ"Ítò]ÓÛtEmìͱDý
ìâ%_m(HbU¥»-ÄùâøÖx
z1¸Ì^Á¤ÏL¡±Æ[~öãóðd;c¾¹ÏÊÅ$]Eú1·+²á<¬]Q¾qWRò·s>ÉuÛ{¡pþ
þbÉÜ!DÄy,~×oËå%sø©<V-!ü'Ö"wÃÃg,1
-´M
áV++Ý653Yjñ«Q[0l`V{°jl3«åWsØÆ5QÙZ.Ý쪡ÓÕ0RÄpî)ó°¾Jyó£Ë¥¤Ûæs¾+Ìõ¨Kú]3Y{Æ*á±æzíj¶±ÃÒÊíTéo2Ì+ÖéÎø¤).½£"ÿðH¸Á!+XqÊÔ*»Æ+êûu¨O'%êm¶CñÀ
ËÍÝòþ6S¦¬\@þÇ7½=íÓei+D;p{¸í¢:Vú¡úÝH9K¹ÌÃUÏîØ3ΤªÁAç1Ì%1øxÙæ!vß{uÈ@[ÀNº?§>óä³×¦?6pàÌþ¨qC*¼(òoSß°`ý8bÔ/¹²·XÍ%£¯Êwk¯´Q`(hFd=¸BNFä»û¶p¸aª.Ze£4ßM" [öS°JëÛ,3V¢¥¥Û(él¢\Ý<f,ú¯wËÔÌIµt;©¨âH"&fýùh>_[j¹À4°O²º<¦H+©ô5¶ÖS7}=@Ey«eEÔVÞøq¯û" úF¦çXV¥7â7¥Ç[!7'Åó> Kýòݽ1¶c{ÆÉm§ôǯN&Ì[:ÑÇõªfïÒÀýg£Ô¢¡ã}ÙÚ× }JETD´ú¹#,{�îbçàù÷Eð
©Ïà°ã'¾Õç$¡Ý#ܾò¡ï|ørh½vA[«k5ô-¹çÉ<$rϤZ̯%tAÓâ?89Bø79âo(¸ÚguÆåÛÜD'_w
-SY¾7Ywo&IûxǾ=
uÇOoýå!A!$ÞÔ®Q»ª½
byq{Ñ3érøÊÏÐÈâj,¶$¸ú}}ÂÈ3a·ò3zBv BB&ÓS 1Ç[Þ¥,ò§¿,G`ßÏ «ñøÌÒÎð:äã?_K»GG+Ù¸(Þ8ñ¢åøÇÀcƱÍÍ12.Á
bÊ6k!i¡ã½ûÔ!=åã[±tÕ\ùydÏÕÔºÐ×À°IÑ«ºO'ÍÓë»9¤|ü[´ëÙuÅ:¤¹é«Ý[e-UYV¤Å
-o}-\®ZÅìèÑvIÛ#pÓÅÄ ¿çÃrO®kÓ±
->2£Ôûuúª¡:9~¹éïìâ×V7û ¤
-ENÇð¢A<çsµâ©Pû1k7,ù×)ÏJFÄ{Ù9AÔ©}7f×-tò½££3Ü4lþ¨ôÀz_3n+Î,,EE¯Ûx秩w.[ùAÙá0þUÃ7 ]
.Íl² ·"ǸF£Î´·ìËW9cÔX¶ÌüÏ.W¯~À|ëPé÷ÿ~1Üo®Ú°Dqá+WOöRv°pè¾2~?Pøæⶤ£U8ÉmTy§ü`òFå;¼A®? UÔ6:ÑÐÊãÚÃCkös1ÝöâÜFsL÷WVÈÍT7ó`ÖB½
-ûhëY±ÅàLÀR?ë¾+ôòÉO¥L3 ;Ws´ì³¥L·ðú|q¬Aèzn¦Û-MCvß
-'íù.EqSsZý+tloCĶdãûuå÷Øï,Ij S]©O«á±:²m£û ®µ
õe¸*Ë3nxtÉ¥¿¢mÖÑúX4®C¢ÞÓI¿{ójÑø�YôfböÂëgH¡¬-ÞýFmz G~Ow p4=óýk2r¦°A¼YÕ9ûbÕfã¼Ìã{8?Á¾·Rv^ÅRÊsW8Ư;&ÓzÉ
-bR8ÈìñÓ
dÆrEÃÁI#¤ÏiWçæ×da8Éö°êA¼÷\ÝqoË1ûü¤µ íUë0+³L ÛTE¼óVXK*x6tÄÍZ¬
ÉX?A_ïÀã:q§úH)îÄ}>꯽wEn»a¯ÊÌ|B2t¢}(Æ-N¥<A6Í6EÞ+ïÛÄÌw)É©·måuû¿©»hÑ!\¿
-ª7»VÞÝÉ%ý.®ÏݱÀF¦}þHrÏâ÷Rë[l¢®CBÁN¨h®ÔC¶Yè×orXßÈ\à~UBÚUÐävËù&'ê#ØïH«V-§r,c1Å2³`ewüÀ
iÿ9´ö]ÓLÆQÇk\^¥"ïsxê
-£y©×=Å1çµ{d7ÌÁg
$µ¯g*Zà6VRC³våí¥;DÖÄE¶èÍÚ-óE(©üëùĶ]gv²^©<¿¢ã²¸=jùÐÁêéÕòM;rU:Ñs[öÔÒÖåÍ´ÉA¢y¿Ûý0»BV
¿k¹Oz$e9Sî!?æüÐû]Ü}¶×ýZl²Gû(çù¶,ziýHÓn1¢dd¿,@¯Å-Ù/gæ±toÚ¾|ÆpZº"r?Åç¶2
-"È þ> Ĩh¼<.èâ¿®ó ®&ptØrCNqì6Ê^b·"ýÎTü0W}vmHß½wuíÇ\ ýSöyJ#Ç©sÜ!Jõ´õ] Os5s]ÊÖUisçÅi1ÃD×D½Á1ó§ËÎîw§JÄ÷gÖR_°Ä°'ü:R
2·ÈÖEù_ÔäãfàP§ ]\ã"G~ÎïÆ-{1{
-%T×?0/BÚÕ0ÍÌZáY3Õ WE)Á|²ñ&::â%�º Øt/Ǩ1æÖ×+xpNغÂ5Mýu1¨IM\Z[î¼'¿y_WïM®õ¦µ<§76Ùâx²ÖÇÛðH7¼ó3>Ì`Û2'4W×%AúLªÀ¹fb*¥u.pI5 ³¬^NNqú3á(-YrG°önèó~ªt¶Ú~g¢q-û·ú¬xåmNñ¢©êy0²oÃñ/á(+©r9Ó+8à>èù#»7köjNãcár±¼LCÊÛNf¢Ïl*ò3N#ÊüÞÒ>Â<¯µdxÝ1E
-ðbÍs06kéTf
-I¼O4ÎFÌPfËÓc|qÐÖ*á° ¤³*¡þò~(2í©
/¹!5ê#>ïÊÛ½.7¨W0°8ÑU5BqÚ×Â"ðÑ}ã¿´$`
&ÛaO7Ãg!§ò~Knz?ô¶dôeü½sI¯áPÌÄÍUFþd£xC¢*f Do=÷Et`ë¡EWÞ¨R¶ú[6Ç°Ïõ¤<N±ß2±>ỿ!¥[fF¶ô½KæN×ôÔñ.,²_ZË4À�.ê
ªÜå`ûM0¦\ÞýÂÏôÙåÇ|ïÞ§;®Å÷>×KodÞ~'?¼ªÉ
í$ÇTw«Á.)L#SR"aá,{H¤¶ÕÏ«IÕ¬|j¬C4;¼_Çø3 &`ϤxÕÆv4IëIFáCؤäè£ zIØ]Ë-ÃôQêW
-qæh°(,}/
,_¸^ÎÑçQ-9Uy°U´ðJøJF.dýz}
Vtû¹Õ5pwàyrÇñ2hð2á²öÓ£r4}þUýBs÷EeÈ*\cù½xþ¦ìδàV]qqÈ^×ʾZÙR¯Ú¶G=Ä"zaqñÚ ªAÍåg¬oóÇ®î6¡¹õõQ9Õìã
5Vã3 NïÈ'iØ4]oA#ÊJë;Þ¥Ø18+üJvjå¶-2®¸ÐGo\ÊÝÉó/EAãË
ÄþM,få\$PÚÄüsûksqz:G=KVØ0M;C#^¡ZÂófû½¼#·rvæ1.ã¾%nð¼åë&lr:HÌf[ÍrNîn-Á�ë0Îáî®9t%âDÆ&· ~ù<7wþf^?:MfØÄ˱Fpå`ìØÿî&®�@Ä%Ë 0GUg;ñ^2w¶»pÚ5Â
-fbð0ô¶¦ÑéOàÄòñæÒS»!
-÷(¬=^ÝÏ6n¶g·¨6cf=ÖÊúÎ+]Ñ}_{¹0:ÚÖwçWóB`C9§*²À8RYÕ'÷EÑæ{m0Ë Å6Â&1kzG©Wµèóg-oß;gð>¼IØ$Á vä
ÝO?ª NíãÚþmÖùeJK)õôIûØr<ªO§/bCKu²²ëçWÍvÜîb+K8waQçDÁÏåѦ£m3Òã¼YÝ6ªZè'üÂ1µûTxcÿ21îÅR×G| oÏBXÿ¤vÓ(Ç.íÒYE·T,I¿³Çf£ÆØ)U;3^yw{ÊeFjýßùøèÛö¬0
Åä)[ÿW$zCT[e¬¬
%<ßÎXC9ÂÝ6fµÃݺvõRÐK
£ú)¼ÖÊ;¢×B5x*!¾bOñ³N°µV´ê¥õ/òÎ/^ªõ»¯íHnbÃßÏø¯tpXà3Eåÿ¢c¸Ühï2#·]X<+RêôfIÇjÉuÙΧåçÂËH³g°>¦×X÷êt䮳nÿÙ(¥Ö¸ràÍLX¯Èx}WnéaÍè+åúí»b³ç«nö`
À>ü4{Ò!
JÀµÍåã<ÉîÖfík81³a¤oQ¸%лP¾2k¶Ló~@4ßí*¾Æ#¦W4§P8¤Ünë¨k8ÿU·ðbO&ùìjègoRίz§o�£V,V;ìó;o»êËGl¯â¬_F*z¥ö*Ns~¤0¬ÛmNÛ= Ðüè5w�ËO¸I4ö]É)ýæ¨yHFÛr¥4ñfö¾¶SÐu ÜU¬©µe-S®µ «5§½]ÚÞäÇ\ Ò
·aÿz[hµâËÖ<ÿ¥ÁQÇÇÞæÖ<¦ñÉâQgl,2ÐgçM¶Nõ\y2:@aæã¥>ÍÒeãO¯Ñ~ø¶¹Ër
äèçã|ÆEN»9ÞͧçqÓ8Ol¼cóÑuDn®pM�K?÷ äügV^¾²¨]Dñ@ÝA°Ùe±RÊÉ.ºEê(wÂÔ°õuÈ ¼# %¢Óå9gõh
2²0ÍR0iM=îÞLM±p:fxŦ@&"JlC 1Y2iº±ÌT¬¢8ÌJ¸oÌÔW<{¿·,b¬¹L_�jz´(]YI'ô$¡�ÇjäMp¿æs¥÷>L]üC RðbßçÙnß¼ÚñoWqFÏiËVÝ!#9^øÌÖL]v?ݪcLÅ5Ó¬Wh´±.÷5ôNt9O(,<IVÕ´ü,5&0;LÂ2~4Pá+7@µ£$_Üy0µïöu@î
bÓ2âÎT¢Ôqcvj
-[mżNh}.RlÑÌä¤Õ`³'E*·eü¯!FÎÄmÇRÈ
-Oø±|Cy<U[Ý~çSÑOöT^¥Æ/ÔéÓ>/ìh¤aYÐ*+I=cï»n$pÓ?:�öR#áªý7Ú)ÊÒ:}hïòH¾6öûS¢Y¿ßÁrK�ªJ)P²yíàÜÖnä¨êÖH£q%~Ϋ| k4VÃ+©Ä[§¾ÐR«T^Ø·Û'ÁkÄÛ!«À¾¾b'Ôô±Å¶WÂÅì®M
-ö6¼p£à¸¨MV°Pñ: O±ì}¢È|Xfr!9uî.õ9 >�
-à_~¯V2:|·º_L$/(4û)
-ëD¦Ý/.Âä1põy¬6EJÿà>¢ßõFWfØýWnHøMbÝ/Üì·:)íãÄý´'kQ;xf´§\wS~kHR9}Õß~-¾u&ª¬>ÏûµEàpØ»ó«ÂrùäkîwêÝÚrMðQ×»¡ZÒQÇÁ¦K5!3¤0Âõô¤ß¢uqaO#ÝÄ:ü°ë§¨ÿôc?2`ýqDpÍV}òñ°¥5ÙL$b¨êyg±£k£
°Ñb»¸pèSèñ£f_Xö'_¸!ÕtÞð½Ûê$*ů�Óñ
÷Ë'Q¦%$>-ö¸¤È¶W ÚËÚì:ºxxaõ¯Eatª[éþìç¾Ó~V â¯Ê/²Oý°÷CTéJÙ:¸Bú/¤>îÕ¯ß+ÆÇ/F_,E2F3ªYÛ¹¸Ì卿àUzÌi�*@ñôªáO¸áÃø3üW9x.¥ÐÖaÆ´þ)¨Zû
+xÚUT\k³® Ü4î®w»CkÜCî�ÁÝÝÝ%8ÁÝ%ØéµÖþW²ÿ}{FßôSU_Õ[5ëcLZJuV13È{4ÄÎS ¡¨ÆÉàdã@¡¥p:!v¦Î A�çë×�1�O[@
 ±÷p[X:$ÿ
+âÙÁ@S;¢©³%ÈhjP�Á g6
@í¯N�5ÈÑdÆÂÉ 0ïA`;ö¿ÉÙC�üÿÍ\ìÿãr9:AE "Pf;È
] *ùÿ!ê¿K»ØØ(Úþþ¯!ý·©-ØÆã ¶ö.Î G"Ääh÷ß¡Ú ´)ÌÀ.¶ÿís6µÅì,l@�L`'i°;ÈLì´Ú8þ¶ìÌþ[tnK`×ÐSÐUWfþçyþíS1Û9kxØÿõ¯à¿ó7C§ãvès°qppB¡¿ÿü3ü¯ZRv@غ¼|�SGGSèf@àÅ �ÛÜ w¨`v6;3ô�:�s#Ê_À.öéâ°Kü&�»äoz
`úø¹ìr¿Àþî7A³(þ&h¥IÀ®ò8쪿À®ö ÔT§æoÖÓú {Ånú õÞÿ&¨jà¿Äõ!6нý
*Èì*ýÖùgK~@EÿÆ¿ü*Úâä°[þÐ&þê¶þ¡âlþ@¨rÛßÈ ÕùlèMeü<ÐXè7Týo7ô¬½©#ÈÎdþ»Îÿ±:þ¯y =ÛCo)ä©pBûpü¡}8ýÔéÝÖßnhßùx¡ÅÝ ¸¡m»üж]ÿ(4ü\\Pãÿ½bââw/Vnn�+´Èk^�?Ïëÿ+èâmÐùï·ôþÍÁÐ[
¹(³ PUbmP¡TÎxÓqº(¥ªö©Tÿùè6ù
+L+:¿¾§àbl#lS¸=:
6{«Hø:D%Í<m»l§x6ê§(zlÙSÝø`6ÕN_ò¾P\*ÓÍíI?í=ÈRaÔØA\¢éÐwîH
àã×N±ÑüXIÇM©äPÌóyÙ
+.~yÌßÇê3R=óâ¤ÙçWRfì1¢Qf
+~ùÂ\z.)W
]|Îh"m.c~ç+Bá2ø´!ãbäóñöEK9Fj*õâöÑX�pYïòÑ h`£ÒÚ¬]B¦,)×Ý\µcy¢ª
e¦È�Rý¥Xª]²g#Zô;Üû»êN.ÿÑo
+~îYåéßöJ˨®rÖ>¼0TÃé*úQ çb×q)U&/ç]HS<üvF
+ÁâÃg¥¦Ä3 ,ë¨Õ*-O0CC-Þ_Ï/¹\¨s,D±)üJ7sâ&Ô¶òSÓ·áGY ³¯t.æè(íÖ1LÕ_êt¦¥tÉÙ4Y'`Á^lÓÓ´]ñç»MÐ]פzL)íN
%ºð>{³:ÙMIض² R½éÞ]Oø§7Í
b² {³¯eüJ¢zÖÓ¡NÄô?Âø^qLÞÇÓ$"jÄO'\8kê|D½¥<t(ôÚlWx½íoJØOËZ{÷ÝL]AaD+ƶ;Y`d.¬Í¹¶¼ãSôzÅí®Yâ8õÄ:_¡É
S;
6¬�×åýûà¼D7ësa4í1Ã]~YÞÖ#¾¨~yò¦jÿ¼Í¯¦¨cLc£î7Ï4O'
4´Ã5nëWò{0ðd´é²7ômÕ~¼}³ÙÝûí
¡íS-ªµit_±²~0©¤TA¤p)Òç5·Û U§þ±ÙÁ"Åk!FñÇíþ(?j�..:CÏ3Ϊ̴f(ù®Aæ¢*yàL}Ô
¡Hý½î\q¸]Ú´C,}ì -ªi³ì²ÐÝDº
m¸°îQzC&ï·¥âR´
+Ë·ýM2[Ûþ8ØS:S $$6õ1jéÔ×=«
+häßÊtGÊGb·J6'3îÅ©ÖtÌÅûü>ë'6ø}åãvÈàᶡIUx]·ü®,vº-ÐkwÉÂ@v8<ßµ!ßTT8²»BE1K¬þµJÎ2®=4`EÔ=n9@îyþT;ç´xZ;\¶h¯ôî#¹]i®¼cñO%ñý_O4ÜÍ
êÚìGÇåzÕ÷[u³;Ù±~Ý£é*u(±£íV.qo®Äm±³ò²Û;«©ª@ù�·X;ÙíöWAÂ=éuøÝ^ÆíÆN±ø¬x/iò(wß,u9Ì_&{@ØWÖBC 7i
+)ªØÜD{i¾9 wE½!'OÏ¦VTïÕnÒ0¥´>"æÈ:~/ڹ媶2ÚÃè Æð¢M¨áuäH!E(ÌnÓü
=¥ÛÖ¨"U8K%£Ñëû.DÄ
`6i93 bÏ[÷EÁl©3Y¿ÎÓîE¹FþÜR>V{4aÅ¥Ã÷ ¶ÔâánäH0Lò#E ÛÚ÷ïΡìÔÄl5§ÆñrZýû\¢óëÇ8Æ°o9vØNÀª«w\(Þs°ßÞ£¯ái9//?âÛpfcn-×ÃÍÄÑ· 8¾=êÁh³ö*Ó)®Óì~$ÿöà({jv?½ôºÁâ
+o¦¸VHkDd£´C _¥�Ñ_!_}¦ü~ÄÜÓL£t~ '¾ì
+e¶ûçC°ãµ,\gXû¦YêÂóáp"n«ä{½ÊwU}j÷n¦Âw&Ì°'êÅfºÛ±ª*Ü/O®í§Èo§ã#Þ"&1)UùhF7*ÍnÒß<~f4Ëï!#³¹VY¯â¶ÜÓî%"Àéµ»aaÞF#SªÚݱWǪew¥6΢iÔí¢o5Õ
Qì£SX<Îq%»7.È'¿nØ+ç
㣧BºÀ>< ÕÂÓqë#ÿ
L<%ÑÆ�ûÖîóXlîØÎ1>¼¬2«^¾Ä.Fò.ÊÌoÊ«9.A!N½×ø%Ál^n'÷ 1½yï´}´~dqíN\(ÁÏ
B�ö[\Q(ï źí:Û Ê'(·Ø{r¦g4µøTzÃù½Øݼ®^ËvM
ÁÂ-ܳ4Wxnî±Wr9ãÝø+¹®,!vÓ�J]?Í6
+ÿfHâ1ñÑÇ.ûããñÄl×S.ÓÎþ¯!QÊÍä
Xø98qË8GHæBìS~¸"ª
+T¤>ÿ0÷ÛX #ï×q» ¤A`ôrÎ 4bñuò'Z$cÊ$ößÁ%]îèÃSÝoÆ
æ?¤âH?ÏÍzû+`PE2w¨ôH·M[û¿Êú¹æ´÷ZA<ë[óDX»¸ê
Bþ¤±ïä7Ð(±Ææ@VìÒäS1Jíª
BÒO³mwY¸] m¤Íȼ»+4X^9æÛp&ƯºjÓ+U¯6
SÖYù
dîi©}oæ;G"(îæóeHO5µqÜ$2òÅuè^î
渲Ò#ÑûWgiÛHçãÎ> °¦Iæ'i~ÛÕ#÷n~ØKL{Ìñ#
iôê»Ñ6ÅÂÇÌä
óâ±ÜQÃÊif¿fU3ºÚR¦éê?£Ë%ì«ÐG0õC²»ÕØWôÌn´ÑûÚ&Í1êc]vdBæ]ô¨yºU"rÆè6&¥?¾ÏpFÎr=
+¼Å-
êÊ,FYì<Á|e{? Õë ¸åìÒÅ]?*ð
+W°ÝeÕW\ådÅí%pÑo·F(ù"mfÝ8ÉäèÆ2¼vóUÊó±e¯3ÿ5[æMÇ_¸ÉèñÎ]@1ì,>(ÃZv�í×YC'Þ~;
[¦[6`Ä{y$üL(
Qÿì|h¡¨ÉàÊé$e\%}¨ê¹ð2M`þ²Fo=6ÂWÓ¯½³77ð¾û
í£|$¶íkie4)³LÈ
+d«½�>{UÐå¤&gDìãkEQè<T=1³Jý�ö§'áC¥Æ_>~>;xĶÛ\¸$wnÒ'y*4Ê¥É7ãÛª
§4v§j1Òå�ÔfjåTz6F¼
'ÁU¶ AÉ@òåí~Ô_¼r
+jNß_ÍâH³k
+ÆÈÂ<óÕ´nø¥v/;2eU%$Ó+¤Ã§»Z¹øµÜD%Á³ªò98c«Qö?X[»5f<ø[¶ñiK~ÂÍ·ÅjÈo|!¿GÊ¢GM2ä~W©*#ì?\ætÄÄp6c³ªîZÕUjò£íT§¢ÐĶ*Z&ßës
½Ø½xÒàs¥Åwj¦B´EÇã7g¥ç¾`¼~,!£,÷RklóTß'CÚÙÄÂU¹`±Ñ7ó(¹Jl£ÉK9 ú®Ô¾ðÇÛÖg°A]SÚñ3ï'
ïãG2YlÌsþÕö<V+Äý¼ª*Ù«%¹=6²Oð¼R[P-©q0o\fUÖPà_8Íw-áÉK5=P»: >gÙ}Àå²Æ>)|Üó r..½¸áªëåÅí£7Q[%ý)iiK´oü¾qeoX öm¯ºïúÚ ²ô»Ôè^ylÀ×òüpúø«1k-1ºû°ÜØ0®\Ò?KãXp_«¾OøeíS^òéi»<ámaGùëÅMùðIÞË˦÷â_3énvJÍë~:ñycÙ³êJÎÝ& wCÖË®ÞѮݪr¹²¨ô}}¥¸)|жޱ´¼@®ð~?*ú£«sð[9î=½êXÓ¦Á|Øm}nÿ¼WÉfrþtú0¶eéà|v*¸
mWkîüù²ði5éô¹46ø¾»Âv±£[`£ºÇ<k
+g§ò)(ø$'±£1´¶]·´¥À+
+·×ø**©§zÁ\¢£ó¢·
+åa8
KÌ<1W²^¡£a¸Î£AÉ`?uËÉêÛhì7СiÚ?åR¢AÜR²³P�}¦%Ø!ܦ@ÜnãµÕÎ@X¶?ÅSÄÌ�Î é8NËé²ÉM.ML°èçðL9´üèʦ?ÖÖ[
äab_$ÛµDqüD¶�©¼·x%:vñ£/ôa;ÁMã6ÈnËü"Të,Ü(Wú~¿û@CD ÷êJhÎlOGŬé£è¤ÛJ:j¡ÎY 2øøº
ºëç¼Ø2!¹Y{¥GÛ2Øúñ¨3©±ØJ¡;Àt #¿PJ½åÉM6Ìì§5�÷öýÇÞå[&ž§/WZcü3¿hÃ<XQQdñÍEpû丫±ÐÆû~E[ôÆ=7&W{E7îÖphÔE÷/Àì#9vfhÕBí¾¹½ÌAhÉ~©"µ2;&G#µXûm/ÆÌPôb
+ÖGÌ_²P4ÝkʪvÐl\lÎ<&"ù
BrÎÞÉ:à³iB2kðIQfa-v¶È¹ë)k;º'^Ìï{;¬IÃV'À÷9ï½ç51ÌnR�©Ã(¾¡`\8i餶ízÿðBE¹KtÌN"c@Æ»F A±BÕ¤Ã=»µÿ@òésÜôg[;÷IË ]jW9×[¬Ði`ØA$>«&5æbdÇ¡Ý!XiÖ=�3p®Ý¨À þZÙã²#KzߣôU« ú¥'÷I�ÞÉ#5$Þq;Ä"PVê'Aö6´¡¥óÍ!
óÌ"~zhÞCQkhNQÏ(Ó!Ë!ÕqóZA§ÞäP_r¤Ù¾³%AQ9#³ûDà¶îíç©üZ¶ü`2íIÆôÝó»Ö(ïA±PÉܤ/á±#4ôAó;)Öea_u=[RËÝ:°-ß9*¦¶69º)~vDãÈì5Ùkh£Â
{a\¤ZXv{-#'\o=²_x�iÌtÞ i@R-3yÀ±Ä'RÇRÛí´¢Ø*^âZ.áá¸ÓVWÃ$ä7ɺw/Ó`é(C|ëü{»7ãQÔÓIRߦ±Üê(×vòôù+QÝHdf1Ϩ'7ÀqV$Â<¨ö°a½Dï¦ï}Í2.\&g¦xº«rZ>Vâ í
ñLúQ×ço9�¶ÙüîEWÕ¦ËÀV1Ã2ªÊ¤ønõ#G¤ç
+5÷ù±¸"ý7)U³k9^ѦI¾â[M;çP)q<YܾVx
jo|2Æ-<yÛpmðs+ïëÖüÏÖUÍ#ø`×>ô¹J%tßý/?
èãI F#»Å®ë6ÊZ¶!±À«ààÙs¦ ¬3#ÿý9®¦
GñÕ]SF§:KLaÎîÂ
+F;^veº&ºÞ!#ÉÝÃp
+¼4ë£K¡§"5ÿQoí«`¾ZD>Íô1%õn<[+èe OayÛnõz'¯h
rÈ&FHÒDãpó5vZzöoµÏF ¶Í91Ååùkî×ZoR¬³VÑ:×%ÉöB×eäÂ"¬?NÇãÛºv
+©bW¾=s8$ÀàrÃ0[ú4skQßð³ûÙ7×Dw<j¹qºS0FüT×Cìû¯M"s}X·r1F 7õ<M+åuG ÖhqR¯½;ã¢L¤Î^az@fÏf>Ìcá:K/ NøѨy ÍyÔ:nþB4.ä¾ qöò¨ï&[Z`/Õ)åW¼¥"
+§(U« fÃ'yï-¶ËhKËæ{¡3f¸$góÍ(¨Mà®ÀK®(z&OÉß
OuoÖÅ6|ofq³c²¤;uþ¥¾ò!Õŵ#<ÕÚ§µ-\ L®ü8Lz]<î]RR-Y¢¾¸ê)í¨[ÅÕÑuUû*¡³öáçöîÓÏ3<ô\llcdSÂ6·ø"÷ßoYªªöFQ6¸Ìa¸ãDûòs
ö
+{~r>IqÊXM¹PµqÖ3Ö9ì_9y·¥s¦?Å"ÂfnöÉ'å#Ñ9°áG½÷Õ+abo*%âàª91"[õ�{ì£KOV.eª*c) ÎXý#?ã_#Ú¼yÕ¯$ob´îIÖÎ ñhóÍGaükSÙu
YQ3ËYÇ
6ÐG¿llGPh¤«í³ï wÊÂc÷Z;ͺ¾ñÇöq'(}æ)ìJÜ0dÞU^â¢ëC¹ðÙP
¼¤´ðjÖ³1\$w¶ÜÑÃe.3åþª¦µZ]pùÃÈzÜÛ°ÒMÒKqÃv^ZúyôÚõÛýH&êDÅM'v 3ëó,!Ñvæô%Õ*C~*¢³¯Ú½iöÓIÌd%'Yµ7Aà^<=ATd ªªQ`Ä*'L:ºÀKøAnùºùpòuªo̾ÕÁS£# JBJì":!pç¸ÈÁÛ^ÿ7ùî=zúÑáµ;4q".<Ù÷ZÃTÀDyíBÔdɯÒzÆú~ä;0ýØBgT<ê¾ÓøõX²&½rÈJY~v´Û{_û£QJ÷ìZ-pá;'"²÷{˯[�vU¨<}c®
[õüiKfvæþËD¹{yG´°NÚ¡è;W|ª¥¹@ç>y7ßµ§gØÐ}¥ý
÷ñaÚõY6¬ôv9óÂgÜTê2<VNäí¡æ¸ð3üÚi'q=Þùü(»oáDF%nóS
+[ØEÓ}G/(`_ð &'§Á§ÄNÝÙl ¿Zæ)8[',oV>¸ü9Nÿaz#/ªW@ñ}ýBÉ_B"ÐpX©9J56ey#QfØ�WÞ½ð)ìàã&)Ww0Ñ\#Æפ,¶ÐÍ«»52;aä£Æë}Çíd%)�Ó²8iy_jÔ©:åÂÖó;¶¯1ÞÃáQ:íx DéÙA4ß
ÓÆÓÆþ^ÎïW¸É
ëH¥ I<Î{·EÁäèLÏc]¡q¢2îbÒ
%¶Iû±ãH4Bè5Ñ=@©Ë¸|ç>RÚ¿0®`âäFÎÙáºdÆÔ¾°Y¡tc¦_N¦gèsm~fïÖp·ÏAÄ)^% z¨ÍKÕÿé½~òeÅ»eyÂò4+¯
µD4õN½Nxå\ZL4Ľ¤9ïeÀ_ŽsÄÊâo¿ÔÊ~+GÀ"¸åxKvI ÐÒ4Lob|vhg墶AÄ%4äëm¿Þ 3ÒHõç!kT±` <$dôjÔåùÉÙ!ÇÙg
b«Æ»4ï~<x×%=<mý!d±év®SúÙ´ùàÂt¯ÕvlÀ×Ø}[>öÛÚ³HÐÑ«Î
øÂÍMήÕt0¹F
[»ÖÁý}ÙÖ¦^'Mçóz¡è;åï&Ëj¤ "ôÓûDþÚswô°F=Ñ"HO³²;»öУÞÕ\ÞWLÖ/#2TÑÛØñvê'È%UÕ}£fc´®±üYÒîds0 ب¹sM#b*o{¿q6êØîoZJUN¿çµ>女ed0 ³÷}#ÓÁ{«o.Êk©y8¿«
+¸eLæAF]ø¤Xÿn[$Ææ8Ç1B£yß¿»¨Ë?Õ®_Ï°'Lü+¼§jÌtñguq"eÂJ
+µd÷ÑÍl©l@<z¨ì«X%U&j°Rå
`Z7÷§¸$k/N^ÒzàH@¶$"1zß:Ô.T{üáp£ZÔ·ùg÷Ùª%Ä-û)|Åè8lD}$¹ê=½nJ<©cÕ,Nó½îÜÏ=¢Ëm5 ø%ÎmÎS'Îì{GãïÒdº(
+[?4åFÅB-ìPc=¨ýíö³¶î¾½ÇáI£f£Õt½ã\:9ËþQÆÁwc]î@jìöñX·H ç¼}(Zºóm7vn%dA>ûáZ#
\1Þ}÷Å×óÐgrù¶â.£&Û
ýø
áf5²îQò¯ÙVÂ!M�K^ÊC$ö¡3sQeSN®Q³l;ʲ7udéP°wý§\ÌÂûÁ`
+¥òò¥c£BwoÈÓ8£Ü¿¾¾w,ªK¤bñ3DÑ=npe´¾C¡~jp¿ ÚwÔ¼MX4KcÖQ®K|xzZÛõåûZòG%æ)ë
³s}dúUöÐ+íI/ÍÌÝÔF?gE#*3äh¬4/¼¬~þzwAZÇË,JÅÃÛOç¾n\«ç?rÜã±ÏO|Ù³Ô[(¿·jbÂ%±Õocîn,¢8{'8ÐbáGyW-1*)ËZ>9®7\_¡_H¶uÑ£$MÔòDÊ)`iòܦ§!ÛKW§Ìâ #B+ªUñw±.")j¶ zurtnmWfC Òð|ÙÓ¸fÊÕcPDèC×¼Àw*õÊÍWUp
"¥æ;kY}Å¡E$r^/Sïö,¯
ñH¹fYøpÆ$tB¾~AKãæt¦¹Æ%ðòÔiÌzWûª®Î¼â/yMòôLM¨ñ»$O
*1CÏ6ÌúWá:¾Ý_¥ôýÎu¾á½·:¦æG-ðÃVþµJ×e@³MåÜËÙãc¢P'öl=[]§ýkx(9~Ð\ê:°j·D'ã´Ðv±Ô)3Ìíþf¢C4ßKù¦EæÚyókÉLwTnÆùB«Ö!j«I½Êa¹©+²æͼs¹Ä^È)M¨Åek¾ìCÙ ñtWPA8P§»\níìZ¼µ>¤ûT¨T~ýé±
D.f2D¾HЫS¿UÅkÚt\§hàH%á¥qWã@w{LN½\
=»¼¼'_îík¶è¥ð¬Ò!L!ouîFÄTºÜHߥW:¡òÆÑGiëWQg¢Èh½bÕ¦ü\Ѭï÷\zÎÅþ$ ñé[G- ,`ðàÝ`IWÙQCE§äðFÑÔ;#´·%Ãìîßr
+òȽ~»oàVC7¿(ÛÑhÛb⾸¼u¨v5øuC°Ð±X"÷%Ð>ãËaëÕ³à¿m°¤L~á$ewÔ§¡«0?Òt8RûHNÝüÕak&;êõ¾öÎ+¶
+-
êïmO&(±i[(Õ¢Í$ñ¹1×ÓÞ;øM÷¡Ë�§ \Âá:qK}êZ;hƤÚ8ú¸è<aà×oUmBûï(¡qßó¢áÎÜ;õÖÃ!B�qÑ°))Þ¡lÉMÌèÕº
+L9^'ÕµÐÒ}½c®lôa-%n£Ú85Ðÿ=Bd¥2C¦d^¾Moβ¿mcù&ÑtËÐвv7£ù÷%zlÅTÿümKOoUw7ÊóYä¥w6/k=1ª½ªß°JÂ@øµìó°u[2¥Á¢Hç¿(ÕêD0÷É%ªè¼Ù`6°
§p(Ñêpd
Éʺ"ÄÑ,~e^§Má׺\ÕHX[LJGéËÂèÚÍÞ{Ëw»¡,æfñð÷ôãü?ë>ÿ
endstream
endobj
2302 0 obj <<
/Type /FontDescriptor
-/FontName /JOBSRM+CMR17
+/FontName /TZKYSO+CMR17
/Flags 4
/FontBBox [-33 -250 945 749]
/Ascent 694
@@ -10637,7 +10639,7 @@
/ItalicAngle 0
/StemV 53
/XHeight 430
-/CharSet (/A/C/D/E/I/L/M/N/P/Q/R/S/U/V/a/b/c/colon/d/e/f/fi/g/h/i/k/l/m/n/o/one/p/parenleft/parenright/period/r/s/seven/six/t/two/u/v/x/y)
+/CharSet (/A/C/D/E/I/L/M/N/P/Q/R/S/U/V/a/b/c/colon/d/e/eight/f/fi/g/h/i/k/l/m/n/o/one/p/parenleft/parenright/period/r/s/six/t/two/u/v/x/y)
/FontFile 2301 0 R
>> endobj
2303 0 obj <<
@@ -11215,7 +11217,7 @@
947 0 obj <<
/Type /Font
/Subtype /Type1
-/BaseFont /JOBSRM+CMR17
+/BaseFont /TZKYSO+CMR17
/FontDescriptor 2302 0 R
/FirstChar 12
/LastChar 121
@@ -13748,8 +13750,8 @@
>> endobj
2453 0 obj <<
/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.3)/Keywords()
-/CreationDate (D:20110317111449-05'00')
-/ModDate (D:20110317111449-05'00')
+/CreationDate (D:20110425122504-05'00')
+/ModDate (D:20110425122504-05'00')
/Trapped /False
/PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6)
>> endobj
@@ -13761,2459 +13763,2459 @@
0000000004 00000 f
0000000000 00000 f
0000000015 00000 n
-0000072575 00000 n
-0000633151 00000 n
+0000072572 00000 n
+0000633200 00000 n
0000000060 00000 n
0000000090 00000 n
-0000072636 00000 n
-0000633042 00000 n
+0000072633 00000 n
+0000633091 00000 n
0000000137 00000 n
0000000175 00000 n
-0000074861 00000 n
-0000632981 00000 n
+0000074858 00000 n
+0000633030 00000 n
0000000228 00000 n
0000000257 00000 n
-0000076920 00000 n
-0000632858 00000 n
+0000076917 00000 n
+0000632907 00000 n
0000000305 00000 n
0000000332 00000 n
-0000076982 00000 n
-0000632784 00000 n
+0000076979 00000 n
+0000632833 00000 n
0000000385 00000 n
0000000416 00000 n
-0000077044 00000 n
-0000632697 00000 n
+0000077041 00000 n
+0000632746 00000 n
0000000469 00000 n
0000000504 00000 n
-0000077106 00000 n
-0000632610 00000 n
+0000077103 00000 n
+0000632659 00000 n
0000000557 00000 n
0000000593 00000 n
-0000079223 00000 n
-0000632536 00000 n
+0000079220 00000 n
+0000632585 00000 n
0000000646 00000 n
0000000677 00000 n
-0000079285 00000 n
-0000632426 00000 n
+0000079282 00000 n
+0000632475 00000 n
0000000725 00000 n
0000000752 00000 n
-0000079347 00000 n
-0000632352 00000 n
+0000079344 00000 n
+0000632401 00000 n
0000000805 00000 n
0000000836 00000 n
-0000081171 00000 n
-0000632265 00000 n
+0000081168 00000 n
+0000632314 00000 n
0000000889 00000 n
0000000933 00000 n
-0000083851 00000 n
-0000632178 00000 n
+0000083848 00000 n
+0000632227 00000 n
0000000986 00000 n
0000001034 00000 n
-0000083913 00000 n
-0000632091 00000 n
+0000083910 00000 n
+0000632140 00000 n
0000001087 00000 n
0000001131 00000 n
-0000085415 00000 n
-0000632017 00000 n
+0000085412 00000 n
+0000632066 00000 n
0000001184 00000 n
0000001233 00000 n
-0000086844 00000 n
-0000631890 00000 n
+0000086841 00000 n
+0000631939 00000 n
0000001279 00000 n
0000001311 00000 n
-0000086906 00000 n
-0000631779 00000 n
+0000086903 00000 n
+0000631828 00000 n
0000001359 00000 n
0000001411 00000 n
-0000086968 00000 n
-0000631705 00000 n
+0000086965 00000 n
+0000631754 00000 n
0000001464 00000 n
0000001503 00000 n
-0000093725 00000 n
-0000631618 00000 n
+0000093722 00000 n
+0000631667 00000 n
0000001556 00000 n
0000001588 00000 n
-0000098099 00000 n
-0000631531 00000 n
+0000098096 00000 n
+0000631580 00000 n
0000001641 00000 n
0000001670 00000 n
-0000100278 00000 n
-0000631444 00000 n
+0000100275 00000 n
+0000631493 00000 n
0000001723 00000 n
0000001752 00000 n
-0000102196 00000 n
-0000631357 00000 n
+0000102193 00000 n
+0000631406 00000 n
0000001805 00000 n
0000001845 00000 n
-0000113579 00000 n
-0000631270 00000 n
+0000113576 00000 n
+0000631319 00000 n
0000001898 00000 n
0000001928 00000 n
-0000113705 00000 n
-0000631196 00000 n
+0000113702 00000 n
+0000631245 00000 n
0000001981 00000 n
0000002004 00000 n
-0000113767 00000 n
-0000631068 00000 n
+0000113764 00000 n
+0000631117 00000 n
0000002052 00000 n
0000002088 00000 n
-0000113829 00000 n
-0000630990 00000 n
+0000113826 00000 n
+0000631039 00000 n
0000002142 00000 n
0000002193 00000 n
-0000121626 00000 n
-0000630912 00000 n
+0000121623 00000 n
+0000630961 00000 n
0000002247 00000 n
0000002274 00000 n
-0000124148 00000 n
-0000630796 00000 n
+0000124145 00000 n
+0000630845 00000 n
0000002323 00000 n
0000002350 00000 n
-0000124211 00000 n
-0000630717 00000 n
+0000124208 00000 n
+0000630766 00000 n
0000002404 00000 n
0000002436 00000 n
-0000124274 00000 n
-0000630624 00000 n
+0000124271 00000 n
+0000630673 00000 n
0000002490 00000 n
0000002543 00000 n
-0000124337 00000 n
-0000630531 00000 n
+0000124334 00000 n
+0000630580 00000 n
0000002597 00000 n
0000002656 00000 n
-0000126567 00000 n
-0000630438 00000 n
+0000126564 00000 n
+0000630487 00000 n
0000002710 00000 n
0000002756 00000 n
-0000129328 00000 n
-0000630345 00000 n
+0000129325 00000 n
+0000630394 00000 n
0000002810 00000 n
0000002849 00000 n
-0000131622 00000 n
-0000630252 00000 n
+0000131619 00000 n
+0000630301 00000 n
0000002903 00000 n
0000002943 00000 n
-0000134557 00000 n
-0000630159 00000 n
+0000134554 00000 n
+0000630208 00000 n
0000002997 00000 n
0000003040 00000 n
-0000136947 00000 n
-0000630080 00000 n
+0000136944 00000 n
+0000630129 00000 n
0000003094 00000 n
0000003136 00000 n
-0000141654 00000 n
-0000629948 00000 n
+0000141651 00000 n
+0000629997 00000 n
0000003183 00000 n
0000003220 00000 n
-0000141717 00000 n
-0000629869 00000 n
+0000141714 00000 n
+0000629918 00000 n
0000003269 00000 n
0000003301 00000 n
-0000141908 00000 n
-0000629776 00000 n
+0000141905 00000 n
+0000629825 00000 n
0000003350 00000 n
0000003387 00000 n
-0000144170 00000 n
-0000629683 00000 n
+0000144167 00000 n
+0000629732 00000 n
0000003436 00000 n
0000003465 00000 n
-0000144233 00000 n
-0000629551 00000 n
+0000144230 00000 n
+0000629600 00000 n
0000003514 00000 n
0000003554 00000 n
-0000146519 00000 n
-0000629486 00000 n
+0000146516 00000 n
+0000629535 00000 n
0000003608 00000 n
0000003635 00000 n
-0000146582 00000 n
-0000629393 00000 n
+0000146579 00000 n
+0000629442 00000 n
0000003684 00000 n
0000003739 00000 n
-0000148566 00000 n
-0000629260 00000 n
+0000148563 00000 n
+0000629309 00000 n
0000003788 00000 n
0000003819 00000 n
-0000148629 00000 n
-0000629181 00000 n
+0000148626 00000 n
+0000629230 00000 n
0000003873 00000 n
0000003923 00000 n
-0000150383 00000 n
-0000629088 00000 n
+0000150380 00000 n
+0000629137 00000 n
0000003977 00000 n
0000004006 00000 n
-0000155015 00000 n
-0000628995 00000 n
+0000155012 00000 n
+0000629044 00000 n
0000004060 00000 n
0000004102 00000 n
-0000157312 00000 n
-0000628902 00000 n
+0000157309 00000 n
+0000628951 00000 n
0000004156 00000 n
0000004185 00000 n
-0000160036 00000 n
-0000628809 00000 n
+0000160033 00000 n
+0000628858 00000 n
0000004239 00000 n
0000004267 00000 n
-0000162856 00000 n
-0000628716 00000 n
+0000162853 00000 n
+0000628765 00000 n
0000004321 00000 n
0000004360 00000 n
-0000162919 00000 n
-0000628623 00000 n
+0000162916 00000 n
+0000628672 00000 n
0000004414 00000 n
0000004446 00000 n
-0000165206 00000 n
-0000628530 00000 n
+0000165203 00000 n
+0000628579 00000 n
0000004500 00000 n
0000004532 00000 n
-0000165269 00000 n
-0000628437 00000 n
+0000165266 00000 n
+0000628486 00000 n
0000004586 00000 n
0000004618 00000 n
-0000165332 00000 n
-0000628344 00000 n
+0000165329 00000 n
+0000628393 00000 n
0000004673 00000 n
0000004700 00000 n
-0000167869 00000 n
-0000628251 00000 n
+0000167866 00000 n
+0000628300 00000 n
0000004755 00000 n
0000004792 00000 n
-0000170841 00000 n
-0000628172 00000 n
+0000170838 00000 n
+0000628221 00000 n
0000004847 00000 n
0000004882 00000 n
-0000175423 00000 n
-0000628053 00000 n
+0000175420 00000 n
+0000628102 00000 n
0000004931 00000 n
0000004986 00000 n
-0000177096 00000 n
-0000627974 00000 n
+0000177093 00000 n
+0000628023 00000 n
0000005040 00000 n
0000005085 00000 n
-0000178749 00000 n
-0000627881 00000 n
+0000178746 00000 n
+0000627930 00000 n
0000005139 00000 n
0000005188 00000 n
-0000180396 00000 n
-0000627788 00000 n
+0000180393 00000 n
+0000627837 00000 n
0000005242 00000 n
0000005290 00000 n
-0000180459 00000 n
-0000627695 00000 n
+0000180456 00000 n
+0000627744 00000 n
0000005344 00000 n
0000005393 00000 n
-0000180522 00000 n
-0000627602 00000 n
+0000180519 00000 n
+0000627651 00000 n
0000005447 00000 n
0000005501 00000 n
-0000180585 00000 n
-0000627509 00000 n
+0000180582 00000 n
+0000627558 00000 n
0000005555 00000 n
0000005590 00000 n
-0000180648 00000 n
-0000627416 00000 n
+0000180645 00000 n
+0000627465 00000 n
0000005644 00000 n
0000005677 00000 n
-0000182534 00000 n
-0000627323 00000 n
+0000182531 00000 n
+0000627372 00000 n
0000005731 00000 n
0000005762 00000 n
-0000182597 00000 n
-0000627230 00000 n
+0000182594 00000 n
+0000627279 00000 n
0000005816 00000 n
0000005849 00000 n
-0000182660 00000 n
-0000627137 00000 n
+0000182657 00000 n
+0000627186 00000 n
0000005904 00000 n
0000005948 00000 n
-0000184255 00000 n
-0000627044 00000 n
+0000184252 00000 n
+0000627093 00000 n
0000006003 00000 n
0000006054 00000 n
-0000184318 00000 n
-0000626951 00000 n
+0000184315 00000 n
+0000627000 00000 n
0000006109 00000 n
0000006144 00000 n
-0000184381 00000 n
-0000626858 00000 n
+0000184378 00000 n
+0000626907 00000 n
0000006199 00000 n
0000006246 00000 n
-0000184444 00000 n
-0000626779 00000 n
+0000184441 00000 n
+0000626828 00000 n
0000006301 00000 n
0000006324 00000 n
-0000186973 00000 n
-0000626645 00000 n
+0000186970 00000 n
+0000626694 00000 n
0000006371 00000 n
0000006423 00000 n
-0000187036 00000 n
-0000626566 00000 n
+0000187033 00000 n
+0000626615 00000 n
0000006472 00000 n
0000006504 00000 n
-0000189287 00000 n
-0000626434 00000 n
+0000189284 00000 n
+0000626483 00000 n
0000006553 00000 n
0000006595 00000 n
-0000189350 00000 n
-0000626355 00000 n
+0000189347 00000 n
+0000626404 00000 n
0000006649 00000 n
0000006677 00000 n
-0000189413 00000 n
-0000626262 00000 n
+0000189410 00000 n
+0000626311 00000 n
0000006731 00000 n
0000006776 00000 n
-0000191469 00000 n
-0000626169 00000 n
+0000191466 00000 n
+0000626218 00000 n
0000006830 00000 n
0000006856 00000 n
-0000191532 00000 n
-0000626090 00000 n
+0000191529 00000 n
+0000626139 00000 n
0000006910 00000 n
0000006942 00000 n
-0000193534 00000 n
-0000625997 00000 n
+0000193531 00000 n
+0000626046 00000 n
0000006991 00000 n
0000007026 00000 n
-0000193597 00000 n
-0000625904 00000 n
+0000193594 00000 n
+0000625953 00000 n
0000007075 00000 n
0000007104 00000 n
-0000193660 00000 n
-0000625811 00000 n
+0000193657 00000 n
+0000625860 00000 n
0000007153 00000 n
0000007189 00000 n
-0000195510 00000 n
-0000625718 00000 n
+0000195507 00000 n
+0000625767 00000 n
0000007238 00000 n
0000007284 00000 n
-0000196794 00000 n
-0000625625 00000 n
+0000196791 00000 n
+0000625674 00000 n
0000007333 00000 n
0000007361 00000 n
-0000199232 00000 n
-0000625493 00000 n
+0000199229 00000 n
+0000625542 00000 n
0000007410 00000 n
0000007464 00000 n
-0000199295 00000 n
-0000625428 00000 n
+0000199292 00000 n
+0000625477 00000 n
0000007518 00000 n
0000007555 00000 n
-0000202731 00000 n
-0000625295 00000 n
+0000202728 00000 n
+0000625344 00000 n
0000007604 00000 n
0000007641 00000 n
-0000202794 00000 n
-0000625216 00000 n
+0000202791 00000 n
+0000625265 00000 n
0000007695 00000 n
0000007723 00000 n
-0000204489 00000 n
-0000625123 00000 n
+0000204486 00000 n
+0000625172 00000 n
0000007777 00000 n
0000007804 00000 n
-0000204552 00000 n
-0000625030 00000 n
+0000204549 00000 n
+0000625079 00000 n
0000007858 00000 n
0000007888 00000 n
-0000206039 00000 n
-0000624937 00000 n
+0000206036 00000 n
+0000624986 00000 n
0000007942 00000 n
0000007970 00000 n
-0000207792 00000 n
-0000624844 00000 n
+0000207789 00000 n
+0000624893 00000 n
0000008024 00000 n
0000008055 00000 n
-0000207855 00000 n
-0000624751 00000 n
+0000207852 00000 n
+0000624800 00000 n
0000008109 00000 n
0000008146 00000 n
-0000207917 00000 n
-0000624658 00000 n
+0000207914 00000 n
+0000624707 00000 n
0000008200 00000 n
0000008229 00000 n
-0000207980 00000 n
-0000624565 00000 n
+0000207977 00000 n
+0000624614 00000 n
0000008283 00000 n
0000008312 00000 n
-0000209917 00000 n
-0000624472 00000 n
+0000209914 00000 n
+0000624521 00000 n
0000008366 00000 n
0000008401 00000 n
-0000211722 00000 n
-0000624379 00000 n
+0000211719 00000 n
+0000624428 00000 n
0000008456 00000 n
0000008481 00000 n
-0000211785 00000 n
-0000624286 00000 n
+0000211782 00000 n
+0000624335 00000 n
0000008536 00000 n
0000008568 00000 n
-0000215337 00000 n
-0000624193 00000 n
+0000215334 00000 n
+0000624242 00000 n
0000008623 00000 n
0000008670 00000 n
-0000215400 00000 n
-0000624100 00000 n
+0000215397 00000 n
+0000624149 00000 n
0000008725 00000 n
0000008767 00000 n
-0000218688 00000 n
-0000624021 00000 n
+0000218685 00000 n
+0000624070 00000 n
0000008822 00000 n
0000008848 00000 n
-0000218751 00000 n
-0000623928 00000 n
+0000218748 00000 n
+0000623977 00000 n
0000008898 00000 n
0000008926 00000 n
-0000220003 00000 n
-0000623835 00000 n
+0000220000 00000 n
+0000623884 00000 n
0000008976 00000 n
0000009011 00000 n
-0000224158 00000 n
-0000623742 00000 n
+0000224155 00000 n
+0000623791 00000 n
0000009061 00000 n
0000009125 00000 n
-0000230596 00000 n
-0000623649 00000 n
+0000230593 00000 n
+0000623698 00000 n
0000009175 00000 n
0000009209 00000 n
-0000232146 00000 n
-0000623570 00000 n
+0000232143 00000 n
+0000623619 00000 n
0000009259 00000 n
0000009300 00000 n
-0000233887 00000 n
-0000623437 00000 n
+0000233884 00000 n
+0000623486 00000 n
0000009347 00000 n
0000009395 00000 n
-0000233950 00000 n
-0000623358 00000 n
+0000233947 00000 n
+0000623407 00000 n
0000009444 00000 n
0000009476 00000 n
-0000234013 00000 n
-0000623226 00000 n
+0000234010 00000 n
+0000623275 00000 n
0000009525 00000 n
0000009558 00000 n
-0000234076 00000 n
-0000623147 00000 n
+0000234073 00000 n
+0000623196 00000 n
0000009612 00000 n
0000009639 00000 n
-0000234139 00000 n
-0000623054 00000 n
+0000234136 00000 n
+0000623103 00000 n
0000009693 00000 n
0000009721 00000 n
-0000236762 00000 n
-0000622961 00000 n
+0000236759 00000 n
+0000623010 00000 n
0000009775 00000 n
0000009801 00000 n
-0000238712 00000 n
-0000622882 00000 n
+0000238709 00000 n
+0000622931 00000 n
0000009855 00000 n
0000009883 00000 n
-0000240681 00000 n
-0000622750 00000 n
+0000240678 00000 n
+0000622799 00000 n
0000009932 00000 n
0000009974 00000 n
-0000240744 00000 n
-0000622671 00000 n
+0000240741 00000 n
+0000622720 00000 n
0000010028 00000 n
0000010057 00000 n
-0000242509 00000 n
-0000622592 00000 n
+0000242506 00000 n
+0000622641 00000 n
0000010111 00000 n
0000010148 00000 n
-0000245367 00000 n
-0000622474 00000 n
+0000245364 00000 n
+0000622523 00000 n
0000010197 00000 n
0000010230 00000 n
-0000245430 00000 n
-0000622395 00000 n
+0000245427 00000 n
+0000622444 00000 n
0000010284 00000 n
0000010311 00000 n
-0000245493 00000 n
-0000622302 00000 n
+0000245490 00000 n
+0000622351 00000 n
0000010365 00000 n
0000010422 00000 n
-0000245556 00000 n
-0000622209 00000 n
+0000245553 00000 n
+0000622258 00000 n
0000010476 00000 n
0000010529 00000 n
-0000247158 00000 n
-0000622130 00000 n
+0000247155 00000 n
+0000622179 00000 n
0000010583 00000 n
0000010638 00000 n
-0000249016 00000 n
-0000621997 00000 n
+0000249013 00000 n
+0000622046 00000 n
0000010685 00000 n
0000010720 00000 n
-0000249079 00000 n
-0000621879 00000 n
+0000249076 00000 n
+0000621928 00000 n
0000010769 00000 n
0000010793 00000 n
-0000249142 00000 n
-0000621800 00000 n
+0000249139 00000 n
+0000621849 00000 n
0000010847 00000 n
0000010879 00000 n
-0000249205 00000 n
-0000621707 00000 n
+0000249202 00000 n
+0000621756 00000 n
0000010933 00000 n
0000010962 00000 n
-0000252895 00000 n
-0000621614 00000 n
+0000252892 00000 n
+0000621663 00000 n
0000011016 00000 n
0000011049 00000 n
-0000252958 00000 n
-0000621535 00000 n
+0000252955 00000 n
+0000621584 00000 n
0000011103 00000 n
0000011140 00000 n
-0000259352 00000 n
-0000621402 00000 n
+0000259349 00000 n
+0000621451 00000 n
0000011189 00000 n
0000011214 00000 n
-0000259415 00000 n
-0000621323 00000 n
+0000259412 00000 n
+0000621372 00000 n
0000011268 00000 n
0000011300 00000 n
-0000259478 00000 n
-0000621230 00000 n
+0000259475 00000 n
+0000621279 00000 n
0000011354 00000 n
0000011382 00000 n
-0000262558 00000 n
-0000621137 00000 n
+0000262555 00000 n
+0000621186 00000 n
0000011436 00000 n
0000011479 00000 n
-0000262621 00000 n
-0000621044 00000 n
+0000262618 00000 n
+0000621093 00000 n
0000011533 00000 n
0000011567 00000 n
-0000262684 00000 n
-0000620951 00000 n
+0000262681 00000 n
+0000621000 00000 n
0000011621 00000 n
0000011654 00000 n
-0000268702 00000 n
-0000620858 00000 n
+0000268699 00000 n
+0000620907 00000 n
0000011708 00000 n
0000011746 00000 n
-0000268765 00000 n
-0000620765 00000 n
+0000268762 00000 n
+0000620814 00000 n
0000011800 00000 n
0000011835 00000 n
-0000271016 00000 n
-0000620672 00000 n
+0000271013 00000 n
+0000620721 00000 n
0000011889 00000 n
0000011942 00000 n
-0000271079 00000 n
-0000620579 00000 n
+0000271076 00000 n
+0000620628 00000 n
0000011996 00000 n
0000012024 00000 n
-0000271141 00000 n
-0000620500 00000 n
+0000271138 00000 n
+0000620549 00000 n
0000012079 00000 n
0000012113 00000 n
-0000271204 00000 n
-0000620382 00000 n
+0000271201 00000 n
+0000620431 00000 n
0000012162 00000 n
0000012187 00000 n
-0000271267 00000 n
-0000620303 00000 n
+0000271264 00000 n
+0000620352 00000 n
0000012241 00000 n
0000012273 00000 n
-0000273355 00000 n
-0000620210 00000 n
+0000273352 00000 n
+0000620259 00000 n
0000012327 00000 n
0000012355 00000 n
-0000273418 00000 n
-0000620117 00000 n
+0000273415 00000 n
+0000620166 00000 n
0000012409 00000 n
0000012458 00000 n
-0000277489 00000 n
-0000620024 00000 n
+0000277486 00000 n
+0000620073 00000 n
0000012512 00000 n
0000012553 00000 n
-0000279545 00000 n
-0000619931 00000 n
+0000279542 00000 n
+0000619980 00000 n
0000012607 00000 n
0000012674 00000 n
-0000281586 00000 n
-0000619838 00000 n
+0000281583 00000 n
+0000619887 00000 n
0000012728 00000 n
0000012782 00000 n
-0000285553 00000 n
-0000619745 00000 n
+0000285550 00000 n
+0000619794 00000 n
0000012836 00000 n
0000012884 00000 n
-0000292417 00000 n
-0000619666 00000 n
+0000292414 00000 n
+0000619715 00000 n
0000012938 00000 n
0000012981 00000 n
-0000294594 00000 n
-0000619533 00000 n
+0000294591 00000 n
+0000619582 00000 n
0000013028 00000 n
0000013096 00000 n
-0000294657 00000 n
-0000619454 00000 n
+0000294654 00000 n
+0000619503 00000 n
0000013145 00000 n
0000013177 00000 n
-0000296414 00000 n
-0000619361 00000 n
+0000296411 00000 n
+0000619410 00000 n
0000013226 00000 n
0000013272 00000 n
-0000296477 00000 n
-0000619282 00000 n
+0000296474 00000 n
+0000619331 00000 n
0000013321 00000 n
0000013358 00000 n
-0000320010 00000 n
-0000619149 00000 n
+0000320007 00000 n
+0000619198 00000 n
0000013405 00000 n
0000013429 00000 n
-0000320073 00000 n
-0000619045 00000 n
+0000320070 00000 n
+0000619094 00000 n
0000013478 00000 n
0000013530 00000 n
-0000322356 00000 n
-0000618966 00000 n
+0000322353 00000 n
+0000619015 00000 n
0000013584 00000 n
0000013613 00000 n
-0000324538 00000 n
-0000618873 00000 n
+0000324535 00000 n
+0000618922 00000 n
0000013667 00000 n
0000013695 00000 n
-0000328592 00000 n
-0000618780 00000 n
+0000328589 00000 n
+0000618829 00000 n
0000013749 00000 n
0000013800 00000 n
-0000333452 00000 n
-0000618701 00000 n
+0000333449 00000 n
+0000618750 00000 n
0000013854 00000 n
0000013892 00000 n
-0000336801 00000 n
-0000618568 00000 n
+0000336798 00000 n
+0000618617 00000 n
0000013939 00000 n
0000013990 00000 n
-0000336864 00000 n
-0000618489 00000 n
+0000336861 00000 n
+0000618538 00000 n
0000014039 00000 n
0000014090 00000 n
-0000338579 00000 n
-0000618396 00000 n
+0000338576 00000 n
+0000618445 00000 n
0000014139 00000 n
0000014173 00000 n
-0000338642 00000 n
-0000618303 00000 n
+0000338639 00000 n
+0000618352 00000 n
0000014222 00000 n
0000014258 00000 n
-0000338705 00000 n
-0000618210 00000 n
+0000338702 00000 n
+0000618259 00000 n
0000014307 00000 n
0000014335 00000 n
-0000340741 00000 n
-0000618117 00000 n
+0000340738 00000 n
+0000618166 00000 n
0000014384 00000 n
0000014435 00000 n
-0000342297 00000 n
-0000618024 00000 n
+0000342294 00000 n
+0000618073 00000 n
0000014484 00000 n
0000014525 00000 n
-0000342360 00000 n
-0000617931 00000 n
+0000342357 00000 n
+0000617980 00000 n
0000014574 00000 n
0000014619 00000 n
-0000347121 00000 n
-0000617813 00000 n
+0000347118 00000 n
+0000617862 00000 n
0000014668 00000 n
0000014736 00000 n
-0000349113 00000 n
-0000617734 00000 n
+0000349110 00000 n
+0000617783 00000 n
0000014790 00000 n
0000014840 00000 n
-0000349431 00000 n
-0000617641 00000 n
+0000349428 00000 n
+0000617690 00000 n
0000014894 00000 n
0000014943 00000 n
-0000351798 00000 n
-0000617562 00000 n
+0000351795 00000 n
+0000617611 00000 n
0000014997 00000 n
0000015051 00000 n
-0000353176 00000 n
-0000617429 00000 n
+0000353173 00000 n
+0000617478 00000 n
0000015099 00000 n
0000015143 00000 n
-0000353239 00000 n
-0000617350 00000 n
+0000353236 00000 n
+0000617399 00000 n
0000015193 00000 n
0000015225 00000 n
-0000353302 00000 n
-0000617257 00000 n
+0000353299 00000 n
+0000617306 00000 n
0000015275 00000 n
0000015305 00000 n
-0000356598 00000 n
-0000617164 00000 n
+0000356595 00000 n
+0000617213 00000 n
0000015355 00000 n
0000015384 00000 n
-0000358484 00000 n
-0000617046 00000 n
+0000358481 00000 n
+0000617095 00000 n
0000015434 00000 n
0000015470 00000 n
-0000358547 00000 n
-0000616967 00000 n
+0000358544 00000 n
+0000617016 00000 n
0000015525 00000 n
0000015565 00000 n
-0000364106 00000 n
-0000616874 00000 n
+0000364103 00000 n
+0000616923 00000 n
0000015620 00000 n
0000015645 00000 n
-0000364169 00000 n
-0000616781 00000 n
+0000364166 00000 n
+0000616830 00000 n
0000015700 00000 n
0000015730 00000 n
-0000365548 00000 n
-0000616688 00000 n
+0000365545 00000 n
+0000616737 00000 n
0000015785 00000 n
0000015813 00000 n
-0000365611 00000 n
-0000616595 00000 n
+0000365608 00000 n
+0000616644 00000 n
0000015868 00000 n
0000015896 00000 n
-0000365674 00000 n
-0000616516 00000 n
+0000365671 00000 n
+0000616565 00000 n
0000015951 00000 n
0000015977 00000 n
-0000375616 00000 n
-0000616383 00000 n
+0000375613 00000 n
+0000616432 00000 n
0000016025 00000 n
0000016054 00000 n
-0000375679 00000 n
-0000616304 00000 n
+0000375676 00000 n
+0000616353 00000 n
0000016104 00000 n
0000016136 00000 n
-0000378329 00000 n
-0000616186 00000 n
+0000378326 00000 n
+0000616235 00000 n
0000016186 00000 n
0000016218 00000 n
-0000378392 00000 n
-0000616107 00000 n
+0000378389 00000 n
+0000616156 00000 n
0000016273 00000 n
0000016311 00000 n
-0000382833 00000 n
-0000616014 00000 n
+0000382830 00000 n
+0000616063 00000 n
0000016366 00000 n
0000016407 00000 n
-0000385036 00000 n
-0000615921 00000 n
+0000385033 00000 n
+0000615970 00000 n
0000016462 00000 n
0000016494 00000 n
-0000385099 00000 n
-0000615828 00000 n
+0000385096 00000 n
+0000615877 00000 n
0000016549 00000 n
0000016603 00000 n
-0000385162 00000 n
-0000615735 00000 n
+0000385159 00000 n
+0000615784 00000 n
0000016658 00000 n
0000016705 00000 n
-0000387272 00000 n
-0000615642 00000 n
+0000387269 00000 n
+0000615691 00000 n
0000016760 00000 n
0000016793 00000 n
-0000387335 00000 n
-0000615563 00000 n
+0000387332 00000 n
+0000615612 00000 n
0000016848 00000 n
0000016885 00000 n
-0000390115 00000 n
-0000615430 00000 n
+0000390112 00000 n
+0000615479 00000 n
0000016933 00000 n
0000016956 00000 n
-0000390178 00000 n
-0000615351 00000 n
+0000390175 00000 n
+0000615400 00000 n
0000017006 00000 n
0000017038 00000 n
-0000390241 00000 n
-0000615258 00000 n
+0000390238 00000 n
+0000615307 00000 n
0000017088 00000 n
0000017118 00000 n
-0000392344 00000 n
-0000615165 00000 n
+0000392341 00000 n
+0000615214 00000 n
0000017168 00000 n
0000017213 00000 n
-0000392407 00000 n
-0000615072 00000 n
+0000392404 00000 n
+0000615121 00000 n
0000017263 00000 n
0000017294 00000 n
-0000394724 00000 n
-0000614979 00000 n
+0000394721 00000 n
+0000615028 00000 n
0000017344 00000 n
0000017375 00000 n
-0000394787 00000 n
-0000614886 00000 n
+0000394784 00000 n
+0000614935 00000 n
0000017425 00000 n
0000017460 00000 n
-0000397071 00000 n
-0000614793 00000 n
+0000397068 00000 n
+0000614842 00000 n
0000017510 00000 n
0000017540 00000 n
-0000406836 00000 n
-0000614700 00000 n
+0000406833 00000 n
+0000614749 00000 n
0000017590 00000 n
0000017622 00000 n
-0000410342 00000 n
-0000614621 00000 n
+0000410339 00000 n
+0000614670 00000 n
0000017672 00000 n
0000017708 00000 n
-0000411729 00000 n
-0000614488 00000 n
+0000411726 00000 n
+0000614537 00000 n
0000017756 00000 n
0000017782 00000 n
-0000411792 00000 n
-0000614409 00000 n
+0000411789 00000 n
+0000614458 00000 n
0000017832 00000 n
0000017864 00000 n
-0000411855 00000 n
-0000614277 00000 n
+0000411852 00000 n
+0000614326 00000 n
0000017914 00000 n
0000017957 00000 n
-0000411918 00000 n
-0000614198 00000 n
+0000411915 00000 n
+0000614247 00000 n
0000018012 00000 n
0000018043 00000 n
-0000413823 00000 n
-0000614105 00000 n
+0000413820 00000 n
+0000614154 00000 n
0000018098 00000 n
0000018150 00000 n
-0000418869 00000 n
-0000614012 00000 n
+0000418866 00000 n
+0000614061 00000 n
0000018205 00000 n
0000018251 00000 n
-0000423942 00000 n
-0000613919 00000 n
+0000423939 00000 n
+0000613968 00000 n
0000018306 00000 n
0000018368 00000 n
-0000427624 00000 n
-0000613826 00000 n
+0000427621 00000 n
+0000613875 00000 n
0000018423 00000 n
0000018470 00000 n
-0000427687 00000 n
-0000613747 00000 n
+0000427684 00000 n
+0000613796 00000 n
0000018525 00000 n
0000018552 00000 n
-0000429896 00000 n
-0000613668 00000 n
+0000429893 00000 n
+0000613717 00000 n
0000018602 00000 n
0000018632 00000 n
-0000434583 00000 n
-0000613535 00000 n
+0000434580 00000 n
+0000613584 00000 n
0000018680 00000 n
0000018718 00000 n
-0000434646 00000 n
-0000613456 00000 n
+0000434643 00000 n
+0000613505 00000 n
0000018768 00000 n
0000018800 00000 n
-0000434709 00000 n
-0000613324 00000 n
+0000434706 00000 n
+0000613373 00000 n
0000018850 00000 n
0000018901 00000 n
-0000434772 00000 n
-0000613245 00000 n
+0000434769 00000 n
+0000613294 00000 n
0000018956 00000 n
0000018997 00000 n
-0000437553 00000 n
-0000613166 00000 n
+0000437550 00000 n
+0000613215 00000 n
0000019052 00000 n
0000019095 00000 n
-0000440345 00000 n
-0000613034 00000 n
+0000440342 00000 n
+0000613083 00000 n
0000019145 00000 n
0000019192 00000 n
-0000440408 00000 n
-0000612955 00000 n
+0000440405 00000 n
+0000613004 00000 n
0000019247 00000 n
0000019288 00000 n
-0000442179 00000 n
-0000612876 00000 n
+0000442176 00000 n
+0000612925 00000 n
0000019343 00000 n
0000019380 00000 n
-0000442242 00000 n
-0000612783 00000 n
+0000442239 00000 n
+0000612832 00000 n
0000019430 00000 n
0000019459 00000 n
-0000446275 00000 n
-0000612704 00000 n
+0000446272 00000 n
+0000612753 00000 n
0000019509 00000 n
0000019552 00000 n
-0000449717 00000 n
-0000612571 00000 n
+0000449714 00000 n
+0000612620 00000 n
0000019600 00000 n
0000019643 00000 n
-0000449780 00000 n
-0000612492 00000 n
+0000449777 00000 n
+0000612541 00000 n
0000019693 00000 n
0000019725 00000 n
-0000449843 00000 n
-0000612399 00000 n
+0000449840 00000 n
+0000612448 00000 n
0000019775 00000 n
0000019832 00000 n
-0000452131 00000 n
-0000612306 00000 n
+0000452128 00000 n
+0000612355 00000 n
0000019882 00000 n
0000019936 00000 n
-0000454428 00000 n
-0000612213 00000 n
+0000454425 00000 n
+0000612262 00000 n
0000019986 00000 n
0000020041 00000 n
-0000456448 00000 n
-0000612120 00000 n
+0000456445 00000 n
+0000612169 00000 n
0000020091 00000 n
0000020118 00000 n
-0000456510 00000 n
-0000612041 00000 n
+0000456507 00000 n
+0000612090 00000 n
0000020168 00000 n
0000020194 00000 n
-0000458834 00000 n
-0000611908 00000 n
+0000458831 00000 n
+0000611957 00000 n
0000020242 00000 n
0000020277 00000 n
-0000458897 00000 n
-0000611829 00000 n
+0000458894 00000 n
+0000611878 00000 n
0000020327 00000 n
0000020359 00000 n
-0000458960 00000 n
-0000611736 00000 n
+0000458957 00000 n
+0000611785 00000 n
0000020409 00000 n
0000020453 00000 n
-0000460969 00000 n
-0000611618 00000 n
+0000460966 00000 n
+0000611667 00000 n
0000020503 00000 n
0000020545 00000 n
-0000461032 00000 n
-0000611539 00000 n
+0000461029 00000 n
+0000611588 00000 n
0000020600 00000 n
0000020631 00000 n
-0000461094 00000 n
-0000611446 00000 n
+0000461091 00000 n
+0000611495 00000 n
0000020686 00000 n
0000020714 00000 n
-0000462201 00000 n
-0000611367 00000 n
+0000462198 00000 n
+0000611416 00000 n
0000020769 00000 n
0000020796 00000 n
-0000464630 00000 n
-0000611248 00000 n
+0000464627 00000 n
+0000611297 00000 n
0000020844 00000 n
0000020875 00000 n
-0000464693 00000 n
-0000611183 00000 n
+0000464690 00000 n
+0000611232 00000 n
0000020925 00000 n
0000020954 00000 n
-0000021303 00000 n
-0000021539 00000 n
+0000021300 00000 n
+0000021536 00000 n
0000021006 00000 n
-0000021415 00000 n
-0000021477 00000 n
-0000604229 00000 n
-0000604084 00000 n
-0000605780 00000 n
-0000022828 00000 n
-0000022979 00000 n
-0000023132 00000 n
-0000023291 00000 n
-0000023445 00000 n
-0000023604 00000 n
-0000023763 00000 n
-0000023922 00000 n
-0000024081 00000 n
-0000024234 00000 n
-0000024393 00000 n
-0000024552 00000 n
-0000024711 00000 n
-0000024870 00000 n
-0000025027 00000 n
-0000025179 00000 n
-0000025331 00000 n
-0000025490 00000 n
-0000025649 00000 n
-0000025808 00000 n
-0000025966 00000 n
-0000026125 00000 n
-0000026283 00000 n
-0000026442 00000 n
-0000028474 00000 n
-0000026596 00000 n
-0000022512 00000 n
-0000021624 00000 n
-0000605251 00000 n
-0000603643 00000 n
-0000028633 00000 n
-0000028792 00000 n
-0000028946 00000 n
-0000029105 00000 n
-0000029264 00000 n
-0000029423 00000 n
-0000029581 00000 n
-0000029739 00000 n
-0000029898 00000 n
-0000030056 00000 n
-0000030211 00000 n
-0000030363 00000 n
-0000030517 00000 n
-0000030670 00000 n
-0000030824 00000 n
-0000030978 00000 n
-0000031137 00000 n
-0000031290 00000 n
-0000031444 00000 n
-0000031603 00000 n
-0000031761 00000 n
-0000031921 00000 n
-0000032081 00000 n
-0000032241 00000 n
-0000032400 00000 n
-0000032559 00000 n
-0000032719 00000 n
-0000032879 00000 n
-0000033040 00000 n
-0000033200 00000 n
-0000033361 00000 n
-0000033516 00000 n
-0000033675 00000 n
-0000033835 00000 n
-0000033995 00000 n
-0000034155 00000 n
-0000036247 00000 n
-0000034379 00000 n
-0000028035 00000 n
-0000026707 00000 n
-0000034315 00000 n
-0000036406 00000 n
-0000036566 00000 n
-0000036726 00000 n
-0000036886 00000 n
-0000037047 00000 n
-0000037207 00000 n
-0000037367 00000 n
-0000037528 00000 n
-0000037689 00000 n
-0000037842 00000 n
-0000037997 00000 n
-0000038151 00000 n
-0000038311 00000 n
-0000038471 00000 n
-0000038631 00000 n
-0000038791 00000 n
-0000038946 00000 n
-0000039100 00000 n
-0000039254 00000 n
-0000039409 00000 n
-0000039563 00000 n
-0000039717 00000 n
-0000039877 00000 n
-0000040032 00000 n
-0000040191 00000 n
-0000040351 00000 n
-0000040511 00000 n
-0000040669 00000 n
-0000040829 00000 n
-0000040988 00000 n
-0000041148 00000 n
-0000041308 00000 n
-0000041468 00000 n
-0000041629 00000 n
-0000041789 00000 n
-0000041949 00000 n
-0000043896 00000 n
-0000042173 00000 n
-0000035787 00000 n
-0000034478 00000 n
-0000042109 00000 n
-0000044056 00000 n
-0000044211 00000 n
-0000044367 00000 n
-0000044523 00000 n
-0000044679 00000 n
-0000044835 00000 n
-0000044988 00000 n
-0000045143 00000 n
-0000045298 00000 n
-0000045458 00000 n
-0000045616 00000 n
-0000045775 00000 n
-0000045935 00000 n
-0000046090 00000 n
-0000046250 00000 n
-0000046409 00000 n
-0000046564 00000 n
-0000046724 00000 n
-0000046884 00000 n
-0000047044 00000 n
-0000047204 00000 n
-0000047357 00000 n
-0000047510 00000 n
-0000047670 00000 n
-0000047830 00000 n
-0000047990 00000 n
-0000048150 00000 n
-0000048304 00000 n
-0000048463 00000 n
-0000048622 00000 n
-0000048782 00000 n
-0000048941 00000 n
-0000049101 00000 n
-0000049261 00000 n
-0000049420 00000 n
-0000051452 00000 n
-0000049643 00000 n
-0000043445 00000 n
-0000042272 00000 n
-0000049579 00000 n
-0000051612 00000 n
-0000051773 00000 n
-0000051928 00000 n
-0000052088 00000 n
-0000052248 00000 n
-0000052408 00000 n
-0000052567 00000 n
-0000052727 00000 n
-0000052887 00000 n
-0000053047 00000 n
-0000053207 00000 n
-0000053360 00000 n
-0000053515 00000 n
-0000053670 00000 n
-0000053825 00000 n
-0000053977 00000 n
-0000054128 00000 n
-0000054288 00000 n
-0000054448 00000 n
-0000054608 00000 n
-0000054768 00000 n
-0000054921 00000 n
-0000055076 00000 n
-0000055231 00000 n
-0000055386 00000 n
-0000055541 00000 n
-0000055696 00000 n
-0000055850 00000 n
-0000056005 00000 n
-0000056160 00000 n
-0000056318 00000 n
-0000056478 00000 n
-0000058334 00000 n
-0000058488 00000 n
-0000056702 00000 n
-0000051028 00000 n
-0000049742 00000 n
-0000056638 00000 n
-0000058643 00000 n
-0000058798 00000 n
-0000058954 00000 n
-0000059110 00000 n
-0000059270 00000 n
-0000059431 00000 n
-0000059592 00000 n
-0000059753 00000 n
-0000059912 00000 n
-0000060073 00000 n
-0000060226 00000 n
-0000060381 00000 n
-0000060536 00000 n
-0000060697 00000 n
-0000060858 00000 n
-0000061019 00000 n
-0000061179 00000 n
-0000061340 00000 n
-0000061501 00000 n
-0000061662 00000 n
-0000061816 00000 n
-0000061971 00000 n
-0000062124 00000 n
-0000062280 00000 n
-0000062436 00000 n
-0000062592 00000 n
-0000062748 00000 n
-0000062904 00000 n
-0000063059 00000 n
-0000063215 00000 n
-0000063369 00000 n
-0000063525 00000 n
-0000063681 00000 n
-0000065602 00000 n
-0000063905 00000 n
-0000057891 00000 n
-0000056801 00000 n
-0000063841 00000 n
-0000605902 00000 n
-0000065763 00000 n
-0000065922 00000 n
-0000066083 00000 n
-0000066244 00000 n
-0000066405 00000 n
-0000066561 00000 n
-0000066715 00000 n
-0000066871 00000 n
-0000067027 00000 n
-0000067188 00000 n
-0000067349 00000 n
-0000067505 00000 n
-0000067666 00000 n
-0000067827 00000 n
-0000067982 00000 n
-0000068138 00000 n
-0000068292 00000 n
-0000068448 00000 n
-0000068604 00000 n
-0000068760 00000 n
-0000068916 00000 n
-0000069072 00000 n
-0000069227 00000 n
-0000069379 00000 n
-0000069535 00000 n
-0000069691 00000 n
-0000069847 00000 n
-0000070007 00000 n
-0000070168 00000 n
-0000070328 00000 n
-0000070482 00000 n
-0000070700 00000 n
-0000065186 00000 n
-0000064004 00000 n
-0000070636 00000 n
-0000072698 00000 n
-0000072395 00000 n
-0000070799 00000 n
-0000072511 00000 n
-0000605428 00000 n
-0000605603 00000 n
-0000074923 00000 n
-0000074681 00000 n
-0000072825 00000 n
-0000074797 00000 n
-0000077168 00000 n
-0000076740 00000 n
-0000075009 00000 n
-0000076856 00000 n
-0000080937 00000 n
-0000079409 00000 n
-0000079043 00000 n
-0000077254 00000 n
-0000079159 00000 n
-0000604958 00000 n
-0000081233 00000 n
-0000080800 00000 n
-0000079509 00000 n
-0000081107 00000 n
-0000604518 00000 n
-0000604664 00000 n
-0000606027 00000 n
-0000083104 00000 n
-0000083276 00000 n
-0000083446 00000 n
-0000083616 00000 n
-0000083975 00000 n
-0000082940 00000 n
-0000081360 00000 n
-0000083787 00000 n
-0000604374 00000 n
-0000085002 00000 n
-0000085178 00000 n
-0000085477 00000 n
-0000084856 00000 n
-0000084116 00000 n
-0000085351 00000 n
-0000087157 00000 n
-0000086664 00000 n
-0000085604 00000 n
-0000086780 00000 n
-0000087030 00000 n
-0000087093 00000 n
-0000089070 00000 n
-0000088762 00000 n
-0000087298 00000 n
-0000088878 00000 n
-0000088942 00000 n
-0000604811 00000 n
-0000089006 00000 n
-0000090852 00000 n
-0000090481 00000 n
-0000089184 00000 n
-0000090597 00000 n
-0000090661 00000 n
-0000090725 00000 n
-0000090789 00000 n
-0000092135 00000 n
-0000091891 00000 n
-0000090952 00000 n
-0000092007 00000 n
-0000092071 00000 n
-0000606152 00000 n
-0000093851 00000 n
-0000093545 00000 n
-0000092249 00000 n
-0000093661 00000 n
-0000093787 00000 n
-0000095098 00000 n
-0000094918 00000 n
-0000093951 00000 n
-0000095034 00000 n
-0000096712 00000 n
-0000096532 00000 n
-0000095185 00000 n
-0000096648 00000 n
-0000098225 00000 n
-0000097919 00000 n
-0000096799 00000 n
-0000098035 00000 n
-0000098161 00000 n
-0000603937 00000 n
-0000100532 00000 n
-0000100098 00000 n
-0000098353 00000 n
-0000100214 00000 n
-0000100340 00000 n
-0000100404 00000 n
-0000100468 00000 n
-0000102322 00000 n
-0000102016 00000 n
-0000100659 00000 n
-0000102132 00000 n
-0000102258 00000 n
-0000606277 00000 n
-0000104876 00000 n
-0000104504 00000 n
-0000102435 00000 n
-0000104620 00000 n
-0000104684 00000 n
-0000104748 00000 n
-0000104812 00000 n
-0000107074 00000 n
-0000106638 00000 n
-0000104976 00000 n
-0000106754 00000 n
-0000106818 00000 n
-0000106882 00000 n
-0000106946 00000 n
-0000107010 00000 n
-0000109530 00000 n
-0000109950 00000 n
-0000110144 00000 n
-0000110314 00000 n
-0000111065 00000 n
-0000109348 00000 n
-0000107160 00000 n
-0000110810 00000 n
-0000110874 00000 n
-0000110938 00000 n
-0000111002 00000 n
-0000109740 00000 n
-0000110562 00000 n
-0000113116 00000 n
-0000116403 00000 n
-0000113955 00000 n
-0000112970 00000 n
-0000111165 00000 n
-0000113515 00000 n
-0000113641 00000 n
-0000113316 00000 n
-0000113891 00000 n
-0000116732 00000 n
-0000117249 00000 n
-0000116239 00000 n
-0000114069 00000 n
-0000117057 00000 n
-0000116567 00000 n
-0000116895 00000 n
-0000117121 00000 n
-0000117185 00000 n
-0000119444 00000 n
-0000119008 00000 n
-0000117363 00000 n
-0000119124 00000 n
-0000119188 00000 n
-0000119252 00000 n
-0000119316 00000 n
-0000119380 00000 n
-0000606402 00000 n
-0000121278 00000 n
-0000121689 00000 n
-0000121141 00000 n
-0000119530 00000 n
-0000121434 00000 n
-0000121498 00000 n
-0000121562 00000 n
-0000123897 00000 n
-0000124400 00000 n
-0000123760 00000 n
-0000121803 00000 n
-0000124084 00000 n
-0000126694 00000 n
-0000126387 00000 n
-0000124500 00000 n
-0000126503 00000 n
-0000126630 00000 n
-0000128849 00000 n
-0000129391 00000 n
-0000128703 00000 n
-0000126794 00000 n
-0000129264 00000 n
-0000129056 00000 n
-0000132005 00000 n
-0000131442 00000 n
-0000129505 00000 n
-0000131558 00000 n
-0000131685 00000 n
-0000131749 00000 n
-0000131813 00000 n
-0000131877 00000 n
-0000131941 00000 n
-0000134620 00000 n
-0000134377 00000 n
-0000132119 00000 n
-0000134493 00000 n
-0000606527 00000 n
-0000137138 00000 n
-0000136767 00000 n
-0000134748 00000 n
-0000136883 00000 n
-0000137010 00000 n
-0000137074 00000 n
-0000139230 00000 n
-0000139050 00000 n
-0000137252 00000 n
-0000139166 00000 n
-0000140155 00000 n
-0000139975 00000 n
-0000139317 00000 n
-0000140091 00000 n
-0000141971 00000 n
-0000141474 00000 n
-0000140242 00000 n
-0000141590 00000 n
-0000141780 00000 n
-0000141844 00000 n
-0000144296 00000 n
-0000143990 00000 n
-0000142112 00000 n
-0000144106 00000 n
-0000146645 00000 n
-0000146339 00000 n
-0000144410 00000 n
-0000146455 00000 n
-0000606652 00000 n
-0000148692 00000 n
-0000148386 00000 n
-0000146759 00000 n
-0000148502 00000 n
-0000150446 00000 n
-0000150203 00000 n
-0000148792 00000 n
-0000150319 00000 n
-0000152395 00000 n
-0000152215 00000 n
-0000150574 00000 n
-0000152331 00000 n
-0000155078 00000 n
-0000154835 00000 n
-0000152510 00000 n
-0000154951 00000 n
-0000157822 00000 n
-0000157132 00000 n
-0000155206 00000 n
-0000157248 00000 n
-0000157375 00000 n
-0000157439 00000 n
-0000157502 00000 n
-0000157566 00000 n
-0000157630 00000 n
-0000157694 00000 n
-0000157758 00000 n
-0000160099 00000 n
-0000159024 00000 n
-0000157922 00000 n
-0000159140 00000 n
-0000159204 00000 n
-0000159268 00000 n
-0000159332 00000 n
-0000159396 00000 n
-0000159460 00000 n
-0000159524 00000 n
-0000159588 00000 n
-0000159652 00000 n
-0000159716 00000 n
-0000159780 00000 n
-0000159844 00000 n
-0000159908 00000 n
-0000159972 00000 n
-0000606777 00000 n
-0000161142 00000 n
-0000160962 00000 n
-0000160199 00000 n
-0000161078 00000 n
-0000162982 00000 n
-0000162676 00000 n
-0000161229 00000 n
-0000162792 00000 n
-0000165395 00000 n
-0000165026 00000 n
-0000163096 00000 n
-0000165142 00000 n
-0000168060 00000 n
-0000167689 00000 n
-0000165509 00000 n
-0000167805 00000 n
-0000167932 00000 n
-0000167996 00000 n
-0000170904 00000 n
-0000170213 00000 n
-0000168146 00000 n
-0000170329 00000 n
-0000170393 00000 n
-0000170457 00000 n
-0000170521 00000 n
-0000170585 00000 n
-0000170649 00000 n
-0000170713 00000 n
-0000170777 00000 n
-0000173545 00000 n
-0000173365 00000 n
-0000171046 00000 n
-0000173481 00000 n
-0000606902 00000 n
-0000175486 00000 n
-0000175243 00000 n
-0000173646 00000 n
-0000175359 00000 n
-0000177159 00000 n
-0000176916 00000 n
-0000175586 00000 n
-0000177032 00000 n
-0000178812 00000 n
-0000178569 00000 n
-0000177259 00000 n
-0000178685 00000 n
-0000180711 00000 n
-0000180216 00000 n
-0000178912 00000 n
-0000180332 00000 n
-0000182723 00000 n
-0000182354 00000 n
-0000180811 00000 n
-0000182470 00000 n
-0000184507 00000 n
-0000184075 00000 n
-0000182823 00000 n
-0000184191 00000 n
-0000607027 00000 n
-0000185210 00000 n
-0000185030 00000 n
-0000184607 00000 n
-0000185146 00000 n
-0000187099 00000 n
-0000186793 00000 n
-0000185297 00000 n
-0000186909 00000 n
-0000189476 00000 n
-0000189107 00000 n
-0000187240 00000 n
-0000189223 00000 n
-0000191595 00000 n
-0000191289 00000 n
-0000189562 00000 n
-0000191405 00000 n
-0000193723 00000 n
-0000193354 00000 n
-0000191681 00000 n
-0000193470 00000 n
-0000195573 00000 n
-0000195330 00000 n
-0000193837 00000 n
-0000195446 00000 n
-0000607152 00000 n
-0000196857 00000 n
-0000196614 00000 n
-0000195714 00000 n
-0000196730 00000 n
-0000197582 00000 n
-0000197402 00000 n
-0000196971 00000 n
-0000197518 00000 n
-0000199358 00000 n
-0000199052 00000 n
-0000197669 00000 n
-0000199168 00000 n
-0000200385 00000 n
-0000200205 00000 n
-0000199458 00000 n
-0000200321 00000 n
-0000201429 00000 n
-0000201249 00000 n
-0000200472 00000 n
-0000201365 00000 n
-0000202857 00000 n
-0000202551 00000 n
-0000201516 00000 n
-0000202667 00000 n
-0000607277 00000 n
-0000204615 00000 n
-0000204309 00000 n
-0000202957 00000 n
-0000204425 00000 n
-0000206102 00000 n
-0000205859 00000 n
-0000204715 00000 n
-0000205975 00000 n
-0000208043 00000 n
-0000207612 00000 n
-0000206202 00000 n
-0000207728 00000 n
-0000209980 00000 n
-0000209737 00000 n
-0000208157 00000 n
-0000209853 00000 n
-0000211848 00000 n
-0000211542 00000 n
-0000210094 00000 n
-0000211658 00000 n
-0000213089 00000 n
-0000212909 00000 n
-0000211976 00000 n
-0000213025 00000 n
-0000607402 00000 n
-0000215463 00000 n
-0000215157 00000 n
-0000213190 00000 n
-0000215273 00000 n
-0000217070 00000 n
-0000216890 00000 n
-0000215577 00000 n
-0000217006 00000 n
-0000218814 00000 n
-0000218508 00000 n
-0000217157 00000 n
-0000218624 00000 n
-0000220065 00000 n
-0000219823 00000 n
-0000218914 00000 n
-0000219939 00000 n
-0000221995 00000 n
-0000221815 00000 n
-0000220179 00000 n
-0000221931 00000 n
-0000224605 00000 n
-0000223978 00000 n
-0000222082 00000 n
-0000224094 00000 n
-0000224221 00000 n
-0000224285 00000 n
-0000224349 00000 n
-0000224413 00000 n
-0000224477 00000 n
-0000224541 00000 n
-0000607527 00000 n
-0000227674 00000 n
-0000226918 00000 n
-0000224719 00000 n
-0000227034 00000 n
-0000227098 00000 n
-0000227162 00000 n
-0000227226 00000 n
-0000227290 00000 n
-0000227354 00000 n
-0000227418 00000 n
-0000227482 00000 n
-0000227546 00000 n
-0000227610 00000 n
-0000230659 00000 n
-0000230098 00000 n
-0000227789 00000 n
-0000230214 00000 n
-0000230278 00000 n
-0000230342 00000 n
-0000230406 00000 n
-0000230470 00000 n
-0000230533 00000 n
-0000232209 00000 n
-0000231966 00000 n
-0000230773 00000 n
-0000232082 00000 n
-0000233664 00000 n
-0000236540 00000 n
-0000234202 00000 n
-0000233527 00000 n
-0000232309 00000 n
-0000233823 00000 n
-0000236825 00000 n
-0000236403 00000 n
-0000234329 00000 n
-0000236698 00000 n
-0000238902 00000 n
-0000238532 00000 n
-0000236925 00000 n
-0000238648 00000 n
-0000238774 00000 n
-0000238838 00000 n
-0000607652 00000 n
-0000240807 00000 n
-0000240245 00000 n
-0000239002 00000 n
-0000240361 00000 n
-0000240425 00000 n
-0000240489 00000 n
-0000240553 00000 n
-0000240617 00000 n
-0000242572 00000 n
-0000242329 00000 n
-0000240907 00000 n
-0000242445 00000 n
-0000243559 00000 n
-0000243379 00000 n
-0000242672 00000 n
-0000243495 00000 n
-0000245619 00000 n
-0000245187 00000 n
-0000243646 00000 n
-0000245303 00000 n
-0000247221 00000 n
-0000246978 00000 n
-0000245719 00000 n
-0000247094 00000 n
-0000249268 00000 n
-0000248836 00000 n
-0000247307 00000 n
-0000248952 00000 n
-0000607777 00000 n
-0000250901 00000 n
-0000250721 00000 n
-0000249422 00000 n
-0000250837 00000 n
-0000253212 00000 n
-0000252715 00000 n
-0000251001 00000 n
-0000252831 00000 n
-0000253020 00000 n
-0000253084 00000 n
-0000253148 00000 n
-0000255690 00000 n
-0000255382 00000 n
-0000253325 00000 n
-0000255498 00000 n
-0000255562 00000 n
-0000255626 00000 n
-0000258141 00000 n
-0000257705 00000 n
-0000255804 00000 n
-0000257821 00000 n
-0000257885 00000 n
-0000257949 00000 n
-0000258013 00000 n
-0000258077 00000 n
-0000261379 00000 n
-0000259541 00000 n
-0000259172 00000 n
-0000258241 00000 n
-0000259288 00000 n
-0000261737 00000 n
-0000262102 00000 n
-0000262747 00000 n
-0000261197 00000 n
-0000259641 00000 n
-0000262494 00000 n
-0000261558 00000 n
-0000261919 00000 n
-0000262298 00000 n
-0000607902 00000 n
-0000265176 00000 n
-0000264740 00000 n
-0000262889 00000 n
-0000264856 00000 n
-0000264920 00000 n
-0000264984 00000 n
-0000265048 00000 n
-0000265112 00000 n
-0000267062 00000 n
-0000266882 00000 n
-0000265276 00000 n
-0000266998 00000 n
-0000268828 00000 n
-0000268522 00000 n
-0000267163 00000 n
-0000268638 00000 n
-0000270782 00000 n
-0000271330 00000 n
-0000270645 00000 n
-0000268942 00000 n
-0000270952 00000 n
-0000273481 00000 n
-0000273175 00000 n
-0000271444 00000 n
-0000273291 00000 n
-0000275455 00000 n
-0000275275 00000 n
-0000273581 00000 n
-0000275391 00000 n
-0000608027 00000 n
-0000277552 00000 n
-0000277309 00000 n
-0000275542 00000 n
-0000277425 00000 n
-0000279608 00000 n
-0000279365 00000 n
-0000277666 00000 n
-0000279481 00000 n
-0000281649 00000 n
-0000281406 00000 n
-0000279722 00000 n
-0000281522 00000 n
-0000283551 00000 n
-0000283371 00000 n
-0000281749 00000 n
-0000283487 00000 n
-0000285616 00000 n
-0000285373 00000 n
-0000283666 00000 n
-0000285489 00000 n
-0000287898 00000 n
-0000287463 00000 n
-0000285730 00000 n
-0000287579 00000 n
-0000287643 00000 n
-0000287707 00000 n
-0000287770 00000 n
-0000287834 00000 n
-0000608152 00000 n
-0000290317 00000 n
-0000289689 00000 n
-0000287985 00000 n
-0000289805 00000 n
-0000289869 00000 n
-0000289933 00000 n
-0000289997 00000 n
-0000290061 00000 n
-0000290125 00000 n
-0000290189 00000 n
-0000290253 00000 n
-0000292480 00000 n
-0000292237 00000 n
-0000290404 00000 n
-0000292353 00000 n
-0000294193 00000 n
-0000294362 00000 n
-0000294720 00000 n
-0000294047 00000 n
-0000292580 00000 n
-0000294530 00000 n
-0000296540 00000 n
-0000296234 00000 n
-0000294861 00000 n
-0000296350 00000 n
-0000298287 00000 n
-0000298107 00000 n
-0000296654 00000 n
-0000298223 00000 n
-0000299672 00000 n
-0000299492 00000 n
-0000298374 00000 n
-0000299608 00000 n
-0000608277 00000 n
-0000301435 00000 n
-0000301255 00000 n
-0000299759 00000 n
-0000301371 00000 n
-0000303126 00000 n
-0000302946 00000 n
-0000301522 00000 n
-0000303062 00000 n
-0000304625 00000 n
-0000304445 00000 n
-0000303213 00000 n
-0000304561 00000 n
-0000306345 00000 n
-0000306165 00000 n
-0000304712 00000 n
-0000306281 00000 n
-0000308286 00000 n
-0000308106 00000 n
-0000306432 00000 n
-0000308222 00000 n
-0000310123 00000 n
-0000309943 00000 n
-0000308373 00000 n
-0000310059 00000 n
-0000608402 00000 n
-0000311831 00000 n
-0000311651 00000 n
-0000310210 00000 n
-0000311767 00000 n
-0000313629 00000 n
-0000313449 00000 n
-0000311918 00000 n
-0000313565 00000 n
-0000315429 00000 n
-0000315249 00000 n
-0000313716 00000 n
-0000315365 00000 n
-0000316693 00000 n
-0000316513 00000 n
-0000315516 00000 n
-0000316629 00000 n
-0000317561 00000 n
-0000317381 00000 n
-0000316780 00000 n
-0000317497 00000 n
-0000319550 00000 n
-0000320136 00000 n
-0000319404 00000 n
-0000317648 00000 n
-0000319946 00000 n
-0000319748 00000 n
-0000608527 00000 n
-0000322419 00000 n
-0000321921 00000 n
-0000320291 00000 n
-0000322037 00000 n
-0000322101 00000 n
-0000322165 00000 n
-0000322229 00000 n
-0000322293 00000 n
-0000324601 00000 n
-0000324358 00000 n
-0000322546 00000 n
-0000324474 00000 n
-0000326065 00000 n
-0000325885 00000 n
-0000324742 00000 n
-0000326001 00000 n
-0000328655 00000 n
-0000328412 00000 n
-0000326152 00000 n
-0000328528 00000 n
-0000330995 00000 n
-0000330815 00000 n
-0000328769 00000 n
-0000330931 00000 n
-0000333216 00000 n
-0000333515 00000 n
-0000333079 00000 n
-0000331082 00000 n
-0000333388 00000 n
-0000608652 00000 n
-0000334878 00000 n
-0000334698 00000 n
-0000333643 00000 n
-0000334814 00000 n
-0000336927 00000 n
-0000336621 00000 n
-0000334965 00000 n
-0000336737 00000 n
-0000338768 00000 n
-0000338399 00000 n
-0000337054 00000 n
-0000338515 00000 n
-0000340334 00000 n
-0000340804 00000 n
-0000340188 00000 n
-0000338896 00000 n
-0000340677 00000 n
-0000340506 00000 n
-0000342422 00000 n
-0000342117 00000 n
-0000340918 00000 n
-0000342233 00000 n
-0000343985 00000 n
-0000343805 00000 n
-0000342522 00000 n
-0000343921 00000 n
-0000608777 00000 n
-0000345544 00000 n
-0000345364 00000 n
-0000344072 00000 n
-0000345480 00000 n
-0000347184 00000 n
-0000346941 00000 n
-0000345631 00000 n
-0000347057 00000 n
-0000349686 00000 n
-0000348933 00000 n
-0000347284 00000 n
-0000349049 00000 n
-0000349176 00000 n
-0000349239 00000 n
-0000349303 00000 n
-0000349367 00000 n
-0000349494 00000 n
-0000349558 00000 n
-0000349622 00000 n
-0000351562 00000 n
-0000351861 00000 n
-0000351425 00000 n
-0000349800 00000 n
-0000351734 00000 n
-0000353365 00000 n
-0000352996 00000 n
-0000351975 00000 n
-0000353112 00000 n
-0000354701 00000 n
-0000354521 00000 n
-0000353520 00000 n
-0000354637 00000 n
-0000608902 00000 n
-0000356661 00000 n
-0000356418 00000 n
-0000354788 00000 n
-0000356534 00000 n
-0000358674 00000 n
-0000358304 00000 n
-0000356761 00000 n
-0000358420 00000 n
-0000358610 00000 n
-0000360544 00000 n
-0000360364 00000 n
-0000358774 00000 n
-0000360480 00000 n
-0000362385 00000 n
-0000362141 00000 n
-0000360631 00000 n
-0000362257 00000 n
-0000362321 00000 n
-0000364232 00000 n
-0000363926 00000 n
-0000362485 00000 n
-0000364042 00000 n
-0000367603 00000 n
-0000365865 00000 n
-0000365368 00000 n
-0000364332 00000 n
-0000365484 00000 n
-0000365737 00000 n
-0000605104 00000 n
-0000365801 00000 n
-0000609027 00000 n
-0000367997 00000 n
-0000367466 00000 n
-0000366006 00000 n
-0000367805 00000 n
-0000367869 00000 n
-0000367933 00000 n
-0000369718 00000 n
-0000370080 00000 n
-0000369581 00000 n
-0000368124 00000 n
-0000369888 00000 n
-0000369952 00000 n
-0000370016 00000 n
-0000372485 00000 n
-0000372177 00000 n
-0000370207 00000 n
-0000372293 00000 n
-0000372357 00000 n
-0000372421 00000 n
-0000373516 00000 n
-0000373336 00000 n
-0000372585 00000 n
-0000373452 00000 n
-0000375806 00000 n
-0000375436 00000 n
-0000373603 00000 n
-0000375552 00000 n
-0000375742 00000 n
-0000378086 00000 n
-0000378519 00000 n
-0000377949 00000 n
-0000375960 00000 n
-0000378265 00000 n
-0000603789 00000 n
-0000378455 00000 n
-0000609152 00000 n
-0000380473 00000 n
-0000380101 00000 n
-0000378661 00000 n
-0000380217 00000 n
-0000380281 00000 n
-0000380345 00000 n
-0000380409 00000 n
-0000382896 00000 n
-0000382653 00000 n
-0000380573 00000 n
-0000382769 00000 n
-0000385225 00000 n
-0000384856 00000 n
-0000383010 00000 n
-0000384972 00000 n
-0000387398 00000 n
-0000386836 00000 n
-0000385325 00000 n
-0000386952 00000 n
-0000387016 00000 n
-0000387080 00000 n
-0000387144 00000 n
-0000387208 00000 n
-0000388109 00000 n
-0000387929 00000 n
-0000387484 00000 n
-0000388045 00000 n
-0000389890 00000 n
-0000390304 00000 n
-0000389753 00000 n
-0000388196 00000 n
-0000390051 00000 n
-0000609277 00000 n
-0000392470 00000 n
-0000392164 00000 n
-0000390445 00000 n
-0000392280 00000 n
-0000394850 00000 n
-0000394544 00000 n
-0000392570 00000 n
-0000394660 00000 n
-0000397134 00000 n
-0000396891 00000 n
-0000394950 00000 n
-0000397007 00000 n
-0000398497 00000 n
-0000398317 00000 n
-0000397248 00000 n
-0000398433 00000 n
-0000399593 00000 n
-0000399413 00000 n
-0000398584 00000 n
-0000399529 00000 n
-0000400739 00000 n
-0000400559 00000 n
-0000399680 00000 n
-0000400675 00000 n
-0000609402 00000 n
-0000402626 00000 n
-0000402446 00000 n
-0000400826 00000 n
-0000402562 00000 n
-0000404821 00000 n
-0000404641 00000 n
-0000402727 00000 n
-0000404757 00000 n
-0000406899 00000 n
-0000406656 00000 n
-0000404908 00000 n
-0000406772 00000 n
-0000408431 00000 n
-0000408251 00000 n
-0000406999 00000 n
-0000408367 00000 n
-0000410405 00000 n
-0000410162 00000 n
-0000408518 00000 n
-0000410278 00000 n
-0000411981 00000 n
-0000411549 00000 n
-0000410505 00000 n
-0000411665 00000 n
-0000609527 00000 n
-0000413950 00000 n
-0000413643 00000 n
-0000412122 00000 n
-0000413759 00000 n
-0000413886 00000 n
-0000415192 00000 n
-0000414948 00000 n
-0000414050 00000 n
-0000415064 00000 n
-0000415128 00000 n
-0000416688 00000 n
-0000416508 00000 n
-0000415292 00000 n
-0000416624 00000 n
-0000418932 00000 n
-0000418689 00000 n
-0000416775 00000 n
-0000418805 00000 n
-0000420721 00000 n
-0000420477 00000 n
-0000419046 00000 n
-0000420593 00000 n
-0000420657 00000 n
-0000422464 00000 n
-0000422284 00000 n
-0000420821 00000 n
-0000422400 00000 n
-0000609652 00000 n
-0000424005 00000 n
-0000423762 00000 n
-0000422551 00000 n
-0000423878 00000 n
-0000425528 00000 n
-0000425348 00000 n
-0000424105 00000 n
-0000425464 00000 n
-0000427750 00000 n
-0000427444 00000 n
-0000425629 00000 n
-0000427560 00000 n
-0000429959 00000 n
-0000429716 00000 n
-0000427864 00000 n
-0000429832 00000 n
-0000432238 00000 n
-0000432058 00000 n
-0000430086 00000 n
-0000432174 00000 n
-0000432974 00000 n
-0000432794 00000 n
-0000432338 00000 n
-0000432910 00000 n
-0000609777 00000 n
-0000434835 00000 n
-0000434403 00000 n
-0000433047 00000 n
-0000434519 00000 n
-0000437616 00000 n
-0000437373 00000 n
-0000434990 00000 n
-0000437489 00000 n
-0000440471 00000 n
-0000440165 00000 n
-0000437743 00000 n
-0000440281 00000 n
-0000442305 00000 n
-0000441999 00000 n
-0000440612 00000 n
-0000442115 00000 n
-0000444696 00000 n
-0000444516 00000 n
-0000442432 00000 n
-0000444632 00000 n
-0000447419 00000 n
-0000446338 00000 n
-0000446095 00000 n
-0000444811 00000 n
-0000446211 00000 n
-0000609902 00000 n
-0000447864 00000 n
-0000447273 00000 n
-0000446452 00000 n
-0000447800 00000 n
-0000447609 00000 n
-0000449905 00000 n
-0000449537 00000 n
-0000447979 00000 n
-0000449653 00000 n
-0000452194 00000 n
-0000451951 00000 n
-0000450032 00000 n
-0000452067 00000 n
-0000454491 00000 n
-0000454248 00000 n
-0000452308 00000 n
-0000454364 00000 n
-0000456573 00000 n
-0000456268 00000 n
-0000454591 00000 n
-0000456384 00000 n
-0000457152 00000 n
-0000456972 00000 n
-0000456687 00000 n
-0000457088 00000 n
-0000610027 00000 n
-0000459022 00000 n
-0000458654 00000 n
-0000457225 00000 n
-0000458770 00000 n
-0000461157 00000 n
-0000460789 00000 n
-0000459177 00000 n
-0000460905 00000 n
-0000462264 00000 n
-0000462021 00000 n
-0000461271 00000 n
-0000462137 00000 n
-0000464224 00000 n
-0000464756 00000 n
-0000464078 00000 n
-0000462378 00000 n
-0000464566 00000 n
-0000464395 00000 n
-0000466921 00000 n
-0000466741 00000 n
-0000464911 00000 n
-0000466857 00000 n
-0000468083 00000 n
-0000467903 00000 n
-0000467035 00000 n
-0000468019 00000 n
-0000610152 00000 n
-0000469855 00000 n
-0000469675 00000 n
-0000468170 00000 n
-0000469791 00000 n
-0000469942 00000 n
-0000470250 00000 n
-0000470355 00000 n
-0000470725 00000 n
-0000471309 00000 n
-0000471377 00000 n
-0000471713 00000 n
-0000472334 00000 n
-0000603273 00000 n
-0000472918 00000 n
-0000472978 00000 n
-0000473198 00000 n
-0000473846 00000 n
-0000474408 00000 n
-0000475027 00000 n
-0000475703 00000 n
-0000488039 00000 n
-0000488489 00000 n
-0000491387 00000 n
-0000491640 00000 n
-0000498697 00000 n
-0000498989 00000 n
-0000515947 00000 n
-0000516548 00000 n
-0000525486 00000 n
-0000525831 00000 n
-0000527759 00000 n
-0000527981 00000 n
-0000530009 00000 n
-0000530286 00000 n
-0000540488 00000 n
-0000540874 00000 n
-0000556885 00000 n
-0000557522 00000 n
-0000573556 00000 n
-0000574192 00000 n
-0000575863 00000 n
-0000576089 00000 n
-0000590223 00000 n
-0000590742 00000 n
-0000594548 00000 n
-0000594792 00000 n
-0000602990 00000 n
-0000610241 00000 n
-0000610366 00000 n
-0000610492 00000 n
-0000610618 00000 n
-0000610744 00000 n
-0000610870 00000 n
-0000610996 00000 n
-0000611106 00000 n
-0000633261 00000 n
-0000633440 00000 n
-0000633617 00000 n
-0000633792 00000 n
-0000633967 00000 n
-0000634144 00000 n
-0000634320 00000 n
-0000634497 00000 n
-0000634673 00000 n
-0000634850 00000 n
-0000635026 00000 n
-0000635203 00000 n
-0000635379 00000 n
-0000635556 00000 n
-0000635731 00000 n
-0000635906 00000 n
-0000636097 00000 n
-0000636287 00000 n
-0000636479 00000 n
-0000636658 00000 n
-0000636843 00000 n
-0000637026 00000 n
-0000637209 00000 n
-0000637394 00000 n
-0000637578 00000 n
-0000637763 00000 n
-0000637947 00000 n
-0000638132 00000 n
-0000638316 00000 n
-0000638501 00000 n
-0000638685 00000 n
-0000638870 00000 n
-0000639053 00000 n
-0000639236 00000 n
-0000639421 00000 n
-0000639605 00000 n
-0000639790 00000 n
-0000639972 00000 n
-0000640157 00000 n
-0000640341 00000 n
-0000640518 00000 n
-0000640694 00000 n
-0000640871 00000 n
-0000641047 00000 n
-0000641224 00000 n
-0000641399 00000 n
-0000641574 00000 n
-0000641751 00000 n
-0000641927 00000 n
-0000642104 00000 n
-0000642280 00000 n
-0000642457 00000 n
-0000642633 00000 n
-0000642810 00000 n
-0000643010 00000 n
-0000643219 00000 n
-0000643426 00000 n
-0000643633 00000 n
-0000643842 00000 n
-0000644050 00000 n
-0000644259 00000 n
-0000644467 00000 n
-0000644676 00000 n
-0000644884 00000 n
-0000645083 00000 n
-0000645294 00000 n
-0000645505 00000 n
-0000645716 00000 n
-0000645927 00000 n
-0000646138 00000 n
-0000646343 00000 n
-0000646546 00000 n
-0000646754 00000 n
-0000646959 00000 n
-0000647162 00000 n
-0000647365 00000 n
-0000647568 00000 n
-0000647784 00000 n
-0000648021 00000 n
-0000648267 00000 n
-0000648518 00000 n
-0000648769 00000 n
-0000649020 00000 n
-0000649266 00000 n
-0000649504 00000 n
-0000649747 00000 n
-0000649992 00000 n
-0000650238 00000 n
-0000650483 00000 n
-0000650731 00000 n
-0000650974 00000 n
-0000651217 00000 n
-0000651466 00000 n
-0000651709 00000 n
-0000651952 00000 n
-0000652195 00000 n
-0000652439 00000 n
-0000652682 00000 n
-0000652925 00000 n
-0000653168 00000 n
-0000653393 00000 n
-0000653502 00000 n
-0000653620 00000 n
-0000653736 00000 n
-0000653856 00000 n
-0000653972 00000 n
-0000654090 00000 n
-0000654208 00000 n
-0000654325 00000 n
-0000654441 00000 n
-0000654561 00000 n
-0000654685 00000 n
-0000654810 00000 n
-0000654936 00000 n
-0000655066 00000 n
-0000655200 00000 n
-0000655334 00000 n
-0000655468 00000 n
-0000655586 00000 n
-0000655705 00000 n
-0000655827 00000 n
-0000655941 00000 n
-0000656034 00000 n
-0000656074 00000 n
-0000656260 00000 n
+0000021412 00000 n
+0000021474 00000 n
+0000604278 00000 n
+0000604133 00000 n
+0000605829 00000 n
+0000022825 00000 n
+0000022976 00000 n
+0000023129 00000 n
+0000023288 00000 n
+0000023442 00000 n
+0000023601 00000 n
+0000023760 00000 n
+0000023919 00000 n
+0000024078 00000 n
+0000024231 00000 n
+0000024390 00000 n
+0000024549 00000 n
+0000024708 00000 n
+0000024867 00000 n
+0000025024 00000 n
+0000025176 00000 n
+0000025328 00000 n
+0000025487 00000 n
+0000025646 00000 n
+0000025805 00000 n
+0000025963 00000 n
+0000026122 00000 n
+0000026280 00000 n
+0000026439 00000 n
+0000028471 00000 n
+0000026593 00000 n
+0000022509 00000 n
+0000021621 00000 n
+0000605300 00000 n
+0000603692 00000 n
+0000028630 00000 n
+0000028789 00000 n
+0000028943 00000 n
+0000029102 00000 n
+0000029261 00000 n
+0000029420 00000 n
+0000029578 00000 n
+0000029736 00000 n
+0000029895 00000 n
+0000030053 00000 n
+0000030208 00000 n
+0000030360 00000 n
+0000030514 00000 n
+0000030667 00000 n
+0000030821 00000 n
+0000030975 00000 n
+0000031134 00000 n
+0000031287 00000 n
+0000031441 00000 n
+0000031600 00000 n
+0000031758 00000 n
+0000031918 00000 n
+0000032078 00000 n
+0000032238 00000 n
+0000032397 00000 n
+0000032556 00000 n
+0000032716 00000 n
+0000032876 00000 n
+0000033037 00000 n
+0000033197 00000 n
+0000033358 00000 n
+0000033513 00000 n
+0000033672 00000 n
+0000033832 00000 n
+0000033992 00000 n
+0000034152 00000 n
+0000036244 00000 n
+0000034376 00000 n
+0000028032 00000 n
+0000026704 00000 n
+0000034312 00000 n
+0000036403 00000 n
+0000036563 00000 n
+0000036723 00000 n
+0000036883 00000 n
+0000037044 00000 n
+0000037204 00000 n
+0000037364 00000 n
+0000037525 00000 n
+0000037686 00000 n
+0000037839 00000 n
+0000037994 00000 n
+0000038148 00000 n
+0000038308 00000 n
+0000038468 00000 n
+0000038628 00000 n
+0000038788 00000 n
+0000038943 00000 n
+0000039097 00000 n
+0000039251 00000 n
+0000039406 00000 n
+0000039560 00000 n
+0000039714 00000 n
+0000039874 00000 n
+0000040029 00000 n
+0000040188 00000 n
+0000040348 00000 n
+0000040508 00000 n
+0000040666 00000 n
+0000040826 00000 n
+0000040985 00000 n
+0000041145 00000 n
+0000041305 00000 n
+0000041465 00000 n
+0000041626 00000 n
+0000041786 00000 n
+0000041946 00000 n
+0000043893 00000 n
+0000042170 00000 n
+0000035784 00000 n
+0000034475 00000 n
+0000042106 00000 n
+0000044053 00000 n
+0000044208 00000 n
+0000044364 00000 n
+0000044520 00000 n
+0000044676 00000 n
+0000044832 00000 n
+0000044985 00000 n
+0000045140 00000 n
+0000045295 00000 n
+0000045455 00000 n
+0000045613 00000 n
+0000045772 00000 n
+0000045932 00000 n
+0000046087 00000 n
+0000046247 00000 n
+0000046406 00000 n
+0000046561 00000 n
+0000046721 00000 n
+0000046881 00000 n
+0000047041 00000 n
+0000047201 00000 n
+0000047354 00000 n
+0000047507 00000 n
+0000047667 00000 n
+0000047827 00000 n
+0000047987 00000 n
+0000048147 00000 n
+0000048301 00000 n
+0000048460 00000 n
+0000048619 00000 n
+0000048779 00000 n
+0000048938 00000 n
+0000049098 00000 n
+0000049258 00000 n
+0000049417 00000 n
+0000051449 00000 n
+0000049640 00000 n
+0000043442 00000 n
+0000042269 00000 n
+0000049576 00000 n
+0000051609 00000 n
+0000051770 00000 n
+0000051925 00000 n
+0000052085 00000 n
+0000052245 00000 n
+0000052405 00000 n
+0000052564 00000 n
+0000052724 00000 n
+0000052884 00000 n
+0000053044 00000 n
+0000053204 00000 n
+0000053357 00000 n
+0000053512 00000 n
+0000053667 00000 n
+0000053822 00000 n
+0000053974 00000 n
+0000054125 00000 n
+0000054285 00000 n
+0000054445 00000 n
+0000054605 00000 n
+0000054765 00000 n
+0000054918 00000 n
+0000055073 00000 n
+0000055228 00000 n
+0000055383 00000 n
+0000055538 00000 n
+0000055693 00000 n
+0000055847 00000 n
+0000056002 00000 n
+0000056157 00000 n
+0000056315 00000 n
+0000056475 00000 n
+0000058331 00000 n
+0000058485 00000 n
+0000056699 00000 n
+0000051025 00000 n
+0000049739 00000 n
+0000056635 00000 n
+0000058640 00000 n
+0000058795 00000 n
+0000058951 00000 n
+0000059107 00000 n
+0000059267 00000 n
+0000059428 00000 n
+0000059589 00000 n
+0000059750 00000 n
+0000059909 00000 n
+0000060070 00000 n
+0000060223 00000 n
+0000060378 00000 n
+0000060533 00000 n
+0000060694 00000 n
+0000060855 00000 n
+0000061016 00000 n
+0000061176 00000 n
+0000061337 00000 n
+0000061498 00000 n
+0000061659 00000 n
+0000061813 00000 n
+0000061968 00000 n
+0000062121 00000 n
+0000062277 00000 n
+0000062433 00000 n
+0000062589 00000 n
+0000062745 00000 n
+0000062901 00000 n
+0000063056 00000 n
+0000063212 00000 n
+0000063366 00000 n
+0000063522 00000 n
+0000063678 00000 n
+0000065599 00000 n
+0000063902 00000 n
+0000057888 00000 n
+0000056798 00000 n
+0000063838 00000 n
+0000605951 00000 n
+0000065760 00000 n
+0000065919 00000 n
+0000066080 00000 n
+0000066241 00000 n
+0000066402 00000 n
+0000066558 00000 n
+0000066712 00000 n
+0000066868 00000 n
+0000067024 00000 n
+0000067185 00000 n
+0000067346 00000 n
+0000067502 00000 n
+0000067663 00000 n
+0000067824 00000 n
+0000067979 00000 n
+0000068135 00000 n
+0000068289 00000 n
+0000068445 00000 n
+0000068601 00000 n
+0000068757 00000 n
+0000068913 00000 n
+0000069069 00000 n
+0000069224 00000 n
+0000069376 00000 n
+0000069532 00000 n
+0000069688 00000 n
+0000069844 00000 n
+0000070004 00000 n
+0000070165 00000 n
+0000070325 00000 n
+0000070479 00000 n
+0000070697 00000 n
+0000065183 00000 n
+0000064001 00000 n
+0000070633 00000 n
+0000072695 00000 n
+0000072392 00000 n
+0000070796 00000 n
+0000072508 00000 n
+0000605477 00000 n
+0000605652 00000 n
+0000074920 00000 n
+0000074678 00000 n
+0000072822 00000 n
+0000074794 00000 n
+0000077165 00000 n
+0000076737 00000 n
+0000075006 00000 n
+0000076853 00000 n
+0000080934 00000 n
+0000079406 00000 n
+0000079040 00000 n
+0000077251 00000 n
+0000079156 00000 n
+0000605007 00000 n
+0000081230 00000 n
+0000080797 00000 n
+0000079506 00000 n
+0000081104 00000 n
+0000604567 00000 n
+0000604713 00000 n
+0000606076 00000 n
+0000083101 00000 n
+0000083273 00000 n
+0000083443 00000 n
+0000083613 00000 n
+0000083972 00000 n
+0000082937 00000 n
+0000081357 00000 n
+0000083784 00000 n
+0000604423 00000 n
+0000084999 00000 n
+0000085175 00000 n
+0000085474 00000 n
+0000084853 00000 n
+0000084113 00000 n
+0000085348 00000 n
+0000087154 00000 n
+0000086661 00000 n
+0000085601 00000 n
+0000086777 00000 n
+0000087027 00000 n
+0000087090 00000 n
+0000089067 00000 n
+0000088759 00000 n
+0000087295 00000 n
+0000088875 00000 n
+0000088939 00000 n
+0000604860 00000 n
+0000089003 00000 n
+0000090849 00000 n
+0000090478 00000 n
+0000089181 00000 n
+0000090594 00000 n
+0000090658 00000 n
+0000090722 00000 n
+0000090786 00000 n
+0000092132 00000 n
+0000091888 00000 n
+0000090949 00000 n
+0000092004 00000 n
+0000092068 00000 n
+0000606201 00000 n
+0000093848 00000 n
+0000093542 00000 n
+0000092246 00000 n
+0000093658 00000 n
+0000093784 00000 n
+0000095095 00000 n
+0000094915 00000 n
+0000093948 00000 n
+0000095031 00000 n
+0000096709 00000 n
+0000096529 00000 n
+0000095182 00000 n
+0000096645 00000 n
+0000098222 00000 n
+0000097916 00000 n
+0000096796 00000 n
+0000098032 00000 n
+0000098158 00000 n
+0000603986 00000 n
+0000100529 00000 n
+0000100095 00000 n
+0000098350 00000 n
+0000100211 00000 n
+0000100337 00000 n
+0000100401 00000 n
+0000100465 00000 n
+0000102319 00000 n
+0000102013 00000 n
+0000100656 00000 n
+0000102129 00000 n
+0000102255 00000 n
+0000606326 00000 n
+0000104873 00000 n
+0000104501 00000 n
+0000102432 00000 n
+0000104617 00000 n
+0000104681 00000 n
+0000104745 00000 n
+0000104809 00000 n
+0000107071 00000 n
+0000106635 00000 n
+0000104973 00000 n
+0000106751 00000 n
+0000106815 00000 n
+0000106879 00000 n
+0000106943 00000 n
+0000107007 00000 n
+0000109527 00000 n
+0000109947 00000 n
+0000110141 00000 n
+0000110311 00000 n
+0000111062 00000 n
+0000109345 00000 n
+0000107157 00000 n
+0000110807 00000 n
+0000110871 00000 n
+0000110935 00000 n
+0000110999 00000 n
+0000109737 00000 n
+0000110559 00000 n
+0000113113 00000 n
+0000116400 00000 n
+0000113952 00000 n
+0000112967 00000 n
+0000111162 00000 n
+0000113512 00000 n
+0000113638 00000 n
+0000113313 00000 n
+0000113888 00000 n
+0000116729 00000 n
+0000117246 00000 n
+0000116236 00000 n
+0000114066 00000 n
+0000117054 00000 n
+0000116564 00000 n
+0000116892 00000 n
+0000117118 00000 n
+0000117182 00000 n
+0000119441 00000 n
+0000119005 00000 n
+0000117360 00000 n
+0000119121 00000 n
+0000119185 00000 n
+0000119249 00000 n
+0000119313 00000 n
+0000119377 00000 n
+0000606451 00000 n
+0000121275 00000 n
+0000121686 00000 n
+0000121138 00000 n
+0000119527 00000 n
+0000121431 00000 n
+0000121495 00000 n
+0000121559 00000 n
+0000123894 00000 n
+0000124397 00000 n
+0000123757 00000 n
+0000121800 00000 n
+0000124081 00000 n
+0000126691 00000 n
+0000126384 00000 n
+0000124497 00000 n
+0000126500 00000 n
+0000126627 00000 n
+0000128846 00000 n
+0000129388 00000 n
+0000128700 00000 n
+0000126791 00000 n
+0000129261 00000 n
+0000129053 00000 n
+0000132002 00000 n
+0000131439 00000 n
+0000129502 00000 n
+0000131555 00000 n
+0000131682 00000 n
+0000131746 00000 n
+0000131810 00000 n
+0000131874 00000 n
+0000131938 00000 n
+0000134617 00000 n
+0000134374 00000 n
+0000132116 00000 n
+0000134490 00000 n
+0000606576 00000 n
+0000137135 00000 n
+0000136764 00000 n
+0000134745 00000 n
+0000136880 00000 n
+0000137007 00000 n
+0000137071 00000 n
+0000139227 00000 n
+0000139047 00000 n
+0000137249 00000 n
+0000139163 00000 n
+0000140152 00000 n
+0000139972 00000 n
+0000139314 00000 n
+0000140088 00000 n
+0000141968 00000 n
+0000141471 00000 n
+0000140239 00000 n
+0000141587 00000 n
+0000141777 00000 n
+0000141841 00000 n
+0000144293 00000 n
+0000143987 00000 n
+0000142109 00000 n
+0000144103 00000 n
+0000146642 00000 n
+0000146336 00000 n
+0000144407 00000 n
+0000146452 00000 n
+0000606701 00000 n
+0000148689 00000 n
+0000148383 00000 n
+0000146756 00000 n
+0000148499 00000 n
+0000150443 00000 n
+0000150200 00000 n
+0000148789 00000 n
+0000150316 00000 n
+0000152392 00000 n
+0000152212 00000 n
+0000150571 00000 n
+0000152328 00000 n
+0000155075 00000 n
+0000154832 00000 n
+0000152507 00000 n
+0000154948 00000 n
+0000157819 00000 n
+0000157129 00000 n
+0000155203 00000 n
+0000157245 00000 n
+0000157372 00000 n
+0000157436 00000 n
+0000157499 00000 n
+0000157563 00000 n
+0000157627 00000 n
+0000157691 00000 n
+0000157755 00000 n
+0000160096 00000 n
+0000159021 00000 n
+0000157919 00000 n
+0000159137 00000 n
+0000159201 00000 n
+0000159265 00000 n
+0000159329 00000 n
+0000159393 00000 n
+0000159457 00000 n
+0000159521 00000 n
+0000159585 00000 n
+0000159649 00000 n
+0000159713 00000 n
+0000159777 00000 n
+0000159841 00000 n
+0000159905 00000 n
+0000159969 00000 n
+0000606826 00000 n
+0000161139 00000 n
+0000160959 00000 n
+0000160196 00000 n
+0000161075 00000 n
+0000162979 00000 n
+0000162673 00000 n
+0000161226 00000 n
+0000162789 00000 n
+0000165392 00000 n
+0000165023 00000 n
+0000163093 00000 n
+0000165139 00000 n
+0000168057 00000 n
+0000167686 00000 n
+0000165506 00000 n
+0000167802 00000 n
+0000167929 00000 n
+0000167993 00000 n
+0000170901 00000 n
+0000170210 00000 n
+0000168143 00000 n
+0000170326 00000 n
+0000170390 00000 n
+0000170454 00000 n
+0000170518 00000 n
+0000170582 00000 n
+0000170646 00000 n
+0000170710 00000 n
+0000170774 00000 n
+0000173542 00000 n
+0000173362 00000 n
+0000171043 00000 n
+0000173478 00000 n
+0000606951 00000 n
+0000175483 00000 n
+0000175240 00000 n
+0000173643 00000 n
+0000175356 00000 n
+0000177156 00000 n
+0000176913 00000 n
+0000175583 00000 n
+0000177029 00000 n
+0000178809 00000 n
+0000178566 00000 n
+0000177256 00000 n
+0000178682 00000 n
+0000180708 00000 n
+0000180213 00000 n
+0000178909 00000 n
+0000180329 00000 n
+0000182720 00000 n
+0000182351 00000 n
+0000180808 00000 n
+0000182467 00000 n
+0000184504 00000 n
+0000184072 00000 n
+0000182820 00000 n
+0000184188 00000 n
+0000607076 00000 n
+0000185207 00000 n
+0000185027 00000 n
+0000184604 00000 n
+0000185143 00000 n
+0000187096 00000 n
+0000186790 00000 n
+0000185294 00000 n
+0000186906 00000 n
+0000189473 00000 n
+0000189104 00000 n
+0000187237 00000 n
+0000189220 00000 n
+0000191592 00000 n
+0000191286 00000 n
+0000189559 00000 n
+0000191402 00000 n
+0000193720 00000 n
+0000193351 00000 n
+0000191678 00000 n
+0000193467 00000 n
+0000195570 00000 n
+0000195327 00000 n
+0000193834 00000 n
+0000195443 00000 n
+0000607201 00000 n
+0000196854 00000 n
+0000196611 00000 n
+0000195711 00000 n
+0000196727 00000 n
+0000197579 00000 n
+0000197399 00000 n
+0000196968 00000 n
+0000197515 00000 n
+0000199355 00000 n
+0000199049 00000 n
+0000197666 00000 n
+0000199165 00000 n
+0000200382 00000 n
+0000200202 00000 n
+0000199455 00000 n
+0000200318 00000 n
+0000201426 00000 n
+0000201246 00000 n
+0000200469 00000 n
+0000201362 00000 n
+0000202854 00000 n
+0000202548 00000 n
+0000201513 00000 n
+0000202664 00000 n
+0000607326 00000 n
+0000204612 00000 n
+0000204306 00000 n
+0000202954 00000 n
+0000204422 00000 n
+0000206099 00000 n
+0000205856 00000 n
+0000204712 00000 n
+0000205972 00000 n
+0000208040 00000 n
+0000207609 00000 n
+0000206199 00000 n
+0000207725 00000 n
+0000209977 00000 n
+0000209734 00000 n
+0000208154 00000 n
+0000209850 00000 n
+0000211845 00000 n
+0000211539 00000 n
+0000210091 00000 n
+0000211655 00000 n
+0000213086 00000 n
+0000212906 00000 n
+0000211973 00000 n
+0000213022 00000 n
+0000607451 00000 n
+0000215460 00000 n
+0000215154 00000 n
+0000213187 00000 n
+0000215270 00000 n
+0000217067 00000 n
+0000216887 00000 n
+0000215574 00000 n
+0000217003 00000 n
+0000218811 00000 n
+0000218505 00000 n
+0000217154 00000 n
+0000218621 00000 n
+0000220062 00000 n
+0000219820 00000 n
+0000218911 00000 n
+0000219936 00000 n
+0000221992 00000 n
+0000221812 00000 n
+0000220176 00000 n
+0000221928 00000 n
+0000224602 00000 n
+0000223975 00000 n
+0000222079 00000 n
+0000224091 00000 n
+0000224218 00000 n
+0000224282 00000 n
+0000224346 00000 n
+0000224410 00000 n
+0000224474 00000 n
+0000224538 00000 n
+0000607576 00000 n
+0000227671 00000 n
+0000226915 00000 n
+0000224716 00000 n
+0000227031 00000 n
+0000227095 00000 n
+0000227159 00000 n
+0000227223 00000 n
+0000227287 00000 n
+0000227351 00000 n
+0000227415 00000 n
+0000227479 00000 n
+0000227543 00000 n
+0000227607 00000 n
+0000230656 00000 n
+0000230095 00000 n
+0000227786 00000 n
+0000230211 00000 n
+0000230275 00000 n
+0000230339 00000 n
+0000230403 00000 n
+0000230467 00000 n
+0000230530 00000 n
+0000232206 00000 n
+0000231963 00000 n
+0000230770 00000 n
+0000232079 00000 n
+0000233661 00000 n
+0000236537 00000 n
+0000234199 00000 n
+0000233524 00000 n
+0000232306 00000 n
+0000233820 00000 n
+0000236822 00000 n
+0000236400 00000 n
+0000234326 00000 n
+0000236695 00000 n
+0000238899 00000 n
+0000238529 00000 n
+0000236922 00000 n
+0000238645 00000 n
+0000238771 00000 n
+0000238835 00000 n
+0000607701 00000 n
+0000240804 00000 n
+0000240242 00000 n
+0000238999 00000 n
+0000240358 00000 n
+0000240422 00000 n
+0000240486 00000 n
+0000240550 00000 n
+0000240614 00000 n
+0000242569 00000 n
+0000242326 00000 n
+0000240904 00000 n
+0000242442 00000 n
+0000243556 00000 n
+0000243376 00000 n
+0000242669 00000 n
+0000243492 00000 n
+0000245616 00000 n
+0000245184 00000 n
+0000243643 00000 n
+0000245300 00000 n
+0000247218 00000 n
+0000246975 00000 n
+0000245716 00000 n
+0000247091 00000 n
+0000249265 00000 n
+0000248833 00000 n
+0000247304 00000 n
+0000248949 00000 n
+0000607826 00000 n
+0000250898 00000 n
+0000250718 00000 n
+0000249419 00000 n
+0000250834 00000 n
+0000253209 00000 n
+0000252712 00000 n
+0000250998 00000 n
+0000252828 00000 n
+0000253017 00000 n
+0000253081 00000 n
+0000253145 00000 n
+0000255687 00000 n
+0000255379 00000 n
+0000253322 00000 n
+0000255495 00000 n
+0000255559 00000 n
+0000255623 00000 n
+0000258138 00000 n
+0000257702 00000 n
+0000255801 00000 n
+0000257818 00000 n
+0000257882 00000 n
+0000257946 00000 n
+0000258010 00000 n
+0000258074 00000 n
+0000261376 00000 n
+0000259538 00000 n
+0000259169 00000 n
+0000258238 00000 n
+0000259285 00000 n
+0000261734 00000 n
+0000262099 00000 n
+0000262744 00000 n
+0000261194 00000 n
+0000259638 00000 n
+0000262491 00000 n
+0000261555 00000 n
+0000261916 00000 n
+0000262295 00000 n
+0000607951 00000 n
+0000265173 00000 n
+0000264737 00000 n
+0000262886 00000 n
+0000264853 00000 n
+0000264917 00000 n
+0000264981 00000 n
+0000265045 00000 n
+0000265109 00000 n
+0000267059 00000 n
+0000266879 00000 n
+0000265273 00000 n
+0000266995 00000 n
+0000268825 00000 n
+0000268519 00000 n
+0000267160 00000 n
+0000268635 00000 n
+0000270779 00000 n
+0000271327 00000 n
+0000270642 00000 n
+0000268939 00000 n
+0000270949 00000 n
+0000273478 00000 n
+0000273172 00000 n
+0000271441 00000 n
+0000273288 00000 n
+0000275452 00000 n
+0000275272 00000 n
+0000273578 00000 n
+0000275388 00000 n
+0000608076 00000 n
+0000277549 00000 n
+0000277306 00000 n
+0000275539 00000 n
+0000277422 00000 n
+0000279605 00000 n
+0000279362 00000 n
+0000277663 00000 n
+0000279478 00000 n
+0000281646 00000 n
+0000281403 00000 n
+0000279719 00000 n
+0000281519 00000 n
+0000283548 00000 n
+0000283368 00000 n
+0000281746 00000 n
+0000283484 00000 n
+0000285613 00000 n
+0000285370 00000 n
+0000283663 00000 n
+0000285486 00000 n
+0000287895 00000 n
+0000287460 00000 n
+0000285727 00000 n
+0000287576 00000 n
+0000287640 00000 n
+0000287704 00000 n
+0000287767 00000 n
+0000287831 00000 n
+0000608201 00000 n
+0000290314 00000 n
+0000289686 00000 n
+0000287982 00000 n
+0000289802 00000 n
+0000289866 00000 n
+0000289930 00000 n
+0000289994 00000 n
+0000290058 00000 n
+0000290122 00000 n
+0000290186 00000 n
+0000290250 00000 n
+0000292477 00000 n
+0000292234 00000 n
+0000290401 00000 n
+0000292350 00000 n
+0000294190 00000 n
+0000294359 00000 n
+0000294717 00000 n
+0000294044 00000 n
+0000292577 00000 n
+0000294527 00000 n
+0000296537 00000 n
+0000296231 00000 n
+0000294858 00000 n
+0000296347 00000 n
+0000298284 00000 n
+0000298104 00000 n
+0000296651 00000 n
+0000298220 00000 n
+0000299669 00000 n
+0000299489 00000 n
+0000298371 00000 n
+0000299605 00000 n
+0000608326 00000 n
+0000301432 00000 n
+0000301252 00000 n
+0000299756 00000 n
+0000301368 00000 n
+0000303123 00000 n
+0000302943 00000 n
+0000301519 00000 n
+0000303059 00000 n
+0000304622 00000 n
+0000304442 00000 n
+0000303210 00000 n
+0000304558 00000 n
+0000306342 00000 n
+0000306162 00000 n
+0000304709 00000 n
+0000306278 00000 n
+0000308283 00000 n
+0000308103 00000 n
+0000306429 00000 n
+0000308219 00000 n
+0000310120 00000 n
+0000309940 00000 n
+0000308370 00000 n
+0000310056 00000 n
+0000608451 00000 n
+0000311828 00000 n
+0000311648 00000 n
+0000310207 00000 n
+0000311764 00000 n
+0000313626 00000 n
+0000313446 00000 n
+0000311915 00000 n
+0000313562 00000 n
+0000315426 00000 n
+0000315246 00000 n
+0000313713 00000 n
+0000315362 00000 n
+0000316690 00000 n
+0000316510 00000 n
+0000315513 00000 n
+0000316626 00000 n
+0000317558 00000 n
+0000317378 00000 n
+0000316777 00000 n
+0000317494 00000 n
+0000319547 00000 n
+0000320133 00000 n
+0000319401 00000 n
+0000317645 00000 n
+0000319943 00000 n
+0000319745 00000 n
+0000608576 00000 n
+0000322416 00000 n
+0000321918 00000 n
+0000320288 00000 n
+0000322034 00000 n
+0000322098 00000 n
+0000322162 00000 n
+0000322226 00000 n
+0000322290 00000 n
+0000324598 00000 n
+0000324355 00000 n
+0000322543 00000 n
+0000324471 00000 n
+0000326062 00000 n
+0000325882 00000 n
+0000324739 00000 n
+0000325998 00000 n
+0000328652 00000 n
+0000328409 00000 n
+0000326149 00000 n
+0000328525 00000 n
+0000330992 00000 n
+0000330812 00000 n
+0000328766 00000 n
+0000330928 00000 n
+0000333213 00000 n
+0000333512 00000 n
+0000333076 00000 n
+0000331079 00000 n
+0000333385 00000 n
+0000608701 00000 n
+0000334875 00000 n
+0000334695 00000 n
+0000333640 00000 n
+0000334811 00000 n
+0000336924 00000 n
+0000336618 00000 n
+0000334962 00000 n
+0000336734 00000 n
+0000338765 00000 n
+0000338396 00000 n
+0000337051 00000 n
+0000338512 00000 n
+0000340331 00000 n
+0000340801 00000 n
+0000340185 00000 n
+0000338893 00000 n
+0000340674 00000 n
+0000340503 00000 n
+0000342419 00000 n
+0000342114 00000 n
+0000340915 00000 n
+0000342230 00000 n
+0000343982 00000 n
+0000343802 00000 n
+0000342519 00000 n
+0000343918 00000 n
+0000608826 00000 n
+0000345541 00000 n
+0000345361 00000 n
+0000344069 00000 n
+0000345477 00000 n
+0000347181 00000 n
+0000346938 00000 n
+0000345628 00000 n
+0000347054 00000 n
+0000349683 00000 n
+0000348930 00000 n
+0000347281 00000 n
+0000349046 00000 n
+0000349173 00000 n
+0000349236 00000 n
+0000349300 00000 n
+0000349364 00000 n
+0000349491 00000 n
+0000349555 00000 n
+0000349619 00000 n
+0000351559 00000 n
+0000351858 00000 n
+0000351422 00000 n
+0000349797 00000 n
+0000351731 00000 n
+0000353362 00000 n
+0000352993 00000 n
+0000351972 00000 n
+0000353109 00000 n
+0000354698 00000 n
+0000354518 00000 n
+0000353517 00000 n
+0000354634 00000 n
+0000608951 00000 n
+0000356658 00000 n
+0000356415 00000 n
+0000354785 00000 n
+0000356531 00000 n
+0000358671 00000 n
+0000358301 00000 n
+0000356758 00000 n
+0000358417 00000 n
+0000358607 00000 n
+0000360541 00000 n
+0000360361 00000 n
+0000358771 00000 n
+0000360477 00000 n
+0000362382 00000 n
+0000362138 00000 n
+0000360628 00000 n
+0000362254 00000 n
+0000362318 00000 n
+0000364229 00000 n
+0000363923 00000 n
+0000362482 00000 n
+0000364039 00000 n
+0000367600 00000 n
+0000365862 00000 n
+0000365365 00000 n
+0000364329 00000 n
+0000365481 00000 n
+0000365734 00000 n
+0000605153 00000 n
+0000365798 00000 n
+0000609076 00000 n
+0000367994 00000 n
+0000367463 00000 n
+0000366003 00000 n
+0000367802 00000 n
+0000367866 00000 n
+0000367930 00000 n
+0000369715 00000 n
+0000370077 00000 n
+0000369578 00000 n
+0000368121 00000 n
+0000369885 00000 n
+0000369949 00000 n
+0000370013 00000 n
+0000372482 00000 n
+0000372174 00000 n
+0000370204 00000 n
+0000372290 00000 n
+0000372354 00000 n
+0000372418 00000 n
+0000373513 00000 n
+0000373333 00000 n
+0000372582 00000 n
+0000373449 00000 n
+0000375803 00000 n
+0000375433 00000 n
+0000373600 00000 n
+0000375549 00000 n
+0000375739 00000 n
+0000378083 00000 n
+0000378516 00000 n
+0000377946 00000 n
+0000375957 00000 n
+0000378262 00000 n
+0000603838 00000 n
+0000378452 00000 n
+0000609201 00000 n
+0000380470 00000 n
+0000380098 00000 n
+0000378658 00000 n
+0000380214 00000 n
+0000380278 00000 n
+0000380342 00000 n
+0000380406 00000 n
+0000382893 00000 n
+0000382650 00000 n
+0000380570 00000 n
+0000382766 00000 n
+0000385222 00000 n
+0000384853 00000 n
+0000383007 00000 n
+0000384969 00000 n
+0000387395 00000 n
+0000386833 00000 n
+0000385322 00000 n
+0000386949 00000 n
+0000387013 00000 n
+0000387077 00000 n
+0000387141 00000 n
+0000387205 00000 n
+0000388106 00000 n
+0000387926 00000 n
+0000387481 00000 n
+0000388042 00000 n
+0000389887 00000 n
+0000390301 00000 n
+0000389750 00000 n
+0000388193 00000 n
+0000390048 00000 n
+0000609326 00000 n
+0000392467 00000 n
+0000392161 00000 n
+0000390442 00000 n
+0000392277 00000 n
+0000394847 00000 n
+0000394541 00000 n
+0000392567 00000 n
+0000394657 00000 n
+0000397131 00000 n
+0000396888 00000 n
+0000394947 00000 n
+0000397004 00000 n
+0000398494 00000 n
+0000398314 00000 n
+0000397245 00000 n
+0000398430 00000 n
+0000399590 00000 n
+0000399410 00000 n
+0000398581 00000 n
+0000399526 00000 n
+0000400736 00000 n
+0000400556 00000 n
+0000399677 00000 n
+0000400672 00000 n
+0000609451 00000 n
+0000402623 00000 n
+0000402443 00000 n
+0000400823 00000 n
+0000402559 00000 n
+0000404818 00000 n
+0000404638 00000 n
+0000402724 00000 n
+0000404754 00000 n
+0000406896 00000 n
+0000406653 00000 n
+0000404905 00000 n
+0000406769 00000 n
+0000408428 00000 n
+0000408248 00000 n
+0000406996 00000 n
+0000408364 00000 n
+0000410402 00000 n
+0000410159 00000 n
+0000408515 00000 n
+0000410275 00000 n
+0000411978 00000 n
+0000411546 00000 n
+0000410502 00000 n
+0000411662 00000 n
+0000609576 00000 n
+0000413947 00000 n
+0000413640 00000 n
+0000412119 00000 n
+0000413756 00000 n
+0000413883 00000 n
+0000415189 00000 n
+0000414945 00000 n
+0000414047 00000 n
+0000415061 00000 n
+0000415125 00000 n
+0000416685 00000 n
+0000416505 00000 n
+0000415289 00000 n
+0000416621 00000 n
+0000418929 00000 n
+0000418686 00000 n
+0000416772 00000 n
+0000418802 00000 n
+0000420718 00000 n
+0000420474 00000 n
+0000419043 00000 n
+0000420590 00000 n
+0000420654 00000 n
+0000422461 00000 n
+0000422281 00000 n
+0000420818 00000 n
+0000422397 00000 n
+0000609701 00000 n
+0000424002 00000 n
+0000423759 00000 n
+0000422548 00000 n
+0000423875 00000 n
+0000425525 00000 n
+0000425345 00000 n
+0000424102 00000 n
+0000425461 00000 n
+0000427747 00000 n
+0000427441 00000 n
+0000425626 00000 n
+0000427557 00000 n
+0000429956 00000 n
+0000429713 00000 n
+0000427861 00000 n
+0000429829 00000 n
+0000432235 00000 n
+0000432055 00000 n
+0000430083 00000 n
+0000432171 00000 n
+0000432971 00000 n
+0000432791 00000 n
+0000432335 00000 n
+0000432907 00000 n
+0000609826 00000 n
+0000434832 00000 n
+0000434400 00000 n
+0000433044 00000 n
+0000434516 00000 n
+0000437613 00000 n
+0000437370 00000 n
+0000434987 00000 n
+0000437486 00000 n
+0000440468 00000 n
+0000440162 00000 n
+0000437740 00000 n
+0000440278 00000 n
+0000442302 00000 n
+0000441996 00000 n
+0000440609 00000 n
+0000442112 00000 n
+0000444693 00000 n
+0000444513 00000 n
+0000442429 00000 n
+0000444629 00000 n
+0000447416 00000 n
+0000446335 00000 n
+0000446092 00000 n
+0000444808 00000 n
+0000446208 00000 n
+0000609951 00000 n
+0000447861 00000 n
+0000447270 00000 n
+0000446449 00000 n
+0000447797 00000 n
+0000447606 00000 n
+0000449902 00000 n
+0000449534 00000 n
+0000447976 00000 n
+0000449650 00000 n
+0000452191 00000 n
+0000451948 00000 n
+0000450029 00000 n
+0000452064 00000 n
+0000454488 00000 n
+0000454245 00000 n
+0000452305 00000 n
+0000454361 00000 n
+0000456570 00000 n
+0000456265 00000 n
+0000454588 00000 n
+0000456381 00000 n
+0000457149 00000 n
+0000456969 00000 n
+0000456684 00000 n
+0000457085 00000 n
+0000610076 00000 n
+0000459019 00000 n
+0000458651 00000 n
+0000457222 00000 n
+0000458767 00000 n
+0000461154 00000 n
+0000460786 00000 n
+0000459174 00000 n
+0000460902 00000 n
+0000462261 00000 n
+0000462018 00000 n
+0000461268 00000 n
+0000462134 00000 n
+0000464221 00000 n
+0000464753 00000 n
+0000464075 00000 n
+0000462375 00000 n
+0000464563 00000 n
+0000464392 00000 n
+0000466918 00000 n
+0000466738 00000 n
+0000464908 00000 n
+0000466854 00000 n
+0000468080 00000 n
+0000467900 00000 n
+0000467032 00000 n
+0000468016 00000 n
+0000610201 00000 n
+0000469852 00000 n
+0000469672 00000 n
+0000468167 00000 n
+0000469788 00000 n
+0000469939 00000 n
+0000470247 00000 n
+0000470352 00000 n
+0000470722 00000 n
+0000471306 00000 n
+0000471374 00000 n
+0000471710 00000 n
+0000472331 00000 n
+0000603322 00000 n
+0000472915 00000 n
+0000472975 00000 n
+0000473195 00000 n
+0000473843 00000 n
+0000474405 00000 n
+0000475024 00000 n
+0000475700 00000 n
+0000488036 00000 n
+0000488486 00000 n
+0000491384 00000 n
+0000491637 00000 n
+0000498694 00000 n
+0000498986 00000 n
+0000515944 00000 n
+0000516545 00000 n
+0000525535 00000 n
+0000525880 00000 n
+0000527808 00000 n
+0000528030 00000 n
+0000530058 00000 n
+0000530335 00000 n
+0000540537 00000 n
+0000540923 00000 n
+0000556934 00000 n
+0000557571 00000 n
+0000573605 00000 n
+0000574241 00000 n
+0000575912 00000 n
+0000576138 00000 n
+0000590272 00000 n
+0000590791 00000 n
+0000594597 00000 n
+0000594841 00000 n
+0000603039 00000 n
+0000610290 00000 n
+0000610415 00000 n
+0000610541 00000 n
+0000610667 00000 n
+0000610793 00000 n
+0000610919 00000 n
+0000611045 00000 n
+0000611155 00000 n
+0000633310 00000 n
+0000633489 00000 n
+0000633666 00000 n
+0000633841 00000 n
+0000634016 00000 n
+0000634193 00000 n
+0000634369 00000 n
+0000634546 00000 n
+0000634722 00000 n
+0000634899 00000 n
+0000635075 00000 n
+0000635252 00000 n
+0000635428 00000 n
+0000635605 00000 n
+0000635780 00000 n
+0000635955 00000 n
+0000636146 00000 n
+0000636336 00000 n
+0000636528 00000 n
+0000636707 00000 n
+0000636892 00000 n
+0000637075 00000 n
+0000637258 00000 n
+0000637443 00000 n
+0000637627 00000 n
+0000637812 00000 n
+0000637996 00000 n
+0000638181 00000 n
+0000638365 00000 n
+0000638550 00000 n
+0000638734 00000 n
+0000638919 00000 n
+0000639102 00000 n
+0000639285 00000 n
+0000639470 00000 n
+0000639654 00000 n
+0000639839 00000 n
+0000640021 00000 n
+0000640206 00000 n
+0000640390 00000 n
+0000640567 00000 n
+0000640743 00000 n
+0000640920 00000 n
+0000641096 00000 n
+0000641273 00000 n
+0000641448 00000 n
+0000641623 00000 n
+0000641800 00000 n
+0000641976 00000 n
+0000642153 00000 n
+0000642329 00000 n
+0000642506 00000 n
+0000642682 00000 n
+0000642859 00000 n
+0000643059 00000 n
+0000643268 00000 n
+0000643475 00000 n
+0000643682 00000 n
+0000643891 00000 n
+0000644099 00000 n
+0000644308 00000 n
+0000644516 00000 n
+0000644725 00000 n
+0000644933 00000 n
+0000645132 00000 n
+0000645343 00000 n
+0000645554 00000 n
+0000645765 00000 n
+0000645976 00000 n
+0000646187 00000 n
+0000646392 00000 n
+0000646595 00000 n
+0000646803 00000 n
+0000647008 00000 n
+0000647211 00000 n
+0000647414 00000 n
+0000647617 00000 n
+0000647833 00000 n
+0000648070 00000 n
+0000648316 00000 n
+0000648567 00000 n
+0000648818 00000 n
+0000649069 00000 n
+0000649315 00000 n
+0000649553 00000 n
+0000649796 00000 n
+0000650041 00000 n
+0000650287 00000 n
+0000650532 00000 n
+0000650780 00000 n
+0000651023 00000 n
+0000651266 00000 n
+0000651515 00000 n
+0000651758 00000 n
+0000652001 00000 n
+0000652244 00000 n
+0000652488 00000 n
+0000652731 00000 n
+0000652974 00000 n
+0000653217 00000 n
+0000653442 00000 n
+0000653551 00000 n
+0000653669 00000 n
+0000653785 00000 n
+0000653905 00000 n
+0000654021 00000 n
+0000654139 00000 n
+0000654257 00000 n
+0000654374 00000 n
+0000654490 00000 n
+0000654610 00000 n
+0000654734 00000 n
+0000654859 00000 n
+0000654985 00000 n
+0000655115 00000 n
+0000655249 00000 n
+0000655383 00000 n
+0000655517 00000 n
+0000655635 00000 n
+0000655754 00000 n
+0000655876 00000 n
+0000655990 00000 n
+0000656083 00000 n
+0000656123 00000 n
+0000656309 00000 n
trailer
<< /Size 2454
/Root 2452 0 R
/Info 2453 0 R
-/ID [<91BB43F7BA44E7DC6D2C960CD9C7B022> <91BB43F7BA44E7DC6D2C960CD9C7B022>] >>
+/ID [<A78897EE08DF049833528030A575817D> <A78897EE08DF049833528030A575817D>] >>
startxref
-656592
+656641
%%EOF
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk.txt
^
|
@@ -1,9 +1,9 @@
Asterisk Reference Information
- Version 1.6.2.17.2
+ Version 1.6.2.18
Asterisk Development Team
Asterisk.org
- March 17, 2011
+ April 25, 2011

|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/images.log
^
|
@@ -1,4 +1,4 @@
-This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=latex 2010.4.27) 17 MAR 2011 11:14
+This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=latex 2010.4.27) 25 APR 2011 12:25
entering extended mode
%&-line parsing enabled.
**./images.tex
@@ -269,7 +269,7 @@
Here is how much of TeX's memory you used:
3021 strings out of 95087
42978 string characters out of 1183278
- 98808 words of memory out of 1500000
+ 98806 words of memory out of 1500000
6202 multiletter control sequences out of 10000+50000
6376 words of font info for 23 fonts, out of 1200000 for 2000
28 hyphenation exceptions out of 8191
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/images.tex
^
|
@@ -39,7 +39,7 @@
\author{Asterisk Development Team \\Asterisk.org}
-\title{Asterisk Reference Information \\Version 1.6.2.17.2}
+\title{Asterisk Reference Information \\Version 1.6.2.18}
|
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/img9.png
^
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/index.html
^
|
@@ -7,8 +7,8 @@
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
-<TITLE>Asterisk Reference Information Version 1.6.2.17.2</TITLE>
-<META NAME="description" CONTENT="Asterisk Reference Information Version 1.6.2.17.2">
+<TITLE>Asterisk Reference Information Version 1.6.2.18</TITLE>
+<META NAME="description" CONTENT="Asterisk Reference Information Version 1.6.2.18">
<META NAME="keywords" CONTENT="asterisk">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@@ -46,7 +46,7 @@
<!--End of Navigation Panel-->
<H1 ALIGN="CENTER">Asterisk Reference Information
<BR>
-Version 1.6.2.17.2</H1>
+Version 1.6.2.18</H1>
<DIV CLASS="author_info">
<P ALIGN="CENTER"><STRONG>Asterisk Development Team</STRONG></P>
@@ -797,7 +797,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node1.html
^
|
@@ -632,7 +632,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node10.html
^
|
@@ -78,7 +78,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node100.html
^
|
@@ -75,7 +75,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node101.html
^
|
@@ -83,7 +83,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node102.html
^
|
@@ -69,7 +69,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node103.html
^
|
@@ -70,7 +70,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node104.html
^
|
@@ -68,7 +68,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node105.html
^
|
@@ -74,7 +74,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node106.html
^
|
@@ -144,7 +144,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node107.html
^
|
@@ -147,7 +147,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node108.html
^
|
@@ -87,7 +87,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node109.html
^
|
@@ -72,7 +72,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node11.html
^
|
@@ -75,7 +75,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node110.html
^
|
@@ -126,7 +126,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node111.html
^
|
@@ -72,7 +72,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node112.html
^
|
@@ -75,7 +75,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node113.html
^
|
@@ -86,7 +86,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node114.html
^
|
@@ -122,7 +122,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node115.html
^
|
@@ -104,7 +104,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node116.html
^
|
@@ -130,7 +130,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node117.html
^
|
@@ -133,7 +133,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node118.html
^
|
@@ -93,7 +93,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node119.html
^
|
@@ -258,7 +258,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node12.html
^
|
@@ -141,7 +141,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node120.html
^
|
@@ -99,7 +99,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node121.html
^
|
@@ -73,7 +73,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node122.html
^
|
@@ -91,7 +91,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node123.html
^
|
@@ -173,7 +173,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node124.html
^
|
@@ -101,7 +101,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node125.html
^
|
@@ -84,7 +84,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node126.html
^
|
@@ -85,7 +85,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node127.html
^
|
@@ -77,7 +77,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node128.html
^
|
@@ -174,7 +174,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node129.html
^
|
@@ -106,7 +106,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node13.html
^
|
@@ -84,7 +84,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node130.html
^
|
@@ -97,7 +97,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node131.html
^
|
@@ -194,7 +194,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node132.html
^
|
@@ -82,7 +82,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node133.html
^
|
@@ -179,7 +179,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node134.html
^
|
@@ -109,7 +109,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node135.html
^
|
@@ -114,7 +114,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node136.html
^
|
@@ -174,7 +174,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node137.html
^
|
@@ -272,7 +272,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node138.html
^
|
@@ -83,7 +83,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node139.html
^
|
@@ -105,7 +105,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node14.html
^
|
@@ -107,7 +107,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node140.html
^
|
@@ -106,7 +106,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node141.html
^
|
@@ -70,7 +70,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node142.html
^
|
@@ -79,7 +79,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node143.html
^
|
@@ -70,7 +70,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node144.html
^
|
@@ -119,7 +119,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node145.html
^
|
@@ -167,7 +167,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node146.html
^
|
@@ -155,7 +155,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node147.html
^
|
@@ -73,7 +73,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node148.html
^
|
@@ -138,7 +138,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node149.html
^
|
@@ -163,7 +163,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node15.html
^
|
@@ -98,7 +98,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node150.html
^
|
@@ -76,7 +76,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node151.html
^
|
@@ -68,7 +68,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node152.html
^
|
@@ -82,7 +82,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node153.html
^
|
@@ -72,7 +72,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node154.html
^
|
@@ -119,7 +119,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node155.html
^
|
@@ -150,7 +150,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node156.html
^
|
@@ -90,7 +90,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node157.html
^
|
@@ -69,7 +69,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node158.html
^
|
@@ -205,7 +205,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node159.html
^
|
@@ -66,7 +66,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node16.html
^
|
@@ -201,7 +201,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node160.html
^
|
@@ -80,7 +80,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node161.html
^
|
@@ -71,7 +71,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node162.html
^
|
@@ -77,7 +77,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node163.html
^
|
@@ -75,7 +75,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node164.html
^
|
@@ -77,7 +77,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node165.html
^
|
@@ -132,7 +132,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node166.html
^
|
@@ -130,7 +130,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node167.html
^
|
@@ -100,7 +100,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node168.html
^
|
@@ -68,7 +68,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node169.html
^
|
@@ -101,7 +101,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node17.html
^
|
@@ -145,7 +145,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node170.html
^
|
@@ -109,7 +109,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node171.html
^
|
@@ -75,7 +75,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node172.html
^
|
@@ -93,7 +93,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node173.html
^
|
@@ -73,7 +73,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node174.html
^
|
@@ -69,7 +69,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node175.html
^
|
@@ -78,7 +78,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node176.html
^
|
@@ -138,7 +138,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node177.html
^
|
@@ -116,7 +116,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node178.html
^
|
@@ -73,7 +73,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node179.html
^
|
@@ -77,7 +77,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node18.html
^
|
@@ -85,7 +85,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node180.html
^
|
@@ -88,7 +88,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node181.html
^
|
@@ -68,7 +68,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node182.html
^
|
@@ -84,7 +84,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node183.html
^
|
@@ -76,7 +76,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node184.html
^
|
@@ -69,7 +69,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node185.html
^
|
@@ -212,7 +212,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node186.html
^
|
@@ -151,7 +151,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node187.html
^
|
@@ -161,7 +161,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node188.html
^
|
@@ -277,7 +277,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node189.html
^
|
@@ -215,7 +215,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node19.html
^
|
@@ -75,7 +75,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node190.html
^
|
@@ -143,7 +143,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node191.html
^
|
@@ -75,7 +75,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node192.html
^
|
@@ -119,7 +119,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node193.html
^
|
@@ -80,7 +80,7 @@
</UL> <BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node194.html
^
|
@@ -564,7 +564,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node195.html
^
|
@@ -80,7 +80,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node196.html
^
|
@@ -154,7 +154,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node197.html
^
|
@@ -187,7 +187,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node198.html
^
|
@@ -191,7 +191,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node199.html
^
|
@@ -199,7 +199,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node2.html
^
|
@@ -108,7 +108,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node20.html
^
|
@@ -117,7 +117,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node200.html
^
|
@@ -151,7 +151,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node201.html
^
|
@@ -92,7 +92,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node202.html
^
|
@@ -134,7 +134,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node203.html
^
|
@@ -84,7 +84,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node204.html
^
|
@@ -78,7 +78,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node205.html
^
|
@@ -124,7 +124,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node206.html
^
|
@@ -76,7 +76,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node207.html
^
|
@@ -64,7 +64,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node208.html
^
|
@@ -207,7 +207,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node209.html
^
|
@@ -82,7 +82,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node21.html
^
|
@@ -86,7 +86,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node210.html
^
|
@@ -88,7 +88,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node211.html
^
|
@@ -163,7 +163,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node212.html
^
|
@@ -79,7 +79,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node213.html
^
|
@@ -111,7 +111,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node214.html
^
|
@@ -96,7 +96,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node215.html
^
|
@@ -152,7 +152,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node216.html
^
|
@@ -95,7 +95,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node217.html
^
|
@@ -104,7 +104,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node218.html
^
|
@@ -88,7 +88,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node219.html
^
|
@@ -211,7 +211,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node22.html
^
|
@@ -99,7 +99,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node220.html
^
|
@@ -139,7 +139,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node221.html
^
|
@@ -67,7 +67,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node222.html
^
|
@@ -113,7 +113,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node223.html
^
|
@@ -67,7 +67,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node224.html
^
|
@@ -67,7 +67,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node225.html
^
|
@@ -84,7 +84,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node226.html
^
|
@@ -92,7 +92,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node227.html
^
|
@@ -87,7 +87,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node228.html
^
|
@@ -152,7 +152,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node229.html
^
|
@@ -86,7 +86,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node23.html
^
|
@@ -81,7 +81,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node230.html
^
|
@@ -145,7 +145,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node231.html
^
|
@@ -89,7 +89,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node232.html
^
|
@@ -88,7 +88,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node233.html
^
|
@@ -104,7 +104,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node234.html
^
|
@@ -206,7 +206,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node235.html
^
|
@@ -125,7 +125,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node236.html
^
|
@@ -75,7 +75,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node237.html
^
|
@@ -156,7 +156,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node238.html
^
|
@@ -122,7 +122,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node239.html
^
|
@@ -152,7 +152,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node24.html
^
|
@@ -77,7 +77,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node240.html
^
|
@@ -78,7 +78,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node241.html
^
|
@@ -80,7 +80,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node242.html
^
|
@@ -83,7 +83,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node243.html
^
|
@@ -72,7 +72,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node244.html
^
|
@@ -75,7 +75,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node245.html
^
|
@@ -67,7 +67,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node246.html
^
|
@@ -66,7 +66,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node247.html
^
|
@@ -69,7 +69,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node248.html
^
|
@@ -87,7 +87,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node249.html
^
|
@@ -87,7 +87,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node25.html
^
|
@@ -128,7 +128,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node250.html
^
|
@@ -74,7 +74,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node251.html
^
|
@@ -120,7 +120,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node252.html
^
|
@@ -82,7 +82,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node253.html
^
|
@@ -103,7 +103,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node254.html
^
|
@@ -122,7 +122,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node255.html
^
|
@@ -164,7 +164,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node256.html
^
|
@@ -337,7 +337,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node257.html
^
|
@@ -185,7 +185,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node258.html
^
|
@@ -95,7 +95,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node259.html
^
|
@@ -102,7 +102,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node26.html
^
|
@@ -106,7 +106,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node260.html
^
|
@@ -71,7 +71,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node261.html
^
|
@@ -95,7 +95,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node262.html
^
|
@@ -166,7 +166,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node263.html
^
|
@@ -78,7 +78,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node264.html
^
|
@@ -121,7 +121,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node265.html
^
|
@@ -229,7 +229,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node266.html
^
|
@@ -87,7 +87,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node267.html
^
|
@@ -244,7 +244,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node268.html
^
|
@@ -205,7 +205,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node269.html
^
|
@@ -91,7 +91,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node27.html
^
|
@@ -71,7 +71,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node270.html
^
|
@@ -65,7 +65,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node271.html
^
|
@@ -315,7 +315,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node272.html
^
|
@@ -93,7 +93,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node273.html
^
|
@@ -72,7 +72,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node274.html
^
|
@@ -80,7 +80,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node275.html
^
|
@@ -129,7 +129,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node276.html
^
|
@@ -160,7 +160,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node277.html
^
|
@@ -80,7 +80,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node278.html
^
|
@@ -69,7 +69,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node279.html
^
|
@@ -116,7 +116,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node28.html
^
|
@@ -211,7 +211,7 @@
</UL> <BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node280.html
^
|
@@ -162,7 +162,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node281.html
^
|
@@ -163,7 +163,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node282.html
^
|
@@ -81,7 +81,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node283.html
^
|
@@ -76,7 +76,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node284.html
^
|
@@ -76,7 +76,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node285.html
^
|
@@ -154,7 +154,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node286.html
^
|
@@ -117,7 +117,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node287.html
^
|
@@ -78,7 +78,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node288.html
^
|
@@ -82,7 +82,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node289.html
^
|
@@ -82,7 +82,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node29.html
^
|
@@ -71,7 +71,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node290.html
^
|
@@ -76,7 +76,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node291.html
^
|
@@ -89,7 +89,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node292.html
^
|
@@ -78,7 +78,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node293.html
^
|
@@ -92,7 +92,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node294.html
^
|
@@ -67,7 +67,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node295.html
^
|
@@ -89,7 +89,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node296.html
^
|
@@ -71,7 +71,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node297.html
^
|
@@ -344,7 +344,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node298.html
^
|
@@ -55,7 +55,7 @@
</H1>
<STRONG>Asterisk Reference Information
<BR>
-Version 1.6.2.17.2</STRONG><P>
+Version 1.6.2.18</STRONG><P>
This document was generated using the
<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
<P>
@@ -71,11 +71,11 @@
<STRONG>latex2html</STRONG> <TT><A NAME="tex2html38"
HREF="../asterisk.tex">asterisk.tex</A></TT>
<P>
-The translation was initiated by lmadsen on 2011-03-17
+The translation was initiated by lmadsen on 2011-04-25
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node3.html
^
|
@@ -171,7 +171,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node30.html
^
|
@@ -112,7 +112,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node31.html
^
|
@@ -75,7 +75,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node32.html
^
|
@@ -123,7 +123,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node33.html
^
|
@@ -70,7 +70,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node34.html
^
|
@@ -161,7 +161,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node35.html
^
|
@@ -85,7 +85,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node36.html
^
|
@@ -198,7 +198,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node37.html
^
|
@@ -78,7 +78,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node38.html
^
|
@@ -68,7 +68,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node39.html
^
|
@@ -105,7 +105,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node4.html
^
|
@@ -66,7 +66,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node40.html
^
|
@@ -77,7 +77,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node41.html
^
|
@@ -76,7 +76,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node42.html
^
|
@@ -69,7 +69,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node43.html
^
|
@@ -91,7 +91,7 @@
HREF="http://www.cisco.com/application/pdf/en/us/guest/netsol/ns432/c649/ccmigration_09186a008049b062.pdf">http://www.cisco.com/application/pdf/en/us/guest/netsol/ns432/c649/ccmigration_09186a008049b062.pdf</A></TT> <BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node44.html
^
|
@@ -71,7 +71,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node45.html
^
|
@@ -73,7 +73,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node46.html
^
|
@@ -68,7 +68,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node47.html
^
|
@@ -94,7 +94,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node48.html
^
|
@@ -87,7 +87,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node49.html
^
|
@@ -130,7 +130,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node5.html
^
|
@@ -77,7 +77,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node50.html
^
|
@@ -122,7 +122,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node51.html
^
|
@@ -79,7 +79,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node52.html
^
|
@@ -68,7 +68,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node53.html
^
|
@@ -76,7 +76,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node54.html
^
|
@@ -78,7 +78,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node55.html
^
|
@@ -106,7 +106,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node56.html
^
|
@@ -69,7 +69,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node57.html
^
|
@@ -67,7 +67,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node58.html
^
|
@@ -68,7 +68,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node59.html
^
|
@@ -98,7 +98,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node6.html
^
|
@@ -75,7 +75,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node60.html
^
|
@@ -71,7 +71,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node61.html
^
|
@@ -83,7 +83,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node62.html
^
|
@@ -131,7 +131,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node63.html
^
|
@@ -83,7 +83,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node64.html
^
|
@@ -134,7 +134,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node65.html
^
|
@@ -135,7 +135,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node66.html
^
|
@@ -204,7 +204,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node67.html
^
|
@@ -82,7 +82,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node68.html
^
|
@@ -74,7 +74,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node69.html
^
|
@@ -67,7 +67,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node7.html
^
|
@@ -85,7 +85,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node70.html
^
|
@@ -221,7 +221,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node71.html
^
|
@@ -144,7 +144,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node72.html
^
|
@@ -80,7 +80,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node73.html
^
|
@@ -86,7 +86,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node74.html
^
|
@@ -106,7 +106,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node75.html
^
|
@@ -87,7 +87,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node76.html
^
|
@@ -74,7 +74,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node77.html
^
|
@@ -160,7 +160,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node78.html
^
|
@@ -123,7 +123,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node79.html
^
|
@@ -108,7 +108,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node8.html
^
|
@@ -117,7 +117,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node80.html
^
|
@@ -265,7 +265,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node81.html
^
|
@@ -80,7 +80,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node82.html
^
|
@@ -161,7 +161,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node83.html
^
|
@@ -157,7 +157,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node84.html
^
|
@@ -71,7 +71,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node85.html
^
|
@@ -103,7 +103,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node86.html
^
|
@@ -100,7 +100,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node87.html
^
|
@@ -81,7 +81,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node88.html
^
|
@@ -72,7 +72,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node89.html
^
|
@@ -206,7 +206,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node9.html
^
|
@@ -66,7 +66,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node90.html
^
|
@@ -187,7 +187,7 @@
<!--End of Navigation Panel-->
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node91.html
^
|
@@ -155,7 +155,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node92.html
^
|
@@ -103,7 +103,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node93.html
^
|
@@ -89,7 +89,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node94.html
^
|
@@ -76,7 +76,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node95.html
^
|
@@ -75,7 +75,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node96.html
^
|
@@ -68,7 +68,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node97.html
^
|
@@ -68,7 +68,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node98.html
^
|
@@ -77,7 +77,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/doc/tex/asterisk/node99.html
^
|
@@ -75,7 +75,7 @@
<BR><HR>
<ADDRESS>
lmadsen
-2011-03-17
+2011-04-25
</ADDRESS>
</BODY>
</HTML>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/funcs/func_odbc.c
^
|
@@ -33,7 +33,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 267670 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 307836 $")
#include "asterisk/module.h"
#include "asterisk/file.h"
@@ -325,6 +325,10 @@
}
}
+ if (stmt) {
+ SQLRowCount(stmt, &rows);
+ }
+
if (stmt && rows == 0 && ast_str_strlen(insertbuf) != 0) {
SQLCloseCursor(stmt);
SQLFreeHandle(SQL_HANDLE_STMT, stmt);
@@ -347,7 +351,6 @@
}
} else if (stmt) {
status = "SUCCESS";
- SQLRowCount(stmt, &rows);
}
AST_RWLIST_UNLOCK(&queries);
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/include/asterisk/astdb.h
^
|
@@ -33,22 +33,37 @@
char data[0];
};
-/*! \brief Get key value specified by family/key */
+/*!\brief Get key value specified by family/key */
int ast_db_get(const char *family, const char *key, char *out, int outlen);
-/*! \brief Store value addressed by family/key*/
+/*!\brief Store value addressed by family/key */
int ast_db_put(const char *family, const char *key, const char *value);
-/*! \brief Delete entry in astdb */
+/*!\brief Delete entry in astdb */
int ast_db_del(const char *family, const char *key);
-/*! \brief Delete a whole family (for some reason also called "tree" */
+/*!\brief Delete one or more entries in astdb
+ * If both parameters are NULL, the entire database will be purged. If
+ * only keytree is NULL, all entries within the family will be purged.
+ * It is an error for keytree to have a value when family is NULL.
+ *
+ * \retval 0 Entries were deleted
+ * \retval -1 An error occurred
+ */
int ast_db_deltree(const char *family, const char *keytree);
-/*! \brief Get a whole family */
+/*!\brief Get a list of values within the astdb tree
+ * If family is specified, only those keys will be returned. If keytree
+ * is specified, subkeys are expected to exist (separated from the key with
+ * a slash). If subkeys do not exist and keytree is specified, the tree will
+ * consist of either a single entry or NULL will be returned.
+ *
+ * Resulting tree should be freed by passing the return value to ast_db_freetree()
+ * when usage is concluded.
+ */
struct ast_db_entry *ast_db_gettree(const char *family, const char *keytree);
-/*! \brief Free in-memory data */
+/*!\brief Free structure created by ast_db_gettree() */
void ast_db_freetree(struct ast_db_entry *entry);
#if defined(__cplusplus) || defined(c_plusplus)
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/include/asterisk/channel.h
^
|
@@ -684,6 +684,15 @@
* instead of actually hanging up.
*/
AST_SOFTHANGUP_UNBRIDGE = (1 << 6),
+
+
+ /*!
+ * \brief All softhangup flags.
+ *
+ * This can be used as an argument to ast_channel_softhangup_clear
+ * to clear all softhangup flags from a channel.
+ */
+ AST_SOFTHANGUP_ALL = (0xFFFFFFFF)
};
@@ -1013,6 +1022,20 @@
*/
int ast_softhangup_nolock(struct ast_channel *chan, int reason);
+/*!
+ * \brief Clear a set of softhangup flags from a channel
+ *
+ * Never clear a softhangup flag from a channel directly. Instead,
+ * use this function. This ensures that all aspects of the softhangup
+ * process are aborted.
+ *
+ * \param chan the channel to clear the flag on
+ * \param flag the flag or flags to clear
+ *
+ * \return Nothing.
+ */
+void ast_channel_clear_softhangup(struct ast_channel *chan, int flag);
+
/*! \brief Check to see if a channel is needing hang up
* \param chan channel on which to check for hang up
* This function determines if the channel is being requested to be hung up.
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/main/app.c
^
|
@@ -25,7 +25,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 263587 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 302599 $")
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
@@ -36,8 +36,9 @@
#include <sys/time.h> /* for getrlimit(2) */
#include <sys/resource.h> /* for getrlimit(2) */
#include <stdlib.h> /* for closefrom(3) */
-#ifndef HAVE_CLOSEFROM
#include <sys/types.h>
+#include <sys/wait.h> /* for waitpid(2) */
+#ifndef HAVE_CLOSEFROM
#include <dirent.h> /* for opendir(3) */
#endif
#ifdef HAVE_CAP
@@ -58,6 +59,41 @@
AST_THREADSTORAGE_PUBLIC(ast_str_thread_global_buf);
+static pthread_t shaun_of_the_dead_thread = AST_PTHREADT_NULL;
+
+struct zombie {
+ pid_t pid;
+ AST_LIST_ENTRY(zombie) list;
+};
+
+static AST_LIST_HEAD_STATIC(zombies, zombie);
+
+static void *shaun_of_the_dead(void *data)
+{
+ struct zombie *cur;
+ int status;
+ for (;;) {
+ if (!AST_LIST_EMPTY(&zombies)) {
+ /* Don't allow cancellation while we have a lock. */
+ pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
+ AST_LIST_LOCK(&zombies);
+ AST_LIST_TRAVERSE_SAFE_BEGIN(&zombies, cur, list) {
+ if (waitpid(cur->pid, &status, WNOHANG) != 0) {
+ AST_LIST_REMOVE_CURRENT(list);
+ ast_free(cur);
+ }
+ }
+ AST_LIST_TRAVERSE_SAFE_END
+ AST_LIST_UNLOCK(&zombies);
+ pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
+ }
+ pthread_testcancel();
+ /* Wait for 60 seconds, without engaging in a busy loop. */
+ ast_poll(NULL, 0, AST_LIST_FIRST(&zombies) ? 5000 : 60000);
+ }
+ return NULL;
+}
+
#define AST_MAX_FORMATS 10
@@ -2054,6 +2090,21 @@
if (pid != 0) {
/* Fork failed or parent */
pthread_sigmask(SIG_SETMASK, &old_set, NULL);
+ if (!stop_reaper && pid > 0) {
+ struct zombie *cur = ast_calloc(1, sizeof(*cur));
+ if (cur) {
+ cur->pid = pid;
+ AST_LIST_LOCK(&zombies);
+ AST_LIST_INSERT_TAIL(&zombies, cur, list);
+ AST_LIST_UNLOCK(&zombies);
+ if (shaun_of_the_dead_thread == AST_PTHREADT_NULL) {
+ if (ast_pthread_create_background(&shaun_of_the_dead_thread, NULL, shaun_of_the_dead, NULL)) {
+ ast_log(LOG_ERROR, "Shaun of the Dead wants to kill zombies, but can't?!!\n");
+ shaun_of_the_dead_thread = AST_PTHREADT_NULL;
+ }
+ }
+ }
+ }
return pid;
} else {
/* Child */
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/main/asterisk.c
^
|
@@ -59,7 +59,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 296533 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 307535 $")
#include "asterisk/_private.h"
@@ -3250,7 +3250,7 @@
ast_set_flag(&ast_options, AST_OPT_FLAG_TIMESTAMP);
break;
case 'x':
- ast_set_flag(&ast_options, AST_OPT_FLAG_EXEC);
+ ast_set_flag(&ast_options, AST_OPT_FLAG_EXEC | AST_OPT_FLAG_NO_COLOR);
xarg = ast_strdupa(optarg);
break;
case 'C':
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/main/channel.c
^
|
@@ -25,7 +25,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 301503 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 305889 $")
#include "asterisk/_private.h"
@@ -1744,6 +1744,31 @@
return;
}
+void ast_channel_clear_softhangup(struct ast_channel *chan, int flag)
+{
+ ast_channel_lock(chan);
+
+ chan->_softhangup &= ~flag;
+
+ if (!chan->_softhangup) {
+ struct ast_frame *fr;
+
+ /* If we have completely cleared the softhangup flag,
+ * then we need to fully abort the hangup process. This requires
+ * pulling the END_OF_Q frame out of the channel frame queue if it
+ * still happens to be there. */
+
+ fr = AST_LIST_LAST(&chan->readq);
+ if (fr && fr->frametype == AST_FRAME_CONTROL &&
+ fr->subclass == AST_CONTROL_END_OF_Q) {
+ AST_LIST_REMOVE(&chan->readq, fr, frame_list);
+ ast_frfree(fr);
+ }
+ }
+
+ ast_channel_unlock(chan);
+}
+
/*! \brief Softly hangup a channel, don't lock */
int ast_softhangup_nolock(struct ast_channel *chan, int cause)
{
@@ -3445,13 +3470,18 @@
int ast_sendtext(struct ast_channel *chan, const char *text)
{
int res = 0;
+
+ ast_channel_lock(chan);
/* Stop if we're a zombie or need a soft hangup */
- if (ast_test_flag(chan, AST_FLAG_ZOMBIE) || ast_check_hangup(chan))
+ if (ast_test_flag(chan, AST_FLAG_ZOMBIE) || ast_check_hangup(chan)) {
+ ast_channel_unlock(chan);
return -1;
+ }
CHECK_BLOCKING(chan);
if (chan->tech->send_text)
res = chan->tech->send_text(chan, text);
ast_clear_flag(chan, AST_FLAG_BLOCKING);
+ ast_channel_unlock(chan);
return res;
}
@@ -5187,10 +5217,10 @@
ast_jb_get_and_deliver(c0, c1);
if ((c0->_softhangup | c1->_softhangup) & AST_SOFTHANGUP_UNBRIDGE) {/* Bit operators are intentional. */
if (c0->_softhangup & AST_SOFTHANGUP_UNBRIDGE) {
- c0->_softhangup &= ~AST_SOFTHANGUP_UNBRIDGE;
+ ast_channel_clear_softhangup(c0, AST_SOFTHANGUP_UNBRIDGE);
}
if (c1->_softhangup & AST_SOFTHANGUP_UNBRIDGE) {
- c1->_softhangup &= ~AST_SOFTHANGUP_UNBRIDGE;
+ ast_channel_clear_softhangup(c1, AST_SOFTHANGUP_UNBRIDGE);
}
c0->_bridge = c1;
c1->_bridge = c0;
@@ -5503,10 +5533,10 @@
if ((c0->_softhangup | c1->_softhangup) & AST_SOFTHANGUP_UNBRIDGE) {/* Bit operators are intentional. */
if (c0->_softhangup & AST_SOFTHANGUP_UNBRIDGE) {
- c0->_softhangup &= ~AST_SOFTHANGUP_UNBRIDGE;
+ ast_channel_clear_softhangup(c0, AST_SOFTHANGUP_UNBRIDGE);
}
if (c1->_softhangup & AST_SOFTHANGUP_UNBRIDGE) {
- c1->_softhangup &= ~AST_SOFTHANGUP_UNBRIDGE;
+ ast_channel_clear_softhangup(c1, AST_SOFTHANGUP_UNBRIDGE);
}
c0->_bridge = c1;
c1->_bridge = c0;
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/main/features.c
^
|
@@ -25,7 +25,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 303141 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 307227 $")
#include "asterisk/_private.h"
@@ -544,7 +544,7 @@
for (x = goto_on_transfer; x && *x; x++) {
if (*x == '^')
- *x = '|';
+ *x = ',';
}
/* Make formats okay */
xferchan->readformat = chan->readformat;
@@ -553,7 +553,7 @@
ast_parseable_goto(xferchan, goto_on_transfer);
xferchan->_state = AST_STATE_UP;
ast_clear_flag(xferchan, AST_FLAGS_ALL);
- xferchan->_softhangup = 0;
+ ast_channel_clear_softhangup(xferchan, AST_SOFTHANGUP_ALL);
if ((f = ast_read(xferchan))) {
ast_frfree(f);
f = NULL;
@@ -1462,15 +1462,27 @@
ast_stopstream(transferer);
res = ast_app_dtget(transferer, transferer_real_context, xferto, sizeof(xferto), 100, transferdigittimeout);
- if (res < 0) { /* hangup, would be 0 for invalid and 1 for valid */
+ if (res < 0) { /* hangup or error, (would be 0 for invalid and 1 for valid) */
finishup(transferee);
- return res;
+ return -1;
+ }
+ if (res == 0) {
+ if (xferto[0]) {
+ ast_log(LOG_WARNING, "Extension '%s' does not exist in context '%s'\n",
+ xferto, transferer_real_context);
+ } else {
+ /* Does anyone care about this case? */
+ ast_log(LOG_WARNING, "No digits dialed.\n");
+ }
+ ast_stream_and_wait(transferer, "pbx-invalid", "");
+ finishup(transferee);
+ return AST_FEATURE_RETURN_SUCCESS;
}
+
if (!strcmp(xferto, ast_parking_ext())) {
res = finishup(transferee);
- if (res)
- res = -1;
- else if (!(parkstatus = masq_park_call_announce(transferee, transferer, 0, NULL))) { /* success */
+ if (res) {
+ } else if (!(parkstatus = masq_park_call_announce(transferee, transferer, 0, NULL))) { /* success */
/* We return non-zero, but tell the PBX not to hang the channel when
the thread dies -- We have to be careful now though. We are responsible for
hanging up the channel, else it will never be hung up! */
@@ -1479,8 +1491,8 @@
} else {
ast_log(LOG_WARNING, "Unable to park call %s, parkstatus = %d\n", transferee->name, parkstatus);
}
- /*! \todo XXX Maybe we should have another message here instead of invalid extension XXX */
- } else if (ast_exists_extension(transferee, transferer_real_context, xferto, 1, transferer->cid.cid_num)) {
+ ast_autoservice_start(transferee);
+ } else {
pbx_builtin_setvar_helper(transferer, "BLINDTRANSFER", transferee->name);
pbx_builtin_setvar_helper(transferee, "BLINDTRANSFER", transferer->name);
res=finishup(transferee);
@@ -1517,10 +1529,9 @@
}
check_goto_on_transfer(transferer);
return res;
- } else {
- ast_verb(3, "Unable to find extension '%s' in context '%s'\n", xferto, transferer_real_context);
}
- if (parkstatus != AST_FEATURE_RETURN_PARKFAILED && ast_stream_and_wait(transferer, xferfailsound, AST_DIGIT_ANY) < 0) {
+ if (parkstatus != AST_FEATURE_RETURN_PARKFAILED
+ && ast_stream_and_wait(transferer, xferfailsound, "")) {
finishup(transferee);
return -1;
}
@@ -2652,9 +2663,8 @@
done:
ast_indicate(caller, -1);
- if (chan && ready) {
- if (chan->_state == AST_STATE_UP)
- state = AST_CONTROL_ANSWER;
+ if (chan && (ready || chan->_state == AST_STATE_UP)) {
+ state = AST_CONTROL_ANSWER;
} else if (chan) {
ast_hangup(chan);
chan = NULL;
@@ -3299,7 +3309,7 @@
"Parkinglot: %s\r\n"
"CallerIDNum: %s\r\n"
"CallerIDName: %s\r\n"
- "UniqueID: %s\r\n\r\n",
+ "UniqueID: %s\r\n",
pu->parkingexten,
pu->chan->name,
pu->parkinglot->name,
@@ -3483,7 +3493,7 @@
continue;
}
- if (pfds[y].revents & POLLERR) {
+ if (pfds[y].revents & POLLPRI) {
ast_set_flag(chan, AST_FLAG_EXCEPTION);
} else {
ast_clear_flag(chan, AST_FLAG_EXCEPTION);
@@ -3989,9 +3999,9 @@
if (!var) { /* Default parking lot */
ast_copy_string(parkinglot->parking_con, "parkedcalls", sizeof(parkinglot->parking_con));
- ast_copy_string(parkinglot->parking_con_dial, "park-dial", sizeof(parkinglot->parking_con_dial));
ast_copy_string(parkinglot->mohclass, "default", sizeof(parkinglot->mohclass));
}
+ ast_copy_string(parkinglot->parking_con_dial, "park-dial", sizeof(parkinglot->parking_con_dial));
/* Check for errors */
if (ast_strlen_zero(parkinglot->parking_con)) {
@@ -4104,7 +4114,7 @@
strcpy(pickup_ext, "*8");
courtesytone[0] = '\0';
strcpy(xfersound, "beep");
- strcpy(xferfailsound, "pbx-invalid");
+ strcpy(xferfailsound, "beeperr");
pickupsound[0] = '\0';
pickupfailsound[0] = '\0';
adsipark = 0;
@@ -4872,7 +4882,8 @@
change while we're here, but that isn't a problem. */
(c != chan) &&
(chan->pickupgroup & c->callgroup) &&
- ((c->_state == AST_STATE_RINGING) || (c->_state == AST_STATE_RING));
+ ((c->_state == AST_STATE_RINGING) || (c->_state == AST_STATE_RING)) &&
+ !c->masq;
}
/*!
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/main/file.c
^
|
@@ -25,7 +25,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 290575 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 304096 $")
#include <dirent.h>
#include <sys/stat.h>
@@ -1117,6 +1117,11 @@
if (fd > -1) {
errno = 0;
fs = get_filestream(f, bfile);
+ if (fs) {
+ if ((fs->write_buffer = ast_malloc(32768))) {
+ setvbuf(fs->f, fs->write_buffer, _IOFBF, 32768);
+ }
+ }
if (!fs || rewrite_wrapper(fs, comment)) {
ast_log(LOG_WARNING, "Unable to rewrite %s\n", fn);
close(fd);
@@ -1143,11 +1148,6 @@
}
fs->vfs = NULL;
/* If truncated, we'll be at the beginning; if not truncated, then append */
-
- if ((fs->write_buffer = ast_malloc(32768))){
- setvbuf(fs->f, fs->write_buffer, _IOFBF, 32768);
- }
-
f->seek(fs, 0, SEEK_END);
} else if (errno != EEXIST) {
ast_log(LOG_WARNING, "Unable to open file %s: %s\n", fn, strerror(errno));
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/main/http.c
^
|
@@ -30,7 +30,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 211580 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 315201 $")
#include <time.h>
#include <sys/time.h>
@@ -53,12 +53,16 @@
#include "asterisk/astobj2.h"
#define MAX_PREFIX 80
+#define DEFAULT_SESSION_LIMIT 100
/* See http.h for more information about the SSL implementation */
#if defined(HAVE_OPENSSL) && (defined(HAVE_FUNOPEN) || defined(HAVE_FOPENCOOKIE))
#define DO_SSL /* comment in/out if you want to support ssl */
#endif
+static int session_limit = DEFAULT_SESSION_LIMIT;
+static int session_count = 0;
+
static struct ast_tls_config http_tls_cfg;
static void *httpd_helper_thread(void *arg);
@@ -98,6 +102,7 @@
const char *mtype;
} mimetypes[] = {
{ "png", "image/png" },
+ { "xml", "text/xml" },
{ "jpg", "image/jpeg" },
{ "js", "application/x-javascript" },
{ "wav", "audio/x-wav" },
@@ -105,6 +110,14 @@
{ "svg", "image/svg+xml" },
{ "svgz", "image/svg+xml" },
{ "gif", "image/gif" },
+ { "html", "text/html" },
+ { "htm", "text/html" },
+ { "css", "text/css" },
+ { "cnf", "text/plain" },
+ { "cfg", "text/plain" },
+ { "bin", "application/octet-stream" },
+ { "sbn", "application/octet-stream" },
+ { "ld", "application/octet-stream" },
};
struct http_uri_redirect {
@@ -433,6 +446,8 @@
struct http_uri_redirect *redirect;
int saw_method = 0;
+ ast_debug(2, "HTTP Request URI is %s \n", uri);
+
/* preserve previous behavior of only support URI parameters on GET requests */
if (method == AST_HTTP_GET) {
strsep(¶ms, "?");
@@ -644,9 +659,7 @@
continue;
}
- if (option_debug) {
- ast_log(LOG_DEBUG, "mmm ... cookie! Name: '%s' Value: '%s'\n", name, val);
- }
+ ast_debug(1, "HTTP Cookie, Name: '%s' Value: '%s'\n", name, val);
var = ast_variable_new(name, val, __FILE__);
var->next = vars;
@@ -668,6 +681,10 @@
unsigned int static_content = 0;
struct ast_variable *tail = headers;
+ if (ast_atomic_fetchadd_int(&session_count, +1) >= session_limit) {
+ goto done;
+ }
+
if (!fgets(buf, sizeof(buf), ser->f)) {
goto done;
}
@@ -778,6 +795,7 @@
}
done:
+ ast_atomic_fetchadd_int(&session_count, -1);
fclose(ser->f);
ao2_ref(ser, -1);
ser = NULL;
@@ -927,6 +945,12 @@
}
} else if (!strcasecmp(v->name, "redirect")) {
add_redirect(v->value);
+ } else if (!strcasecmp(v->name, "sessionlimit")) {
+ if (ast_parse_arg(v->value, PARSE_INT32|PARSE_DEFAULT|PARSE_IN_RANGE,
+ &session_limit, DEFAULT_SESSION_LIMIT, 1, INT_MAX)) {
+ ast_log(LOG_WARNING, "Invalid %s '%s' at line %d of http.conf\n",
+ v->name, v->value, v->lineno);
+ }
} else {
ast_log(LOG_WARNING, "Ignoring unknown option '%s' in http.conf\n", v->name);
}
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/main/manager.c
^
|
@@ -43,7 +43,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 311190 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 315201 $")
#include "asterisk/_private.h"
#include "asterisk/paths.h" /* use various ast_config_AST_* */
@@ -127,6 +127,8 @@
static const int DEFAULT_TIMESTAMPEVENTS = 0; /*!< Default setting for timestampevents */
static const int DEFAULT_HTTPTIMEOUT = 60; /*!< Default manager http timeout */
static const int DEFAULT_BROKENEVENTSACTION = 0; /*!< Default setting for brokeneventsaction */
+static const int DEFAULT_AUTHTIMEOUT = 30; /*!< Default setting for authtimeout */
+static const int DEFAULT_AUTHLIMIT = 50; /*!< Default setting for authlimit */
static int displayconnects;
static int allowmultiplelogin = 1;
@@ -135,9 +137,12 @@
static int broken_events_action;
static int manager_enabled = 0;
static int webmanager_enabled = 0;
+static int authtimeout;
+static int authlimit;
static int block_sockets;
static int num_sessions;
+static int unauth_sessions = 0;
static int manager_debug; /*!< enable some debugging code in the manager */
@@ -214,6 +219,7 @@
int send_events; /*!< XXX what ? */
struct eventqent *last_ev; /*!< last event processed. */
int writetimeout; /*!< Timeout for ast_carefulwrite() */
+ time_t authstart;
int pending_event; /*!< Pending events indicator in case when waiting_thread is NULL */
AST_LIST_HEAD_NOLOCK(mansession_datastores, ast_datastore) datastores; /*!< Data stores on the session */
AST_LIST_ENTRY(mansession_session) list;
@@ -228,7 +234,6 @@
struct mansession_session *session;
FILE *f;
int fd;
- int write_error:1;
};
static AST_LIST_HEAD_STATIC(sessions, mansession_session);
@@ -965,15 +970,11 @@
*/
static int send_string(struct mansession *s, char *string)
{
- int res;
- FILE *f = s->f ? s->f : s->session->f;
- int fd = s->f ? s->fd : s->session->fd;
-
- if ((res = ast_careful_fwrite(f, fd, string, strlen(string), s->session->writetimeout))) {
- s->write_error = 1;
+ if (s->f) {
+ return ast_careful_fwrite(s->f, s->fd, string, strlen(string), s->session->writetimeout);
+ } else {
+ return ast_careful_fwrite(s->session->f, s->session->fd, string, strlen(string), s->session->writetimeout);
}
-
- return res;
}
/*!
@@ -1792,6 +1793,7 @@
return -1;
}
s->session->authenticated = 1;
+ ast_atomic_fetchadd_int(&unauth_sessions, -1);
if (manager_displayconnects(s->session))
ast_verb(2, "%sManager '%s' logged on from %s\n", (s->session->managerid ? "HTTP " : ""), s->session->username, ast_inet_ntoa(s->session->sin.sin_addr));
ast_log(LOG_EVENT, "%sManager '%s' logged on from %s\n", (s->session->managerid ? "HTTP " : ""), s->session->username, ast_inet_ntoa(s->session->sin.sin_addr));
@@ -2111,12 +2113,13 @@
res = ast_sendtext(c, textmsg);
ast_channel_unlock(c);
-
- if (res > 0)
+
+ if (res >= 0) {
astman_send_ack(s, m, "Success");
- else
+ } else {
astman_send_error(s, m, "Failure");
-
+ }
+
return res;
}
@@ -2503,6 +2506,25 @@
format = 0;
ast_parse_allow_disallow(NULL, &format, codecs, 1);
}
+ if (!ast_strlen_zero(app)) {
+ /* To run the System application (or anything else that goes to
+ * shell), you must have the additional System privilege */
+ if (!(s->session->writeperm & EVENT_FLAG_SYSTEM)
+ && (
+ strcasestr(app, "system") || /* System(rm -rf /)
+ TrySystem(rm -rf /) */
+ strcasestr(app, "exec") || /* Exec(System(rm -rf /))
+ TryExec(System(rm -rf /)) */
+ strcasestr(app, "agi") || /* AGI(/bin/rm,-rf /)
+ EAGI(/bin/rm,-rf /) */
+ strstr(appdata, "SHELL") || /* NoOp(${SHELL(rm -rf /)}) */
+ strstr(appdata, "EVAL") /* NoOp(${EVAL(${some_var_containing_SHELL})}) */
+ )) {
+ astman_send_error(s, m, "Originate with certain 'Application' arguments requires the additional System privilege, which you do not have.");
+ return 0;
+ }
+ }
+
/* Allocate requested channel variables */
vars = astman_get_variables(m);
@@ -2536,21 +2558,6 @@
}
}
} else if (!ast_strlen_zero(app)) {
- /* To run the System application (or anything else that goes to shell), you must have the additional System privilege */
- if (!(s->session->writeperm & EVENT_FLAG_SYSTEM)
- && (
- strcasestr(app, "system") || /* System(rm -rf /)
- TrySystem(rm -rf /) */
- strcasestr(app, "exec") || /* Exec(System(rm -rf /))
- TryExec(System(rm -rf /)) */
- strcasestr(app, "agi") || /* AGI(/bin/rm,-rf /)
- EAGI(/bin/rm,-rf /) */
- strstr(appdata, "SHELL") || /* NoOp(${SHELL(rm -rf /)}) */
- strstr(appdata, "EVAL") /* NoOp(${EVAL(${some_var_containing_SHELL})}) */
- )) {
- astman_send_error(s, m, "Originate with certain 'Application' arguments requires the additional System privilege, which you do not have.");
- return 0;
- }
res = ast_pbx_outgoing_app(tech, format, data, to, app, appdata, &reason, 1, l, n, vars, account, NULL);
} else {
if (exten && context && pi)
@@ -3125,6 +3132,8 @@
int res, x;
int maxlen = sizeof(s->session->inbuf) - 1;
char *src = s->session->inbuf;
+ int timeout = -1;
+ time_t now;
/*
* Look for \r\n within the buffer. If found, copy to the output
@@ -3152,6 +3161,20 @@
}
res = 0;
while (res == 0) {
+ /* calculate a timeout if we are not authenticated */
+ if (!s->session->authenticated) {
+ if(time(&now) == -1) {
+ ast_log(LOG_ERROR, "error executing time(): %s\n", strerror(errno));
+ return -1;
+ }
+
+ timeout = (authtimeout - (now - s->session->authstart)) * 1000;
+ if (timeout < 0) {
+ /* we have timed out */
+ return 0;
+ }
+ }
+
/* XXX do we really need this locking ? */
ast_mutex_lock(&s->session->__lock);
if (s->session->pending_event) {
@@ -3162,7 +3185,7 @@
s->session->waiting_thread = pthread_self();
ast_mutex_unlock(&s->session->__lock);
- res = ast_wait_for_input(s->session->fd, -1); /* return 0 on timeout ? */
+ res = ast_wait_for_input(s->session->fd, timeout);
ast_mutex_lock(&s->session->__lock);
s->session->waiting_thread = AST_PTHREADT_NULL;
@@ -3195,6 +3218,7 @@
struct message m = { 0 };
char header_buf[sizeof(s->session->inbuf)] = { '\0' };
int res;
+ time_t now;
for (;;) {
/* Check if any events are pending and do them if needed */
@@ -3202,6 +3226,17 @@
return -1;
res = get_input(s, header_buf);
if (res == 0) {
+ if (!s->session->authenticated) {
+ if(time(&now) == -1) {
+ ast_log(LOG_ERROR, "error executing time(): %s\n", strerror(errno));
+ return -1;
+ }
+
+ if (now - s->session->authstart > authtimeout) {
+ ast_log(LOG_EVENT, "Client from %s, failed to authenticate in %d seconds\n", ast_inet_ntoa(s->session->sin.sin_addr), authtimeout);
+ return -1;
+ }
+ }
continue;
} else if (res > 0) {
if (ast_strlen_zero(header_buf))
@@ -3225,14 +3260,23 @@
static void *session_do(void *data)
{
struct ast_tcptls_session_instance *ser = data;
- struct mansession_session *session = ast_calloc(1, sizeof(*session));
+ struct mansession_session *session = NULL;
struct mansession s = {.session = NULL, };
int flags;
int res;
struct protoent *p;
- if (session == NULL)
+ if (ast_atomic_fetchadd_int(&unauth_sessions, +1) >= authlimit) {
+ fclose(ser->f);
+ ast_atomic_fetchadd_int(&unauth_sessions, -1);
goto done;
+ }
+
+ if ((session = ast_calloc(1, sizeof(*session))) == NULL) {
+ fclose(ser->f);
+ ast_atomic_fetchadd_int(&unauth_sessions, -1);
+ goto done;
+ }
/* here we set TCP_NODELAY on the socket to disable Nagle's algorithm.
* This is necessary to prevent delays (caused by buffering) as we
@@ -3275,9 +3319,16 @@
ast_atomic_fetchadd_int(&num_sessions, 1);
AST_LIST_UNLOCK(&sessions);
+ if(time(&session->authstart) == -1) {
+ ast_log(LOG_ERROR, "error executing time(): %s; disconnecting client\n", strerror(errno));
+ ast_atomic_fetchadd_int(&unauth_sessions, -1);
+ destroy_session(session);
+ goto done;
+ }
+
astman_append(&s, "Asterisk Call Manager/%s\r\n", AMI_VERSION); /* welcome prompt */
for (;;) {
- if ((res = do_message(&s)) < 0 || s.write_error)
+ if ((res = do_message(&s)) < 0)
break;
}
/* session is over, explain why and terminate */
@@ -3286,6 +3337,7 @@
ast_verb(2, "Manager '%s' logged off from %s\n", session->username, ast_inet_ntoa(session->sin.sin_addr));
ast_log(LOG_EVENT, "Manager '%s' logged off from %s\n", session->username, ast_inet_ntoa(session->sin.sin_addr));
} else {
+ ast_atomic_fetchadd_int(&unauth_sessions, -1);
if (displayconnects)
ast_verb(2, "Connect attempt from '%s' unable to authenticate\n", ast_inet_ntoa(session->sin.sin_addr));
ast_log(LOG_EVENT, "Failed attempt from %s\n", ast_inet_ntoa(session->sin.sin_addr));
@@ -3928,7 +3980,7 @@
hdrlen = strlen(v->name) + strlen(v->value) + 3;
m.headers[m.hdrcount] = alloca(hdrlen);
snprintf((char *) m.headers[m.hdrcount], hdrlen, "%s: %s", v->name, v->value);
- ast_verb(4, "HTTP Manager add header %s\n", m.headers[m.hdrcount]);
+ ast_debug(1, "HTTP Manager add header %s\n", m.headers[m.hdrcount]);
m.hdrcount = x + 1;
}
@@ -4181,6 +4233,8 @@
block_sockets = DEFAULT_BLOCKSOCKETS;
timestampevents = DEFAULT_TIMESTAMPEVENTS;
httptimeout = DEFAULT_HTTPTIMEOUT;
+ authtimeout = DEFAULT_AUTHTIMEOUT;
+ authlimit = DEFAULT_AUTHLIMIT;
if (!cfg || cfg == CONFIG_STATUS_FILEINVALID) {
ast_log(LOG_NOTICE, "Unable to open AMI configuration manager.conf, or configuration is invalid. Asterisk management interface (AMI) disabled.\n");
@@ -4245,6 +4299,22 @@
manager_debug = ast_true(val);
} else if (!strcasecmp(var->name, "httptimeout")) {
newhttptimeout = atoi(val);
+ } else if (!strcasecmp(var->name, "authtimeout")) {
+ int timeout = atoi(var->value);
+
+ if (timeout < 1) {
+ ast_log(LOG_WARNING, "Invalid authtimeout value '%s', using default value\n", var->value);
+ } else {
+ authtimeout = timeout;
+ }
+ } else if (!strcasecmp(var->name, "authlimit")) {
+ int limit = atoi(var->value);
+
+ if (limit < 1) {
+ ast_log(LOG_WARNING, "Invalid authlimit value '%s', using default value\n", var->value);
+ } else {
+ authlimit = limit;
+ }
} else {
ast_log(LOG_NOTICE, "Invalid keyword <%s> = <%s> in manager.conf [general]\n",
var->name, val);
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/main/pbx.c
^
|
@@ -24,7 +24,7 @@
*/
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 295843 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 303548 $")
#include "asterisk/_private.h"
#include "asterisk/paths.h" /* use ast_config_AST_SYSTEM_NAME */
@@ -886,7 +886,7 @@
struct ast_hint {
struct ast_exten *exten; /*!< Extension */
int laststate; /*!< Last known state */
- AST_LIST_HEAD_NOLOCK(, ast_state_cb) callbacks; /*!< Callback list for this extension */
+ struct ao2_container *callbacks; /*!< Callback container for this extension */
};
/* --- Hash tables of various objects --------*/
@@ -1145,8 +1145,7 @@
*/
static struct ao2_container *hints;
-/* XXX TODO Convert this to an astobj2 container, too. */
-static AST_LIST_HEAD_NOLOCK_STATIC(statecbs, ast_state_cb);
+static struct ao2_container *statecbs;
#ifdef CONTEXT_DEBUG
@@ -3874,15 +3873,15 @@
struct ast_str *str;
struct statechange *sc = datap;
struct ao2_iterator i;
+ struct ao2_iterator cb_iter;
if (!(str = ast_str_create(1024))) {
return -1;
}
-
i = ao2_iterator_init(hints, 0);
for (hint = ao2_iterator_next(&i); hint; ao2_ref(hint, -1), hint = ao2_iterator_next(&i)) {
- struct ast_state_cb *cblist;
+ struct ast_state_cb *state_cb;
char *cur, *parse;
int state;
@@ -3908,7 +3907,6 @@
/* Device state changed since last check - notify the watchers */
- ast_rdlock_contexts();
ao2_lock(hints);
ao2_lock(hint);
@@ -3916,24 +3914,26 @@
/* the extension has been destroyed */
ao2_unlock(hint);
ao2_unlock(hints);
- ast_unlock_contexts();
continue;
}
/* For general callbacks */
- AST_LIST_TRAVERSE(&statecbs, cblist, entry) {
- cblist->callback(hint->exten->parent->name, hint->exten->exten, state, cblist->data);
+ cb_iter = ao2_iterator_init(statecbs, 0);
+ for (state_cb = ao2_iterator_next(&cb_iter); state_cb; ao2_ref(state_cb, -1), state_cb = ao2_iterator_next(&cb_iter)) {
+ state_cb->callback(hint->exten->parent->name, hint->exten->exten, state, state_cb->data);
}
+ ao2_iterator_destroy(&cb_iter);
/* For extension callbacks */
- AST_LIST_TRAVERSE(&hint->callbacks, cblist, entry) {
- cblist->callback(hint->exten->parent->name, hint->exten->exten, state, cblist->data);
+ cb_iter = ao2_iterator_init(hint->callbacks, 0);
+ for (state_cb = ao2_iterator_next(&cb_iter); state_cb; ao2_ref(state_cb, -1), state_cb = ao2_iterator_next(&cb_iter)) {
+ state_cb->callback(hint->exten->parent->name, hint->exten->exten, state, state_cb->data);
}
+ ao2_iterator_destroy(&cb_iter);
hint->laststate = state; /* record we saw the change */
ao2_unlock(hint);
ao2_unlock(hints);
- ast_unlock_contexts();
}
ao2_iterator_destroy(&i);
ast_free(str);
@@ -3946,31 +3946,32 @@
ast_state_cb_type callback, void *data)
{
struct ast_hint *hint;
- struct ast_state_cb *cblist;
+ struct ast_state_cb *state_cb;
struct ast_exten *e;
/* If there's no context and extension: add callback to statecbs list */
if (!context && !exten) {
ao2_lock(hints);
- AST_LIST_TRAVERSE(&statecbs, cblist, entry) {
- if (cblist->callback == callback) {
- cblist->data = data;
- ao2_unlock(hints);
- return 0;
- }
+ state_cb = ao2_find(statecbs, callback, 0);
+ if (state_cb) {
+ state_cb->data = data;
+ ao2_ref(state_cb, -1);
+ ao2_unlock(hints);
+ return 0;
}
/* Now insert the callback */
- if (!(cblist = ast_calloc(1, sizeof(*cblist)))) {
+ if (!(state_cb = ao2_alloc(sizeof(*state_cb), NULL))) {
ao2_unlock(hints);
return -1;
}
- cblist->id = 0;
- cblist->callback = callback;
- cblist->data = data;
+ state_cb->id = 0;
+ state_cb->callback = callback;
+ state_cb->data = data;
- AST_LIST_INSERT_HEAD(&statecbs, cblist, entry);
+ ao2_link(statecbs, state_cb);
+ ao2_ref(state_cb, -1);
ao2_unlock(hints);
return 0;
@@ -4007,35 +4008,35 @@
}
/* Now insert the callback in the callback list */
- if (!(cblist = ast_calloc(1, sizeof(*cblist)))) {
+ if (!(state_cb = ao2_alloc(sizeof(*state_cb), NULL))) {
ao2_ref(hint, -1);
return -1;
}
- cblist->id = stateid++; /* Unique ID for this callback */
- cblist->callback = callback; /* Pointer to callback routine */
- cblist->data = data; /* Data for the callback */
+ state_cb->id = stateid++; /* Unique ID for this callback */
+ state_cb->callback = callback; /* Pointer to callback routine */
+ state_cb->data = data; /* Data for the callback */
ao2_lock(hint);
- AST_LIST_INSERT_HEAD(&hint->callbacks, cblist, entry);
+ ao2_link(hint->callbacks, state_cb);
+ ao2_ref(state_cb, -1);
ao2_unlock(hint);
ao2_ref(hint, -1);
- return cblist->id;
+ return state_cb->id;
}
/*! \brief Remove a watcher from the callback list */
static int find_hint_by_cb_id(void *obj, void *arg, int flags)
{
+ struct ast_state_cb *state_cb;
const struct ast_hint *hint = obj;
int *id = arg;
- struct ast_state_cb *cb;
- AST_LIST_TRAVERSE(&hint->callbacks, cb, entry) {
- if (cb->id == *id) {
- return CMP_MATCH | CMP_STOP;
- }
+ if ((state_cb = ao2_find(hint->callbacks, id, 0))) {
+ ao2_ref(state_cb, -1);
+ return CMP_MATCH | CMP_STOP;
}
return 0;
@@ -4053,13 +4054,11 @@
if (!id) { /* id == 0 is a callback without extension */
ao2_lock(hints);
- AST_LIST_TRAVERSE_SAFE_BEGIN(&statecbs, p_cur, entry) {
- if (p_cur->callback == callback) {
- AST_LIST_REMOVE_CURRENT(entry);
- break;
- }
+ p_cur = ao2_find(statecbs, callback, OBJ_UNLINK);
+ if (p_cur) {
+ ret = 0;
+ ao2_ref(p_cur, -1);
}
- AST_LIST_TRAVERSE_SAFE_END;
ao2_unlock(hints);
} else { /* callback with extension, find the callback based on ID */
struct ast_hint *hint;
@@ -4068,28 +4067,28 @@
if (hint) {
ao2_lock(hint);
- AST_LIST_TRAVERSE_SAFE_BEGIN(&hint->callbacks, p_cur, entry) {
- if (p_cur->id == id) {
- AST_LIST_REMOVE_CURRENT(entry);
- ret = 0;
- break;
- }
+ p_cur = ao2_find(hint->callbacks, &id, OBJ_UNLINK);
+ if (p_cur) {
+ ret = 0;
+ ao2_ref(p_cur, -1);
}
- AST_LIST_TRAVERSE_SAFE_END;
-
ao2_unlock(hint);
ao2_ref(hint, -1);
}
}
- if (p_cur) {
- ast_free(p_cur);
- }
-
return ret;
}
+static int hint_id_cmp(void *obj, void *arg, int flags)
+{
+ const struct ast_state_cb *cb = obj;
+ int *id = arg;
+
+ return (cb->id == *id) ? CMP_MATCH | CMP_STOP : 0;
+}
+
/*! \brief Add hint to hint list, check initial extension state */
static int ast_add_hint(struct ast_exten *e)
{
@@ -4112,6 +4111,9 @@
if (!(hint = ao2_alloc(sizeof(*hint), NULL))) {
return -1;
}
+ if (!(hint->callbacks = ao2_container_alloc(1, NULL, hint_id_cmp))) {
+ return -1;
+ }
/* Initialize and insert new item at the top */
hint->exten = e;
@@ -4148,7 +4150,7 @@
{
/* Cleanup the Notifys if hint is removed */
struct ast_hint *hint;
- struct ast_state_cb *cblist;
+ struct ast_state_cb *state_cb;
if (!e) {
return -1;
@@ -4161,15 +4163,16 @@
}
ao2_lock(hint);
- while ((cblist = AST_LIST_REMOVE_HEAD(&hint->callbacks, entry))) {
+ while ((state_cb = ao2_callback(hint->callbacks, OBJ_UNLINK, NULL, NULL))) {
/* Notify with -1 and remove all callbacks */
- cblist->callback(hint->exten->parent->name, hint->exten->exten,
- AST_EXTENSION_DEACTIVATED, cblist->data);
- ast_free(cblist);
+ state_cb->callback(hint->exten->parent->name, hint->exten->exten,
+ AST_EXTENSION_DEACTIVATED, state_cb->data);
+ ao2_ref(state_cb, -1);
}
hint->exten = NULL;
ao2_unlink(hints, hint);
+ ao2_ref(hint->callbacks, -1);
ao2_unlock(hint);
ao2_ref(hint, -1);
@@ -4250,7 +4253,7 @@
keep reading digits until we can't possibly get a right answer anymore. */
digit = ast_waitfordigit(c, waittime);
if (c->_softhangup & AST_SOFTHANGUP_ASYNCGOTO) {
- c->_softhangup &= ~AST_SOFTHANGUP_ASYNCGOTO;
+ ast_channel_clear_softhangup(c, AST_SOFTHANGUP_ASYNCGOTO);
} else {
if (!digit) /* No entry */
break;
@@ -4321,14 +4324,14 @@
set_ext_pri(c, "T", 0); /* 0 will become 1 with the c->priority++; at the end */
/* If the AbsoluteTimeout is not reset to 0, we'll get an infinite loop */
memset(&c->whentohangup, 0, sizeof(c->whentohangup));
- c->_softhangup &= ~AST_SOFTHANGUP_TIMEOUT;
+ ast_channel_clear_softhangup(c, AST_SOFTHANGUP_TIMEOUT);
} else if (c->_softhangup & AST_SOFTHANGUP_TIMEOUT && ast_exists_extension(c, c->context, "e", 1, c->cid.cid_num)) {
pbx_builtin_raise_exception(c, "ABSOLUTETIMEOUT");
/* If the AbsoluteTimeout is not reset to 0, we'll get an infinite loop */
memset(&c->whentohangup, 0, sizeof(c->whentohangup));
- c->_softhangup &= ~AST_SOFTHANGUP_TIMEOUT;
+ ast_channel_clear_softhangup(c, AST_SOFTHANGUP_TIMEOUT);
} else if (c->_softhangup & AST_SOFTHANGUP_ASYNCGOTO) {
- c->_softhangup &= ~AST_SOFTHANGUP_ASYNCGOTO;
+ ast_channel_clear_softhangup(c, AST_SOFTHANGUP_ASYNCGOTO);
continue;
} else if (ast_check_hangup(c)) {
ast_debug(1, "Extension %s, priority %d returned normally even though call was hung up\n",
@@ -4373,13 +4376,13 @@
}
if (c->_softhangup & AST_SOFTHANGUP_ASYNCGOTO) {
- c->_softhangup &= ~AST_SOFTHANGUP_ASYNCGOTO;
+ ast_channel_clear_softhangup(c, AST_SOFTHANGUP_ASYNCGOTO);
continue;
} else if (c->_softhangup & AST_SOFTHANGUP_TIMEOUT && ast_exists_extension(c, c->context, "T", 1, c->cid.cid_num)) {
set_ext_pri(c, "T", 1);
/* If the AbsoluteTimeout is not reset to 0, we'll get an infinite loop */
memset(&c->whentohangup, 0, sizeof(c->whentohangup));
- c->_softhangup &= ~AST_SOFTHANGUP_TIMEOUT;
+ ast_channel_clear_softhangup(c, AST_SOFTHANGUP_TIMEOUT);
continue;
} else {
if (c->cdr)
@@ -4417,7 +4420,7 @@
}
} else if (c->_softhangup & AST_SOFTHANGUP_TIMEOUT) {
/* If we get this far with AST_SOFTHANGUP_TIMEOUT, then we know that the "T" extension is next. */
- c->_softhangup &= ~AST_SOFTHANGUP_TIMEOUT;
+ ast_channel_clear_softhangup(c, AST_SOFTHANGUP_TIMEOUT);
} else { /* keypress received, get more digits for a full extension */
int waittime = 0;
if (digit)
@@ -5383,7 +5386,6 @@
struct ast_hint *hint;
int num = 0;
int watchers;
- struct ast_state_cb *watcher;
struct ao2_iterator i;
switch (cmd) {
@@ -5407,10 +5409,7 @@
i = ao2_iterator_init(hints, 0);
for (hint = ao2_iterator_next(&i); hint; ao2_ref(hint, -1), hint = ao2_iterator_next(&i)) {
- watchers = 0;
- AST_LIST_TRAVERSE(&hint->callbacks, watcher, entry) {
- watchers++;
- }
+ watchers = ao2_container_count(hint->callbacks);
ast_cli(a->fd, " %20s@%-20.20s: %-20.20s State:%-15.15s Watchers %2d\n",
ast_get_extension_name(hint->exten),
ast_get_context_name(ast_get_extension_context(hint->exten)),
@@ -5460,7 +5459,6 @@
struct ast_hint *hint;
int watchers;
int num = 0, extenlen;
- struct ast_state_cb *watcher;
struct ao2_iterator i;
switch (cmd) {
@@ -5487,10 +5485,7 @@
for (hint = ao2_iterator_next(&i); hint; ao2_unlock(hint), ao2_ref(hint, -1), hint = ao2_iterator_next(&i)) {
ao2_lock(hint);
if (!strncasecmp(hint->exten ? ast_get_extension_name(hint->exten) : "", a->argv[3], extenlen)) {
- watchers = 0;
- AST_LIST_TRAVERSE(&hint->callbacks, watcher, entry) {
- watchers++;
- }
+ watchers = ao2_container_count(hint->callbacks);
ast_cli(a->fd, " %20s@%-20.20s: %-20.20s State:%-15.15s Watchers %2d\n",
ast_get_extension_name(hint->exten),
ast_get_context_name(ast_get_extension_context(hint->exten)),
@@ -6722,7 +6717,8 @@
/* preserve all watchers for hints */
i = ao2_iterator_init(hints, AO2_ITERATOR_DONTLOCK);
for (hint = ao2_iterator_next(&i); hint; ao2_ref(hint, -1), hint = ao2_iterator_next(&i)) {
- if (!AST_LIST_EMPTY(&hint->callbacks)) {
+ if (ao2_container_count(hint->callbacks)) {
+
length = strlen(hint->exten->exten) + strlen(hint->exten->parent->name) + 2 + sizeof(*this);
if (!(this = ast_calloc(1, length))) {
continue;
@@ -6734,8 +6730,12 @@
continue;
}
- /* this removes all the callbacks from the hint into this. */
- AST_LIST_APPEND_LIST(&this->callbacks, &hint->callbacks, entry);
+ /* this removes all the callbacks from the hint into 'this'. */
+ while ((thiscb = ao2_callback(hint->callbacks, OBJ_UNLINK, NULL, NULL))) {
+ AST_LIST_INSERT_TAIL(&this->callbacks, thiscb, entry);
+ /* We intentionally do not unref thiscb to account for the non-ao2 reference in this->callbacks */
+ }
+
this->laststate = hint->laststate;
this->context = this->data;
strcpy(this->data, hint->exten->parent->name);
@@ -6777,11 +6777,14 @@
/* this hint has been removed, notify the watchers */
while ((thiscb = AST_LIST_REMOVE_HEAD(&this->callbacks, entry))) {
thiscb->callback(this->context, this->exten, AST_EXTENSION_REMOVED, thiscb->data);
- ast_free(thiscb);
+ ao2_ref(thiscb, -1); /* Ref that we added when putting into this->callbacks */
}
} else {
ao2_lock(hint);
- AST_LIST_APPEND_LIST(&hint->callbacks, &this->callbacks, entry);
+ while ((thiscb = AST_LIST_REMOVE_HEAD(&this->callbacks, entry))) {
+ ao2_link(hint->callbacks, thiscb);
+ ao2_ref(thiscb, -1); /* Ref that we added when putting into this->callbacks */
+ }
hint->laststate = this->laststate;
ao2_unlock(hint);
}
@@ -9725,9 +9728,18 @@
return (hint->exten == exten) ? CMP_MATCH | CMP_STOP : 0;
}
+static int statecbs_cmp(void *obj, void *arg, int flags)
+{
+ const struct ast_state_cb *state_cb = obj;
+ const struct ast_state_cb *callback = arg;
+
+ return (state_cb == callback) ? CMP_MATCH | CMP_STOP : 0;
+}
+
int ast_pbx_init(void)
{
hints = ao2_container_alloc(HASH_EXTENHINT_SIZE, hint_hash, hint_cmp);
+ statecbs = ao2_container_alloc(HASH_EXTENHINT_SIZE, NULL, statecbs_cmp);
- return hints ? 0 : -1;
+ return (hints && statecbs) ? 0 : -1;
}
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/main/tcptls.c
^
|
@@ -27,7 +27,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 311190 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 253620 $")
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
@@ -139,12 +139,8 @@
* open a FILE * as appropriate.
*/
if (!tcptls_session->parent->tls_cfg) {
- if ((tcptls_session->f = fdopen(tcptls_session->fd, "w+"))) {
- if(setvbuf(tcptls_session->f, NULL, _IONBF, 0)) {
- fclose(tcptls_session->f);
- tcptls_session->f = NULL;
- }
- }
+ tcptls_session->f = fdopen(tcptls_session->fd, "w+");
+ setvbuf(tcptls_session->f, NULL, _IONBF, 0);
}
#ifdef DO_SSL
else if ( (tcptls_session->ssl = SSL_new(tcptls_session->parent->tls_cfg->ssl_ctx)) ) {
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/main/udptl.c
^
|
@@ -51,7 +51,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 308578 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 308414 $")
#include <sys/time.h>
#include <signal.h>
@@ -170,8 +170,6 @@
*/
int local_max_ifp;
- int verbose;
-
struct sockaddr_in far;
unsigned int tx_seq_no;
@@ -624,9 +622,6 @@
break;
}
- if (s->verbose)
- fprintf(stderr, "\n");
-
s->tx_seq_no++;
return len;
}
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/main/utils.c
^
|
@@ -25,7 +25,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 301307 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 302554 $")
#include <ctype.h>
#include <sys/stat.h>
@@ -208,6 +208,8 @@
hp->hp.h_addrtype = AF_INET;
hp->hp.h_addr_list = (void *) hp->buf;
hp->hp.h_addr = hp->buf + sizeof(void *);
+ /* For AF_INET, this will always be 4 */
+ hp->hp.h_length = 4;
if (inet_pton(AF_INET, host, hp->hp.h_addr) > 0)
return &hp->hp;
return NULL;
@@ -417,7 +419,7 @@
unsigned int tmp;
for (o = s; *s; s++, o++) {
- if (*s == '%' && strlen(s) > 2 && sscanf(s + 1, "%2x", &tmp) == 1) {
+ if (*s == '%' && s[1] != '\0' && s[2] != '\0' && sscanf(s + 1, "%2x", &tmp) == 1) {
/* have '%', two chars and correct parsing */
*o = tmp;
s += 2; /* Will be incremented once more when we break out */
|
[-]
[+]
|
Added |
asterisk-1.6.2.18.tar.bz2/phoneprov/snom-mac.xml
^
|
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<settings>
+ <phone-settings>
+ <utc_offset perm="">${TZOFFSET}</utc_offset>
+ <dst perm="">3600 ${DST_START_MONTH}.${DST_START_MDAY}.${DST_START_HOUR} 00:00:00 ${DST_END_MONTH}.${DST_END_MDAY}.${DST_END_HOUR} 00:00:00</dst>
+ <challenge_response perm="">off</challenge_response>
+ <filter_registrar perm="">off</filter_registrar>
+ <publish_presence perm="">on</publish_presence>
+ <user_realname idx="1" perm="">${DISPLAY_NAME}</user_realname>
+ <user_name idx="1" perm="">${USERNAME}</user_name>
+ <user_host idx="1" perm="">${SERVER}</user_host>
+ <user_pname idx="1" perm="">${USERNAME}</user_pname>
+ <user_pass idx="1" perm="">${SECRET}</user_pass>
+ <user_outbound idx="1" perm="">${SERVER}</user_outbound>
+ <user_server_type idx="1" perm="">asterisk</user_server_type>
+ </phone-settings>
+ <functionKeys></functionKeys>
+ <tbook>${PP_EACH_USER(
+ <item context="active" type="none" index="">
+ <name>%{DISPLAY_NAME}</name>
+ <number>%{CALLERID}</number>
+ </item>,${MAC})}
+ </tbook>
+</settings>
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/res/res_agi.c
^
|
@@ -27,7 +27,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 289501 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 302548 $")
#include <math.h>
#include <signal.h>
@@ -2920,7 +2920,7 @@
retry = AGI_NANDFS_RETRY;
buf[0] = '\0';
- while (buflen < (len - 1)) {
+ while (len > 1) {
res = fgets(buf + buflen, len, readf);
if (feof(readf))
break;
@@ -2931,7 +2931,7 @@
buflen = strlen(buf);
if (buflen && buf[buflen - 1] == '\n')
break;
- len -= buflen;
+ len = sizeof(buf) - buflen;
if (agidebug)
ast_verbose( "AGI Rx << temp buffer %s - errno %s\n", buf, strerror(errno));
}
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/res/res_config_ldap.c
^
|
@@ -43,7 +43,7 @@
#include <stdio.h>
#include <ldap.h>
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 289332 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 304865 $")
#include "asterisk/channel.h"
#include "asterisk/logger.h"
@@ -330,6 +330,7 @@
}
ldap_value_free_len(values);
}
+ ldap_memfree(ldap_attribute_name);
ldap_attribute_name = ldap_next_attribute(ldapConn, ldap_entry, ber);
}
ber_free(ber, 0);
@@ -496,6 +497,7 @@
} /*!< for (v = values; *v; v++) */
ldap_value_free_len(values);
}/*!< if (values) */
+ ldap_memfree(ldap_attribute_name);
ldap_attribute_name = ldap_next_attribute(ldapConn, ldap_entry, ber);
} /*!< while (ldap_attribute_name) */
ber_free(ber, 0);
@@ -1311,7 +1313,7 @@
dn = ldap_get_dn(ldapConn, ldap_entry);
if ((error = ldap_modify_ext_s(ldapConn, dn, ldap_mods, NULL, NULL)) != LDAP_SUCCESS)
ast_log(LOG_ERROR, "Couldn't modify dn:%s because %s", dn, ldap_err2string(error));
-
+ ldap_memfree(dn);
ldap_entry = ldap_next_entry(ldapConn, ldap_entry);
}
}
@@ -1493,7 +1495,7 @@
dn = ldap_get_dn(ldapConn, ldap_entry);
if ((error = ldap_modify_ext_s(ldapConn, dn, ldap_mods, NULL, NULL)) != LDAP_SUCCESS)
ast_log(LOG_ERROR, "Couldn't modify dn:%s because %s", dn, ldap_err2string(error));
-
+ ldap_memfree(dn);
ldap_entry = ldap_next_entry(ldapConn, ldap_entry);
}
}
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/res/res_musiconhold.c
^
|
@@ -32,7 +32,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 292049 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 305472 $")
#include <ctype.h>
#include <signal.h>
@@ -1253,6 +1253,8 @@
#endif
)) {
class->format = AST_FORMAT_SLINEAR;
+ class->srcfd = -1;
+ class->pseudofd = -1;
}
return class;
@@ -1557,6 +1559,11 @@
free(member);
}
+ if (class->pseudofd > -1) {
+ close(class->pseudofd);
+ class->pseudofd = -1;
+ }
+
if (class->filearray) {
int i;
for (i = 0; i < class->total_files; i++) {
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/res/res_odbc.c
^
|
@@ -37,7 +37,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 300622 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 307792 $")
#include "asterisk/file.h"
#include "asterisk/channel.h"
@@ -1177,10 +1177,11 @@
ast_assert(ao2_ref(obj, 0) > 1);
}
- if (!obj && (class->count < class->limit)) {
+ if (!obj && (ast_atomic_fetchadd_int(&class->count, +1) < class->limit)) {
obj = ao2_alloc(sizeof(*obj), odbc_obj_destructor);
if (!obj) {
ao2_ref(class, -1);
+ ast_atomic_fetchadd_int(&class->count, -1);
return NULL;
}
ast_assert(ao2_ref(obj, 0) == 1);
@@ -1191,14 +1192,18 @@
if (odbc_obj_connect(obj) == ODBC_FAIL) {
ast_log(LOG_WARNING, "Failed to connect to %s\n", name);
ao2_ref(obj, -1);
- ast_assert(ao2_ref(class, 0) > 0);
obj = NULL;
+ ast_assert(ao2_ref(class, 0) > 0);
+ ast_atomic_fetchadd_int(&class->count, -1);
} else {
obj->used = 1;
ao2_link(obj->parent->obj_container, obj);
- ast_atomic_fetchadd_int(&obj->parent->count, +1);
}
} else {
+ /* If construction fails due to the limit, remove our increment. */
+ if (!obj) {
+ ast_atomic_fetchadd_int(&class->count, -1);
+ }
/* Object is not constructed, so delete outstanding reference to class. */
ao2_ref(class, -1);
class = NULL;
|
[-]
[+]
|
Changed |
asterisk-1.6.2.18.tar.bz2/res/res_timing_timerfd.c
^
|
@@ -165,7 +165,7 @@
do {
read_result = read(handle, &expirations, sizeof(expirations));
if (read_result == -1) {
- if (errno == EINTR) {
+ if (errno == EINTR || errno == EAGAIN) {
continue;
} else {
ast_log(LOG_ERROR, "Read error: %s\n", strerror(errno));
|