[-]
[+]
|
Changed |
asterisk.changes
|
|
[-]
[+]
|
Changed |
asterisk.spec
^
|
|
[-]
[+]
|
Deleted |
asterisk-1.8.14.1.tar.xz/asterisk-1.8.14.1-summary.html
^
|
@@ -1,61 +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.8.14.1</title></head>
-<body>
-<h1 align="center"><a name="top">Release Summary</a></h1>
-<h3 align="center">asterisk-1.8.14.1</h3>
-<h3 align="center">Date: 2012-07-16</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 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.8.14.0.</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 bebuild<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/branches/1.8?view=revision&revision=370078">370078</a></td><td>bebuild</td><td>Create 1.8.14.1</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=370104">370104</a></td><td>bebuild</td><td>Merge 369731 for 1.8.14.1</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=370107">370107</a></td><td>bebuild</td><td>Update ChangeLog</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 | 16 +
-asterisk-1.8.14.0-summary.html | 437 -------------------------------
-asterisk-1.8.14.0-summary.txt | 573 -----------------------------------------
-main/tcptls.c | 3
-5 files changed, 17 insertions(+), 1014 deletions(-)
-</pre><br/>
-<hr/>
-</body>
-</html>
|
[-]
[+]
|
Deleted |
asterisk-1.8.14.1.tar.xz/asterisk-1.8.14.1-summary.txt
^
|
@@ -1,90 +0,0 @@
- Release Summary
-
- asterisk-1.8.14.1
-
- Date: 2012-07-16
-
- <asteriskteam@digium.com>
-
- ----------------------------------------------------------------------
-
- Table of Contents
-
- 1. Summary
- 2. Contributors
- 3. Other Changes
- 4. 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.8.14.0.
-
- ----------------------------------------------------------------------
-
- 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 bebuild
-
- ----------------------------------------------------------------------
-
- 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 |
- |-----------+----------+----------------------------+--------------------|
- | 370078 | bebuild | Create 1.8.14.1 | |
- |-----------+----------+----------------------------+--------------------|
- | 370104 | bebuild | Merge 369731 for 1.8.14.1 | |
- |-----------+----------+----------------------------+--------------------|
- | 370107 | bebuild | Update ChangeLog | |
- +------------------------------------------------------------------------+
-
- ----------------------------------------------------------------------
-
- 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 | 16 +
- asterisk-1.8.14.0-summary.html | 437 -------------------------------
- asterisk-1.8.14.0-summary.txt | 573 -----------------------------------------
- main/tcptls.c | 3
- 5 files changed, 17 insertions(+), 1014 deletions(-)
-
- ----------------------------------------------------------------------
|
[-]
[+]
|
Deleted |
asterisk-1.8.14.1.tar.xz/res/res_adsi.exports.in
^
|
@@ -1,33 +0,0 @@
-{
- global:
- LINKER_SYMBOL_PREFIX*ast_adsi_available;
- LINKER_SYMBOL_PREFIX*ast_adsi_begin_download;
- LINKER_SYMBOL_PREFIX*ast_adsi_channel_restore;
- LINKER_SYMBOL_PREFIX*ast_adsi_clear_screen;
- LINKER_SYMBOL_PREFIX*ast_adsi_clear_soft_keys;
- LINKER_SYMBOL_PREFIX*ast_adsi_connect_session;
- LINKER_SYMBOL_PREFIX*ast_adsi_data_mode;
- LINKER_SYMBOL_PREFIX*ast_adsi_disconnect_session;
- LINKER_SYMBOL_PREFIX*ast_adsi_display;
- LINKER_SYMBOL_PREFIX*ast_adsi_download_connect;
- LINKER_SYMBOL_PREFIX*ast_adsi_download_disconnect;
- LINKER_SYMBOL_PREFIX*ast_adsi_end_download;
- LINKER_SYMBOL_PREFIX*ast_adsi_get_cpeid;
- LINKER_SYMBOL_PREFIX*ast_adsi_get_cpeinfo;
- LINKER_SYMBOL_PREFIX*ast_adsi_input_control;
- LINKER_SYMBOL_PREFIX*ast_adsi_input_format;
- LINKER_SYMBOL_PREFIX*ast_adsi_load_session;
- LINKER_SYMBOL_PREFIX*ast_adsi_load_soft_key;
- LINKER_SYMBOL_PREFIX*ast_adsi_print;
- LINKER_SYMBOL_PREFIX*ast_adsi_query_cpeid;
- LINKER_SYMBOL_PREFIX*ast_adsi_query_cpeinfo;
- LINKER_SYMBOL_PREFIX*ast_adsi_read_encoded_dtmf;
- LINKER_SYMBOL_PREFIX*ast_adsi_set_keys;
- LINKER_SYMBOL_PREFIX*ast_adsi_set_line;
- LINKER_SYMBOL_PREFIX*ast_adsi_transmit_message;
- LINKER_SYMBOL_PREFIX*ast_adsi_transmit_message_full;
- LINKER_SYMBOL_PREFIX*ast_adsi_unload_session;
- LINKER_SYMBOL_PREFIX*ast_adsi_voice_mode;
- local:
- *;
-};
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/.version
^
|
@@ -1 +1 @@
-1.8.14.1
+1.8.15.0
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/ChangeLog
^
|
@@ -1,18 +1,467 @@
-2102-07-16 Asterisk Development Team <asteriskteam@digium.com>
+2012-07-30 Asterisk Development Team <asteriskteam@digium.com>
- * Asterisk 1.8.14.1 Released.
+ * Asterisk 1.8.15.0 Released.
- * Remove a superfluous and dangerous freeing of an SSL_CTX that could
- lead to a crash in tcptls
+2012-07-11 Asterisk Development Team <asteriskteam@digium.com>
- The problem here is that multiple server sessions share a SSL_CTX.
- When on session ended, the SSL_CTX would be freed and set NULL,
- leaving the other sessions unable to function.
+ * Asterisk 1.8.15.0-rc1 Released.
- The code being removed is superfluous because the SSL_CTX structures
- for servers will be properly freed when ast_ssl_teardown is called.
+2012-07-10 13:33 +0000 [r369869] Kinsey Moore <kmoore@digium.com>
- (closes issue ASTERISK-20074)
+ * apps/app_stack.c, main/pbx.c: Improve Goto and GotoIf related
+ documentation Correct documentation on labeliftrue and
+ labeliffalse parameters of GotoIf() and update several other
+ locations that use the same syntax. (closes issue ASTERISK-20007)
+ Patch-by: Leif Madsen Reported-by: WIMPy
+
+2012-07-09 17:05 +0000 [r369818] Jason Parker <jparker@digium.com>
+
+ * configs/sip_notify.conf.sample: Add Digium phones context to
+ sip_notify sample config. This makes it so that they can be
+ reconfigured remotely. (closes issue ASTERISK-19910)
+
+2012-07-09 14:38 +0000 [r369792] Jonathan Rose <jrose@digium.com>
+
+ * channels/chan_sip.c: chan_sip: Fix small behavioral change
+ accidentally introduced in r369750 When removing the warning for
+ AST_CONTROL_FLASH from sip_indicate, I also inadvertently changed
+ the return value, which would likely make the indication not be
+ sent in audio. This fixes that while still removing the warning
+ message.
+
+2012-07-06 20:54 +0000 [r369750] Jonathan Rose <jrose@digium.com>
+
+ * channels/chan_sip.c: chan_sip: Add case for FLASH control frames
+ so that we don't display a warning. chan_sip channels can receive
+ flash control frames when connected to analog phones and possibly
+ for other reasons. There really isn't a reason to warn when these
+ frames are received, we can safely ignore them. Patches:
+ dahdi_sip_flash.diff uploaded by Jonathan Rose (license 6182)
+
+2012-07-06 18:40 +0000 [r369708-369731] Mark Michelson <mmichelson@digium.com>
+
+ * main/tcptls.c: Remove a superfluous and dangerous freeing of an
+ SSL_CTX. The problem here is that multiple server sessions share
+ a SSL_CTX. When one session ended, the SSL_CTX would be freed and
+ set NULL, leaving the other sessions unable to function. The code
+ being removed is superfluous because the SSL_CTX structures for
+ servers will be properly freed when ast_ssl_teardown is called.
+ (closes issue ASTERISK-20074) Reported by Trevor Helmsley
+ Patches: ASTERISK-20074.diff uploaded by Mark Michelson (license
+ #5049) Testers: Trevor Helmsley
+
+ * main/bridging.c: Fix bridging thread leak. The bridge thread was
+ exiting but was never being reaped using pthread_join(). This has
+ been fixed now by calling pthread_join() in ast_bridge_destroy().
+ (closes issue ASTERISK-19834) Reported by Marcus Hunger Review:
+ https://reviewboard.asterisk.org/r/2012
+
+2012-07-05 19:01 +0000 [r369652] Kinsey Moore <kmoore@digium.com>
+
+ * apps/app_voicemail.c: AST-2012-011: Resolve heap corruption issue
+ with voicemail The heard and deleted arrays in the voicemail
+ state structure were not handled properly following the memory
+ leak fix in r354890 and a fix for an invalid free in r356797.
+ This could result in accessing and writing into freed memory. The
+ allocation for these arrays has been reworked to avoid the
+ possibility of invalid frees, access of freed memory, and crashes
+ that were occurring as a result of this. Locking around accesses
+ and modifications of the voicemail state structure members
+ dh_arraysize, heard, and deleted has been added to prevent
+ simultaneous modification and access when IMAP storage is in use.
+ If IMAP storage is not in use, this locking is not compiled in.
+ Review: https://reviewboard.asterisk.org/r/1994/ (closes issue
+ ASTERISK-19923) Reported by: Dan Delaney Tested by: Dan Delaney,
+ Julian Yap Patches: vm_alloc_fix.diff uploaded by kmoore (license
+ 6273)
+
+2012-07-05 17:01 +0000 [r369626] Matthew Jordan <mjordan@digium.com>
+
+ * channels/chan_sip.c: Do not send a BYE when a provisional
+ response arrives during a re-INVITE Commits r369557 and r369579
+ were done to improve handling of re-INVITEs when the UA that was
+ supposed to receive the re-INVITE fails to respond. A limitation
+ of those patches occurred when a UA sent a provisional response
+ to the re-INVITE. This triggered a sending of a BYE in
+ check_pending. This patch tweaks the handling of the re-INVITE
+ such that a BYE is not sent in response to those messages. (issue
+ ASTERISK-19992) Reported by: Steve Davies Tested by: Steve Davies
+ patches: (reinvite_tweak.diff license #5012 by Steve Davies)
+
+2012-07-03 16:58 +0000 [r369557-369579] Terry Wilson <twilson@digium.com>
+
+ * channels/chan_sip.c: More improvements to re-INVITEs timing out
+ after a provisional response There is no need to call
+ check_pendings() on a final response to an INVITE when destroying
+ the scheduler entry as it will be done later during normal
+ processing. (issue ASTERISK-19992)
+
+ * channels/sip/include/sip.h, channels/chan_sip.c: Better handle
+ re-INVITEs with provisional but no final repsonses A previous
+ attempt at fixing this issue had negative side effects related to
+ attended transfers which this patch should resolve. Many thanks
+ to Steve Davies for all of the good suggestions and testing.
+ (closes issue ASTERISK-19992) Reported by: Steve Davies Tested
+ by: Steve Davies, Terry Wilson Review:
+ https://reviewboard.asterisk.org/r/2009/
+
+2012-06-29 16:52 +0000 [r369471-369490] Joshua Colp <jcolp@digium.com>
+
+ * channels/chan_sip.c: With some configurations a transport is not
+ actually specified so assume UDP in these cases.
+
+ * channels/chan_sip.c: Make the address family filter specific to
+ the transport. (closes issue ASTERISK-16618) Reported by: Leif
+ Madsen Review: https://reviewboard.asterisk.org/r/1667/
+
+2012-06-27 20:58 +0000 [r369436] Terry Wilson <twilson@digium.com>
+
+ * channels/sip/include/sip.h, channels/chan_sip.c: AST-2012-010:
+ Clean up after a reinvite that never gets a final response The
+ basic problem is that if a re-INVITE is sent by Asterisk and it
+ receives a provisional response, but no final response, then the
+ dialog is never torn down. In addition to leaking memory, this
+ also leaks file descriptors and will eventually lead to Asterisk
+ no longer being able to process calls. This patch just keeps
+ track of whether there is an outstanding re-INVITE, and if there
+ is goes ahead and cleans up everything as though there was no
+ outstanding reinvite. Review:
+ https://reviewboard.asterisk.org/r/2009/ (closes issue
+ ASTERISK-19992) Reported by: Steve Davies Tested by: Steve
+ Davies, Terry Wilson
+
+2012-06-26 13:21 +0000 [r369366-369390] Matthew Jordan <mjordan@digium.com>
+
+ * main/adsi.c: Fix crash in unloading of res_adsi module When
+ res_adsi is unloaded, it removes the ADSI functions that it
+ previously installed by passing a NULL adsi_funcs pointer to
+ ast_adsi_install_funcs. This function was not checking whether or
+ not the adsi_funcs pointer passed in was NULL before
+ dereferencing it to check whether or not the version of the
+ functions matches what the core was expecting it. This patch
+ makes it so that the version is only checked if a potentially
+ valid adsi_funcs pointer was passed in. Passing in NULL removes
+ the installed functions, bypassing the version check.
+
+ * main/cdr.c: Tweak CDR change in r369351 As Tilghman pointed out
+ on review 1996, the check to see if a CDR end time has been set
+ is sufficient to know whether or not the duration value can be
+ used. The check-in done for r369351 forgot to include this
+ change.
+
+2012-06-25 19:13 +0000 [r369352] Mark Michelson <mmichelson@digium.com>
+
+ * channels/sip/include/sip.h, channels/chan_sip.c: Re-fix how local
+ tag is generated when sending a 481 to an INVITE. Match our local
+ tag to whatever to-tag was sent in the initial INVITE. Because
+ the size of the to-tag may not fit in the buffer in the sip_pvt,
+ it has been changed to a string field. (closes issue
+ ASTERISK-19892) reported by Walter Doekes Review:
+ https://reviewboard.asterisk.org/r/1977
+
+2012-06-25 19:12 +0000 [r369351] Matthew Jordan <mjordan@digium.com>
+
+ * main/cdr.c: Fix incorrect duration reporting in CDRs created in
+ batch mode Certain places in core/cdr.c would, if the duration
+ value were 0, calculate the duration as being the delta between
+ the current time and the time at which the CDR record was
+ started. While this does not typically cause a problem in
+ non-batch mode, this can cause an issue in batch mode where CDR
+ records are gathered and written long after those calls have
+ ended. In particular, this affects calls that were never
+ answered, as those are expected to have a duration of 0. Often,
+ this would result in CDR logs with a significant number of calls
+ with lengthy durations, but dispositions of "BUSY". Note that
+ this does not affect cdr_csv, as that backend does not use
+ ast_cdr_getvar and instead directly reports the duration value.
+ The affected core backends include cdr_apative_odbc and
+ cdr_custom; other extended or deprecated CDR backends may
+ potentially still directly manipulate the duration values. (issue
+ ASTERISK-19860) Reported by: Thomas Arimont (issue AST-883)
+ Reported by: Thomas Arimont Tested by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/1996/
+
+2012-06-25 15:57 +0000 [r369327] Richard Mudgett <rmudgett@digium.com>
+
+ * main/features.c: Fix Bridge application occasionally returning to
+ the wrong location. * Fix do_bridge_masquerade() getting the
+ resume location from the zombie channel. The code must not touch
+ a clone channel after it has masqueraded it. The clone channel
+ has become a zombie and is starting to hangup. (closes issue
+ ASTERISK-19985) Reported by: jamicque Patches:
+ jira_asterisk_19985_v1.8.patch (license #5621) patch uploaded by
+ rmudgett Tested by: jamicque
+
+2012-06-25 15:50 +0000 [r369302-369324] Mark Michelson <mmichelson@digium.com>
+
+ * main/adsi.c (added): Forgot to svn add this file in my last
+ commit.
+
+ * res/res_adsi.exports.in (removed), include/asterisk/adsi.h,
+ main/Makefile, res/res_adsi.c: Eliminate embedding of res_adsi.so
+ module. The way this is done is to stop using the optional API.
+ Instead, res_adsi.so, when loaded fills in a table of function
+ pointers. Review: https://reviewboard.asterisk.org/r/1991
+
+ * channels/chan_sip.c: Be more consistent with the return code for
+ requests received from invalid domain. When Asterisk receives an
+ INVITE from an external domain when allowexternaldomains=no send
+ a 403 instead of a 404. This is consistent with Asterisk's
+ behavior when receiving a REGISTER in this situation. (Closes
+ issue ASTERISK-19601) Reported by Matthew Jordan Patches:
+ ASTERISK-19601-no401.patch uploaded by Mark Michelson (License
+ #5049)
+
+2012-06-23 00:04 +0000 [r369235-369282] Richard Mudgett <rmudgett@digium.com>
+
+ * main/features.c: Fix Bridge application and AMI Bridge action
+ error handling. * Fix AMI Bridge action disconnecting the AMI
+ link on error. * Fix AMI Bridge action and Bridge application not
+ checking if their masquerades were successful. * Fix Bridge
+ application running the h-exten when it should not. * Made
+ do_bridge_masquerade() return if the masquerade was successful so
+ the Bridge application and AMI Bridge action could deal with it
+ correctly. * Made bridge_call_thread_launch() hangup the passed
+ in channels if the bridge_call_thread fails to start. Those
+ channels would have been orphaned. * Made builtin_atxfer() check
+ the success of the transfer masquerade setup.
+
+ * apps/app_queue.c: Explicitly check caller hangup in app Queue
+ rather than a polluted res2 value.
+
+ * apps/app_dial.c: Check if PBX was started and fix F and F(x)
+ action logic in Dial application.
+
+ * main/ccss.c: Check if PBX was started for generic CCSS recall.
+
+ * channels/chan_sip.c: Change incorrect chan_sip zombie hangup
+ debug message. They are all zombies now.
+
+2012-06-22 19:28 +0000 [r369214] Terry Wilson <twilson@digium.com>
+
+ * channels/chan_sip.c: Don't crash on a guest directmedia call A
+ sip_pvt may not have relatedpeer set if a call doesn't match up
+ with a peer. If there is no relatedpeer, there is no direct media
+ ACL to apply, so just return that it is allowed. (closes issue
+ ASTERISK-20040) Reported by: Terry Wilson
+
+2012-06-22 17:14 +0000 [r369195] Kinsey Moore <kmoore@digium.com>
+
+ * channels/chan_sip.c: Don't parse media stream state for SIP video
+ streams The sendonly/recvonly/sendrecv/inactive media stream
+ attributes were parsed for video, but nothing was ever done with
+ them. With this code removed, an UNSUPPORTED message is produced
+ when these attributes are used in conjunction with a video stream
+ which is the better behavior since they were never really
+ supported in the first place.
+
+2012-06-20 17:33 +0000 [r369130-369146] Alexandr Anikin <may@telecom-service.ru>
+
+ * addons/ooh323c/src/ooq931.c, addons/ooh323c/src/ooCalls.c: fix
+ locking issue on empty callList (issue ASTERISK-19298) Reported
+ by: Dmitry Melekhov Patches: ASTERISK-18322-2.patch
+
+ * addons/chan_ooh323.c: fix compile error (1.8 don't have
+ ast_channel_name macro)
+
+2012-06-20 02:03 +0000 [r369108] Michael L. Young <elgueromexicano@gmail.com>
+
+ * include/asterisk/netsock2.h, main/netsock2.c: Fix NULL pointer
+ segfault in ast_sockaddr_parse() While working with
+ ast_parse_arg() to perform a validity check, a segfault occurred.
+ The segfault occurred due to passing a NULL pointer to
+ ast_sockaddr_parse() from ast_parse_arg(). According to the
+ documentation in config.h, "result pointer to the result. NULL is
+ valid here, and can be used to perform only the validity checks."
+ This patch fixes the segfault by checking for a NULL pointer.
+ This patch also adds documentation to netsock2.h about why it is
+ necessary to check for a NULL pointer. (Closes issue
+ ASTERISK-20006) Reported by: Michael L. Young Tested by: Michael
+ L. Young Patches: asterisk-20006-netsock-null-ptr.diff uploaded
+ by Michael L. Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/1990/
+
+2012-06-19 23:28 +0000 [r369090] Alexandr Anikin <may@telecom-service.ru>
+
+ * addons/chan_ooh323.c: check rtptimeouts in ooh323 channels as per
+ config file (rtp voice, video, udptl except rtcp) (closes issue
+ ASTERISK-19179) Reported by: TSAREGORODTSEV Yury Patches:
+ 19179-ooh323-2.patch
+
+2012-06-19 15:30 +0000 [r369066] Mark Michelson <mmichelson@digium.com>
+
+ * channels/chan_sip.c: Fix request routing issue when outboundproxy
+ is used. Asterisk was incorrectly setting the destination of
+ CANCELs and ACKs for error responses to the URI of the initial
+ INVITE. This resulted in further requests, such as INVITEs with
+ authentication credentials, to be routed incorrectly. Instead,
+ when these CANCEL or ACKs are to be sent, we should simply keep
+ the destination the same as what it previously was. There is no
+ need to alter it any. (closes issue ASTERISK-20008) Reported by
+ Marcus Hunger Patches: ASTERISK-20008.patch uploaded by Mark
+ Michelson (license #5049)
+
+2012-06-18 18:07 +0000 [r369043] Richard Mudgett <rmudgett@digium.com>
+
+ * main/features.c: Fix monitoring calls put in a parking lot. * Fix
+ a regression that was introduced by -r366167 which effectively
+ disabled monitoring parked calls. (closes issue ASTERISK-20012)
+ Reported by: sdolloff Tested by: rmudgett
+
+2012-06-15 15:57 +0000 [r369001-369002] Kevin P. Fleming <kpfleming@digium.com>
+
+ * build_tools/find_missing_support_level (added): Add a script to
+ enable finding source files without support-levels defined.
+
+ * main/devicestate.c, main/astfd.c, main/ssl.c,
+ main/taskprocessor.c, main/astobj2.c, main/indications.c,
+ main/config.c, main/loader.c, main/term.c, main/cli.c,
+ channels/sig_analog.c, main/framehook.c, main/strcompat.c,
+ main/plc.c, res/ais/evt.c, main/fskmodem_int.c, main/syslog.c,
+ main/stdtime/localtime.c, main/db.c, main/bridging.c,
+ channels/sig_ss7.c, main/datastore.c, main/sched.c,
+ channels/sip/sdp_crypto.c, main/pbx.c, main/strings.c,
+ channels/vcodecs.c, channels/iax2-provision.c, main/aoc.c,
+ pbx/dundi-parser.c, main/cel.c, channels/iax2-parser.c,
+ main/chanvars.c, main/netsock.c, main/data.c, main/srv.c,
+ channels/chan_misdn.c, main/privacy.c,
+ channels/sip/dialplan_functions.c, main/fixedjitterbuf.c,
+ main/test.c, main/audiohook.c, main/alaw.c, main/asterisk.c,
+ main/timing.c, main/global_datastores.c, main/fskmodem_float.c,
+ main/ccss.c, channels/sip/reqresp_parser.c,
+ channels/misdn/isdn_msg_parser.c, main/utils.c, main/xml.c,
+ main/autochan.c, main/enum.c, channels/misdn/isdn_lib.c,
+ main/fskmodem.c, channels/misdn_config.c, main/io.c,
+ res/ael/pval.c, main/channel.c, main/cdr.c, main/ulaw.c,
+ main/dial.c, main/tdd.c, main/heap.c, channels/console_gui.c,
+ channels/misdn/ie.c, main/logger.c, channels/console_board.c,
+ main/app.c, main/image.c, main/dns.c, main/lock.c, main/stun.c,
+ main/dnsmgr.c, channels/sip/srtp.c, main/translate.c,
+ main/slinfactory.c, main/jitterbuf.c, main/acl.c,
+ channels/sig_pri.c, main/tcptls.c, main/hashtab.c,
+ main/abstract_jb.c, main/callerid.c, main/file.c,
+ res/snmp/agent.c, main/astmm.c, channels/misdn/portinfo.c,
+ main/event.c, channels/sip/config_parser.c, channels/vgrabbers.c,
+ main/xmldoc.c, main/dsp.c, main/udptl.c, main/netsock2.c,
+ main/autoservice.c, main/rtp_engine.c, main/frame.c,
+ main/security_events.c, res/ais/clm.c, main/threadstorage.c,
+ main/say.c, channels/console_video.c: Add support-level
+ indications to many more source files. Since we now have tools
+ that scan through the source tree looking for files with specific
+ support levels, we need to ensure that every file that is a
+ component of a 'core' or 'extended' module (or the main Asterisk
+ binary) is explicitly marked with its support level. This patch
+ adds support-level indications to many more source files in tree,
+ but avoids adding them to third-party libraries that are included
+ in the tree and to source files that don't end up involved in
+ Asterisk itself.
+
+2012-06-14 15:23 +0000 [r368898-368927] Mark Michelson <mmichelson@digium.com>
+
+ * main/Makefile: Revert Makefile change to remove embedding
+ res_adsi.so The change has resulted in a linking error for
+ certain versions of GCC. This is much worse than the original
+ issue, so for now, temporarily revert the change. A more thorough
+ change will be sought out.
+
+ * funcs/func_volume.c: Fix a deadlock that occurs when func_volume
+ is used on a local channel. This was discovered by trying to
+ perform a call forward to an extension that makes use of
+ func_volume. When the local channel is optimized away, the
+ datastore on the local;2 channel would have its audiohook
+ destroyed rather than detaching the audiohook from the channel
+ and then destroying it. With this patch, func_volume's datastore
+ destructor takes the proper route of detaching the audiohook and
+ then destroying it. (closes issue ASTERISK-19611) reported by
+ Volker Sauer Patches: ASTERISK-19611.patch uploaded by Mark
+ Michelson (license #5049)
+
+2012-06-13 20:26 +0000 [r368894] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_smdi.c, res/res_adsi.c: Mark res_smdi/res_adsi as 'core'
+ supported modules Recently, various issues surrounding weak
+ symbols have caused problems with modules that rely on that
+ feature to be enabled in menuselect. This includes app_voicemail
+ and chan_dahdi, as they both rely upon res_smdi and res_adsi,
+ which, in certain circumstances, may not be enabled by default in
+ menuselect. Because res_smdi/res_adsi are dependencies for
+ chan_dahdi/app_voicemail, this patch marks both as 'core'
+ supported modules. This will allow both app_voicemail and
+ chan_dahdi to be enabled as well, regardless of whether or not
+ that system supports weak symbols. (issue AST-900) Reported by:
+ Thomas Arimont (issue AST-885) Reported by: Denis Alberto
+ Martinez
+
+2012-06-13 19:00 +0000 [r368873] Mark Michelson <mmichelson@digium.com>
+
+ * main/Makefile: Remove forced linking of res_adsi.o In GCC 4.5+
+ the result is that Asterisk has a phantom module loaded at
+ startup, claiming to be res_adsi. (closes issue ASTERISK-19920)
+ reported by Leif Madsen
+
+2012-06-13 14:27 +0000 [r368830-368852] Matthew Jordan <mjordan@digium.com>
+
+ * Makefile: Do not install empty directories; add ASTLIBDIR r368830
+ modified the installation script to only create a directory if
+ that directory does not exist. If some directory variable was
+ empty, it would attempt to create the empty location. It also
+ failed to create the ASTLIBDIR directory. This patch fixes it
+ such that the correct directories are made and only created if a
+ value specifying them actually exists.
+
+ * Makefile: Do not perform install on existing directories If a
+ directory already exists, performing a 'make install' will remove
+ the permissions associated with the current directory and replace
+ them with the permissions of the user executing the install. This
+ patch changes this behavior to only perform an install on the
+ directory if the directory does not exist. Thus, if a user later
+ changes the permissions on that directory, those permissions will
+ be preserved in subsequent installs. Review:
+ https://reviewboard.asterisk.org/r/1986 Review:
+ https://reviewboard.asterisk.org/r/1864 (closes issue
+ ASTERISK-19492) Reported by: Karl Fife Tested by: Paul Belanger,
+ Tilghman Lesher patches: ASTERISK-19492 by pabelanger (uploaded
+ by mjordan)
+
+2012-06-12 15:36 +0000 [r368807] Mark Michelson <mmichelson@digium.com>
+
+ * channels/chan_sip.c: Set the Caller ID "tag" on peers even if
+ remote party information is present. On incoming calls, we were
+ setting the cid_tag on the dialog only if there was no remote
+ party information (Remote-Party-ID or P-Asserted-Identity)
+ present. The Caller ID tag is an invented parameter, though, and
+ should be set no matter the circumstance. (closes issue
+ ASTERISK-19859) Reported by Thomas Arimont (closes issue AST-884)
+ Reported by Trey Blancher
+
+2012-06-11 17:03 +0000 [r368759] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/channel.h, channels/chan_iax2.c, main/channel.c,
+ channels/chan_dahdi.c, channels/sig_analog.c,
+ channels/chan_sip.c: Fix deadlock potential with
+ ast_set_hangupsource() calls. Calling ast_set_hangupsource() with
+ the channel lock held can result in a deadlock because the
+ function also locks the bridged channel. (issue ASTERISK-19537)
+ (closes issue AST-891) Reported by: Guenther Kelleter Tested by:
+ Guenther Kelleter (closes issue ASTERISK-19801) Reported by: Alec
+ Davis
+
+2012-06-11 15:13 +0000 [r368719-368738] Kinsey Moore <kmoore@digium.com>
+
+ * apps/app_queue.c, main/loader.c, channels/chan_dahdi.c,
+ res/res_config_odbc.c, channels/sip/dialplan_functions.c,
+ pbx/pbx_config.c, apps/app_directory.c, res/res_odbc.c,
+ res/res_speech.c, apps/app_voicemail.c, main/udptl.c,
+ channels/sip/sdp_crypto.c, channels/chan_sip.c, res/res_fax.c,
+ main/say.c, funcs/func_strings.c, channels/sip/reqresp_parser.c:
+ Fix coverity UNUSED_VALUE findings in core support level files
+ Most of these were just saving returned values without using them
+ and in some cases the variable being saved to could be removed as
+ well. (issue ASTERISK-19672)
+
+ * main/md5.c: Fix compilation in dev-mode Backport a compilation
+ fix in md5.c from trunk that only showed up in dev-mode under
+ certain compiler versions.
2012-07-10 Asterisk Development Team <asteriskteam@digium.com>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/Makefile
^
|
@@ -466,39 +466,23 @@
NEWHEADERS=$(notdir $(wildcard include/asterisk/*.h))
OLDHEADERS=$(filter-out $(NEWHEADERS) $(notdir $(DESTDIR)$(ASTHEADERDIR)),$(notdir $(wildcard $(DESTDIR)$(ASTHEADERDIR)/*.h)))
+INSTALLDIRS="$(ASTLIBDIR)" "$(MODULES_DIR)" "$(ASTSBINDIR)" "$(ASTETCDIR)" "$(ASTVARRUNDIR)" \
+ "$(ASTSPOOLDIR)" "$(ASTSPOOLDIR)/dictate" "$(ASTSPOOLDIR)/meetme" \
+ "$(ASTSPOOLDIR)/monitor" "$(ASTSPOOLDIR)/system" "$(ASTSPOOLDIR)/tmp" \
+ "$(ASTSPOOLDIR)/voicemail" "$(ASTHEADERDIR)" "$(ASTHEADERDIR)/doxygen" \
+ "$(ASTLOGDIR)" "$(ASTLOGDIR)/cdr-csv" "$(ASTLOGDIR)/cdr-custom" \
+ "$(ASTLOGDIR)/cel-custom" "$(ASTDATADIR)" "$(ASTDATADIR)/documentation" \
+ "$(ASTDATADIR)/documentation/thirdparty" "$(ASTDATADIR)/firmware" \
+ "$(ASTDATADIR)/firmware/iax" "$(ASTDATADIR)/images" "$(ASTDATADIR)/keys" \
+ "$(ASTDATADIR)/phoneprov" "$(ASTDATADIR)/static-http" "$(ASTDATADIR)/sounds" \
+ "$(ASTDATADIR)/moh" "$(ASTMANDIR)/man8" "$(AGI_DIR)" "$(ASTDBDIR)"
installdirs:
- $(INSTALL) -d "$(DESTDIR)$(MODULES_DIR)"
- $(INSTALL) -d "$(DESTDIR)$(ASTSBINDIR)"
- $(INSTALL) -d "$(DESTDIR)$(ASTETCDIR)"
- $(INSTALL) -d "$(DESTDIR)$(ASTVARRUNDIR)"
- $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)"
- $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/dictate"
- $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/meetme"
- $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/monitor"
- $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/system"
- $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/tmp"
- $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/voicemail"
- $(INSTALL) -d "$(DESTDIR)$(ASTHEADERDIR)"
- $(INSTALL) -d "$(DESTDIR)$(ASTHEADERDIR)/doxygen"
- $(INSTALL) -d "$(DESTDIR)$(ASTLOGDIR)"
- $(INSTALL) -d "$(DESTDIR)$(ASTLOGDIR)/cdr-csv"
- $(INSTALL) -d "$(DESTDIR)$(ASTLOGDIR)/cdr-custom"
- $(INSTALL) -d "$(DESTDIR)$(ASTLOGDIR)/cel-custom"
- $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)"
- $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/documentation"
- $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/documentation/thirdparty"
- $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/firmware"
- $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/firmware/iax"
- $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/images"
- $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/keys"
- $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/phoneprov"
- $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/static-http"
- $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/sounds"
- $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/moh"
- $(INSTALL) -d "$(DESTDIR)$(ASTMANDIR)/man8"
- $(INSTALL) -d "$(DESTDIR)$(AGI_DIR)"
- $(INSTALL) -d "$(DESTDIR)$(ASTDBDIR)"
+ @for i in $(INSTALLDIRS); do \
+ if [ ! -z "$${i}" -a ! -d "$(DESTDIR)$${i}" ]; then \
+ $(INSTALL) -d "$(DESTDIR)$${i}"; \
+ fi; \
+ done
bininstall: _all installdirs $(SUBDIRS_INSTALL)
$(INSTALL) -m 755 main/asterisk "$(DESTDIR)$(ASTSBINDIR)/"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/addons/chan_ooh323.c
^
|
@@ -1155,6 +1155,8 @@
if (p) {
ast_mutex_lock(&p->lock);
+ p->lastrtptx = time(NULL);
+
if (f->frametype == AST_FRAME_MODEM) {
ast_debug(1, "Send UDPTL %d/%d len %d for %s\n",
f->frametype, f->subclass.integer, f->datalen, ast->name);
@@ -3451,6 +3453,24 @@
h323_next = h323->next;
/* TODO: Need to add rtptimeout keepalive support */
+
+ if (h323->rtp && h323->rtptimeout && h323->lastrtptx &&
+ h323->lastrtptx + h323->rtptimeout < t) {
+ ast_rtp_instance_sendcng(h323->rtp, 0);
+ h323->lastrtptx = time(NULL);
+ }
+
+ if (h323->rtp && h323->owner && h323->rtptimeout &&
+ h323->lastrtprx &&
+ h323->lastrtprx + h323->rtptimeout < t) {
+ if (!ast_channel_trylock(h323->owner)) {
+ ast_softhangup_nolock(h323->owner, AST_SOFTHANGUP_DEV);
+ ast_log(LOG_NOTICE, "Disconnecting call '%s' for lack of RTP activity in %ld seconds\n", h323->owner->name, (long) (t - h323->lastrtprx));
+ ast_channel_unlock(h323->owner);
+ }
+
+ }
+
if (ast_test_flag(h323, H323_NEEDDESTROY)) {
ooh323_destroy (h323);
} /* else if (ast_test_flag(h323, H323_NEEDSTART) && h323->owner) {
@@ -4277,12 +4297,14 @@
switch (ast->fdno) {
case 0:
f = ast_rtp_instance_read(p->rtp, 0); /* RTP Audio */
+ p->lastrtprx = time(NULL);
break;
case 1:
f = ast_rtp_instance_read(p->rtp, 1); /* RTCP Control Channel */
break;
case 2:
f = ast_rtp_instance_read(p->vrtp, 0); /* RTP Video */
+ p->lastrtprx = time(NULL);
break;
case 3:
f = ast_rtp_instance_read(p->vrtp, 1); /* RTCP Control Channel for video */
@@ -4291,6 +4313,7 @@
f = ast_udptl_read(p->udptl); /* UDPTL t.38 data */
if (gH323Debug) ast_debug(1, "Got UDPTL %d/%d len %d for %s\n",
f->frametype, f->subclass.integer, f->datalen, ast->name);
+ p->lastrtprx = time(NULL);
break;
default:
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/addons/ooh323c/src/ooCalls.c
^
|
@@ -265,14 +265,13 @@
int ooRemoveCallFromList (OOH323CallData *call)
{
- if(!call)
+ if(!call || !gH323ep.callList)
return OO_OK;
ast_mutex_lock(&callListLock);
OOTRACEINFO3("Removing call %lx: %s\n", call, call->callToken);
- if (!gH323ep.callList) return OO_OK;
if(call == gH323ep.callList)
{
if(!call->next)
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/addons/ooh323c/src/ooq931.c
^
|
@@ -2316,7 +2316,7 @@
else
OO_CLRFLAG(call->flags, OO_M_TUNNELING);
- if(opts->disableGk)
+ if(opts->disableGk || gH323ep.gkClient == NULL)
OO_SETFLAG(call->flags, OO_M_DISABLEGK);
else
OO_CLRFLAG(call->flags, OO_M_DISABLEGK);
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/apps/app_dial.c
^
|
@@ -33,7 +33,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 367678 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369258 $")
#include <sys/time.h>
#include <sys/signal.h>
@@ -2688,7 +2688,9 @@
ast_copy_string(peer->context, chan->context, sizeof(peer->context));
ast_copy_string(peer->exten, chan->exten, sizeof(peer->exten));
peer->priority = chan->priority + 2;
- ast_pbx_start(peer);
+ if (ast_pbx_start(peer)) {
+ ast_hangup(peer);
+ }
hanguptree(outgoing, NULL, ast_test_flag64(&opts, OPT_CANCEL_ELSEWHERE) ? 1 : 0);
if (continue_exec)
*continue_exec = 1;
@@ -2979,24 +2981,26 @@
}
ast_set2_flag(peer, autoloopflag, AST_FLAG_IN_AUTOLOOP); /* set it back the way it was */
}
- if (!ast_check_hangup(peer) && ast_test_flag64(&opts, OPT_CALLEE_GO_ON)) {
- if(!ast_strlen_zero(opt_args[OPT_ARG_CALLEE_GO_ON])) {
- replace_macro_delimiter(opt_args[OPT_ARG_CALLEE_GO_ON]);
- ast_parseable_goto(peer, opt_args[OPT_ARG_CALLEE_GO_ON]);
- } else { /* F() */
- int res;
- res = ast_goto_if_exists(peer, chan->context, chan->exten, (chan->priority) + 1);
- if (res == AST_PBX_GOTO_FAILED) {
- ast_hangup(peer);
+ if (!ast_check_hangup(peer)) {
+ if (ast_test_flag64(&opts, OPT_CALLEE_GO_ON)) {
+ int goto_res;
+
+ if (!ast_strlen_zero(opt_args[OPT_ARG_CALLEE_GO_ON])) {
+ replace_macro_delimiter(opt_args[OPT_ARG_CALLEE_GO_ON]);
+ goto_res = ast_parseable_goto(peer, opt_args[OPT_ARG_CALLEE_GO_ON]);
+ } else { /* F() */
+ goto_res = ast_goto_if_exists(peer, chan->context,
+ chan->exten, chan->priority + 1);
+ }
+ if (!goto_res && !ast_pbx_start(peer)) {
+ /* The peer is now running its own PBX. */
goto out;
}
- }
- ast_pbx_start(peer);
- } else {
- if (!ast_check_hangup(chan))
+ } else {
chan->hangupcause = peer->hangupcause;
- ast_hangup(peer);
+ }
}
+ ast_hangup(peer);
}
out:
if (moh) {
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/apps/app_directory.c
^
|
@@ -31,7 +31,7 @@
***/
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 328209 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368738 $")
#include <ctype.h>
@@ -475,7 +475,8 @@
const char *context = ast_variable_retrieve(rtdata, mailbox, "context");
fullname = ast_variable_retrieve(rtdata, mailbox, "fullname");
- if (ast_true((hidefromdir = ast_variable_retrieve(rtdata, mailbox, "hidefromdir")))) {
+ hidefromdir = ast_variable_retrieve(rtdata, mailbox, "hidefromdir");
+ if (ast_true(hidefromdir)) {
/* Skip hidden */
continue;
}
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/apps/app_queue.c
^
|
@@ -63,7 +63,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368039 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369262 $")
#include <sys/time.h>
#include <sys/signal.h>
@@ -2281,7 +2281,7 @@
memset(tmpbuf, 0, sizeof(tmpbuf));
for (v = queue_vars; v; v = v->next) {
/* Convert to dashes `-' from underscores `_' as the latter are more SQL friendly. */
- if ((tmp = strchr(v->name, '_'))) {
+ if (strchr(v->name, '_')) {
ast_copy_string(tmpbuf, v->name, sizeof(tmpbuf));
tmp_name = tmpbuf;
tmp = tmpbuf;
@@ -4698,7 +4698,7 @@
if (!res2) {
if (qe->parent->memberdelay) {
ast_log(LOG_NOTICE, "Delaying member connect for %d seconds\n", qe->parent->memberdelay);
- res2 |= ast_safe_sleep(peer, qe->parent->memberdelay * 1000);
+ res2 = ast_safe_sleep(peer, qe->parent->memberdelay * 1000);
}
if (!res2 && announce) {
if (play_file(peer, announce) < 0) {
@@ -4726,8 +4726,8 @@
}
}
}
+ ast_autoservice_stop(qe->chan);
}
- res2 |= ast_autoservice_stop(qe->chan);
if (ast_check_hangup(peer)) {
/* Agent must have hung up */
ast_log(LOG_WARNING, "Agent on %s hungup on the customer.\n", peer->name);
@@ -4745,8 +4745,8 @@
ast_hangup(peer);
ao2_ref(member, -1);
goto out;
- } else if (res2) {
- /* Caller must have hung up just before being connected*/
+ } else if (ast_check_hangup(qe->chan)) {
+ /* Caller must have hung up just before being connected */
ast_log(LOG_NOTICE, "Caller was about to talk to agent on %s but the caller hungup.\n", peer->name);
ast_queue_log(queuename, qe->chan->uniqueid, member->membername, "ABANDON", "%d|%d|%ld", qe->pos, qe->opos, (long) time(NULL) - qe->start);
record_abandoned(qe);
@@ -4814,10 +4814,10 @@
/* Begin Monitoring */
if (qe->parent->monfmt && *qe->parent->monfmt) {
if (!qe->parent->montype) {
- const char *monexec, *monargs;
+ const char *monexec;
ast_debug(1, "Starting Monitor as requested.\n");
ast_channel_lock(qe->chan);
- if ((monexec = pbx_builtin_getvar_helper(qe->chan, "MONITOR_EXEC")) || (monargs = pbx_builtin_getvar_helper(qe->chan, "MONITOR_EXEC_ARGS"))) {
+ if ((monexec = pbx_builtin_getvar_helper(qe->chan, "MONITOR_EXEC")) || pbx_builtin_getvar_helper(qe->chan, "MONITOR_EXEC_ARGS")) {
which = qe->chan;
monexec = monexec ? ast_strdupa(monexec) : NULL;
}
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/apps/app_stack.c
^
|
@@ -32,7 +32,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368308 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369869 $")
#include "asterisk/pbx.h"
#include "asterisk/module.h"
@@ -73,10 +73,14 @@
<parameter name="condition" required="true" />
<parameter name="destination" required="true" argsep=":">
<argument name="labeliftrue" hasparams="optional">
+ <para>Continue at <replaceable>labeliftrue</replaceable> if the condition is true.
+ Takes the form similar to Goto() of [[context,]extension,]priority.</para>
<argument name="arg1" required="true" multiple="true" />
<argument name="argN" />
</argument>
<argument name="labeliffalse" hasparams="optional">
+ <para>Continue at <replaceable>labeliffalse</replaceable> if the condition is false.
+ Takes the form similar to Goto() of [[context,]extension,]priority.</para>
<argument name="arg1" required="true" multiple="true" />
<argument name="argN" />
</argument>
@@ -93,6 +97,7 @@
<ref type="application">MacroIf</ref>
<ref type="function">IF</ref>
<ref type="application">GotoIf</ref>
+ <ref type="application">Goto</ref>
</see-also>
</application>
<application name="Return" language="en_US">
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/apps/app_voicemail.c
^
|
@@ -91,7 +91,7 @@
#endif
#endif
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369690 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369652 $")
#include "asterisk/paths.h" /* use ast_config_AST_SPOOL_DIR */
#include <sys/time.h>
@@ -1581,7 +1581,7 @@
for (category = ast_category_browse(cfg, NULL); category; category = ast_category_browse(cfg, category)) {
ast_debug(4, "users.conf: %s\n", category);
if (!strcasecmp(category, vmu->mailbox)) {
- if (!(tmp = ast_variable_retrieve(cfg, category, "vmsecret"))) {
+ if (!ast_variable_retrieve(cfg, category, "vmsecret")) {
ast_debug(3, "looks like we need to make vmsecret!\n");
var = ast_variable_new("vmsecret", newpassword, "");
} else {
|
[-]
[+]
|
Added |
asterisk-1.8.15.0.tar.xz/asterisk-1.8.15.0-summary.html
^
|
@@ -0,0 +1,382 @@
+<!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.8.15.0</title></head>
+<body>
+<h1 align="center"><a name="top">Release Summary</a></h1>
+<h3 align="center">asterisk-1.8.15.0</h3>
+<h3 align="center">Date: 2012-07-30</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.8.14.0.</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>
+8 rmudgett<br/>
+7 mjordan<br/>
+7 mmichelson<br/>
+5 kmoore<br/>
+4 Mark<br/>
+4 twilson<br/>
+3 may<br/>
+2 jrose<br/>
+2 kpfleming<br/>
+1 file<br/>
+1 jcolp<br/>
+1 Michael<br/>
+1 qwell<br/>
+</td>
+<td>
+2 Steve Davies<br/>
+2 Terry Wilson<br/>
+1 Dan Delaney<br/>
+1 Guenther Kelleter<br/>
+1 jamicque<br/>
+1 Julian Yap<br/>
+1 Michael L. Young<br/>
+1 Paul Belanger<br/>
+1 rmudgett<br/>
+1 Tilghman Lesher<br/>
+</td>
+<td>
+3 lmadsen<br/>
+2 fnordian<br/>
+2 one47<br/>
+1 alecdavis<br/>
+1 drdelaney<br/>
+1 elguero<br/>
+1 jamicque<br/>
+1 karlfife<br/>
+1 mdavenport<br/>
+1 mjordan<br/>
+1 mmichelson<br/>
+1 sdolloff<br/>
+1 themsley<br/>
+1 tomaso<br/>
+1 tsarik<br/>
+1 twilson<br/>
+1 vsauer<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: Addons/chan_ooh323</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19179">ASTERISK-19179</a>: RTP inactivity SIP / ooh323 wont work<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369090">369090</a><br/>
+Reporter: tsarik<br/>
+Coders: may<br/>
+<br/>
+<h3>Category: Applications/app_dial</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19611">ASTERISK-19611</a>: SIP stack stops working (deadlock?) if a call to a snom phone is redirected by "302 Moved temporarily" to chan_local<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368898">368898</a><br/>
+Reporter: vsauer<br/>
+Coders: Mark<br/>
+<br/>
+<h3>Category: Applications/app_voicemail</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19923">ASTERISK-19923</a>: Asterisk crashing due to memory corruptions in chan_sip/voicemail<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369652">369652</a><br/>
+Reporter: drdelaney<br/>
+Testers: Dan Delaney, Julian Yap<br/>
+Coders: kmoore<br/>
+<br/>
+<h3>Category: Channels/chan_iax2</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19801">ASTERISK-19801</a>: Deadlock with masquerade and chan_iax<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368759">368759</a><br/>
+Reporter: alecdavis<br/>
+Testers: Guenther Kelleter<br/>
+Coders: rmudgett<br/>
+<br/>
+<h3>Category: Channels/chan_local</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19611">ASTERISK-19611</a>: SIP stack stops working (deadlock?) if a call to a snom phone is redirected by "302 Moved temporarily" to chan_local<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368898">368898</a><br/>
+Reporter: vsauer<br/>
+Coders: Mark<br/>
+<br/>
+<h3>Category: Channels/chan_sip/General</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19179">ASTERISK-19179</a>: RTP inactivity SIP / ooh323 wont work<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369090">369090</a><br/>
+Reporter: tsarik<br/>
+Coders: may<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19859">ASTERISK-19859</a>: cid_tag is not set according to the sip configuration anymore if get_rpid() != 0<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368807">368807</a><br/>
+Reporter: tomaso<br/>
+Coders: mmichelson<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19892">ASTERISK-19892</a>: If Asterisk sends a 481 to an initial INVITE that contained a to-tag, then Asterisk will not recognize the ensuing ACK<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369352">369352</a><br/>
+Reporter: mmichelson<br/>
+Coders: mmichelson<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19992">ASTERISK-19992</a>: SIP re-INVITEs have no transaction timeout<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369436">369436</a><br/>
+Reporter: one47<br/>
+Testers: Steve Davies, Terry Wilson<br/>
+Coders: twilson<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19992">ASTERISK-19992</a>: SIP re-INVITEs have no transaction timeout<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369557">369557</a><br/>
+Reporter: one47<br/>
+Testers: Steve Davies, Terry Wilson<br/>
+Coders: twilson<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20008">ASTERISK-20008</a>: outboundproxy ignored after when sending invite after 407<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369066">369066</a><br/>
+Reporter: fnordian<br/>
+Coders: Mark<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20040">ASTERISK-20040</a>: Asterisk crashes when a guest call uses directmedia<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369214">369214</a><br/>
+Reporter: twilson<br/>
+Coders: twilson<br/>
+<br/>
+<h3>Category: Channels/chan_sip/IPv6</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-16618">ASTERISK-16618</a>: Unable to use IPv4 addresses for a TCP host when using IPv6<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369471">369471</a><br/>
+Reporter: lmadsen<br/>
+Coders: jcolp<br/>
+<br/>
+<h3>Category: Channels/chan_sip/Interoperability</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19601">ASTERISK-19601</a>: Failure of domain matching on authentication of INVITE request produces misleading NOTICE message; bypasses alwaysauthreject logic<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369302">369302</a><br/>
+Reporter: mjordan<br/>
+Coders: Mark<br/>
+<br/>
+<h3>Category: Core/Configuration</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19910">ASTERISK-19910</a>: Add sip_notify.conf entry for Digium phones<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369818">369818</a><br/>
+Reporter: mdavenport<br/>
+Coders: qwell<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19920">ASTERISK-19920</a>: res_adsi module is loaded (or Asterisk thinks it is) despite no modules.conf, noload or autoload=no instructions<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368873">368873</a><br/>
+Reporter: lmadsen<br/>
+Coders: mmichelson<br/>
+<br/>
+<h3>Category: Core/General</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19834">ASTERISK-19834</a>: Memory leak caused by thread created by bridge_channel_join being neither joined nor detached<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369708">369708</a><br/>
+Reporter: fnordian<br/>
+Coders: mmichelson<br/>
+<br/>
+<h3>Category: Core/Netsock</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20006">ASTERISK-20006</a>: Fix NULL pointer segfault in ast_sockaddr_parse()<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369108">369108</a><br/>
+Reporter: elguero<br/>
+Testers: Michael L. Young<br/>
+Coders: Michael<br/>
+<br/>
+<h3>Category: Documentation</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20007">ASTERISK-20007</a>: GotoIf() documentation updates to be more clear that [[context,]extension,]priority is valid<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369869">369869</a><br/>
+Reporter: lmadsen<br/>
+Coders: kmoore<br/>
+<br/>
+<h3>Category: General</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19492">ASTERISK-19492</a>: Group write permission removed from existing directory /etc/asterisk/. when updating <br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368830">368830</a><br/>
+Reporter: karlfife<br/>
+Testers: Paul Belanger, Tilghman Lesher<br/>
+Coders: mjordan<br/>
+<br/>
+<h3>Category: Resources/res_adsi</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19920">ASTERISK-19920</a>: res_adsi module is loaded (or Asterisk thinks it is) despite no modules.conf, noload or autoload=no instructions<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368873">368873</a><br/>
+Reporter: lmadsen<br/>
+Coders: mmichelson<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.8?view=revision&revision=368719">368719</a></td><td>kmoore</td><td>Fix compilation in dev-mode</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368738">368738</a></td><td>kmoore</td><td>Fix coverity UNUSED_VALUE findings in core support level files</td>
+<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19672">ASTERISK-19672</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368852">368852</a></td><td>mjordan</td><td>Do not install empty directories; add ASTLIBDIR</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368894">368894</a></td><td>mjordan</td><td>Mark res_smdi/res_adsi as 'core' supported modules</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368927">368927</a></td><td>mmichelson</td><td>Revert Makefile change to remove embedding res_adsi.so</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369001">369001</a></td><td>kpfleming</td><td>Add support-level indications to many more source files.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369002">369002</a></td><td>kpfleming</td><td>Add a script to enable finding source files without support-levels defined.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369130">369130</a></td><td>may</td><td>fix compile error (1.8 don't have ast_channel_name macro)</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369146">369146</a></td><td>may</td><td>fix locking issue on empty callList</td>
+<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19298">ASTERISK-19298</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369195">369195</a></td><td>kmoore</td><td>Don't parse media stream state for SIP video streams</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369235">369235</a></td><td>rmudgett</td><td>Change incorrect chan_sip zombie hangup debug message. They are all zombies now.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369238">369238</a></td><td>rmudgett</td><td>Check if PBX was started for generic CCSS recall.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369258">369258</a></td><td>rmudgett</td><td>Check if PBX was started and fix F and F(x) action logic in Dial application.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369262">369262</a></td><td>rmudgett</td><td>Explicitly check caller hangup in app Queue rather than a polluted res2 value.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369282">369282</a></td><td>rmudgett</td><td>Fix Bridge application and AMI Bridge action error handling.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369323">369323</a></td><td>mmichelson</td><td>Eliminate embedding of res_adsi.so module.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369324">369324</a></td><td>mmichelson</td><td>Forgot to svn add this file in my last commit.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369351">369351</a></td><td>mjordan</td><td>Fix incorrect duration reporting in CDRs created in batch mode</td>
+<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19860">ASTERISK-19860</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369366">369366</a></td><td>mjordan</td><td>Tweak CDR change in r369351</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369390">369390</a></td><td>mjordan</td><td>Fix crash in unloading of res_adsi module</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369490">369490</a></td><td>file</td><td>With some configurations a transport is not actually specified so assume UDP in these cases.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369579">369579</a></td><td>twilson</td><td>More improvements to re-INVITEs timing out after a provisional response</td>
+<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19992">ASTERISK-19992</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369626">369626</a></td><td>mjordan</td><td>Do not send a BYE when a provisional response arrives during a re-INVITE</td>
+<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19992">ASTERISK-19992</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369750">369750</a></td><td>jrose</td><td>chan_sip: Add case for FLASH control frames so that we don't display a warning.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369792">369792</a></td><td>jrose</td><td>chan_sip: Fix small behavioral change accidentally introduced in r369750</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>
+Makefile | 46 +--
+addons/chan_ooh323.c | 23 +
+addons/ooh323c/src/ooCalls.c | 3
+addons/ooh323c/src/ooq931.c | 2
+apps/app_dial.c | 34 +-
+apps/app_directory.c | 3
+apps/app_queue.c | 14 -
+apps/app_stack.c | 5
+apps/app_voicemail.c | 85 +++++-
+build_tools/find_missing_support_level | 3
+channels/chan_dahdi.c | 16 -
+channels/chan_iax2.c | 15 -
+channels/chan_misdn.c | 1
+channels/chan_sip.c | 233 +++++++++++++-----
+channels/console_board.c | 4
+channels/console_gui.c | 4
+channels/console_video.c | 4
+channels/iax2-parser.c | 4
+channels/iax2-provision.c | 4
+channels/misdn/ie.c | 4
+channels/misdn/isdn_lib.c | 4
+channels/misdn/isdn_msg_parser.c | 4
+channels/misdn/portinfo.c | 3
+channels/misdn_config.c | 4
+channels/sig_analog.c | 15 +
+channels/sig_pri.c | 3
+channels/sig_ss7.c | 3
+channels/sip/config_parser.c | 4
+channels/sip/dialplan_functions.c | 8
+channels/sip/include/sip.h | 4
+channels/sip/reqresp_parser.c | 6
+channels/sip/sdp_crypto.c | 8
+channels/sip/srtp.c | 4
+channels/vcodecs.c | 4
+channels/vgrabbers.c | 4
+configs/sip_notify.conf.sample | 5
+funcs/func_strings.c | 3
+funcs/func_volume.c | 3
+include/asterisk/adsi.h | 93 +++++--
+include/asterisk/channel.h | 2
+include/asterisk/netsock2.h | 3
+main/Makefile | 3
+main/abstract_jb.c | 4
+main/acl.c | 4
+main/adsi.c | 351 ++++++++++++++++++++++++++++
+main/alaw.c | 4
+main/aoc.c | 4
+main/app.c | 4
+main/asterisk.c | 4
+main/astfd.c | 4
+main/astmm.c | 4
+main/astobj2.c | 5
+main/audiohook.c | 4
+main/autochan.c | 4
+main/autoservice.c | 4
+main/bridging.c | 18 -
+main/callerid.c | 4
+main/ccss.c | 13 -
+main/cdr.c | 10
+main/cel.c | 4
+main/channel.c | 14 -
+main/chanvars.c | 4
+main/cli.c | 4
+main/config.c | 4
+main/data.c | 4
+main/datastore.c | 4
+main/db.c | 4
+main/devicestate.c | 4
+main/dial.c | 4
+main/dns.c | 4
+main/dnsmgr.c | 4
+main/dsp.c | 4
+main/enum.c | 4
+main/event.c | 4
+main/features.c | 409 ++++++++++++++++++---------------
+main/file.c | 4
+main/fixedjitterbuf.c | 4
+main/frame.c | 4
+main/framehook.c | 4
+main/fskmodem.c | 4
+main/fskmodem_float.c | 4
+main/fskmodem_int.c | 4
+main/global_datastores.c | 4
+main/hashtab.c | 4
+main/heap.c | 4
+main/image.c | 4
+main/indications.c | 4
+main/io.c | 4
+main/jitterbuf.c | 4
+main/loader.c | 8
+main/lock.c | 4
+main/logger.c | 4
+main/md5.c | 6
+main/netsock.c | 4
+main/netsock2.c | 10
+main/pbx.c | 24 +
+main/plc.c | 4
+main/privacy.c | 4
+main/rtp_engine.c | 4
+main/say.c | 6
+main/sched.c | 4
+main/security_events.c | 4
+main/slinfactory.c | 4
+main/srv.c | 4
+main/ssl.c | 4
+main/stdtime/localtime.c | 4
+main/strcompat.c | 4
+main/strings.c | 4
+main/stun.c | 4
+main/syslog.c | 4
+main/taskprocessor.c | 4
+main/tcptls.c | 7
+main/tdd.c | 4
+main/term.c | 4
+main/test.c | 4
+main/threadstorage.c | 4
+main/timing.c | 4
+main/translate.c | 4
+main/udptl.c | 7
+main/ulaw.c | 4
+main/utils.c | 4
+main/xml.c | 4
+main/xmldoc.c | 4
+pbx/dundi-parser.c | 4
+pbx/pbx_config.c | 4
+res/ael/pval.c | 4
+res/ais/clm.c | 4
+res/ais/evt.c | 4
+res/res_adsi.c | 187 ++++++++++-----
+res/res_adsi.exports.in | 33 --
+res/res_config_odbc.c | 7
+res/res_fax.c | 2
+res/res_odbc.c | 2
+res/res_smdi.c | 2
+res/res_speech.c | 3
+res/snmp/agent.c | 4
+136 files changed, 1597 insertions(+), 516 deletions(-)
+</pre><br/>
+<hr/>
+</body>
+</html>
|
[-]
[+]
|
Added |
asterisk-1.8.15.0.tar.xz/asterisk-1.8.15.0-summary.txt
^
|
@@ -0,0 +1,491 @@
+ Release Summary
+
+ asterisk-1.8.15.0
+
+ Date: 2012-07-30
+
+ <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.8.14.0.
+
+ ----------------------------------------------------------------------
+
+ 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
+ 8 rmudgett 2 Steve Davies 3 lmadsen
+ 7 mjordan 2 Terry Wilson 2 fnordian
+ 7 mmichelson 1 Dan Delaney 2 one47
+ 5 kmoore 1 Guenther Kelleter 1 alecdavis
+ 4 Mark 1 jamicque 1 drdelaney
+ 4 twilson 1 Julian Yap 1 elguero
+ 3 may 1 Michael L. Young 1 jamicque
+ 2 jrose 1 Paul Belanger 1 karlfife
+ 2 kpfleming 1 rmudgett 1 mdavenport
+ 1 file 1 Tilghman Lesher 1 mjordan
+ 1 jcolp 1 mmichelson
+ 1 Michael 1 sdolloff
+ 1 qwell 1 themsley
+ 1 tomaso
+ 1 tsarik
+ 1 twilson
+ 1 vsauer
+
+ ----------------------------------------------------------------------
+
+ 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: Addons/chan_ooh323
+
+ ASTERISK-19179: RTP inactivity SIP / ooh323 wont work
+ Revision: 369090
+ Reporter: tsarik
+ Coders: may
+
+ Category: Applications/app_dial
+
+ ASTERISK-19611: SIP stack stops working (deadlock?) if a call to a snom
+ phone is redirected by "302 Moved temporarily" to chan_local
+ Revision: 368898
+ Reporter: vsauer
+ Coders: Mark
+
+ Category: Applications/app_voicemail
+
+ ASTERISK-19923: Asterisk crashing due to memory corruptions in
+ chan_sip/voicemail
+ Revision: 369652
+ Reporter: drdelaney
+ Testers: Dan Delaney, Julian Yap
+ Coders: kmoore
+
+ Category: Channels/chan_iax2
+
+ ASTERISK-19801: Deadlock with masquerade and chan_iax
+ Revision: 368759
+ Reporter: alecdavis
+ Testers: Guenther Kelleter
+ Coders: rmudgett
+
+ Category: Channels/chan_local
+
+ ASTERISK-19611: SIP stack stops working (deadlock?) if a call to a snom
+ phone is redirected by "302 Moved temporarily" to chan_local
+ Revision: 368898
+ Reporter: vsauer
+ Coders: Mark
+
+ Category: Channels/chan_sip/General
+
+ ASTERISK-19179: RTP inactivity SIP / ooh323 wont work
+ Revision: 369090
+ Reporter: tsarik
+ Coders: may
+
+ ASTERISK-19859: cid_tag is not set according to the sip configuration
+ anymore if get_rpid() != 0
+ Revision: 368807
+ Reporter: tomaso
+ Coders: mmichelson
+
+ ASTERISK-19892: If Asterisk sends a 481 to an initial INVITE that
+ contained a to-tag, then Asterisk will not recognize the ensuing ACK
+ Revision: 369352
+ Reporter: mmichelson
+ Coders: mmichelson
+
+ ASTERISK-19992: SIP re-INVITEs have no transaction timeout
+ Revision: 369436
+ Reporter: one47
+ Testers: Steve Davies, Terry Wilson
+ Coders: twilson
+
+ ASTERISK-19992: SIP re-INVITEs have no transaction timeout
+ Revision: 369557
+ Reporter: one47
+ Testers: Steve Davies, Terry Wilson
+ Coders: twilson
+
+ ASTERISK-20008: outboundproxy ignored after when sending invite after 407
+ Revision: 369066
+ Reporter: fnordian
+ Coders: Mark
+
+ ASTERISK-20040: Asterisk crashes when a guest call uses directmedia
+ Revision: 369214
+ Reporter: twilson
+ Coders: twilson
+
+ Category: Channels/chan_sip/IPv6
+
+ ASTERISK-16618: Unable to use IPv4 addresses for a TCP host when using
+ IPv6
+ Revision: 369471
+ Reporter: lmadsen
+ Coders: jcolp
+
+ Category: Channels/chan_sip/Interoperability
+
+ ASTERISK-19601: Failure of domain matching on authentication of INVITE
+ request produces misleading NOTICE message; bypasses alwaysauthreject
+ logic
+ Revision: 369302
+ Reporter: mjordan
+ Coders: Mark
+
+ Category: Core/Configuration
+
+ ASTERISK-19910: Add sip_notify.conf entry for Digium phones
+ Revision: 369818
+ Reporter: mdavenport
+ Coders: qwell
+
+ ASTERISK-19920: res_adsi module is loaded (or Asterisk thinks it is)
+ despite no modules.conf, noload or autoload=no instructions
+ Revision: 368873
+ Reporter: lmadsen
+ Coders: mmichelson
+
+ Category: Core/General
+
+ ASTERISK-19834: Memory leak caused by thread created by
+ bridge_channel_join being neither joined nor detached
+ Revision: 369708
+ Reporter: fnordian
+ Coders: mmichelson
+
+ Category: Core/Netsock
+
+ ASTERISK-20006: Fix NULL pointer segfault in ast_sockaddr_parse()
+ Revision: 369108
+ Reporter: elguero
+ Testers: Michael L. Young
+ Coders: Michael
+
+ Category: Documentation
+
+ ASTERISK-20007: GotoIf() documentation updates to be more clear that
+ [[context,]extension,]priority is valid
+ Revision: 369869
+ Reporter: lmadsen
+ Coders: kmoore
+
+ Category: General
+
+ ASTERISK-19492: Group write permission removed from existing directory
+ /etc/asterisk/. when updating
+ Revision: 368830
+ Reporter: karlfife
+ Testers: Paul Belanger, Tilghman Lesher
+ Coders: mjordan
+
+ Category: Resources/res_adsi
+
+ ASTERISK-19920: res_adsi module is loaded (or Asterisk thinks it is)
+ despite no modules.conf, noload or autoload=no instructions
+ Revision: 368873
+ Reporter: lmadsen
+ Coders: mmichelson
+
+ ----------------------------------------------------------------------
+
+ 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 |
+ |----------+------------+----------------------------+-------------------|
+ | 368719 | kmoore | Fix compilation in | |
+ | | | dev-mode | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Fix coverity UNUSED_VALUE | |
+ | 368738 | kmoore | findings in core support | ASTERISK-19672 |
+ | | | level files | |
+ |----------+------------+----------------------------+-------------------|
+ | 368852 | mjordan | Do not install empty | |
+ | | | directories; add ASTLIBDIR | |
+ |----------+------------+----------------------------+-------------------|
+ | 368894 | mjordan | Mark res_smdi/res_adsi as | |
+ | | | 'core' supported modules | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Revert Makefile change to | |
+ | 368927 | mmichelson | remove embedding | |
+ | | | res_adsi.so | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Add support-level | |
+ | 369001 | kpfleming | indications to many more | |
+ | | | source files. | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Add a script to enable | |
+ | 369002 | kpfleming | finding source files | |
+ | | | without support-levels | |
+ | | | defined. | |
+ |----------+------------+----------------------------+-------------------|
+ | | | fix compile error (1.8 | |
+ | 369130 | may | don't have | |
+ | | | ast_channel_name macro) | |
+ |----------+------------+----------------------------+-------------------|
+ | 369146 | may | fix locking issue on empty | ASTERISK-19298 |
+ | | | callList | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Don't parse media stream | |
+ | 369195 | kmoore | state for SIP video | |
+ | | | streams | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Change incorrect chan_sip | |
+ | 369235 | rmudgett | zombie hangup debug | |
+ | | | message. They are all | |
+ | | | zombies now. | |
+ |----------+------------+----------------------------+-------------------|
+ | 369238 | rmudgett | Check if PBX was started | |
+ | | | for generic CCSS recall. | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Check if PBX was started | |
+ | 369258 | rmudgett | and fix F and F(x) action | |
+ | | | logic in Dial application. | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Explicitly check caller | |
+ | 369262 | rmudgett | hangup in app Queue rather | |
+ | | | than a polluted res2 | |
+ | | | value. | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Fix Bridge application and | |
+ | 369282 | rmudgett | AMI Bridge action error | |
+ | | | handling. | |
+ |----------+------------+----------------------------+-------------------|
+ | 369323 | mmichelson | Eliminate embedding of | |
+ | | | res_adsi.so module. | |
+ |----------+------------+----------------------------+-------------------|
+ | 369324 | mmichelson | Forgot to svn add this | |
+ | | | file in my last commit. | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Fix incorrect duration | |
+ | 369351 | mjordan | reporting in CDRs created | ASTERISK-19860 |
+ | | | in batch mode | |
+ |----------+------------+----------------------------+-------------------|
+ | 369366 | mjordan | Tweak CDR change in | |
+ | | | r369351 | |
+ |----------+------------+----------------------------+-------------------|
+ | 369390 | mjordan | Fix crash in unloading of | |
+ | | | res_adsi module | |
+ |----------+------------+----------------------------+-------------------|
+ | | | With some configurations a | |
+ | 369490 | file | transport is not actually | |
+ | | | specified so assume UDP in | |
+ | | | these cases. | |
+ |----------+------------+----------------------------+-------------------|
+ | | | More improvements to | |
+ | 369579 | twilson | re-INVITEs timing out | ASTERISK-19992 |
+ | | | after a provisional | |
+ | | | response | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Do not send a BYE when a | |
+ | 369626 | mjordan | provisional response | ASTERISK-19992 |
+ | | | arrives during a re-INVITE | |
+ |----------+------------+----------------------------+-------------------|
+ | | | chan_sip: Add case for | |
+ | 369750 | jrose | FLASH control frames so | |
+ | | | that we don't display a | |
+ | | | warning. | |
+ |----------+------------+----------------------------+-------------------|
+ | | | chan_sip: Fix small | |
+ | 369792 | jrose | behavioral change | |
+ | | | accidentally introduced in | |
+ | | | r369750 | |
+ +------------------------------------------------------------------------+
+
+ ----------------------------------------------------------------------
+
+ 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.
+
+ Makefile | 46 +--
+ addons/chan_ooh323.c | 23 +
+ addons/ooh323c/src/ooCalls.c | 3
+ addons/ooh323c/src/ooq931.c | 2
+ apps/app_dial.c | 34 +-
+ apps/app_directory.c | 3
+ apps/app_queue.c | 14 -
+ apps/app_stack.c | 5
+ apps/app_voicemail.c | 85 +++++-
+ build_tools/find_missing_support_level | 3
+ channels/chan_dahdi.c | 16 -
+ channels/chan_iax2.c | 15 -
+ channels/chan_misdn.c | 1
+ channels/chan_sip.c | 233 +++++++++++++-----
+ channels/console_board.c | 4
+ channels/console_gui.c | 4
+ channels/console_video.c | 4
+ channels/iax2-parser.c | 4
+ channels/iax2-provision.c | 4
+ channels/misdn/ie.c | 4
+ channels/misdn/isdn_lib.c | 4
+ channels/misdn/isdn_msg_parser.c | 4
+ channels/misdn/portinfo.c | 3
+ channels/misdn_config.c | 4
+ channels/sig_analog.c | 15 +
+ channels/sig_pri.c | 3
+ channels/sig_ss7.c | 3
+ channels/sip/config_parser.c | 4
+ channels/sip/dialplan_functions.c | 8
+ channels/sip/include/sip.h | 4
+ channels/sip/reqresp_parser.c | 6
+ channels/sip/sdp_crypto.c | 8
+ channels/sip/srtp.c | 4
+ channels/vcodecs.c | 4
+ channels/vgrabbers.c | 4
+ configs/sip_notify.conf.sample | 5
+ funcs/func_strings.c | 3
+ funcs/func_volume.c | 3
+ include/asterisk/adsi.h | 93 +++++--
+ include/asterisk/channel.h | 2
+ include/asterisk/netsock2.h | 3
+ main/Makefile | 3
+ main/abstract_jb.c | 4
+ main/acl.c | 4
+ main/adsi.c | 351 ++++++++++++++++++++++++++++
+ main/alaw.c | 4
+ main/aoc.c | 4
+ main/app.c | 4
+ main/asterisk.c | 4
+ main/astfd.c | 4
+ main/astmm.c | 4
+ main/astobj2.c | 5
+ main/audiohook.c | 4
+ main/autochan.c | 4
+ main/autoservice.c | 4
+ main/bridging.c | 18 -
+ main/callerid.c | 4
+ main/ccss.c | 13 -
+ main/cdr.c | 10
+ main/cel.c | 4
+ main/channel.c | 14 -
+ main/chanvars.c | 4
+ main/cli.c | 4
+ main/config.c | 4
+ main/data.c | 4
+ main/datastore.c | 4
+ main/db.c | 4
+ main/devicestate.c | 4
+ main/dial.c | 4
+ main/dns.c | 4
+ main/dnsmgr.c | 4
+ main/dsp.c | 4
+ main/enum.c | 4
+ main/event.c | 4
+ main/features.c | 409 ++++++++++++++++++---------------
+ main/file.c | 4
+ main/fixedjitterbuf.c | 4
+ main/frame.c | 4
+ main/framehook.c | 4
+ main/fskmodem.c | 4
+ main/fskmodem_float.c | 4
+ main/fskmodem_int.c | 4
+ main/global_datastores.c | 4
+ main/hashtab.c | 4
+ main/heap.c | 4
+ main/image.c | 4
+ main/indications.c | 4
+ main/io.c | 4
+ main/jitterbuf.c | 4
+ main/loader.c | 8
+ main/lock.c | 4
+ main/logger.c | 4
+ main/md5.c | 6
+ main/netsock.c | 4
+ main/netsock2.c | 10
+ main/pbx.c | 24 +
+ main/plc.c | 4
+ main/privacy.c | 4
+ main/rtp_engine.c | 4
+ main/say.c | 6
+ main/sched.c | 4
+ main/security_events.c | 4
+ main/slinfactory.c | 4
+ main/srv.c | 4
+ main/ssl.c | 4
+ main/stdtime/localtime.c | 4
+ main/strcompat.c | 4
+ main/strings.c | 4
+ main/stun.c | 4
+ main/syslog.c | 4
+ main/taskprocessor.c | 4
+ main/tcptls.c | 7
+ main/tdd.c | 4
+ main/term.c | 4
+ main/test.c | 4
+ main/threadstorage.c | 4
+ main/timing.c | 4
+ main/translate.c | 4
+ main/udptl.c | 7
+ main/ulaw.c | 4
+ main/utils.c | 4
+ main/xml.c | 4
+ main/xmldoc.c | 4
+ pbx/dundi-parser.c | 4
+ pbx/pbx_config.c | 4
+ res/ael/pval.c | 4
+ res/ais/clm.c | 4
+ res/ais/evt.c | 4
+ res/res_adsi.c | 187 ++++++++++-----
+ res/res_adsi.exports.in | 33 --
+ res/res_config_odbc.c | 7
+ res/res_fax.c | 2
+ res/res_odbc.c | 2
+ res/res_smdi.c | 2
+ res/res_speech.c | 3
+ res/snmp/agent.c | 4
+ 136 files changed, 1597 insertions(+), 516 deletions(-)
+
+ ----------------------------------------------------------------------
|
[-]
[+]
|
Added |
asterisk-1.8.15.0.tar.xz/build_tools/find_missing_support_level
^
|
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+grep -r -L -e "support_level" * | grep -e "\.c$" -e "\.cxx$" | sort
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/chan_dahdi.c
^
|
@@ -49,7 +49,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368644 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368759 $")
#if defined(__NetBSD__) || defined(__FreeBSD__)
#include <pthread.h>
@@ -8870,13 +8870,18 @@
f = &p->subs[idx].f;
return f;
}
+
f = dahdi_handle_event(ast);
+ if (!f) {
+ const char *name = ast_strdupa(ast->name);
- /* tell the cdr this zap device hung up */
- if (f == NULL) {
- ast_set_hangupsource(ast, ast->name, 0);
+ /* Tell the CDR this DAHDI device hung up */
+ ast_mutex_unlock(&p->lock);
+ ast_channel_unlock(ast);
+ ast_set_hangupsource(ast, name, 0);
+ ast_channel_lock(ast);
+ ast_mutex_lock(&p->lock);
}
-
return f;
}
@@ -14351,14 +14356,13 @@
int trunkgroup;
int x, y, fd = a->fd;
int interfaceid = 0;
- char *c;
char db_chan_name[20], db_answer[5];
struct dahdi_pvt *tmp;
struct dahdi_pri *pri;
if (a->argc < 5 || a->argc > 6)
return CLI_SHOWUSAGE;
- if ((c = strchr(a->argv[4], ':'))) {
+ if (strchr(a->argv[4], ':')) {
if (sscanf(a->argv[4], "%30d:%30d", &trunkgroup, &channel) != 2)
return CLI_SHOWUSAGE;
if ((trunkgroup < 1) || (channel < 1))
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/chan_iax2.c
^
|
@@ -38,7 +38,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368039 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368759 $")
#include <sys/mman.h>
#include <dirent.h>
@@ -9890,11 +9890,20 @@
{
iax2_lock_owner(callno);
if (iaxs[callno] && iaxs[callno]->owner) {
+ struct ast_channel *owner;
+ const char *name;
+
+ owner = iaxs[callno]->owner;
if (causecode) {
- iaxs[callno]->owner->hangupcause = causecode;
+ owner->hangupcause = causecode;
}
- ast_set_hangupsource(iaxs[callno]->owner, iaxs[callno]->owner->name, 0);
- ast_channel_unlock(iaxs[callno]->owner);
+ name = ast_strdupa(owner->name);
+ ast_channel_ref(owner);
+ ast_channel_unlock(owner);
+ ast_mutex_unlock(&iaxsl[callno]);
+ ast_set_hangupsource(owner, name, 0);
+ ast_channel_unref(owner);
+ ast_mutex_lock(&iaxsl[callno]);
}
}
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/chan_misdn.c
^
|
@@ -55,9 +55,10 @@
<depend>suppserv</depend>
<support_level>extended</support_level>
***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 358011 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <pthread.h>
#include <sys/socket.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/chan_sip.c
^
|
@@ -209,7 +209,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369690 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369792 $")
#include <signal.h>
#include <sys/signal.h>
@@ -1232,7 +1232,7 @@
static int handle_request_do(struct sip_request *req, struct ast_sockaddr *addr);
static int sip_standard_port(enum sip_transport type, int port);
static int sip_prepare_socket(struct sip_pvt *p);
-static int get_address_family_filter(const struct ast_sockaddr *addr);
+static int get_address_family_filter(unsigned int transport);
/*--- Transmitting responses and requests */
static int sipsock_read(int *id, int fd, short events, void *ignore);
@@ -1415,6 +1415,8 @@
const char *name, int flag, int family);
static int ast_sockaddr_resolve_first(struct ast_sockaddr *addr,
const char *name, int flag);
+static int ast_sockaddr_resolve_first_transport(struct ast_sockaddr *addr,
+ const char *name, int flag, unsigned int transport);
/*--- Debugging
Functions for enabling debug per IP or fully, or enabling history logging for
@@ -1516,7 +1518,7 @@
static void build_callid_pvt(struct sip_pvt *pvt);
static void change_callid_pvt(struct sip_pvt *pvt, const char *callid);
static void build_callid_registry(struct sip_registry *reg, const struct ast_sockaddr *ourip, const char *fromdomain);
-static void make_our_tag(char *tagbuf, size_t len);
+static void make_our_tag(struct sip_pvt *pvt);
static int add_header(struct sip_request *req, const char *var, const char *value);
static int add_header_max_forwards(struct sip_pvt *dialog, struct sip_request *req);
static int add_content(struct sip_request *req, const char *line);
@@ -3095,7 +3097,7 @@
if (!ast_sockaddr_parse(&proxy->ip, proxy->name, 0)) {
/* Ok, not an IP address, then let's check if it's a domain or host */
/* XXX Todo - if we have proxy port, don't do SRV */
- proxy->ip.ss.ss_family = get_address_family_filter(&bindaddr); /* Filter address family */
+ proxy->ip.ss.ss_family = get_address_family_filter(SIP_TRANSPORT_UDP); /* Filter address family */
if (ast_get_ip_or_srv(&proxy->ip, proxy->name, sip_cfg.srvlookup ? "_sip._udp" : NULL) < 0) {
ast_log(LOG_WARNING, "Unable to locate host '%s'\n", proxy->name);
return FALSE;
@@ -4810,7 +4812,7 @@
if (ast_sockaddr_resolve(&addrs,
tmp->value,
PARSE_PORT_FORBID,
- get_address_family_filter(&bindaddr)) <= 0 ||
+ get_address_family_filter(SIP_TRANSPORT_UDP)) <= 0 ||
ast_sockaddr_cmp(&addrs[0], addr)) {
/* No match */
ast_variables_destroy(*var);
@@ -5478,7 +5480,7 @@
}
}
- if (ast_sockaddr_resolve_first(&dialog->sa, hostn, 0)) {
+ if (ast_sockaddr_resolve_first_transport(&dialog->sa, hostn, 0, dialog->socket.type ? dialog->socket.type : SIP_TRANSPORT_UDP)) {
ast_log(LOG_WARNING, "No such host: %s\n", peername);
return -1;
}
@@ -6282,13 +6284,7 @@
return 0;
}
- if (ast_test_flag(ast, AST_FLAG_ZOMBIE)) {
- if (p->refer)
- ast_debug(1, "SIP Transfer: Hanging up Zombie channel %s after transfer ... Call-ID: %s\n", ast->name, p->callid);
- else
- ast_debug(1, "Hanging up zombie call. Be scared.\n");
- } else
- ast_debug(1, "Hangup call %s, SIP callid %s\n", ast->name, p->callid);
+ ast_debug(1, "Hangup call %s, SIP callid %s\n", ast->name, p->callid);
sip_pvt_lock(p);
if (ast_test_flag(&p->flags[0], SIP_INC_COUNT) || ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD)) {
@@ -7010,6 +7006,9 @@
break;
case AST_CONTROL_UPDATE_RTP_PEER: /* Absorb this since it is handled by the bridge */
break;
+ case AST_CONTROL_FLASH: /* We don't currently handle AST_CONTROL_FLASH here, but it is expected, so we don't need to warn either. */
+ res = -1;
+ break;
case -1:
res = -1;
break;
@@ -7634,9 +7633,9 @@
}
/*! \brief Make our SIP dialog tag */
-static void make_our_tag(char *tagbuf, size_t len)
+static void make_our_tag(struct sip_pvt *pvt)
{
- snprintf(tagbuf, len, "as%08lx", ast_random());
+ ast_string_field_build(pvt, tag, "as%08lx", ast_random());
}
/*! \brief Allocate Session-Timers struct w/in dialog */
@@ -7748,7 +7747,7 @@
p->do_history = recordhistory;
p->branch = ast_random();
- make_our_tag(p->tag, sizeof(p->tag));
+ make_our_tag(p);
p->ocseq = INITIAL_CSEQ;
p->allowed_methods = UINT_MAX;
@@ -7834,7 +7833,7 @@
}
if (via->maddr) {
- if (ast_sockaddr_resolve_first(&p->sa, via->maddr, PARSE_PORT_FORBID)) {
+ if (ast_sockaddr_resolve_first_transport(&p->sa, via->maddr, PARSE_PORT_FORBID, p->socket.type)) {
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);
@@ -8832,7 +8831,6 @@
/* Others */
int sendonly = -1;
- int vsendonly = -1;
int numberofports;
int numberofmediastreams = 0;
int last_rtpmap_codec = 0;
@@ -8895,7 +8893,6 @@
case 'a':
if (process_sdp_a_sendonly(value, &sendonly)) {
processed = TRUE;
- vsendonly = sendonly;
}
else if (process_sdp_a_audio(value, p, &newaudiortp, &last_rtpmap_codec))
processed = TRUE;
@@ -9152,9 +9149,7 @@
}
/* Video specific scanning */
else if (video) {
- if (process_sdp_a_sendonly(value, &vsendonly)) {
- processed = TRUE;
- } else if (!processed_crypto && process_crypto(p, p->vrtp, &p->vsrtp, value)) {
+ if (!processed_crypto && process_crypto(p, p->vrtp, &p->vsrtp, value)) {
processed_crypto = TRUE;
processed = TRUE;
} else if (process_sdp_a_video(value, p, &newvideortp, &last_rtpmap_codec)) {
@@ -10126,7 +10121,7 @@
/*! \todo XXX If we have sip_cfg.srvlookup on, then look for NAPTR/SRV,
* otherwise, just look for A records */
- if (ast_sockaddr_resolve_first(&p->sa, hostname, 0)) {
+ if (ast_sockaddr_resolve_first_transport(&p->sa, hostname, 0, p->socket.type)) {
ast_log(LOG_WARNING, "Can't find address for host '%s'\n", hostname);
return;
}
@@ -10147,7 +10142,7 @@
/*! \todo XXX If we have sip_cfg.srvlookup on, then look for
* NAPTR/SRV, otherwise, just look for A records */
- if (ast_sockaddr_resolve_first(&p->sa, hostname, PARSE_PORT_FORBID)) {
+ if (ast_sockaddr_resolve_first_transport(&p->sa, hostname, PARSE_PORT_FORBID, p->socket.type)) {
ast_log(LOG_WARNING, "Can't find address for host '%s'\n", hostname);
return;
}
@@ -10618,7 +10613,7 @@
}
p->branch = ast_random();
- make_our_tag(p->tag, sizeof(p->tag));
+ make_our_tag(p);
p->ocseq = INITIAL_CSEQ;
if (useglobal_nat && addr) {
@@ -12485,7 +12480,7 @@
struct sip_subscription_mwi *saved;
snprintf(transport, sizeof(transport), "_%s._%s", get_srv_service(mwi->transport), get_srv_protocol(mwi->transport));
- mwi->us.ss.ss_family = get_address_family_filter(&bindaddr); /* Filter address family */
+ mwi->us.ss.ss_family = get_address_family_filter(mwi->transport); /* Filter address family */
saved = ASTOBJ_REF(mwi);
ast_dnsmgr_lookup_cb(mwi->hostname, &mwi->us, &mwi->dnsmgr, sip_cfg.srvlookup ? transport : NULL, on_dns_update_mwi, saved);
if (!mwi->dnsmgr) {
@@ -13276,7 +13271,7 @@
char transport[MAXHOSTNAMELEN];
peer = find_peer(r->hostname, NULL, TRUE, FINDPEERS, FALSE, 0);
snprintf(transport, sizeof(transport), "_%s._%s",get_srv_service(r->transport), get_srv_protocol(r->transport)); /* have to use static get_transport function */
- r->us.ss.ss_family = get_address_family_filter(&bindaddr); /* Filter address family */
+ r->us.ss.ss_family = get_address_family_filter(r->transport); /* Filter address family */
/* No point in doing a DNS lookup of the register hostname if we're just going to
* end up using an outbound proxy. obproxy_get is safe to call with either of r->call
@@ -13301,7 +13296,7 @@
return 0;
} else {
p = dialog_ref(r->call, "getting a copy of the r->call dialog in transmit_register");
- make_our_tag(p->tag, sizeof(p->tag)); /* create a new local tag for every register attempt */
+ make_our_tag(p); /* create a new local tag for every register attempt */
ast_string_field_set(p, theirtag, NULL); /* forget their old tag, so we don't match tags when getting response */
}
} else {
@@ -13572,7 +13567,7 @@
ast_log(LOG_NOTICE, "From address missing 'sip(s):', assuming sip:\n");
}
/* Get just the username part */
- if ((c = strchr(dest, '@'))) {
+ if (strchr(dest, '@')) {
c = NULL;
} else if ((c = strchr(of, '@'))) {
*c++ = '\0';
@@ -13992,7 +13987,7 @@
return -1;
}
- if (ast_sockaddr_resolve_first(addr, hostport, 0)) {
+ if (ast_sockaddr_resolve_first_transport(addr, hostport, 0, get_transport_str2enum(transport))) {
ast_log(LOG_WARNING, "Invalid host name in Contact: (can't "
"resolve in DNS) : '%s'\n", hostport);
return -1;
@@ -14137,7 +14132,7 @@
ast_debug(1, "Store REGISTER's Contact header for call routing.\n");
/* XXX This could block for a long time XXX */
/*! \todo Check NAPTR/SRV if we have not got a port in the URI */
- if (ast_sockaddr_resolve_first(&testsa, hostport, 0)) {
+ if (ast_sockaddr_resolve_first_transport(&testsa, hostport, 0, peer->socket.type)) {
ast_log(LOG_WARNING, "Invalid hostport '%s'\n", hostport);
ast_string_field_set(peer, fullcontact, "");
ast_string_field_set(pvt, our_contact, "");
@@ -16139,11 +16134,12 @@
}
if (!ast_strlen_zero(peer->cid_name))
ast_string_field_set(p, cid_name, peer->cid_name);
- if (!ast_strlen_zero(peer->cid_tag))
- ast_string_field_set(p, cid_tag, peer->cid_tag);
if (peer->callingpres)
p->callingpres = peer->callingpres;
}
+ if (!ast_strlen_zero(peer->cid_tag)) {
+ ast_string_field_set(p, cid_tag, peer->cid_tag);
+ }
ast_string_field_set(p, fullcontact, peer->fullcontact);
if (!ast_strlen_zero(peer->context)) {
@@ -19021,7 +19017,7 @@
/*! \brief Enable SIP Debugging for a single IP */
static char *sip_do_debug_ip(int fd, const char *arg)
{
- if (ast_sockaddr_resolve_first(&debugaddr, arg, 0)) {
+ if (ast_sockaddr_resolve_first_af(&debugaddr, arg, 0, 0)) {
return CLI_SHOWUSAGE;
}
@@ -20053,6 +20049,41 @@
}
}
+/*!
+ * \internal
+ * \brief Set hangup source and cause.
+ *
+ * \param p SIP private.
+ * \param cause Hangup cause to queue. Zero if no cause.
+ *
+ * \pre p and p->owner are locked.
+ *
+ * \return Nothing
+ */
+static void sip_queue_hangup_cause(struct sip_pvt *p, int cause)
+{
+ struct ast_channel *owner = p->owner;
+ const char *name = ast_strdupa(owner->name);
+
+ /* Cannot hold any channel/private locks when calling. */
+ ast_channel_ref(owner);
+ ast_channel_unlock(owner);
+ sip_pvt_unlock(p);
+ ast_set_hangupsource(owner, name, 0);
+ if (cause) {
+ ast_queue_hangup_with_cause(owner, cause);
+ } else {
+ ast_queue_hangup(owner);
+ }
+ ast_channel_unref(owner);
+
+ /* Relock things. */
+ owner = sip_pvt_lock_full(p);
+ if (owner) {
+ ast_channel_unref(owner);
+ }
+}
+
/*! \brief Handle SIP response to INVITE dialogue */
static void handle_response_invite(struct sip_pvt *p, int resp, const char *rest, struct sip_request *req, uint32_t seqno)
{
@@ -20405,16 +20436,14 @@
xmitres = transmit_request(p, SIP_ACK, seqno, XMIT_UNRELIABLE, FALSE);
ast_log(LOG_WARNING, "Received response: \"Forbidden\" from '%s'\n", get_header(&p->initreq, "From"));
if (!req->ignore && p->owner) {
- ast_set_hangupsource(p->owner, p->owner->name, 0);
- ast_queue_hangup_with_cause(p->owner, hangup_sip2cause(resp));
+ sip_queue_hangup_cause(p, hangup_sip2cause(resp));
}
break;
case 404: /* Not found */
xmitres = transmit_request(p, SIP_ACK, seqno, XMIT_UNRELIABLE, FALSE);
if (p->owner && !req->ignore) {
- ast_set_hangupsource(p->owner, p->owner->name, 0);
- ast_queue_hangup_with_cause(p->owner, hangup_sip2cause(resp));
+ sip_queue_hangup_cause(p, hangup_sip2cause(resp));
}
break;
@@ -22789,8 +22818,6 @@
*/
/* Fall through */
case SIP_GET_DEST_EXTEN_NOT_FOUND:
- case SIP_GET_DEST_REFUSED:
- default:
{
char *decoded_exten = ast_strdupa(p->exten);
transmit_response_reliable(p, "404 Not Found", req);
@@ -22799,6 +22826,10 @@
" '%s' rejected because extension not found in context '%s'.\n",
S_OR(p->username, p->peername), ast_sockaddr_stringify(&p->recv), decoded_exten, p->context);
}
+ break;
+ case SIP_GET_DEST_REFUSED:
+ default:
+ transmit_response_reliable(p, "403 Forbidden", req);
} /* end switch */
p->invitestate = INV_COMPLETED;
@@ -22814,7 +22845,7 @@
ast_string_field_set(p, exten, "s");
/* Initialize our tag */
- make_our_tag(p->tag, sizeof(p->tag));
+ make_our_tag(p);
/* First invitation - create the channel. Allocation
* failures are handled below. */
c = sip_new(p, AST_STATE_DOWN, S_OR(p->peername, NULL), NULL);
@@ -23863,11 +23894,10 @@
stop_media_flows(p); /* Immediately stop RTP, VRTP and UDPTL as applicable */
if (p->owner) {
- ast_set_hangupsource(p->owner, p->owner->name, 0);
- ast_queue_hangup(p->owner);
- }
- else
+ sip_queue_hangup_cause(p, 0);
+ } else {
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
+ }
if (ast_str_strlen(p->initreq.data) > 0) {
struct sip_pkt *pkt, *prev_pkt;
/* If the CANCEL we are receiving is a retransmission, and we already have scheduled
@@ -24021,8 +24051,7 @@
ast_queue_hangup_with_cause(p->owner, AST_CAUSE_PROTOCOL_ERROR);
}
} else if (p->owner) {
- ast_set_hangupsource(p->owner, p->owner->name, 0);
- ast_queue_hangup(p->owner);
+ sip_queue_hangup_cause(p, 0);
sip_scheddestroy_final(p, DEFAULT_TRANS_TIMEOUT);
ast_debug(3, "Received bye, issuing owner hangup\n");
} else {
@@ -24788,7 +24817,7 @@
/* Initialize tag for new subscriptions */
if (ast_strlen_zero(p->tag))
- make_our_tag(p->tag, sizeof(p->tag));
+ make_our_tag(p);
if (!strncmp(eventheader, "presence", MAX(event_len, 8)) || !strncmp(eventheader, "dialog", MAX(event_len, 6))) { /* Presence, RFC 3842 */
unsigned int pidf_xml;
@@ -25280,14 +25309,15 @@
if (!p->initreq.headers && req->has_to_tag) {
/* If this is a first request and it got a to-tag, it is not for us */
if (!req->ignore && req->method == SIP_INVITE) {
- /* We will be subversive here. By blanking out the to-tag of the request,
- * it will cause us to attach our own generated to-tag instead. This way,
- * when we receive an ACK, the ACK will contain the to-tag we generated,
- * resulting in a proper to-tag match.
+ /* Just because we think this is a dialog-starting INVITE with a to-tag
+ * doesn't mean it actually is. It could be a reinvite for an established, but
+ * unknown dialog. In such a case, we need to change our tag to the
+ * incoming INVITE's to-tag so that they will recognize the 481 we send and
+ * so that we will properly match their incoming ACK.
*/
- char *to_header = (char *) get_header(req, "To");
- char *tag = strstr(to_header, ";tag=");
- *tag = '\0';
+ char totag[128];
+ gettag(req, "To", totag, sizeof(totag));
+ ast_string_field_set(p, tag, totag);
p->pendinginvite = p->icseq;
transmit_response_reliable(p, "481 Call/Transaction Does Not Exist", req);
/* Will cease to exist after ACK */
@@ -25565,8 +25595,20 @@
*
* \note return 0 if addr is [::] else it returns addr's family.
*/
-int get_address_family_filter(const struct ast_sockaddr *addr)
+int get_address_family_filter(unsigned int transport)
{
+ const struct ast_sockaddr *addr = NULL;
+
+ if ((transport == SIP_TRANSPORT_UDP) || !transport) {
+ addr = &bindaddr;
+ }
+ else if (transport == SIP_TRANSPORT_TCP) {
+ addr = &sip_tcp_desc.local_address;
+ }
+ else if (transport == SIP_TRANSPORT_TLS) {
+ addr = &sip_tls_desc.local_address;
+ }
+
if (ast_sockaddr_is_ipv6(addr) && ast_sockaddr_is_any(addr)) {
return 0;
}
@@ -26701,7 +26743,7 @@
}
if (!ast_strlen_zero(remote_address)) {
- if (ast_sockaddr_resolve_first(&remote_address_sa, remote_address, 0)) {
+ if (ast_sockaddr_resolve_first_transport(&remote_address_sa, remote_address, 0, transport)) {
ast_log(LOG_WARNING, "Unable to find IP address for host %s. We will not use this remote IP address\n", remote_address);
} else {
if (!ast_sockaddr_port(&remote_address_sa)) {
@@ -27923,7 +27965,7 @@
snprintf(transport, sizeof(transport), "_%s._%s", get_srv_service(peer->socket.type), get_srv_protocol(peer->socket.type));
- peer->addr.ss.ss_family = get_address_family_filter(&bindaddr); /* Filter address family */
+ peer->addr.ss.ss_family = get_address_family_filter(peer->socket.type); /* Filter address family */
if (ast_dnsmgr_lookup_cb(_srvlookup, &peer->addr, &peer->dnsmgr, sip_cfg.srvlookup && !peer->portinuri ? transport : NULL,
on_dns_update_peer, ref_peer(peer, "Store peer on dnsmgr"))) {
ast_log(LOG_ERROR, "srvlookup failed for host: %s, on peer %s, removing peer\n", _srvlookup, peer->name);
@@ -29962,7 +30004,17 @@
static int ast_sockaddr_resolve_first(struct ast_sockaddr *addr,
const char* name, int flag)
{
- return ast_sockaddr_resolve_first_af(addr, name, flag, get_address_family_filter(&bindaddr));
+ return ast_sockaddr_resolve_first_af(addr, name, flag, get_address_family_filter(SIP_TRANSPORT_UDP));
+}
+
+/*! \brief Return the first entry from ast_sockaddr_resolve filtered by family of binddaddr
+ *
+ * \warn Using this function probably means you have a faulty design.
+ */
+static int ast_sockaddr_resolve_first_transport(struct ast_sockaddr *addr,
+ const char* name, int flag, unsigned int transport)
+{
+ return ast_sockaddr_resolve_first_af(addr, name, flag, get_address_family_filter(transport));
}
/*! \brief
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/console_board.c
^
|
@@ -13,7 +13,7 @@
* the GNU General Public License Version 2. See the LICENSE file
* at the top of the source tree.
*
- * $Revision: 126480 $
+ * $Revision: 369001 $
*/
/*
@@ -37,8 +37,12 @@
* configuration file).
*/
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
+
#include "asterisk.h" /* ast_strdupa */
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 126480 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/utils.h" /* ast_strdupa */
#include "console_video.h" /* ast_strdupa */
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/console_gui.c
^
|
@@ -1,7 +1,7 @@
/*
* GUI for console video.
* The routines here are in charge of loading the keypad and handling events.
- * $Revision: 361471 $
+ * $Revision: 369001 $
*/
/*
@@ -78,6 +78,10 @@
*
*/
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
+
#include "asterisk.h"
#include "console_video.h"
#include "asterisk/lock.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/console_video.c
^
|
@@ -30,14 +30,18 @@
* thus not compiling in AST_DEVMODE, or don't have swscale, in which case
* you can try to compile #defining OLD_FFMPEG here.
*
- * $Revision: 361471 $
+ * $Revision: 369001 $
*/
//#define DROP_PACKETS 5 /* if set, drop this % of video packets */
//#define OLD_FFMPEG 1 /* set for old ffmpeg with no swscale */
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 361471 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <sys/ioctl.h>
#include "asterisk/cli.h"
#include "asterisk/file.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/iax2-parser.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366167 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <sys/socket.h>
#include <netinet/in.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/iax2-provision.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366094 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <netdb.h>
#include <netinet/in.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/misdn/ie.c
^
|
@@ -24,6 +24,10 @@
if qi is not NULL (TE-mode), offset is set
*/
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
+
#include "asterisk.h"
#include <string.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/misdn/isdn_lib.c
^
|
@@ -16,7 +16,9 @@
* \author Christian Richter <crich@beronet.com>
*/
-
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
#include <syslog.h>
#include <sys/time.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/misdn/isdn_msg_parser.c
^
|
@@ -16,7 +16,9 @@
* \author Christian Richter <crich@beronet.com>
*/
-
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
#include "isdn_lib_intern.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/misdn/portinfo.c
^
|
@@ -3,6 +3,9 @@
* \author Christian Richter <crich@beronet.com>
*/
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
#include "isdn_lib.h"
#include "isdn_lib_intern.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/misdn_config.c
^
|
@@ -26,9 +26,13 @@
* \ingroup channel_drivers
*/
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 317478 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "chan_misdn_config.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/sig_analog.c
^
|
@@ -23,6 +23,10 @@
* \author Matthew Fredrickson <creslin@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
#include <errno.h>
@@ -3617,7 +3621,18 @@
f = &p->subs[idx].f;
return f;
}
+
f = __analog_handle_event(p, ast);
+ if (!f) {
+ const char *name = ast_strdupa(ast->name);
+
+ /* Tell the CDR this DAHDI device hung up */
+ analog_unlock_private(p);
+ ast_channel_unlock(ast);
+ ast_set_hangupsource(ast, name, 0);
+ ast_channel_lock(ast);
+ analog_lock_private(p);
+ }
return f;
}
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/sig_pri.c
^
|
@@ -23,6 +23,9 @@
* \author Matthew Fredrickson <creslin@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
#include "asterisk.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/sig_ss7.c
^
|
@@ -27,6 +27,9 @@
* \arg \ref AstCREDITS
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
#include "asterisk.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/sip/config_parser.c
^
|
@@ -19,9 +19,13 @@
* \brief sip config parsing functions and unit tests
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366882 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "include/sip.h"
#include "include/config_parser.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/sip/dialplan_functions.c
^
|
@@ -19,9 +19,13 @@
* \brief sip channel dialplan functions and unit tests
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 310088 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <math.h>
@@ -153,9 +157,9 @@
}
if (ast_strlen_zero(args.field) || !strcasecmp(args.field, "all")) {
- char quality_buf[AST_MAX_USER_FIELD], *quality;
+ char quality_buf[AST_MAX_USER_FIELD];
- if (!(quality = ast_rtp_instance_get_quality(rtp, AST_RTP_INSTANCE_STAT_FIELD_QUALITY, quality_buf, sizeof(quality_buf)))) {
+ if (!ast_rtp_instance_get_quality(rtp, AST_RTP_INSTANCE_STAT_FIELD_QUALITY, quality_buf, sizeof(quality_buf))) {
return -1;
}
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/sip/include/sip.h
^
|
@@ -959,6 +959,7 @@
AST_STRING_FIELD(rdnis); /*!< Referring DNIS */
AST_STRING_FIELD(redircause); /*!< Referring cause */
AST_STRING_FIELD(theirtag); /*!< Their tag */
+ AST_STRING_FIELD(tag); /*!< Our tag for this session */
AST_STRING_FIELD(username); /*!< [user] name */
AST_STRING_FIELD(peername); /*!< [peer] name, not set if [user] */
AST_STRING_FIELD(authname); /*!< Who we use for authentication */
@@ -1006,7 +1007,6 @@
* for incoming calls
*/
unsigned short req_secure_signaling:1;/*!< Whether we are required to have secure signaling or not */
- char tag[11]; /*!< Our tag for this session */
int timer_t1; /*!< SIP timer T1, ms rtt */
int timer_b; /*!< SIP timer B, ms */
unsigned int sipoptions; /*!< Supported SIP options on the other end */
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/sip/reqresp_parser.c
^
|
@@ -19,9 +19,13 @@
* \brief sip request parsing functions and unit tests
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366167 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "include/sip.h"
#include "include/sip_utils.h"
@@ -1079,7 +1083,7 @@
}
/* Test 6, NULL input */
- if ((uri = get_in_brackets(NULL))) {
+ if (get_in_brackets(NULL)) {
ast_test_status_update(test, "Test 6, NULL input failed.\n");
res = AST_TEST_FAIL;
}
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/sip/sdp_crypto.c
^
|
@@ -25,9 +25,13 @@
* \author Mikael Magnusson <mikma@users.sourceforge.net>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 356604 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/options.h"
#include "asterisk/utils.h"
@@ -51,9 +55,7 @@
static struct sdp_crypto *sdp_crypto_alloc(void)
{
- struct sdp_crypto *crypto;
-
- return crypto = ast_calloc(1, sizeof(*crypto));
+ return ast_calloc(1, sizeof(struct sdp_crypto));
}
void sdp_crypto_destroy(struct sdp_crypto *crypto)
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/sip/srtp.c
^
|
@@ -25,9 +25,13 @@
* \author Mikael Magnusson <mikma@users.sourceforge.net>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 268894 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/utils.h"
#include "include/srtp.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/vcodecs.c
^
|
@@ -16,9 +16,13 @@
/*
* Video codecs support for console_video.c
- * $Revision: 196072 $
+ * $Revision: 369001 $
*/
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
+
#include "asterisk.h"
#include "console_video.h"
#include "asterisk/frame.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/channels/vgrabbers.c
^
|
@@ -17,7 +17,7 @@
/*
* Video grabbers used in console_video.
*
- * $Revision: 130733 $
+ * $Revision: 369001 $
*
* Each grabber is implemented through open/read/close calls,
* plus an additional move() function used e.g. to change origin
@@ -44,8 +44,12 @@
* `->--[enc_out]
*/
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 130733 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <sys/ioctl.h>
#include "asterisk/file.h"
#include "asterisk/utils.h" /* ast_calloc */
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/configs/sip_notify.conf.sample
^
|
@@ -17,6 +17,11 @@
[aastra-xml]
Event=>aastra-xml
+; Digium
+
+[digium-check-cfg]
+Event=>check-sync
+
; Linksys
[linksys-cold-restart]
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/funcs/func_strings.c
^
|
@@ -31,7 +31,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 361471 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368738 $")
#include <regex.h>
#include <ctype.h>
@@ -566,7 +566,6 @@
AST_APP_ARG(delimiter);
AST_APP_ARG(fieldvalue);
);
- const char *ptr;
struct ast_str *orig_list = ast_str_thread_get(&tmp_buf, 16);
const char *begin, *cur, *next;
int dlen, flen, first = 1;
@@ -606,7 +605,7 @@
}
/* If the string isn't there, just copy out the string and be done with it. */
- if (!(ptr = strstr(ast_str_buffer(orig_list), args.fieldvalue))) {
+ if (!strstr(ast_str_buffer(orig_list), args.fieldvalue)) {
if (buf) {
ast_copy_string(buf, ast_str_buffer(orig_list), len);
} else {
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/funcs/func_volume.c
^
|
@@ -32,7 +32,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 364899 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368898 $")
#include "asterisk/module.h"
#include "asterisk/channel.h"
@@ -90,6 +90,9 @@
struct volume_information *vi = data;
/* Destroy the audiohook, and destroy ourselves */
+ ast_audiohook_lock(&vi->audiohook);
+ ast_audiohook_detach(&vi->audiohook);
+ ast_audiohook_unlock(&vi->audiohook);
ast_audiohook_destroy(&vi->audiohook);
ast_free(vi);
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/include/asterisk/adsi.h
^
|
@@ -24,7 +24,6 @@
#define _ASTERISK_ADSI_H
#include "asterisk/callerid.h"
-#include "asterisk/optional_api.h"
/*! \name ADSI parameters */
/*@{ */
@@ -121,11 +120,13 @@
#define ADSI_DIR_FROM_LEFT (0)
#define ADSI_DIR_FROM_RIGHT (1)
+#define AST_ADSI_VERSION 1
+
/*@} */
-AST_OPTIONAL_API(int, ast_adsi_begin_download, (struct ast_channel *chan, char *service, unsigned char *fdn, unsigned char *sec, int version), { return 0; });
+int ast_adsi_begin_download(struct ast_channel *chan, char *service, unsigned char *fdn, unsigned char *sec, int version);
-AST_OPTIONAL_API(int, ast_adsi_end_download, (struct ast_channel *chan), { return 0; });
+int ast_adsi_end_download(struct ast_channel *chan);
/*! Restore ADSI initialization (for applications that play with ADSI
* and want to restore it to normal. If you touch "INFO" then you
@@ -135,7 +136,7 @@
* \retval 0 on success (or adsi unavailable)
* \retval -1 on hangup
*/
-AST_OPTIONAL_API(int, ast_adsi_channel_restore, (struct ast_channel *chan), { return 0; });
+int ast_adsi_channel_restore(struct ast_channel *chan);
/*!
* \brief Display some stuff on the screen
@@ -147,7 +148,7 @@
* \retval 0 on success (or adsi unavailable)
* \retval -1 on hangup
*/
-AST_OPTIONAL_API(int, ast_adsi_print, (struct ast_channel *chan, char **lines, int *align, int voice), { return 0; });
+int ast_adsi_print(struct ast_channel *chan, char **lines, int *align, int voice);
/*!
* \brief Check if scripts for a given app are already loaded.
@@ -161,16 +162,16 @@
* \retval -1 on hangup
* \retval 1 if script already loaded.
*/
-AST_OPTIONAL_API(int, ast_adsi_load_session, (struct ast_channel *chan, unsigned char *app, int ver, int data), { return 0; });
-AST_OPTIONAL_API(int, ast_adsi_unload_session, (struct ast_channel *chan), { return 0; });
+int ast_adsi_load_session(struct ast_channel *chan, unsigned char *app, int ver, int data);
+int ast_adsi_unload_session(struct ast_channel *chan);
/* ADSI Layer 2 transmission functions */
-AST_OPTIONAL_API(int, ast_adsi_transmit_message, (struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype), { return 0; });
-AST_OPTIONAL_API(int, ast_adsi_transmit_message_full, (struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype, int dowait), { return 0; });
+int ast_adsi_transmit_message(struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype);
+int ast_adsi_transmit_message_full(struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype, int dowait);
/*! Read some encoded DTMF data.
* Returns number of bytes received
*/
-AST_OPTIONAL_API(int, ast_adsi_read_encoded_dtmf, (struct ast_channel *chan, unsigned char *buf, int maxlen), { return 0; });
+int ast_adsi_read_encoded_dtmf(struct ast_channel *chan, unsigned char *buf, int maxlen);
/* ADSI Layer 3 creation functions */
@@ -184,22 +185,22 @@
* \retval -1 on error.
*/
-AST_OPTIONAL_API(int, ast_adsi_connect_session, (unsigned char *buf, unsigned char *fdn, int ver), { return 0; });
+int ast_adsi_connect_session(unsigned char *buf, unsigned char *fdn, int ver);
/*! Build Query CPE ID of equipment.
* Returns number of bytes added to message
*/
-AST_OPTIONAL_API(int, ast_adsi_query_cpeid, (unsigned char *buf), { return 0; });
-AST_OPTIONAL_API(int, ast_adsi_query_cpeinfo, (unsigned char *buf), { return 0; });
+int ast_adsi_query_cpeid(unsigned char *buf);
+int ast_adsi_query_cpeinfo(unsigned char *buf);
/*! Get CPE ID from an attached ADSI compatible CPE.
* Returns 1 on success, storing 4 bytes of CPE ID at buf
* or -1 on hangup, or 0 if there was no hangup but it failed to find the
* device ID. Returns to voice mode if "voice" is non-zero.
*/
-AST_OPTIONAL_API(int, ast_adsi_get_cpeid, (struct ast_channel *chan, unsigned char *cpeid, int voice), { return 0; });
+int ast_adsi_get_cpeid(struct ast_channel *chan, unsigned char *cpeid, int voice);
-AST_OPTIONAL_API(int, ast_adsi_get_cpeinfo, (struct ast_channel *chan, int *width, int *height, int *buttons, int voice), { return 0; });
+int ast_adsi_get_cpeinfo(struct ast_channel *chan, int *width, int *height, int *buttons, int voice);
/*!
* \brief Begin an ADSI script download
@@ -213,7 +214,7 @@
* \retval -1 on error.
*/
-AST_OPTIONAL_API(int, ast_adsi_download_connect, (unsigned char *buf, char *service, unsigned char *fdn, unsigned char *sec, int ver), { return 0; });
+int ast_adsi_download_connect(unsigned char *buf, char *service, unsigned char *fdn, unsigned char *sec, int ver);
/*!
* \brief Disconnects a running session.
@@ -222,7 +223,7 @@
* \retval number of bytes added to buffer
* \retval -1 on error.
*/
-AST_OPTIONAL_API(int, ast_adsi_disconnect_session, (unsigned char *buf), { return 0; });
+int ast_adsi_disconnect_session(unsigned char *buf);
/*!
* \brief Disconnects (and hopefully saves) a downloaded script
@@ -231,7 +232,7 @@
* \retval number of bytes added to buffer
* \retval -1 on error.
*/
-AST_OPTIONAL_API(int, ast_adsi_download_disconnect, (unsigned char *buf), { return 0; });
+int ast_adsi_download_disconnect(unsigned char *buf);
/*!
* \brief Puts CPE in data mode.
@@ -240,9 +241,9 @@
* \retval number of bytes added to buffer
* \retval -1 on error.
*/
-AST_OPTIONAL_API(int, ast_adsi_data_mode, (unsigned char *buf), { return 0; });
-AST_OPTIONAL_API(int, ast_adsi_clear_soft_keys, (unsigned char *buf), { return 0; });
-AST_OPTIONAL_API(int, ast_adsi_clear_screen, (unsigned char *buf), { return 0; });
+int ast_adsi_data_mode(unsigned char *buf);
+int ast_adsi_clear_soft_keys(unsigned char *buf);
+int ast_adsi_clear_screen(unsigned char *buf);
/*!
* \brief Puts CPE in voice mode.
@@ -252,13 +253,13 @@
* \retval number of bytes added to buffer
* \retval -1 on error.
*/
-AST_OPTIONAL_API(int, ast_adsi_voice_mode, (unsigned char *buf, int when), { return 0; });
+int ast_adsi_voice_mode(unsigned char *buf, int when);
/*!
* \brief Returns non-zero if Channel does or might support ADSI
* \param chan Channel to check
*/
-AST_OPTIONAL_API(int, ast_adsi_available, (struct ast_channel *chan), { return 0; });
+int ast_adsi_available(struct ast_channel *chan);
/*!
* \brief Loads a line of info into the display.
@@ -274,7 +275,7 @@
* \retval -1 on error.
*/
-AST_OPTIONAL_API(int, ast_adsi_display, (unsigned char *buf, int page, int line, int just, int wrap, char *col1, char *col2), { return 0; });
+int ast_adsi_display(unsigned char *buf, int page, int line, int just, int wrap, char *col1, char *col2);
/*!
* \brief Sets the current line and page.
@@ -286,7 +287,7 @@
* \retval -1 on error.
*/
-AST_OPTIONAL_API(int, ast_adsi_set_line, (unsigned char *buf, int page, int line), { return 0; });
+int ast_adsi_set_line(unsigned char *buf, int page, int line);
/*!
* \brief Creates "load soft key" parameters
@@ -300,7 +301,7 @@
* \retval number of bytes added to buffer
* \retval -1 on error.
*/
-AST_OPTIONAL_API(int, ast_adsi_load_soft_key, (unsigned char *buf, int key, const char *llabel, const char *slabel, char *ret, int data), { return 0; });
+int ast_adsi_load_soft_key(unsigned char *buf, int key, const char *llabel, const char *slabel, char *ret, int data);
/*!
* \brief Set which soft keys should be displayed
@@ -311,7 +312,7 @@
* \retval number of bytes added to buffer
* \retval -1 on error.
*/
-AST_OPTIONAL_API(int, ast_adsi_set_keys, (unsigned char *buf, unsigned char *keys), { return 0; });
+int ast_adsi_set_keys(unsigned char *buf, unsigned char *keys);
/*!
* \brief Set input information
@@ -325,7 +326,7 @@
* \retval number of bytes added to buffer
* \retval -1 on error.
*/
-AST_OPTIONAL_API(int, ast_adsi_input_control, (unsigned char *buf, int page, int line, int display, int format, int just), { return 0; });
+int ast_adsi_input_control(unsigned char *buf, int page, int line, int display, int format, int just);
/*!
* \brief Set input format
@@ -339,7 +340,41 @@
* \retval number of bytes added to buffer
* \retval -1 on error.
*/
-AST_OPTIONAL_API(int, ast_adsi_input_format, (unsigned char *buf, int num, int dir, int wrap, char *format1, char *format2), { return 0; });
+int ast_adsi_input_format(unsigned char *buf, int num, int dir, int wrap, char *format1, char *format2);
+
+struct adsi_funcs {
+ unsigned int version;
+ int (*begin_download)(struct ast_channel *chan, char *service, unsigned char *fdn, unsigned char *sec, int version);
+ int (*end_download)(struct ast_channel *chan);
+ int (*channel_restore) (struct ast_channel *chan);
+ int (*print) (struct ast_channel *chan, char **lines, int *align, int voice);
+ int (*load_session) (struct ast_channel *chan, unsigned char *app, int ver, int data);
+ int (*unload_session) (struct ast_channel *chan);
+ int (*transmit_message) (struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype);
+ int (*transmit_message_full) (struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype, int dowait);
+ int (*read_encoded_dtmf) (struct ast_channel *chan, unsigned char *buf, int maxlen);
+ int (*connect_session) (unsigned char *buf, unsigned char *fdn, int ver);
+ int (*query_cpeid) (unsigned char *buf);
+ int (*query_cpeinfo) (unsigned char *buf);
+ int (*get_cpeid) (struct ast_channel *chan, unsigned char *cpeid, int voice);
+ int (*get_cpeinfo) (struct ast_channel *chan, int *width, int *height, int *buttons, int voice);
+ int (*download_connect) (unsigned char *buf, char *service, unsigned char *fdn, unsigned char *sec, int ver);
+ int (*disconnect_session) (unsigned char *buf);
+ int (*download_disconnect) (unsigned char *buf);
+ int (*data_mode) (unsigned char *buf);
+ int (*clear_soft_keys) (unsigned char *buf);
+ int (*clear_screen) (unsigned char *buf);
+ int (*voice_mode) (unsigned char *buf, int when);
+ int (*available) (struct ast_channel *chan);
+ int (*display) (unsigned char *buf, int page, int line, int just, int wrap, char *col1, char *col2);
+ int (*set_line) (unsigned char *buf, int page, int line);
+ int (*load_soft_key) (unsigned char *buf, int key, const char *llabel, const char *slabel, char *ret, int data);
+ int (*set_keys) (unsigned char *buf, unsigned char *keys);
+ int (*input_control) (unsigned char *buf, int page, int line, int display, int format, int just);
+ int (*input_format) (unsigned char *buf, int num, int dir, int wrap, char *format1, char *format2);
+};
+
+void ast_adsi_install_funcs(const struct adsi_funcs *funcs);
#endif /* _ASTERISK_ADSI_H */
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/include/asterisk/channel.h
^
|
@@ -1470,6 +1470,8 @@
* \param source a string describing the source of the hangup for this channel
* \param force
*
+ * \note Absolutely _NO_ channel locks should be held before calling this function.
+ *
* \since 1.8
*
* Hangupsource is generally the channel name that caused the bridge to be
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/include/asterisk/netsock2.h
^
|
@@ -343,7 +343,8 @@
*
* Host names are NOT allowed.
*
- * \param[out] addr The resulting ast_sockaddr
+ * \param[out] addr The resulting ast_sockaddr. This MAY be NULL from
+ * functions that are performing validity checks only, e.g. ast_parse_arg().
* \param str The string to parse
* \param flags If set to zero, a port MAY be present. If set to
* PARSE_PORT_IGNORE, a port MAY be present but will be ignored. If set to
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/Makefile
^
|
@@ -26,9 +26,6 @@
# otherwise modules will not have them available if none of the static
# objects use it.
OBJS+=stdtime/localtime.o
-ifneq ($(firstword $(subst :, ,$(WEAKREF))),1)
-OBJS+=../res/res_adsi.o
-endif
AST_LIBS += $(OPENSSL_LIB)
AST_LIBS += $(BKTR_LIB)
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/abstract_jb.c
^
|
@@ -29,9 +29,13 @@
*
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 365460 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/frame.h"
#include "asterisk/channel.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/acl.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366094 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/network.h"
|
[-]
[+]
|
Added |
asterisk-1.8.15.0.tar.xz/main/adsi.c
^
|
@@ -0,0 +1,351 @@
+/*
+ * Asterisk -- An open source telephony toolkit.
+ *
+ * Copyright (C) 2012, Digium, Inc.
+ *
+ * Mark Michelson <mmichelson@digium.com>
+ *
+ * See http://www.asterisk.org for more information about
+ * the Asterisk project. Please do not directly contact
+ * any of the maintainers of this project for assistance;
+ * the project provides a web site, mailing lists and IRC
+ * channels for your use.
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU General Public License Version 2. See the LICENSE file
+ * at the top of the source tree.
+ */
+
+/*! \file
+ * \brief ADSI Support (built upon Caller*ID)
+ */
+
+#include "asterisk.h"
+
+#include "asterisk/adsi.h"
+#include "asterisk/lock.h"
+
+static const struct adsi_funcs *installed_funcs;
+static const int current_adsi_version = AST_ADSI_VERSION;
+AST_RWLOCK_DEFINE_STATIC(func_lock);
+
+int ast_adsi_begin_download(struct ast_channel *chan, char *service, unsigned char *fdn, unsigned char *sec, int version)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->begin_download) {
+ res = installed_funcs->begin_download(chan, service, fdn, sec, version);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_end_download(struct ast_channel *chan)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->end_download) {
+ res = installed_funcs->end_download(chan);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_channel_restore(struct ast_channel *chan)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->channel_restore) {
+ res = installed_funcs->channel_restore(chan);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_print(struct ast_channel *chan, char **lines, int *align, int voice)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->print) {
+ res = installed_funcs->print(chan, lines, align, voice);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_load_session(struct ast_channel *chan, unsigned char *app, int ver, int data)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->load_session) {
+ res = installed_funcs->load_session(chan, app, ver, data);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_unload_session(struct ast_channel *chan)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->unload_session) {
+ res = installed_funcs->unload_session(chan);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_transmit_message(struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->transmit_message) {
+ res = installed_funcs->transmit_message(chan, msg, msglen, msgtype);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_transmit_message_full(struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype, int dowait)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->transmit_message_full) {
+ res = installed_funcs->transmit_message_full(chan, msg, msglen, msgtype, dowait);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_read_encoded_dtmf(struct ast_channel *chan, unsigned char *buf, int maxlen)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->read_encoded_dtmf) {
+ res = installed_funcs->read_encoded_dtmf(chan, buf, maxlen);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_connect_session(unsigned char *buf, unsigned char *fdn, int ver)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->connect_session) {
+ res = installed_funcs->connect_session(buf, fdn, ver);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_query_cpeid(unsigned char *buf)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->query_cpeid) {
+ res = installed_funcs->query_cpeid(buf);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_query_cpeinfo(unsigned char *buf)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->query_cpeinfo) {
+ res = installed_funcs->query_cpeinfo(buf);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_get_cpeid(struct ast_channel *chan, unsigned char *cpeid, int voice)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->get_cpeid) {
+ res = installed_funcs->get_cpeid(chan, cpeid, voice);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_get_cpeinfo(struct ast_channel *chan, int *width, int *height, int *buttons, int voice)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->get_cpeinfo) {
+ res = installed_funcs->get_cpeinfo(chan, width, height, buttons, voice);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_download_connect(unsigned char *buf, char *service, unsigned char *fdn, unsigned char *sec, int ver)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->download_connect) {
+ res = installed_funcs->download_connect(buf, service, fdn, sec, ver);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_disconnect_session(unsigned char *buf)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->disconnect_session) {
+ res = installed_funcs->disconnect_session(buf);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_download_disconnect(unsigned char *buf)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->download_disconnect) {
+ res = installed_funcs->download_disconnect(buf);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_data_mode(unsigned char *buf)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->data_mode) {
+ res = installed_funcs->data_mode(buf);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_clear_soft_keys(unsigned char *buf)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->clear_soft_keys) {
+ res = installed_funcs->clear_soft_keys(buf);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_clear_screen(unsigned char *buf)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->clear_screen) {
+ res = installed_funcs->clear_screen(buf);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_voice_mode(unsigned char *buf, int when)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->voice_mode) {
+ res = installed_funcs->voice_mode(buf, when);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_available(struct ast_channel *chan)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->available) {
+ res = installed_funcs->available(chan);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_display(unsigned char *buf, int page, int line, int just, int wrap, char *col1, char *col2)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->display) {
+ res = installed_funcs->display(buf, page, line, just, wrap, col1, col2);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_set_line(unsigned char *buf, int page, int line)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->set_line) {
+ res = installed_funcs->set_line(buf, page, line);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_load_soft_key(unsigned char *buf, int key, const char *llabel, const char *slabel, char *ret, int data)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->load_soft_key) {
+ res = installed_funcs->load_soft_key(buf, key, llabel, slabel, ret, data);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_set_keys(unsigned char *buf, unsigned char *keys)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->set_keys) {
+ res = installed_funcs->set_keys(buf, keys);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_input_control(unsigned char *buf, int page, int line, int display, int format, int just)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->input_control) {
+ res = installed_funcs->input_control(buf, page, line, display, format, just);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+int ast_adsi_input_format(unsigned char *buf, int num, int dir, int wrap, char *format1, char *format2)
+{
+ int res = 0;
+ ast_rwlock_rdlock(&func_lock);
+ if (installed_funcs && installed_funcs->input_format) {
+ res = installed_funcs->input_format(buf, num, dir, wrap, format1, format2);
+ }
+ ast_rwlock_unlock(&func_lock);
+ return res;
+}
+
+void ast_adsi_install_funcs(const struct adsi_funcs *funcs)
+{
+ if (funcs && funcs->version < current_adsi_version) {
+ ast_log(LOG_WARNING, "Cannot install ADSI function pointers due to version mismatch."
+ "Ours: %u, Theirs: %u\n", current_adsi_version, funcs->version);
+ return;
+ }
+
+ ast_rwlock_wrlock(&func_lock);
+ installed_funcs = funcs;
+ ast_rwlock_unlock(&func_lock);
+}
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/alaw.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 213179 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/alaw.h"
#include "asterisk/logger.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/aoc.c
^
|
@@ -23,8 +23,12 @@
* \author David Vossel <dvossel@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 299004 $");
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $");
#include "asterisk/aoc.h"
#include "asterisk/utils.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/app.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366167 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/asterisk.c
^
|
@@ -59,9 +59,13 @@
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 367292 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/astfd.c
^
|
@@ -23,11 +23,15 @@
* \author Tilghman Lesher <tlesher@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
#ifdef DEBUG_FD_LEAKS
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 363209 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <stdio.h>
#include <string.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/astmm.c
^
|
@@ -23,11 +23,15 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
#ifdef __AST_DEBUG_MALLOC
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 196272 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/paths.h" /* use ast_config_AST_LOG_DIR */
#include <stddef.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/astobj2.c
^
|
@@ -17,9 +17,14 @@
/*
* Function implementing astobj2 objects.
*/
+
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 364902 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
#include "asterisk/astobj2.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/audiohook.c
^
|
@@ -23,9 +23,13 @@
* \author Joshua Colp <jcolp@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 365460 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <signal.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/autochan.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Michelson <mmichelson@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 190423 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/autochan.h"
#include "asterisk/utils.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/autoservice.c
^
|
@@ -25,9 +25,13 @@
* \author Russell Bryant <russell@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 278272 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <sys/time.h>
#include <signal.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/bridging.c
^
|
@@ -23,9 +23,13 @@
* \author Joshua Colp <jcolp@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 319920 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369708 $")
#include <signal.h>
@@ -231,9 +235,6 @@
}
}
- /* Since all the channels are going away let's go ahead and stop our on thread */
- bridge->stop = 1;
-
return;
}
@@ -517,9 +518,14 @@
ao2_lock(bridge);
- bridge->stop = 1;
-
- bridge_poke(bridge);
+ if (bridge->thread != AST_PTHREADT_NULL) {
+ pthread_t thread = bridge->thread;
+ bridge->stop = 1;
+ bridge_poke(bridge);
+ ao2_unlock(bridge);
+ pthread_join(thread, NULL);
+ ao2_lock(bridge);
+ }
ast_debug(1, "Telling all channels in bridge %p to end and leave the party\n", bridge);
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/callerid.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 310636 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <time.h>
#include <math.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/ccss.c
^
|
@@ -21,9 +21,13 @@
* \author Mark Michelson <mmichelson@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 357940 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369238 $")
#include "asterisk/astobj2.h"
#include "asterisk/strings.h"
@@ -2590,8 +2594,13 @@
return NULL;
}
}
- ast_cc_agent_recalling(agent->core_id, "Generic agent %s is recalling", agent->device_name);
- ast_pbx_start(chan);
+ if (ast_pbx_start(chan)) {
+ ast_cc_failed(agent->core_id, "PBX failed to start for %s.", agent->device_name);
+ ast_hangup(chan);
+ return NULL;
+ }
+ ast_cc_agent_recalling(agent->core_id, "Generic agent %s is recalling",
+ agent->device_name);
return NULL;
}
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/cdr.c
^
|
@@ -31,9 +31,13 @@
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366167 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369366 $")
#include <signal.h>
@@ -289,9 +293,9 @@
cdr_get_tv(cdr->answer, raw ? NULL : fmt, workspace, workspacelen);
else if (!strcasecmp(name, "end"))
cdr_get_tv(cdr->end, raw ? NULL : fmt, workspace, workspacelen);
- else if (!strcasecmp(name, "duration"))
- snprintf(workspace, workspacelen, "%ld", cdr->duration ? cdr->duration : (long)ast_tvdiff_ms(ast_tvnow(), cdr->start) / 1000);
- else if (!strcasecmp(name, "billsec"))
+ else if (!strcasecmp(name, "duration")) {
+ snprintf(workspace, workspacelen, "%ld", cdr->end.tv_sec != 0 ? cdr->duration : (long)ast_tvdiff_ms(ast_tvnow(), cdr->start) / 1000);
+ } else if (!strcasecmp(name, "billsec"))
snprintf(workspace, workspacelen, "%ld", cdr->billsec || cdr->answer.tv_sec == 0 ? cdr->billsec : (long)ast_tvdiff_ms(ast_tvnow(), cdr->answer) / 1000);
else if (!strcasecmp(name, "disposition")) {
if (raw) {
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/cel.c
^
|
@@ -27,9 +27,13 @@
* as expected.
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 367292 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/channel.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368405 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
@@ -2731,12 +2735,18 @@
ast_string_field_set(chan, hangupsource, source);
}
bridge = ast_bridged_channel(chan);
+ if (bridge) {
+ ast_channel_ref(bridge);
+ }
ast_channel_unlock(chan);
- if (bridge && (force || ast_strlen_zero(bridge->hangupsource))) {
+ if (bridge) {
ast_channel_lock(bridge);
- ast_string_field_set(chan, hangupsource, source);
+ if (force || ast_strlen_zero(bridge->hangupsource)) {
+ ast_string_field_set(bridge, hangupsource, source);
+ }
ast_channel_unlock(bridge);
+ ast_channel_unref(bridge);
}
}
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/chanvars.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 149199 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/chanvars.h"
#include "asterisk/strings.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/cli.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366944 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
#include "asterisk/paths.h" /* use ast_config_AST_MODULE_DIR */
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/config.c
^
|
@@ -26,9 +26,13 @@
* See http://wiki.asterisk.org
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366880 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/paths.h" /* use ast_config_AST_CONFIG_DIR */
#include "asterisk/network.h" /* we do some sockaddr manipulation here */
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/data.c
^
|
@@ -22,9 +22,13 @@
* \author Eliel C. Sardanons (LU1ALY) <eliels@gmail.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366880 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/datastore.c
^
|
@@ -19,9 +19,13 @@
* \brief Asterisk datastore objects
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 273566 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/db.c
^
|
@@ -27,9 +27,13 @@
* licensing even further) we elect to use DB1 which is BSD licensed
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366094 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
#include "asterisk/paths.h" /* use ast_config_AST_DB */
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/devicestate.c
^
|
@@ -113,9 +113,13 @@
*
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366167 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
#include "asterisk/channel.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/dial.c
^
|
@@ -23,9 +23,13 @@
* \author Joshua Colp <jcolp@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 335064 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <sys/time.h>
#include <signal.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/dns.c
^
|
@@ -29,9 +29,13 @@
*
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 205214 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/network.h"
#include <arpa/nameser.h> /* res_* functions */
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/dnsmgr.c
^
|
@@ -28,9 +28,13 @@
* thread is in the middle of updating it to the new address.
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 360471 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
#include <regex.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/dsp.c
^
|
@@ -40,9 +40,13 @@
detriment.
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 349728 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <math.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/enum.c
^
|
@@ -45,9 +45,13 @@
* \todo The service type selection needs to be redone.
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366880 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <sys/socket.h>
#include <netinet/in.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/event.c
^
|
@@ -23,9 +23,13 @@
* \author Russell Bryant <russell@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366167 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/features.c
^
|
@@ -29,7 +29,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369690 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369327 $")
#include "asterisk/_private.h"
@@ -933,8 +933,9 @@
ast_clear_flag(xferchan, AST_FLAGS_ALL);
ast_channel_clear_softhangup(xferchan, AST_SOFTHANGUP_ALL);
- if (ast_do_masquerade(xferchan) || ast_pbx_start(xferchan)) {
- /* Failed to do masquerade or could not start PBX. */
+ ast_do_masquerade(xferchan);
+ if (ast_pbx_start(xferchan)) {
+ /* Failed to start PBX. */
ast_hangup(xferchan);
}
}
@@ -955,7 +956,6 @@
static void *bridge_call_thread(void *data)
{
struct ast_bridge_thread_obj *tobj = data;
- int res;
tobj->chan->appl = !tobj->return_to_pbx ? "Transferred Call" : "ManagerBridge";
tobj->chan->data = tobj->peer->name;
@@ -967,8 +967,7 @@
if (tobj->return_to_pbx) {
if (!ast_check_hangup(tobj->peer)) {
ast_log(LOG_VERBOSE, "putting peer %s into PBX again\n", tobj->peer->name);
- res = ast_pbx_start(tobj->peer);
- if (res != AST_PBX_SUCCESS) {
+ if (ast_pbx_start(tobj->peer)) {
ast_log(LOG_WARNING, "FAILED continuing PBX on peer %s\n", tobj->peer->name);
ast_hangup(tobj->peer);
}
@@ -977,8 +976,7 @@
}
if (!ast_check_hangup(tobj->chan)) {
ast_log(LOG_VERBOSE, "putting chan %s into PBX again\n", tobj->chan->name);
- res = ast_pbx_start(tobj->chan);
- if (res != AST_PBX_SUCCESS) {
+ if (ast_pbx_start(tobj->chan)) {
ast_log(LOG_WARNING, "FAILED continuing PBX on chan %s\n", tobj->chan->name);
ast_hangup(tobj->chan);
}
@@ -1001,7 +999,7 @@
*
* Create thread and attributes, call bridge_call_thread
*/
-static void bridge_call_thread_launch(void *data)
+static void bridge_call_thread_launch(struct ast_bridge_thread_obj *data)
{
pthread_t thread;
pthread_attr_t attr;
@@ -1010,7 +1008,9 @@
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
if (ast_pthread_create(&thread, &attr, bridge_call_thread, data)) {
- ast_log(LOG_WARNING, "Failed to create thread for parked call.\n");
+ ast_hangup(data->chan);
+ ast_hangup(data->peer);
+ ast_log(LOG_ERROR, "Failed to create bridge_call_thread.\n");
}
pthread_attr_destroy(&attr);
memset(&sched, 0, sizeof(sched));
@@ -2809,7 +2809,12 @@
xferchan->readformat = transferee->readformat;
xferchan->writeformat = transferee->writeformat;
- ast_channel_masquerade(xferchan, transferee);
+ if (ast_channel_masquerade(xferchan, transferee)) {
+ ast_hangup(xferchan);
+ ast_hangup(newchan);
+ ast_party_connected_line_free(&connected_line);
+ return -1;
+ }
ast_explicit_goto(xferchan, transferee->context, transferee->exten, transferee->priority);
xferchan->_state = AST_STATE_UP;
ast_clear_flag(xferchan, AST_FLAGS_ALL);
@@ -6799,42 +6804,54 @@
* \brief Actual bridge
* \param chan
* \param tmpchan
- *
+ *
* Stop hold music, lock both channels, masq channels,
* after bridge return channel to next priority.
+ *
+ * \retval 0 on success.
+ * \retval -1 on error.
*/
-static void do_bridge_masquerade(struct ast_channel *chan, struct ast_channel *tmpchan)
+static int do_bridge_masquerade(struct ast_channel *chan, struct ast_channel *tmpchan)
{
+ const char *context;
+ const char *exten;
+ int priority;
+
ast_moh_stop(chan);
ast_channel_lock_both(chan, tmpchan);
+ context = ast_strdupa(chan->context);
+ exten = ast_strdupa(chan->exten);
+ priority = chan->priority;
ast_setstate(tmpchan, chan->_state);
tmpchan->readformat = chan->readformat;
tmpchan->writeformat = chan->writeformat;
ast_channel_unlock(chan);
ast_channel_unlock(tmpchan);
- ast_channel_masquerade(tmpchan, chan);
-
- /* must be done without any channel locks held */
+ /* Masquerade setup and execution must be done without any channel locks held */
+ if (ast_channel_masquerade(tmpchan, chan)) {
+ return -1;
+ }
ast_do_masquerade(tmpchan);
/* when returning from bridge, the channel will continue at the next priority */
- ast_explicit_goto(tmpchan, chan->context, chan->exten, chan->priority + 1);
+ ast_explicit_goto(tmpchan, context, exten, priority + 1);
+
+ return 0;
}
/*!
* \brief Bridge channels together
* \param s
* \param m
- *
- * Make sure valid channels were specified,
+ *
+ * Make sure valid channels were specified,
* send errors if any of the channels could not be found/locked, answer channels if needed,
- * create the placeholder channels and grab the other channels
- * make the channels compatible, send error if we fail doing so
+ * create the placeholder channels and grab the other channels
+ * make the channels compatible, send error if we fail doing so
* setup the bridge thread object and start the bridge.
- *
- * \retval 0 on success or on incorrect use.
- * \retval 1 on failure to bridge channels.
+ *
+ * \retval 0
*/
static int action_bridge(struct mansession *s, const struct message *m)
{
@@ -6844,6 +6861,7 @@
struct ast_channel *chana = NULL, *chanb = NULL, *chans[2];
struct ast_channel *tmpchana = NULL, *tmpchanb = NULL;
struct ast_bridge_thread_obj *tobj = NULL;
+ char buf[256];
/* make sure valid channels were specified */
if (ast_strlen_zero(channela) || ast_strlen_zero(channelb)) {
@@ -6853,10 +6871,7 @@
/* Start with chana */
chana = ast_channel_get_by_name_prefix(channela, strlen(channela));
-
- /* send errors if any of the channels could not be found/locked */
if (!chana) {
- char buf[256];
snprintf(buf, sizeof(buf), "Channel1 does not exists: %s", channela);
astman_send_error(s, m, buf);
return 0;
@@ -6871,21 +6886,25 @@
NULL, NULL, chana->linkedid, 0, "Bridge/%s", chana->name))) {
astman_send_error(s, m, "Unable to create temporary channel!");
chana = ast_channel_unref(chana);
- return 1;
+ return 0;
}
- do_bridge_masquerade(chana, tmpchana);
+ if (do_bridge_masquerade(chana, tmpchana)) {
+ snprintf(buf, sizeof(buf), "Unable to masquerade channel %s!", channela);
+ astman_send_error(s, m, buf);
+ ast_hangup(tmpchana);
+ chana = ast_channel_unref(chana);
+ return 0;
+ }
chana = ast_channel_unref(chana);
/* now do chanb */
chanb = ast_channel_get_by_name_prefix(channelb, strlen(channelb));
- /* send errors if any of the channels could not be found/locked */
if (!chanb) {
- char buf[256];
snprintf(buf, sizeof(buf), "Channel2 does not exists: %s", channelb);
- ast_hangup(tmpchana);
astman_send_error(s, m, buf);
+ ast_hangup(tmpchana);
return 0;
}
@@ -6899,10 +6918,17 @@
astman_send_error(s, m, "Unable to create temporary channels!");
ast_hangup(tmpchana);
chanb = ast_channel_unref(chanb);
- return 1;
+ return 0;
}
- do_bridge_masquerade(chanb, tmpchanb);
+ if (do_bridge_masquerade(chanb, tmpchanb)) {
+ snprintf(buf, sizeof(buf), "Unable to masquerade channel %s!", channelb);
+ astman_send_error(s, m, buf);
+ ast_hangup(tmpchana);
+ ast_hangup(tmpchanb);
+ chanb = ast_channel_unref(chanb);
+ return 0;
+ }
chanb = ast_channel_unref(chanb);
@@ -6912,7 +6938,7 @@
astman_send_error(s, m, "Could not make channels compatible for manager bridge");
ast_hangup(tmpchana);
ast_hangup(tmpchanb);
- return 1;
+ return 0;
}
/* setup the bridge thread object and start the bridge */
@@ -6921,7 +6947,7 @@
astman_send_error(s, m, "Unable to spawn a new bridge thread");
ast_hangup(tmpchana);
ast_hangup(tmpchanb);
- return 1;
+ return 0;
}
tobj->chan = tmpchana;
@@ -7497,7 +7523,7 @@
* \brief Bridge channels
* \param chan
* \param data channel to bridge with.
- *
+ *
* Split data, check we aren't bridging with ourself, check valid channel,
* answer call if not already, check compatible channels, setup bridge config
* now bridge call, if transfered party hangs up return to PBX extension.
@@ -7515,7 +7541,7 @@
AST_APP_ARG(dest_chan);
AST_APP_ARG(options);
);
-
+
if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "Bridge require at least 1 argument specifying the other end of the bridge\n");
return -1;
@@ -7530,11 +7556,11 @@
if (!strcmp(chan->name, args.dest_chan)) {
ast_log(LOG_WARNING, "Unable to bridge channel %s with itself\n", chan->name);
ast_manager_event(chan, EVENT_FLAG_CALL, "BridgeExec",
- "Response: Failed\r\n"
- "Reason: Unable to bridge channel to itself\r\n"
- "Channel1: %s\r\n"
- "Channel2: %s\r\n",
- chan->name, args.dest_chan);
+ "Response: Failed\r\n"
+ "Reason: Unable to bridge channel to itself\r\n"
+ "Channel1: %s\r\n"
+ "Channel2: %s\r\n",
+ chan->name, args.dest_chan);
pbx_builtin_setvar_helper(chan, "BRIDGERESULT", "LOOP");
return 0;
}
@@ -7542,34 +7568,61 @@
/* make sure we have a valid end point */
if (!(current_dest_chan = ast_channel_get_by_name_prefix(args.dest_chan,
strlen(args.dest_chan)))) {
- ast_log(LOG_WARNING, "Bridge failed because channel %s does not exists or we "
- "cannot get its lock\n", args.dest_chan);
+ ast_log(LOG_WARNING, "Bridge failed because channel %s does not exist\n",
+ args.dest_chan);
ast_manager_event(chan, EVENT_FLAG_CALL, "BridgeExec",
- "Response: Failed\r\n"
- "Reason: Cannot grab end point\r\n"
- "Channel1: %s\r\n"
- "Channel2: %s\r\n", chan->name, args.dest_chan);
+ "Response: Failed\r\n"
+ "Reason: Channel2 does not exist\r\n"
+ "Channel1: %s\r\n"
+ "Channel2: %s\r\n", chan->name, args.dest_chan);
pbx_builtin_setvar_helper(chan, "BRIDGERESULT", "NONEXISTENT");
return 0;
}
- /* answer the channel if needed */
- if (current_dest_chan->_state != AST_STATE_UP) {
- ast_answer(current_dest_chan);
- }
-
/* try to allocate a place holder where current_dest_chan will be placed */
if (!(final_dest_chan = ast_channel_alloc(0, AST_STATE_DOWN, NULL, NULL, NULL,
NULL, NULL, current_dest_chan->linkedid, 0, "Bridge/%s", current_dest_chan->name))) {
ast_log(LOG_WARNING, "Cannot create placeholder channel for chan %s\n", args.dest_chan);
ast_manager_event(chan, EVENT_FLAG_CALL, "BridgeExec",
- "Response: Failed\r\n"
- "Reason: cannot create placeholder\r\n"
- "Channel1: %s\r\n"
- "Channel2: %s\r\n", chan->name, args.dest_chan);
+ "Response: Failed\r\n"
+ "Reason: Cannot create placeholder channel\r\n"
+ "Channel1: %s\r\n"
+ "Channel2: %s\r\n", chan->name, args.dest_chan);
+ pbx_builtin_setvar_helper(chan, "BRIDGERESULT", "FAILURE");
+ ast_channel_unref(current_dest_chan);
+ return 0;
+ }
+
+ if (ast_test_flag(&opts, OPT_DURATION_LIMIT)
+ && !ast_strlen_zero(opt_args[OPT_ARG_DURATION_LIMIT])
+ && ast_bridge_timelimit(chan, &bconfig, opt_args[OPT_ARG_DURATION_LIMIT], &calldurationlimit)) {
+ ast_manager_event(chan, EVENT_FLAG_CALL, "BridgeExec",
+ "Response: Failed\r\n"
+ "Reason: Cannot setup bridge time limit\r\n"
+ "Channel1: %s\r\n"
+ "Channel2: %s\r\n", chan->name, args.dest_chan);
+ ast_hangup(final_dest_chan);
+ pbx_builtin_setvar_helper(chan, "BRIDGERESULT", "FAILURE");
+ current_dest_chan = ast_channel_unref(current_dest_chan);
+ goto done;
}
- do_bridge_masquerade(current_dest_chan, final_dest_chan);
+ if (do_bridge_masquerade(current_dest_chan, final_dest_chan)) {
+ ast_manager_event(chan, EVENT_FLAG_CALL, "BridgeExec",
+ "Response: Failed\r\n"
+ "Reason: Cannot masquerade channels\r\n"
+ "Channel1: %s\r\n"
+ "Channel2: %s\r\n", chan->name, args.dest_chan);
+ ast_hangup(final_dest_chan);
+ pbx_builtin_setvar_helper(chan, "BRIDGERESULT", "FAILURE");
+ current_dest_chan = ast_channel_unref(current_dest_chan);
+ goto done;
+ }
+
+ /* answer the channel if needed */
+ if (final_dest_chan->_state != AST_STATE_UP) {
+ ast_answer(final_dest_chan);
+ }
chans[0] = current_dest_chan;
chans[1] = final_dest_chan;
@@ -7579,21 +7632,26 @@
if (ast_channel_make_compatible(chan, final_dest_chan) < 0) {
ast_log(LOG_WARNING, "Could not make channels %s and %s compatible for bridge\n", chan->name, final_dest_chan->name);
ast_manager_event_multichan(EVENT_FLAG_CALL, "BridgeExec", 2, chans,
- "Response: Failed\r\n"
- "Reason: Could not make channels compatible for bridge\r\n"
- "Channel1: %s\r\n"
- "Channel2: %s\r\n", chan->name, final_dest_chan->name);
- ast_hangup(final_dest_chan); /* may be we should return this channel to the PBX? */
+ "Response: Failed\r\n"
+ "Reason: Could not make channels compatible for bridge\r\n"
+ "Channel1: %s\r\n"
+ "Channel2: %s\r\n", chan->name, final_dest_chan->name);
+
+ /* Maybe we should return this channel to the PBX? */
+ ast_hangup(final_dest_chan);
+
pbx_builtin_setvar_helper(chan, "BRIDGERESULT", "INCOMPATIBLE");
current_dest_chan = ast_channel_unref(current_dest_chan);
- return 0;
+ goto done;
}
/* Report that the bridge will be successfull */
ast_manager_event_multichan(EVENT_FLAG_CALL, "BridgeExec", 2, chans,
- "Response: Success\r\n"
- "Channel1: %s\r\n"
- "Channel2: %s\r\n", chan->name, final_dest_chan->name);
+ "Response: Success\r\n"
+ "Channel1: %s\r\n"
+ "Channel2: %s\r\n", chan->name, final_dest_chan->name);
+
+ current_dest_chan = ast_channel_unref(current_dest_chan);
/* we have 2 valid channels to bridge, now it is just a matter of setting up the bridge config and starting the bridge */
if (ast_test_flag(&opts, BRIDGE_OPT_PLAYTONE) && !ast_strlen_zero(xfersound)) {
@@ -7602,13 +7660,6 @@
ast_log(LOG_WARNING, "Failed to play courtesy tone on %s\n", final_dest_chan->name);
}
}
-
- current_dest_chan = ast_channel_unref(current_dest_chan);
-
- if (ast_test_flag(&opts, OPT_DURATION_LIMIT) && !ast_strlen_zero(opt_args[OPT_ARG_DURATION_LIMIT])) {
- if (ast_bridge_timelimit(chan, &bconfig, opt_args[OPT_ARG_DURATION_LIMIT], &calldurationlimit))
- goto done;
- }
if (ast_test_flag(&opts, OPT_CALLEE_TRANSFER))
ast_set_flag(&(bconfig.features_callee), AST_FEATURE_REDIRECT);
@@ -7620,41 +7671,47 @@
ast_set_flag(&(bconfig.features_caller), AST_FEATURE_DISCONNECT);
if (ast_test_flag(&opts, OPT_CALLEE_MONITOR))
ast_set_flag(&(bconfig.features_callee), AST_FEATURE_AUTOMON);
- if (ast_test_flag(&opts, OPT_CALLER_MONITOR))
+ if (ast_test_flag(&opts, OPT_CALLER_MONITOR))
ast_set_flag(&(bconfig.features_caller), AST_FEATURE_AUTOMON);
if (ast_test_flag(&opts, OPT_CALLEE_PARK))
ast_set_flag(&(bconfig.features_callee), AST_FEATURE_PARKCALL);
if (ast_test_flag(&opts, OPT_CALLER_PARK))
ast_set_flag(&(bconfig.features_caller), AST_FEATURE_PARKCALL);
+ /*
+ * Don't let the after-bridge code run the h-exten. We want to
+ * continue in the dialplan.
+ */
+ ast_set_flag(chan, AST_FLAG_BRIDGE_HANGUP_DONT);
ast_bridge_call(chan, final_dest_chan, &bconfig);
- /* the bridge has ended, set BRIDGERESULT to SUCCESS. If the other channel has not been hung up, return it to the PBX */
+ /* The bridge has ended, set BRIDGERESULT to SUCCESS. */
pbx_builtin_setvar_helper(chan, "BRIDGERESULT", "SUCCESS");
- if (!ast_check_hangup(final_dest_chan) && !ast_test_flag(&opts, OPT_CALLEE_KILL)) {
- ast_debug(1, "starting new PBX in %s,%s,%d for chan %s\n",
- final_dest_chan->context, final_dest_chan->exten,
- final_dest_chan->priority, final_dest_chan->name);
- if (ast_pbx_start(final_dest_chan) != AST_PBX_SUCCESS) {
- ast_log(LOG_WARNING, "FAILED continuing PBX on dest chan %s\n", final_dest_chan->name);
+ /* If the other channel has not been hung up, return it to the PBX */
+ if (!ast_check_hangup(final_dest_chan)) {
+ if (!ast_test_flag(&opts, OPT_CALLEE_KILL)) {
+ ast_debug(1, "starting new PBX in %s,%s,%d for chan %s\n",
+ final_dest_chan->context, final_dest_chan->exten,
+ final_dest_chan->priority, final_dest_chan->name);
+
+ if (ast_pbx_start(final_dest_chan)) {
+ ast_log(LOG_WARNING, "FAILED continuing PBX on dest chan %s\n", final_dest_chan->name);
+ ast_hangup(final_dest_chan);
+ } else {
+ ast_debug(1, "SUCCESS continuing PBX on chan %s\n", final_dest_chan->name);
+ }
+ } else {
ast_hangup(final_dest_chan);
- } else
- ast_debug(1, "SUCCESS continuing PBX on chan %s\n", final_dest_chan->name);
+ }
} else {
- ast_debug(1, "hangup chan %s since the other endpoint has hung up or the x flag was passed\n", final_dest_chan->name);
+ ast_debug(1, "chan %s was hungup\n", final_dest_chan->name);
ast_hangup(final_dest_chan);
}
done:
- if (bconfig.warning_sound) {
- ast_free((char *)bconfig.warning_sound);
- }
- if (bconfig.end_sound) {
- ast_free((char *)bconfig.end_sound);
- }
- if (bconfig.start_sound) {
- ast_free((char *)bconfig.start_sound);
- }
+ ast_free((char *) bconfig.warning_sound);
+ ast_free((char *) bconfig.end_sound);
+ ast_free((char *) bconfig.start_sound);
return 0;
}
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/file.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 349731 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <dirent.h>
#include <sys/stat.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/fixedjitterbuf.c
^
|
@@ -25,9 +25,13 @@
* \author Slav Klenov <slav@securax.org>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 273641 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <assert.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/frame.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 362485 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
#include "asterisk/lock.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/framehook.c
^
|
@@ -23,9 +23,13 @@
* \author David Vossel <dvossel@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 287647 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/channel.h"
#include "asterisk/linkedlists.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/fskmodem.c
^
|
@@ -21,6 +21,10 @@
* \note Includes code and algorithms from the Zapata library.
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
#ifdef INTEGER_CALLERID
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/fskmodem_float.c
^
|
@@ -28,9 +28,13 @@
*
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 316265 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <stdio.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/fskmodem_int.c
^
|
@@ -28,9 +28,13 @@
*
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 132510 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/fskmodem.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/global_datastores.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Michelson <mmichelson@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 268894 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/global_datastores.h"
#include "asterisk/linkedlists.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/hashtab.c
^
|
@@ -22,9 +22,13 @@
* \author Steve Murphy <murf@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 181028 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <ctype.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/heap.c
^
|
@@ -23,9 +23,13 @@
* \author Russell Bryant <russell@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 304950 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/heap.h"
#include "asterisk/utils.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/image.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 200620 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <sys/time.h>
#include <sys/stat.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/indications.c
^
|
@@ -23,9 +23,13 @@
* \author Russell Bryant <russell@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 352955 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <math.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/io.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 182847 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <termios.h>
#include <sys/ioctl.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/jitterbuf.c
^
|
@@ -27,9 +27,13 @@
*
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 362485 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "jitterbuf.h"
#include "asterisk/utils.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/loader.c
^
|
@@ -27,9 +27,13 @@
* - See ModMngMnt
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 356291 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
#include "asterisk/paths.h" /* use ast_config_AST_MODULE_DIR */
@@ -1066,13 +1070,13 @@
if (mod->flags.running)
continue;
- order = add_to_load_order(mod->resource, &load_order, 0);
+ add_to_load_order(mod->resource, &load_order, 0);
}
#ifdef LOADABLE_MODULES
/* if we are allowed to load dynamic modules, scan the directory for
for all available modules and add them as well */
- if ((dir = opendir(ast_config_AST_MODULE_DIR))) {
+ if ((dir = opendir(ast_config_AST_MODULE_DIR))) {
while ((dirent = readdir(dir))) {
int ld = strlen(dirent->d_name);
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/lock.c
^
|
@@ -21,9 +21,13 @@
* \brief General Asterisk locking.
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 314358 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/lock.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/logger.c
^
|
@@ -25,9 +25,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 364635 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
/* When we include logger.h again it will trample on some stuff in syslog.h, but
* nothing we care about in here. */
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/md5.c
^
|
@@ -22,7 +22,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 359059 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368719 $")
#include "asterisk/endian.h"
#include "asterisk/md5.h"
@@ -123,6 +123,7 @@
{
unsigned count;
unsigned char *p;
+ uint32_t *in_buf;
/* Compute number of bytes mod 64 */
count = (ctx->bits[0] >> 3) & 0x3F;
@@ -151,8 +152,9 @@
byteReverse(ctx->in, 14);
/* Append length in bits and transform */
- ((uint32_t *) ctx->in)[14] = ctx->bits[0];
- ((uint32_t *) ctx->in)[15] = ctx->bits[1];
+ in_buf = (uint32_t *) ctx->in;
+ in_buf[14] = ctx->bits[0];
+ in_buf[15] = ctx->bits[1];
MD5Transform(ctx->buf, (uint32_t *) ctx->in);
byteReverse((unsigned char *) ctx->buf, 4);
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/netsock.c
^
|
@@ -25,9 +25,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 353175 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__Darwin__)
#include <net/if_dl.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/netsock2.c
^
|
@@ -23,9 +23,13 @@
* \author Viagénie <asteriskv6@viagenie.ca>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366880 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369108 $")
#include "asterisk/config.h"
#include "asterisk/netsock2.h"
@@ -231,8 +235,10 @@
"addresses. Ignoring all but the first.\n");
}
- addr->len = res->ai_addrlen;
- memcpy(&addr->ss, res->ai_addr, addr->len);
+ if (addr) {
+ addr->len = res->ai_addrlen;
+ memcpy(&addr->ss, res->ai_addr, addr->len);
+ }
freeaddrinfo(res);
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/pbx.c
^
|
@@ -22,9 +22,14 @@
*
* \author Mark Spencer <markster@digium.com>
*/
+
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 367469 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369869 $")
#include "asterisk/_private.h"
#include "asterisk/paths.h" /* use ast_config_AST_SYSTEM_NAME */
@@ -229,7 +234,9 @@
</description>
<see-also>
<ref type="application">Exec</ref>
+ <ref type="application">ExecIf</ref>
<ref type="application">TryExec</ref>
+ <ref type="application">GotoIfTime</ref>
</see-also>
</application>
<application name="Goto" language="en_US">
@@ -273,10 +280,12 @@
<parameter name="condition" required="true" />
<parameter name="destination" required="true" argsep=":">
<argument name="labeliftrue">
- <para>Continue at <replaceable>labeliftrue</replaceable> if the condition is true.</para>
+ <para>Continue at <replaceable>labeliftrue</replaceable> if the condition is true.
+ Takes the form similar to Goto() of [[context,]extension,]priority.</para>
</argument>
<argument name="labeliffalse">
- <para>Continue at <replaceable>labeliffalse</replaceable> if the condition is false.</para>
+ <para>Continue at <replaceable>labeliffalse</replaceable> if the condition is false.
+ Takes the form similar to Goto() of [[context,]extension,]priority.</para>
</argument>
</parameter>
</syntax>
@@ -315,8 +324,14 @@
<argument name="timezone" required="false" />
</parameter>
<parameter name="destination" required="true" argsep=":">
- <argument name="labeliftrue" />
- <argument name="labeliffalse" />
+ <argument name="labeliftrue">
+ <para>Continue at <replaceable>labeliftrue</replaceable> if the condition is true.
+ Takes the form similar to Goto() of [[context,]extension,]priority.</para>
+ </argument>
+ <argument name="labeliffalse">
+ <para>Continue at <replaceable>labeliffalse</replaceable> if the condition is false.
+ Takes the form similar to Goto() of [[context,]extension,]priority.</para>
+ </argument>
</parameter>
</syntax>
<description>
@@ -332,6 +347,7 @@
</description>
<see-also>
<ref type="application">GotoIf</ref>
+ <ref type="application">Goto</ref>
<ref type="function">IFTIME</ref>
<ref type="function">TESTTIME</ref>
</see-also>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/plc.c
^
|
@@ -30,9 +30,13 @@
* \author Steve Underwood <steveu@coppice.org>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 316265 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <math.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/privacy.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 89511 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <sys/time.h>
#include <signal.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/rtp_engine.c
^
|
@@ -23,9 +23,13 @@
* \author Joshua Colp <jcolp@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 356604 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <math.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/say.c
^
|
@@ -31,9 +31,13 @@
* IP Crossing Co., Ltd.
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 367027 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <netinet/in.h>
#include <time.h>
@@ -1907,7 +1911,7 @@
char *b = buf;
b = pl_append(b, odm->dziesiatki[m100 / 10]);
b = pl_append(b, odm->separator_dziesiatek);
- b = pl_append(b, odm->cyfry2[m100 % 10]);
+ pl_append(b, odm->cyfry2[m100 % 10]);
pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, buf);
}
}
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/sched.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 359157 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#ifdef DEBUG_SCHEDULER
#define DEBUG(a) do { \
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/security_events.c
^
|
@@ -24,9 +24,13 @@
* \author Russell Bryant <russell@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 206021 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/utils.h"
#include "asterisk/strings.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/slinfactory.c
^
|
@@ -24,9 +24,13 @@
* \author Anthony Minessale <anthmct@yahoo.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 227580 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/frame.h"
#include "asterisk/slinfactory.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/srv.c
^
|
@@ -29,9 +29,13 @@
* \note Funding provided by nic.at
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 321392 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <netinet/in.h>
#include <arpa/nameser.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/ssl.c
^
|
@@ -23,9 +23,13 @@
* \author Russell Bryant <russell@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 205532 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#ifdef HAVE_OPENSSL
#include <openssl/ssl.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/stdtime/localtime.c
^
|
@@ -44,9 +44,13 @@
/*LINTLIBRARY*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 362485 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <signal.h>
#include <sys/stat.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/strcompat.c
^
|
@@ -19,6 +19,10 @@
* \brief Compatibility functions for strsep and strtoq missing on Solaris
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
#include <ctype.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/strings.c
^
|
@@ -31,9 +31,13 @@
</category>
***/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 263904 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/strings.h"
#include "asterisk/pbx.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/stun.c
^
|
@@ -26,9 +26,13 @@
* \note STUN is defined in RFC 3489.
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 346700 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
#include "asterisk/stun.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/syslog.c
^
|
@@ -22,11 +22,15 @@
* \author Sean Bright <sean@malleable.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
#include "asterisk/utils.h"
#include "asterisk/syslog.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 203605 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <syslog.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/taskprocessor.c
^
|
@@ -23,9 +23,13 @@
* \author Dwayne Hubbard <dhubbard@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 352955 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
#include "asterisk/module.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/tcptls.c
^
|
@@ -25,9 +25,13 @@
* \author Brett Bryant <brettbryant@gmail.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 370104 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369731 $")
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/tdd.c
^
|
@@ -27,9 +27,13 @@
* \note Includes code and algorithms from the Zapata library.
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 362485 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <time.h>
#include <math.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/term.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 330107 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
#include <sys/time.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/test.c
^
|
@@ -25,9 +25,13 @@
* \author Russell Bryant <russell@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 352612 $");
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $");
#include "asterisk/_private.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/threadstorage.c
^
|
@@ -23,6 +23,10 @@
* \author Kevin P. Fleming <kpfleming@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
#include "asterisk/_private.h"
@@ -34,7 +38,7 @@
#else /* !defined(DEBUG_THREADLOCALS) */
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 198558 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/strings.h"
#include "asterisk/utils.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/timing.c
^
|
@@ -25,9 +25,13 @@
* \author Russell Bryant <russell@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 294278 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/translate.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 362359 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <sys/time.h>
#include <sys/resource.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/udptl.c
^
|
@@ -48,10 +48,13 @@
* - app_fax.c
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 359457 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <sys/time.h>
#include <signal.h>
@@ -1355,10 +1358,10 @@
ast_log(LOG_WARNING, "Disabling UDPTL checksums is not supported on this operating system!\n");
#endif
}
- if ((s = ast_variable_retrieve(cfg, "general", "T38FaxUdpEC"))) {
+ if (ast_variable_retrieve(cfg, "general", "T38FaxUdpEC")) {
ast_log(LOG_WARNING, "T38FaxUdpEC in udptl.conf is no longer supported; use the t38pt_udptl configuration option in sip.conf instead.\n");
}
- if ((s = ast_variable_retrieve(cfg, "general", "T38FaxMaxDatagram"))) {
+ if (ast_variable_retrieve(cfg, "general", "T38FaxMaxDatagram")) {
ast_log(LOG_WARNING, "T38FaxMaxDatagram in udptl.conf is no longer supported; value is now supplied by T.38 applications.\n");
}
if ((s = ast_variable_retrieve(cfg, "general", "UDPTLFECEntries"))) {
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/ulaw.c
^
|
@@ -23,9 +23,13 @@
* \author Mark Spencer <markster@digium.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 213179 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/ulaw.h"
#include "asterisk/logger.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/utils.c
^
|
@@ -23,9 +23,13 @@
* Please consult the CODING GUIDELINES for more information.
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 362354 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <ctype.h>
#include <sys/stat.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/xml.c
^
|
@@ -21,11 +21,15 @@
* \author Eliel C. Sardanons (LU1ALY) <eliels@gmail.com>
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
#include "asterisk/xml.h"
#include "asterisk/logger.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 258517 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#if defined(HAVE_LIBXML2)
#include <libxml/parser.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/main/xmldoc.c
^
|
@@ -23,9 +23,13 @@
* \extref libxml2 http://www.xmlsoft.org/
*/
+/*** MODULEINFO
+ <support_level>core</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366880 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include "asterisk/_private.h"
#include "asterisk/paths.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/pbx/dundi-parser.c
^
|
@@ -22,9 +22,13 @@
*
*/
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366409 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <sys/socket.h>
#include <netinet/in.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/pbx/pbx_config.c
^
|
@@ -29,7 +29,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368039 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368738 $")
#include <ctype.h>
@@ -1467,7 +1467,7 @@
}
} else if (!strcasecmp(v->name, "exten")) {
int ipri;
- char *plus, *firstp;
+ char *plus;
char *pri, *appl, *data, *cidmatch;
if (!(stringp = tc = ast_strdup(v->value))) {
@@ -1537,7 +1537,7 @@
}
appl = S_OR(stringp, "");
/* Find the first occurrence of '(' */
- if (!(firstp = strchr(appl, '('))) {
+ if (!strchr(appl, '(')) {
/* No arguments */
data = "";
} else {
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/res/ael/pval.c
^
|
@@ -23,9 +23,13 @@
*
*/
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368039 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
#include <sys/types.h>
#include <stdlib.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/res/ais/clm.c
^
|
@@ -28,9 +28,13 @@
* (Cluster Membership) Service.
*/
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 359053 $");
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $");
#include <stdlib.h>
#include <stdio.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/res/ais/evt.c
^
|
@@ -28,9 +28,13 @@
* (Event) Service.
*/
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 359053 $");
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $");
#include <stdlib.h>
#include <stdio.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/res/res_adsi.c
^
|
@@ -31,12 +31,12 @@
*/
/*** MODULEINFO
- <support_level>extended</support_level>
+ <support_level>core</support_level>
***/
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 359088 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369323 $")
#include <time.h>
#include <math.h>
@@ -49,8 +49,6 @@
#include "asterisk/module.h"
#include "asterisk/config.h"
#include "asterisk/file.h"
-
-#define AST_API_MODULE
#include "asterisk/adsi.h"
#define DEFAULT_ADSI_MAX_RETRIES 3
@@ -73,6 +71,35 @@
static int alignment = 0;
+static int adsi_begin_download(struct ast_channel *chan, char *service, unsigned char *fdn, unsigned char *sec, int version);
+static int adsi_end_download(struct ast_channel *chan);
+static int adsi_channel_restore(struct ast_channel *chan);
+static int adsi_print(struct ast_channel *chan, char **lines, int *align, int voice);
+static int adsi_load_session(struct ast_channel *chan, unsigned char *app, int ver, int data);
+static int adsi_unload_session(struct ast_channel *chan);
+static int adsi_transmit_message(struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype);
+static int adsi_transmit_message_full(struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype, int dowait);
+static int adsi_read_encoded_dtmf(struct ast_channel *chan, unsigned char *buf, int maxlen);
+static int adsi_connect_session(unsigned char *buf, unsigned char *fdn, int ver);
+static int adsi_query_cpeid(unsigned char *buf);
+static int adsi_query_cpeinfo(unsigned char *buf);
+static int adsi_get_cpeid(struct ast_channel *chan, unsigned char *cpeid, int voice);
+static int adsi_get_cpeinfo(struct ast_channel *chan, int *width, int *height, int *buttons, int voice);
+static int adsi_download_connect(unsigned char *buf, char *service, unsigned char *fdn, unsigned char *sec, int ver);
+static int adsi_disconnect_session(unsigned char *buf);
+static int adsi_download_disconnect(unsigned char *buf);
+static int adsi_data_mode(unsigned char *buf);
+static int adsi_clear_soft_keys(unsigned char *buf);
+static int adsi_clear_screen(unsigned char *buf);
+static int adsi_voice_mode(unsigned char *buf, int when);
+static int adsi_available(struct ast_channel *chan);
+static int adsi_display(unsigned char *buf, int page, int line, int just, int wrap, char *col1, char *col2);
+static int adsi_set_line(unsigned char *buf, int page, int line);
+static int adsi_load_soft_key(unsigned char *buf, int key, const char *llabel, const char *slabel, char *ret, int data);
+static int adsi_set_keys(unsigned char *buf, unsigned char *keys);
+static int adsi_input_control(unsigned char *buf, int page, int line, int display, int format, int just);
+static int adsi_input_format(unsigned char *buf, int num, int dir, int wrap, char *format1, char *format2);
+
static int adsi_generate(unsigned char *buf, int msgtype, unsigned char *msg, int msglen, int msgnum, int last, format_t codec)
{
int sum, x, bytes = 0;
@@ -326,7 +353,7 @@
return 0;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_begin_download)(struct ast_channel *chan, char *service, unsigned char *fdn, unsigned char *sec, int version)
+static int adsi_begin_download(struct ast_channel *chan, char *service, unsigned char *fdn, unsigned char *sec, int version)
{
int bytes = 0;
unsigned char buf[256];
@@ -334,8 +361,8 @@
/* Setup the resident soft key stuff, a piece at a time */
/* Upload what scripts we can for voicemail ahead of time */
- bytes += ast_adsi_download_connect(buf + bytes, service, fdn, sec, version);
- if (ast_adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DOWNLOAD, 0)) {
+ bytes += adsi_download_connect(buf + bytes, service, fdn, sec, version);
+ if (adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DOWNLOAD, 0)) {
return -1;
}
if (ast_readstring(chan, ack, 1, 10000, 10000, "")) {
@@ -348,21 +375,21 @@
return -1;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_end_download)(struct ast_channel *chan)
+static int adsi_end_download(struct ast_channel *chan)
{
int bytes = 0;
unsigned char buf[256];
/* Setup the resident soft key stuff, a piece at a time */
/* Upload what scripts we can for voicemail ahead of time */
- bytes += ast_adsi_download_disconnect(buf + bytes);
- if (ast_adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DOWNLOAD, 0)) {
+ bytes += adsi_download_disconnect(buf + bytes);
+ if (adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DOWNLOAD, 0)) {
return -1;
}
return 0;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_transmit_message_full)(struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype, int dowait)
+static int adsi_transmit_message_full(struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype, int dowait)
{
unsigned char *msgs[5] = { NULL, NULL, NULL, NULL, NULL };
int msglens[5], msgtypes[5], newdatamode = (chan->adsicpe & ADSI_FLAG_DATAMODE), res, x, writeformat = chan->writeformat, readformat = chan->readformat, waitforswitch = 0;
@@ -433,9 +460,9 @@
return res;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_transmit_message)(struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype)
+static int adsi_transmit_message(struct ast_channel *chan, unsigned char *msg, int msglen, int msgtype)
{
- return ast_adsi_transmit_message_full(chan, msg, msglen, msgtype, 1);
+ return adsi_transmit_message_full(chan, msg, msglen, msgtype, 1);
}
static inline int ccopy(unsigned char *dst, const unsigned char *src, int max)
@@ -449,7 +476,7 @@
return x;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_load_soft_key)(unsigned char *buf, int key, const char *llabel, const char *slabel, char *ret, int data)
+static int adsi_load_soft_key(unsigned char *buf, int key, const char *llabel, const char *slabel, char *ret, int data)
{
int bytes = 0;
@@ -490,7 +517,7 @@
return bytes;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_connect_session)(unsigned char *buf, unsigned char *fdn, int ver)
+static int adsi_connect_session(unsigned char *buf, unsigned char *fdn, int ver)
{
int bytes = 0, x;
@@ -514,7 +541,7 @@
}
-int AST_OPTIONAL_API_NAME(ast_adsi_download_connect)(unsigned char *buf, char *service, unsigned char *fdn, unsigned char *sec, int ver)
+static int adsi_download_connect(unsigned char *buf, char *service, unsigned char *fdn, unsigned char *sec, int ver)
{
int bytes = 0, x;
@@ -546,7 +573,7 @@
}
-int AST_OPTIONAL_API_NAME(ast_adsi_disconnect_session)(unsigned char *buf)
+static int adsi_disconnect_session(unsigned char *buf)
{
int bytes = 0;
@@ -561,7 +588,7 @@
}
-int AST_OPTIONAL_API_NAME(ast_adsi_query_cpeid)(unsigned char *buf)
+static int adsi_query_cpeid(unsigned char *buf)
{
int bytes = 0;
buf[bytes++] = ADSI_QUERY_CPEID;
@@ -571,7 +598,7 @@
return bytes;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_query_cpeinfo)(unsigned char *buf)
+static int adsi_query_cpeinfo(unsigned char *buf)
{
int bytes = 0;
buf[bytes++] = ADSI_QUERY_CONFIG;
@@ -581,7 +608,7 @@
return bytes;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_read_encoded_dtmf)(struct ast_channel *chan, unsigned char *buf, int maxlen)
+static int adsi_read_encoded_dtmf(struct ast_channel *chan, unsigned char *buf, int maxlen)
{
int bytes = 0, res, gotstar = 0, pos = 0;
unsigned char current = 0;
@@ -618,20 +645,20 @@
return bytes;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_get_cpeid)(struct ast_channel *chan, unsigned char *cpeid, int voice)
+static int adsi_get_cpeid(struct ast_channel *chan, unsigned char *cpeid, int voice)
{
unsigned char buf[256] = "";
int bytes = 0, res;
- bytes += ast_adsi_data_mode(buf);
- ast_adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DISPLAY, 0);
+ bytes += adsi_data_mode(buf);
+ adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DISPLAY, 0);
bytes = 0;
- bytes += ast_adsi_query_cpeid(buf);
- ast_adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DISPLAY, 0);
+ bytes += adsi_query_cpeid(buf);
+ adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DISPLAY, 0);
/* Get response */
- res = ast_adsi_read_encoded_dtmf(chan, cpeid, 4);
+ res = adsi_read_encoded_dtmf(chan, cpeid, 4);
if (res != 4) {
ast_log(LOG_WARNING, "Got %d bytes back of encoded DTMF, expecting 4\n", res);
res = 0;
@@ -641,25 +668,25 @@
if (voice) {
bytes = 0;
- bytes += ast_adsi_voice_mode(buf, 0);
- ast_adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DISPLAY, 0);
+ bytes += adsi_voice_mode(buf, 0);
+ adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DISPLAY, 0);
/* Ignore the resulting DTMF B announcing it's in voice mode */
ast_waitfordigit(chan, 1000);
}
return res;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_get_cpeinfo)(struct ast_channel *chan, int *width, int *height, int *buttons, int voice)
+static int adsi_get_cpeinfo(struct ast_channel *chan, int *width, int *height, int *buttons, int voice)
{
unsigned char buf[256] = "";
int bytes = 0, res;
- bytes += ast_adsi_data_mode(buf);
- ast_adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DISPLAY, 0);
+ bytes += adsi_data_mode(buf);
+ adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DISPLAY, 0);
bytes = 0;
- bytes += ast_adsi_query_cpeinfo(buf);
- ast_adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DISPLAY, 0);
+ bytes += adsi_query_cpeinfo(buf);
+ adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DISPLAY, 0);
/* Get width */
if ((res = ast_readstring(chan, (char *) buf, 2, 1000, 500, "")) < 0) {
@@ -708,15 +735,15 @@
}
if (voice) {
bytes = 0;
- bytes += ast_adsi_voice_mode(buf, 0);
- ast_adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DISPLAY, 0);
+ bytes += adsi_voice_mode(buf, 0);
+ adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DISPLAY, 0);
/* Ignore the resulting DTMF B announcing it's in voice mode */
ast_waitfordigit(chan, 1000);
}
return res;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_data_mode)(unsigned char *buf)
+static int adsi_data_mode(unsigned char *buf)
{
int bytes = 0;
@@ -731,7 +758,7 @@
}
-int AST_OPTIONAL_API_NAME(ast_adsi_clear_soft_keys)(unsigned char *buf)
+static int adsi_clear_soft_keys(unsigned char *buf)
{
int bytes = 0;
@@ -746,7 +773,7 @@
}
-int AST_OPTIONAL_API_NAME(ast_adsi_clear_screen)(unsigned char *buf)
+static int adsi_clear_screen(unsigned char *buf)
{
int bytes = 0;
@@ -761,7 +788,7 @@
}
-int AST_OPTIONAL_API_NAME(ast_adsi_voice_mode)(unsigned char *buf, int when)
+static int adsi_voice_mode(unsigned char *buf, int when)
{
int bytes = 0;
@@ -778,7 +805,7 @@
}
-int AST_OPTIONAL_API_NAME(ast_adsi_available)(struct ast_channel *chan)
+static int adsi_available(struct ast_channel *chan)
{
int cpe = chan->adsicpe & 0xff;
if ((cpe == AST_ADSI_AVAILABLE) ||
@@ -788,7 +815,7 @@
return 0;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_download_disconnect)(unsigned char *buf)
+static int adsi_download_disconnect(unsigned char *buf)
{
int bytes = 0;
@@ -803,7 +830,7 @@
}
-int AST_OPTIONAL_API_NAME(ast_adsi_display)(unsigned char *buf, int page, int line, int just, int wrap,
+static int adsi_display(unsigned char *buf, int page, int line, int just, int wrap,
char *col1, char *col2)
{
int bytes = 0;
@@ -850,7 +877,7 @@
}
-int AST_OPTIONAL_API_NAME(ast_adsi_input_control)(unsigned char *buf, int page, int line, int display, int format, int just)
+static int adsi_input_control(unsigned char *buf, int page, int line, int display, int format, int just)
{
int bytes = 0;
@@ -873,7 +900,7 @@
return bytes;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_input_format)(unsigned char *buf, int num, int dir, int wrap, char *format1, char *format2)
+static int adsi_input_format(unsigned char *buf, int num, int dir, int wrap, char *format1, char *format2)
{
int bytes = 0;
@@ -893,7 +920,7 @@
return bytes;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_set_keys)(unsigned char *buf, unsigned char *keys)
+static int adsi_set_keys(unsigned char *buf, unsigned char *keys)
{
int bytes = 0, x;
@@ -909,7 +936,7 @@
return bytes;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_set_line)(unsigned char *buf, int page, int line)
+static int adsi_set_line(unsigned char *buf, int page, int line)
{
int bytes = 0;
@@ -940,14 +967,14 @@
static int total = 0;
static int speeds = 0;
-int AST_OPTIONAL_API_NAME(ast_adsi_channel_restore)(struct ast_channel *chan)
+static int adsi_channel_restore(struct ast_channel *chan)
{
unsigned char dsp[256] = "", keyd[6] = "";
int bytes, x;
/* Start with initial display setup */
bytes = 0;
- bytes += ast_adsi_set_line(dsp + bytes, ADSI_INFO_PAGE, 1);
+ bytes += adsi_set_line(dsp + bytes, ADSI_INFO_PAGE, 1);
/* Prepare key setup messages */
@@ -955,26 +982,26 @@
for (x = 0; x < speeds; x++) {
keyd[x] = ADSI_SPEED_DIAL + x;
}
- bytes += ast_adsi_set_keys(dsp + bytes, keyd);
+ bytes += adsi_set_keys(dsp + bytes, keyd);
}
- ast_adsi_transmit_message_full(chan, dsp, bytes, ADSI_MSG_DISPLAY, 0);
+ adsi_transmit_message_full(chan, dsp, bytes, ADSI_MSG_DISPLAY, 0);
return 0;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_print)(struct ast_channel *chan, char **lines, int *alignments, int voice)
+static int adsi_print(struct ast_channel *chan, char **lines, int *alignments, int voice)
{
unsigned char buf[4096];
int bytes = 0, res, x;
for (x = 0; lines[x]; x++) {
- bytes += ast_adsi_display(buf + bytes, ADSI_INFO_PAGE, x+1, alignments[x], 0, lines[x], "");
+ bytes += adsi_display(buf + bytes, ADSI_INFO_PAGE, x+1, alignments[x], 0, lines[x], "");
}
- bytes += ast_adsi_set_line(buf + bytes, ADSI_INFO_PAGE, 1);
+ bytes += adsi_set_line(buf + bytes, ADSI_INFO_PAGE, 1);
if (voice) {
- bytes += ast_adsi_voice_mode(buf + bytes, 0);
+ bytes += adsi_voice_mode(buf + bytes, 0);
}
- res = ast_adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DISPLAY, 0);
+ res = adsi_transmit_message_full(chan, buf, bytes, ADSI_MSG_DISPLAY, 0);
if (voice) {
/* Ignore the resulting DTMF B announcing it's in voice mode */
ast_waitfordigit(chan, 1000);
@@ -982,21 +1009,21 @@
return res;
}
-int AST_OPTIONAL_API_NAME(ast_adsi_load_session)(struct ast_channel *chan, unsigned char *app, int ver, int data)
+static int adsi_load_session(struct ast_channel *chan, unsigned char *app, int ver, int data)
{
unsigned char dsp[256] = "";
int bytes = 0, res;
char resp[2];
/* Connect to session */
- bytes += ast_adsi_connect_session(dsp + bytes, app, ver);
+ bytes += adsi_connect_session(dsp + bytes, app, ver);
if (data) {
- bytes += ast_adsi_data_mode(dsp + bytes);
+ bytes += adsi_data_mode(dsp + bytes);
}
/* Prepare key setup messages */
- if (ast_adsi_transmit_message_full(chan, dsp, bytes, ADSI_MSG_DISPLAY, 0)) {
+ if (adsi_transmit_message_full(chan, dsp, bytes, ADSI_MSG_DISPLAY, 0)) {
return -1;
}
if (app) {
@@ -1021,17 +1048,17 @@
}
-int AST_OPTIONAL_API_NAME(ast_adsi_unload_session)(struct ast_channel *chan)
+static int adsi_unload_session(struct ast_channel *chan)
{
unsigned char dsp[256] = "";
int bytes = 0;
/* Connect to session */
- bytes += ast_adsi_disconnect_session(dsp + bytes);
- bytes += ast_adsi_voice_mode(dsp + bytes, 0);
+ bytes += adsi_disconnect_session(dsp + bytes);
+ bytes += adsi_voice_mode(dsp + bytes, 0);
/* Prepare key setup messages */
- if (ast_adsi_transmit_message_full(chan, dsp, bytes, ADSI_MSG_DISPLAY, 0)) {
+ if (adsi_transmit_message_full(chan, dsp, bytes, ADSI_MSG_DISPLAY, 0)) {
return -1;
}
@@ -1133,19 +1160,53 @@
return 0;
}
+static struct adsi_funcs res_adsi_funcs = {
+ .version = AST_ADSI_VERSION,
+ .begin_download = adsi_begin_download,
+ .end_download = adsi_end_download,
+ .channel_restore = adsi_channel_restore,
+ .print = adsi_print,
+ .load_session = adsi_load_session,
+ .unload_session = adsi_unload_session,
+ .transmit_message = adsi_transmit_message,
+ .transmit_message_full = adsi_transmit_message_full,
+ .read_encoded_dtmf = adsi_read_encoded_dtmf,
+ .connect_session = adsi_connect_session,
+ .query_cpeid = adsi_query_cpeid,
+ .query_cpeinfo = adsi_query_cpeinfo,
+ .get_cpeid = adsi_get_cpeid,
+ .get_cpeinfo = adsi_get_cpeinfo,
+ .download_connect = adsi_download_connect,
+ .disconnect_session = adsi_disconnect_session,
+ .download_disconnect = adsi_download_disconnect,
+ .data_mode = adsi_data_mode,
+ .clear_soft_keys = adsi_clear_soft_keys,
+ .clear_screen = adsi_clear_screen,
+ .voice_mode = adsi_voice_mode,
+ .available = adsi_available,
+ .display = adsi_display,
+ .set_line = adsi_set_line,
+ .load_soft_key = adsi_load_soft_key,
+ .set_keys = adsi_set_keys,
+ .input_control = adsi_input_control,
+ .input_format = adsi_input_format,
+};
+
static int load_module(void)
{
adsi_load(0);
+ ast_adsi_install_funcs(&res_adsi_funcs);
return AST_MODULE_LOAD_SUCCESS;
}
static int unload_module(void)
{
/* Can't unload this once we're loaded */
+ ast_adsi_install_funcs(NULL);
return -1;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "ADSI Resource",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "ADSI Resource",
.load = load_module,
.unload = unload_module,
.reload = reload,
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/res/res_config_odbc.c
^
|
@@ -35,7 +35,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368039 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368738 $")
#include "asterisk/file.h"
#include "asterisk/channel.h"
@@ -518,7 +518,7 @@
}
va_arg(aq, const char *);
- if (tableptr && !(column = ast_odbc_find_column(tableptr, newparam))) {
+ if (tableptr && !ast_odbc_find_column(tableptr, newparam)) {
ast_log(LOG_WARNING, "Key field '%s' does not exist in table '%s@%s'. Update will fail\n", newparam, table, database);
}
@@ -587,7 +587,6 @@
SQLHSTMT stmt;
va_list ap;
struct odbc_cache_tables *tableptr = ast_odbc_find_table(ups->database, ups->table);
- struct odbc_cache_columns *column;
if (!sql) {
if (tableptr) {
@@ -619,7 +618,7 @@
while ((newparam = va_arg(ap, const char *))) {
newval = va_arg(ap, const char *);
- if ((column = ast_odbc_find_column(tableptr, newparam))) {
+ if (ast_odbc_find_column(tableptr, newparam)) {
ast_str_append(&sql, 0, "%s%s=? ", first ? "" : ", ", newparam);
SQLBindParameter(stmt, x++, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, strlen(newval), 0, (void *)newval, 0, NULL);
first = 0;
@@ -637,7 +636,7 @@
while ((newparam = va_arg(ap, const char *))) {
newval = va_arg(ap, const char *);
- if (!(column = ast_odbc_find_column(tableptr, newparam))) {
+ if (!ast_odbc_find_column(tableptr, newparam)) {
va_end(ap);
ast_log(LOG_ERROR, "One or more of the criteria columns '%s' on '%s@%s' for this update does not exist!\n", newparam, ups->table, ups->database);
ast_odbc_release_table(tableptr);
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/res/res_fax.c
^
|
@@ -37,7 +37,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 361471 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368738 $")
#include "asterisk/io.h"
#include "asterisk/file.h"
@@ -462,7 +462,7 @@
char *m[5], *tok, *v = (char *)value;
int i = 0, j;
- if (!(tok = strchr(v, ','))) {
+ if (!strchr(v, ',')) {
m[i++] = v;
m[i] = NULL;
} else {
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/res/res_odbc.c
^
|
@@ -38,7 +38,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 366167 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368738 $")
#include "asterisk/file.h"
#include "asterisk/channel.h"
@@ -1632,7 +1632,7 @@
pbx_builtin_setvar_helper(chan, "ODBC_RESULT", "INVALID_DB");
return -1;
}
- if (!(tx = find_transaction(chan, obj, value, 0))) {
+ if (!find_transaction(chan, obj, value, 0)) {
pbx_builtin_setvar_helper(chan, "ODBC_RESULT", "FAILED_TO_CREATE");
return -1;
}
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/res/res_smdi.c
^
|
@@ -32,12 +32,12 @@
*/
/*** MODULEINFO
- <support_level>extended</support_level>
+ <support_level>core</support_level>
***/
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 328209 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368894 $")
#include <termios.h>
#include <sys/time.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/res/res_speech.c
^
|
@@ -29,7 +29,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 365460 $");
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 368738 $");
#include "asterisk/channel.h"
#include "asterisk/module.h"
@@ -271,7 +271,6 @@
/*! \brief Register a speech recognition engine */
int ast_speech_register(struct ast_speech_engine *engine)
{
- struct ast_speech_engine *existing_engine = NULL;
int res = 0;
/* Confirm the engine meets the minimum API requirements */
@@ -281,7 +280,7 @@
}
/* If an engine is already loaded with this name, error out */
- if ((existing_engine = find_engine(engine->name))) {
+ if (find_engine(engine->name)) {
ast_log(LOG_WARNING, "Speech recognition engine '%s' already exists.\n", engine->name);
return -1;
}
|
[-]
[+]
|
Changed |
asterisk-1.8.15.0.tar.xz/res/snmp/agent.c
^
|
@@ -14,9 +14,13 @@
* \author Thorsten Lockert <tholo@voop.as>
*/
+/*** MODULEINFO
+ <support_level>extended</support_level>
+ ***/
+
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 352955 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
/*
* There is some collision collision between netsmp and asterisk names,
|