Patches and show version

Hi all,

About to install Asterisk 1.4.9 on Debian as a development box, to prepare and test Asterisk configurations for a live Asterisk 1.4.9 box.

I’ve built up the Debian box but now have a question about Asterisk versions. On the existing Asterisk box, cli “show version” reports: “Asterisk 1.4.9 built by admin@ aomori on a i686 running Linux on 2007-07-25 21:01:48 UTC”. On downloading asterisk-1.4.9.tar.gz from downloads.digium.com/pub/asterisk/releases/, I also see asterisk-1.4.9-patch.gz.

So my question is: how do I know whether the existing Asterisk 1.4.9 box has this patch applied? Would “show version” have told me so?

the “-patch” versions of the downloads are only the changed files that you apply on top of whatever full download you already have.

If this is the first time downloading just get the version without the “-patch” in the name.

Also if this is a new install you really should start with the latest version of the whatever branch you choose so in your case it would be 1.4.21.2

So no one knows the answer??!!

I can try installing/uninstalling patches/versions to see what I find out, but that seems ridiculous! Surely there is a way to definitively check what patch level an installation is currently at?

As mentioned before, the objective is to produce an equivalent configuration to support the existing Asterisk box. Upgrading to a newer version can be considered later once this support is in place but does not meet the current objective.

Hi

Yes we do know the answer and swaterhouse gave it to you. The patch version you mention is a “patch” to patch an earlier version say 1.4.7 to 1.4.9

I would upgrade to the latest release of 1.4 as ther will be fixes in that that are not in 1.4.9

Ian

[quote=“ianplain”]Hi

Yes we do know the answer and swaterhouse gave it to you. The patch version you mention is a “patch” to patch an earlier version say 1.4.7 to 1.4.9
[/quote]
Aha! That is a new thought (which swaterhouse did not give!). Due to my limited experience with Linux/Asterisk I was assuming that anything named “patch 1.4.9” was to patch version 1.4.9. So you’re saying it is to patch “an” earlier version? That seems strange to me but I can see that it would be possible to create a patch that would bring any (say) 1.4.x version up to 1.4.9.

In that case, you are saying that since the existing box is at version 1.4.9, the question of whether it’s been patched is irrelevant, since any patching would only have been to bring it up to 1.4.9, whereupon it would have become equivalent to a new installation from 1.4.9.

So I can now work out for myself that “show version” would not include info about patches.

Thank you–this gives me the information I need, which is that Asterisk 1.4.9 must be installed on the second box, with no patches, to match the first box. As already mentioned, upgrading to a newer version is not an option at this point.

Hi

[quote]As already mentioned, upgrading to a newer version is not an option at this point.
[/quote]

Here are all the bugfixes since 1.4.9. I see no reason why not to upgrade unless their version has special patches. You should also be making sure that all code is fully 1.4/1.6 compatible. It will save you a lot of work in the end

[quote]2008-10-01 Russell Bryant russell@digium.com

* Asterisk 1.4.22 released.

2008-09-09 Russell Bryant russell@digium.com

* Asterisk 1.4.22-rc5 released.

2008-09-09 15:40 +0000 [r142063] Russell Bryant russell@digium.com

* res/res_features.c: Ensure that the stored CDR reference is still
  valid after the bridge before poking at it. Also, keep the
  channel locked while messing with this CDR. (fixes crashes
  reported in issue #13409)

2008-09-08 21:10 +0000 [r141809] Mark Michelson mmichelson@digium.com

* channels/chan_sip.c: Fix pedantic mode of chan_sip to only check
  the remote tag of an endpoint once a dialog has been confirmed.
  Up until that point, it is possible and legal for the far-end to
  send provisional responses with a different To: tag each time.
  With this patch applied, these provisional messages will not
  cause a matching problem. (closes issue #11536) Reported by: ibc
  Patches: 11536v2.patch uploaded by putnopvut (license 60)

2008-09-08 21:02 +0000 [r141806] Russell Bryant russell@digium.com

* main/pbx.c: When doing an async goto, detect if the channel is
  already in the middle of a masquerade. This can happen when
  chan_local is trying to optimize itself out. If this happens,
  fail the async goto instead of bursting into flames. (closes
  issue #13435) Reported by: geoff2010

2008-09-08 Russell Bryant russell@digium.com

* Asterisk 1.4.22-rc4 released.

2008-09-08 20:15 +0000 [r141741] Jason Parker jparker@digium.com

* Makefile, redhat (removed): Remove RPM package targets from
  Makefile (and all associated parts). This has never worked in
  1.4, and we decided that it makes no sense to be done here. There
  are many distros out there that already have "proper" spec files
  that can be (re)used. Closes issue #13113 Closes issue #10950
  Closes issue #10952

2008-09-08 16:26 +0000 [r141678] Russell Bryant russell@digium.com

* configure, configure.ac: Actually use Zaptel CFLAGS if using
  Zaptel instead of DAHDI This fixes building against Zaptel when
  using a custom path

2008-09-06 20:13 +0000 [r141565] Steve Murphy murf@digium.com

* channels/chan_sip.c: This fix comes from Joshua Colp The
  Brilliant, who, given the trace, came up with a solution. This
  will most likely will close 13235 and 13409. I'll wait till
  Monday to verify, and then close these bugs.

2008-09-06 15:23 +0000 [r141503] Tilghman Lesher tlesher@digium.com

* res/res_agi.c: Reverting behavior change (AGI should not exit
  non-zero on SUCCESS) (closes issue #13434) Reported by:
  francesco_r

2008-09-05 21:10 +0000 [r141217-141366] Mark Michelson mmichelson@digium.com

* channels/chan_agent.c: Agent's should not try to call a channel's
  indicate callback if the channel has been hung up. It will likely
  crash otherwise ABE-1159

* apps/app_voicemail.c: Since greetings are not stored in IMAP, we
  should not be DISPOSE'ing of them the same way we do with other
  messages. (closes issue #13414) Reported by: mthomasslo Patches:
  13414v2.patch uploaded by putnopvut (license 60) Tested by:
  mthomasslo

* channels/chan_sip.c: Commit 140417 had a logic flaw in it which
  caused port 5060 to always be used when dialing a peer if no
  explicit port was specified. This broke the behavior of
  implicitly using the port from which the peer registered if no
  port is specified. This commit fixes the logic flaw. (closes
  issue #13424) Reported by: mdu113 Patches: 13424.patch uploaded
  by putnopvut (license 60) Tested by: mdu113

2008-09-05 14:15 +0000 [r141094-141156] Steve Murphy murf@digium.com

* main/channel.c: A small change to prevent double-posting of
  CDR's; thanks to Daniel Ferrer for bringing it to our attention

* pbx/ael/ael-test/ref.ael-vtest25 (added),
  pbx/ael/ael-test/ael-vtest25/extensions.ael (added),
  pbx/ael/ael-test/ael-vtest25 (added), pbx/ael/ael_lex.c,
  pbx/ael/ael-test/ref.ael-test6, pbx/ael/ael.flex: (closes issue
  #13357) Reported by: pj Tested by: murf (closes issue #13416)
  Reported by: yarns Tested by: murf If you find this message
  overly verbose, relax, it's probably not meant for you. This
  message is meant for probably only two people in the whole world:
  me, or the poor schnook that has to maintain this code because
  I'm either dead or unavailable at the moment. This fix solves two
  reports, both having to do with embedding a function call in a
  ${} construct. It was tricky because the funccall syntax has
  parenthesis () in it. And up till now, the 'word' token in the
  flex stuff didn't allow that, because it would tend to steal the
  LP and RP tokens. To be truthful, the "word" token was the
  trickiest, most unstable thing in the whole lexer. I was lucky it
  made this long without complaints. I had to choose every
  character in the pattern with extreme care, and I knew that
  someday I'd have to revisit it. Well, the day has come. So, my
  brilliant idea (and I'm being modest), was to use the surrounding
  ${} construct to make a state machine and capture everything in
  it, no matter what it contains. But, I have to now treat the word
  token like I did with comments, in that I turn the whole thing
  into a state-machine sort of spec, with new contexts
  "curlystate", "wordstate", and "brackstate". Wait a minute,
  "brackstate"? Yes, well, it didn't take very many regression
  tests to point out if I do this for ${} constructs, I also have
  to do it with the $[] constructs, too. I had to create a separate
  pcbstack2 and pcbstack3 because these constructs can occur inside
  macro argument lists, and when we have two state machines
  operating on the same structures we'd get problems otherwise. I
  guess I could have stopped at pcbstack2 and had the brackstate
  stuff share it, but it doesn't hurt to be safe. So, the pcbpush
  and pcbpop routines also now have versions for "2" and "3". I had
  to add the {KEYWORD} construct to the initial pattern for "word",
  because previously word would match stuff like "default7",
  because it was a longer match than the keyword "default". But,
  not any more, because the word pattern only matches only one or
  two characters now, and it will always lose. So, I made it the
  winner again by making an optional match on any of the keywords
  before it's normal pattern. I added another regression test to
  make sure we don't lose this in future edits, and had to fix just
  one regression, where it no longer reports a 'cascaded' error,
  which I guess is a plus. I've given some thought as to whether to
  apply these fixes to 1.4 and the 1.6.x releases, vs trunk; I
  decided to put it in 1.4 because one of the bug reports was
  against 1.4; and it is unexpected that AEL cannot handle this
  situation. It actually reduced the amount of useless "cascade"
  error messages that appeared in the regressions (by one line,
  ehhem). There is a possible side-effect in that it does now do
  more careful checking of what's in those ${} constructs, as far
  as matching parens, and brackets are concerned. Some users may
  find a an insidious problem and correct it this way. This should
  be exceedingly rare, I hope.

2008-09-04 17:00 +0000 [r141028] Jeff Peeler jpeeler@digium.com

* res/res_features.c, res/res_agi.c: (closes issue #11979) Fixes
  multiple parking problems: Crash when executing a park on an
  extension dialed by AGI due to not returning the proper return
  code. Crash when using a builtin feature that was a subset of a
  enabled dynamic feature. Crash due to always hanging up the peer
  despite the fact that the peer was supposed to be parked.

2008-09-03 Russell Bryant russell@digium.com

* Asterisk 1.4.22-rc3 released.

2008-09-03 14:29 +0000 [r140850] Mark Michelson mmichelson@digium.com

* apps/app_voicemail.c: Fix voicemail forwarding when using ODBC
  storage. (closes issue #13387) Reported by: moliveras Patches:
  13387.patch uploaded by putnopvut (license 60) Tested by:
  putnopvut, moliveras

2008-09-03 13:24 +0000 [r140816] Russell Bryant russell@digium.com

* main/poll.c: Don't freak out if the poll emulation receives NULL
  for the pollfds array (closes issue #13307) Reported by: jcovert

2008-09-02 23:47 +0000 [r140751] Mark Michelson mmichelson@digium.com

* apps/app_voicemail.c: After adding the context checking to
  app_voicemail for IMAP storage, I left out a crucial place to
  copy the context to the vm_state structure. This is the
  correction.

2008-09-02 23:36 +0000 [r140670-140747] Steve Murphy murf@digium.com

* main/cdr.c: I am turning the warnings generated in ast_cdr_free
  and post_cdr into verbose level 2 messages. Really, they matter
  little to end users. You either get the CDR's you wanted, or you
  don't, and it is a bug.

* main/channel.c: After reconsidering, with respect to 13409,
  ast_cdr_detach should be OK, better in fact, than ast_cdr_free,
  which generates lots of useless warnings that will undoubtably
  generate complaints.

* main/channel.c, main/pbx.c: (closes issue #13409) Reported by:
  tomaso Patches: asterisk-1.6.0-rc2-cdrmemleak.patch uploaded by
  tomaso (license 564) I basically spent the day, verifying that
  this patch solves the problem, and doesn't hurt in non-problem
  cases. Why valgrind did not plainly reveal this leak absolutely
  mystifies and stuns me. Many, many thanks to tomaso for finding
  and providing the fix.

2008-09-02 18:14 +0000 [r140605] Sean Bright sean.bright@gmail.com

* channels/chan_iax2.c: Make sure to use the correct length of the
  mohinterpret and mohsuggest buffers when copying configuration
  values. (closes issue #13336) Reported by:
  decryptus_proformatique Patches:
  chan_iax2_mohinterpret_mohsuggest_general_settings.patch uploaded
  by decryptus (license 555)

2008-08-29 17:34 +0000 [r140417-140488] Mark Michelson mmichelson@digium.com

* main/manager.c, apps/app_queue.c, channels/chan_iax2.c: After
  working on the ao2_containers branch, I noticed something a bit
  strange. In all cases where we provide a callback function to
  ao2_container_alloc, the callback function would only return 0 or
  CMP_MATCH. After inspecting the ao2_callback() code carefully, I
  found that if you're only looking for one specific item, then you
  should return CMP_MATCH | CMP_STOP. Otherwise, astobj2 will
  continue traversing the current bucket until the end searching
  for more matches. In cases like chan_iax2 where in 1.4, all the
  peers are shoved into a single bucket, this makes for potentially
  terrible performance since the entire bucket will be traversed
  even if the peer is one of the first ones come across in the
  bucket. All the changes I have made were for cases where the
  callback function defined was passed to ao2_container_alloc so
  that calls to ao2_find could find a unique instance of whatever
  object was being stored in the container.

* apps/app_voicemail.c: Add context checking when retrieving a
  vm_state. This was causing a problem for people who had
  identically named mailboxes in separate voicemail contexts. This
  commit affects IMAP storage only. (closes issue #13194) Reported
  by: moliveras Patches: 13194.patch uploaded by putnopvut (license
  60) Tested by: putnopvut, moliveras

* channels/chan_sip.c: Fix SIP's parsing so that if a port is
  specified in a string to Dial(), it is not ignored. (closes issue
  #13355) Reported by: acunningham Patches: 13355v2.patch uploaded
  by putnopvut (license 60) Tested by: acunningham

2008-08-27 19:49 +0000 [r140299] Mark Michelson mmichelson@digium.com

* channels/chan_sip.c: Fix tag checking in get_sip_pvt_byid_locked
  when in pedantic mode. The problem was that the wrong tags would
  be compared depending on the direction of the call. (closes issue
  #13353) Reported by: flefoll Patches:
  chan_sip.c.br14.139015.patch-refer-pedantic uploaded by flefoll
  (license 244)

2008-08-26 16:49 +0000 [r140115] Jeff Peeler jpeeler@digium.com

* channels/chan_dahdi.c: add HAVE_PRI if define around
  dahdi_close_pri_fd

2008-08-26 16:07 +0000 [r140060] Russell Bryant russell@digium.com

* channels/chan_sip.c: Fix some bogus scheduler usage in chan_sip.
  This code used the return value of a completely unrelated
  function to determine whether the scheduler should be run or not.
  This would have caused the scheduler to not run in cases where it
  should have. Also, leave a note about another scheduler issue
  that needs to be addressed at some point.

2008-08-26 15:57 +0000 [r140056] Jeff Peeler jpeeler@digium.com

* channels/chan_dahdi.c: (closes issue #12071) Reported by: tzafrir
  Patches: dahdi_close.diff uploaded by tzafrir (license 46) Tested
  by: tzafrir, jpeeler This patch fixes closing open file
  descriptors in the case of an error.

2008-08-26 15:27 +0000 [r140051] Russell Bryant russell@digium.com

* channels/chan_iax2.c: Fix a race condition with the IAX scheduler
  thread. A lock and condition are used here to allow newly
  scheduled tasks to wake up the scheduler just in case the new
  task needs to run sooner than the current wakeup time when the
  thread is sleeping. However, there was a race condition such that
  a newly scheduled task would not properly wake up the scheduler
  or affect the wake up period. The order of execution would have
  been: 1) Scheduler thread determines wake up time of N ms. 2)
  Another thread schedules a task and signals the condition, with
  an execution time of < N ms. 3) Scheduler thread locks and goes
  to sleep for N ms. By moving the sleep time determination to
  inside the critical section, this possibility is avoided.

2008-08-26 15:22 +0000 [r140050] Terry Wilson twilson@digium.com

* Makefile: sounds/Makefile installs sounds using the "new"
  language directory structure, but languageprefix needs to be set
  = yes for sounds in subdirectories (digits/1, etc.) to play as
  the correct language. Fix the generation of asterisk.conf to
  include languageprefix=yes

2008-08-26 14:09 +0000 [r140029] Kevin P. Fleming kpfleming@digium.com

* channels/chan_dahdi.c: correct a file location in an error
  message

2008-08-25 21:47 +0000 [r139927] Jeff Peeler jpeeler@digium.com

* main/manager.c: Fix a typo I made. Lesson learned, apply the
  patch if one exists.

2008-08-25 21:31 +0000 [r139909] Sean Bright sean.bright@gmail.com

* build_tools/get_moduleinfo, build_tools/get_makeopts: Some
  versions of awk (nawk, for example) don't like empty regular
  expressions so be slightly more verbose. (closes issue #13374)
  Reported by: dougm Patches: 13374.diff uploaded by seanbright
  (license 71) Tested by: dougm

2008-08-25 20:46 +0000 [r139869] Terry Wilson twilson@digium.com

* channels/chan_sip.c: Make SIPADDHEADER() propagate indefinitely

2008-08-25 15:52 +0000 [r139769] Mark Michelson mmichelson@digium.com

* main/config.c: Fix the logic in config_text_file_save so that if
  an UpdateConfig manager action is issued and the file specified
  in DstFileName does not yet exist, an error is not returned.
  (closes issue #13341) Reported by: vadim Patches: 13341.patch
  uploaded by putnopvut (license 60) (with small modification from
  seanbright)

2008-08-25 15:33 +0000 [r139764] Steve Murphy murf@digium.com

* main/pbx.c, res/res_features.c: This patch reverts the changes
  made via 139347, and 139635, as users are seeing adverse
  difference. I will un-close 13251. Back to the drawing board/
  concept/ beginning/ whatever!

2008-08-22 22:24 +0000 [r139635] Steve Murphy murf@digium.com

* res/res_features.c: I found some problems with the code I
  committed earlier, when I merged them into trunk, so I'm coming
  back to clean up. And, in the process, I found an error in the
  code I added to trunk and 1.6.x, that I'll fix using this patch
  also.

2008-08-22 21:36 +0000 [r139621] Jeff Peeler jpeeler@digium.com

* main/manager.c: (closes issue #13359) Reported by: Laureano
  Patches: originate_channel_check.patch uploaded by Laureano
  (license 265)

2008-08-22 19:45 +0000 [r139456-139553] Mark Michelson mmichelson@digium.com

* include/asterisk/threadstorage.h: Fix compilation when
  DEBUG_THREAD_LOCALS is selected (closes issue #13298) Reported
  by: snuffy Patches: bug13298_20080822.diff uploaded by snuffy
  (license 35)

* main/frame.c: Remove show_frame_stats_deprecated since it is not
  used anywhere and causes build errors if building under dev-mode
  with TRACE_FRAMES selected in menuselect. (closes issue #13362)
  Reported by: snuffy

* channels/chan_iax2.c: Fix the build. Thanks, mvanbaak!

* channels/chan_iax2.c: Prevent a deadlock in chan_iax2 resulting
  from incorrect locking order between iax2_pvt and ast_channel
  structures. AST-13

2008-08-21 23:39 +0000 [r139387] Jeff Peeler jpeeler@digium.com

* channels/chan_dahdi.c: Fixes loop that could possibly never exit
  in the event of a channel never being able to be opened or
  specify after a restart. (closes issue #11017)

2008-08-21 23:03 +0000 [r139347] Steve Murphy murf@digium.com

* main/pbx.c, res/res_features.c: (closes issue #13251) Reported
  by: sergee Tested by: murf THis is a bold move for a static
  release fix, but I wouldn't have made it if I didn't feel
  confident (at least a *bit* confident) that it wouldn't mess
  everyone up. The reasoning goes something like this: 1. We simply
  cannot do anything with CDR's at the current point (in pbx.c,
  after the __ast_pbx_run loop). It's way too late to have any
  affect on the CDRs. The CDR is already posted and gone, and the
  remnants have been cleared. 2. I was very much afraid that moving
  the running of the 'h' extension down into the bridge code (where
  it would be now practical to do it), would result in a lot more
  calls to the 'h' exten, so I implemented it as another exten
  under another name, but found, to my pleasant surprise, that
  there was a 1:1 correspondence to the running of the 'h' exten in
  the pbx_run loop, and the new spot at the end of the bridge. So,
  I ifdef'd out the current 'h' loop, and moved it into the bridge
  code. The only difference I can see is the stuff about the
  AST_PBX_KEEPALIVE, and hopefully, if this is still an important
  decision point, I can replicate it if there are complaints. To be
  perfectly honest, the KEEPALIVE situation is not totally clear to
  me, and how it relates to a post-bridge situation is less clear.
  I suspect the users will point out everything in total clarity if
  this steps on anyone's toes! 3. I temporarily swap the bridge_cdr
  into the channel before running the 'h' exten, which makes it
  possible for users to edit the cdr before it goes out the door.
  And, of course, with the endbeforehexten config var set, the
  users can also get at the billsec/duration vals. After the h
  exten finishes, the cdr is swapped back and processing continues
  as normal. Please, all who deal with CDR's, please test this
  version of Asterisk, and file bug reports as appropriate!

2008-08-21 10:11 +0000 [r139283] Philippe Sultan philippe.sultan@gmail.com

* channels/chan_gtalk.c: Apply fix for issue #13310 to branch 1.4,
  too.

2008-08-20 22:14 +0000 [r139213] Russell Bryant russell@digium.com

* apps/app_chanspy.c: Fix a crash in the ChanSpy application. The
  issue here is that if you call ChanSpy and specify a spy group,
  and sit in the application long enough looping through the
  channel list, you will eventually run out of stack space and the
  application with exit with a seg fault. The backtrace was always
  inside of a harmless snprintf() call, so it was tricky to track
  down. However, it turned out that the call to snprintf() was just
  the biggest stack consumer in this code path, so it would always
  be the first one to hit the boundary. (closes issue #13338)
  Reported by: ruddy

2008-08-20 19:52 +0000 [r139151] Shaun Ruffell sruffell@digium.com

* codecs/codec_dahdi.c: Fix bug where the samples were not accurate
  when in G723 mode, which would cause the timestamp field of the
  RTP header to be invalid.

2008-08-20 19:35 +0000 [r139145] Kevin P. Fleming kpfleming@digium.com

* channels/chan_dahdi.c, configure,
  include/asterisk/autoconfig.h.in, configure.ac: Backport support
  for Zaptel/DAHDI channel-level alarms from trunk/1.6, because not
  doing so just makes it difficult for people with channels that
  are in alarm when Asterisk starts up to get them going once the
  alarm is cleared (closes issue #12160) Reported by: tzafrir
  Patches: asterisk-chanalarms_14.patch uploaded by tzafrir
  (license 46) Tested by: tzafrir

2008-08-20 17:14 +0000 [r139074] Steve Murphy murf@digium.com

* main/cdr.c: (closes issue #13263) Reported by: brainy Tested by:
  murf The specialized reset routine is tromping on the flags field
  of the CDR. I made a change to not reset the DISABLED bit. This
  should get rid of this problem.

2008-08-20 15:37 +0000 [r139015] Mark Michelson mmichelson@digium.com

* channels/chan_sip.c: sip_read should properly handle a NULL
  return from sip_rtp_read. (closes issue #13257) Reported by:
  travishein

2008-08-19 23:22 +0000 [r138949] Jeff Peeler jpeeler@digium.com

* include/asterisk/dahdi_compat.h: add DAHDI_POLICY_WHEN_FULL
  compatability define for Zaptel

2008-08-19 23:17 +0000 [r138942] Mark Michelson mmichelson@digium.com

* channels/chan_agent.c: Reset agent_pvt variables back to the
  values in agents.conf (from what the corresponding channel
  variables were set to) when the agent logs out. (closes issue
  #13098) Reported by: davidw Patches:
  20080731__issue13098_agent_ackcall_not_reset.diff uploaded by
  bbryant (license 36) Tested by: davidw

2008-08-19 22:56 +0000 [r138938] Jeff Peeler jpeeler@digium.com

* channels/chan_dahdi.c: Add configuration option to
  chan_dahdi.conf to allow buffering policy and number of buffers
  to be configured per channel. Syntax: buffers=<num of
  buffers>,<policy> Where the number of buffers is some
  non-negative integer and the policy is either "full", "half", or
  "immediate".

2008-08-19 18:50 +0000 [r138685-138886] Mark Michelson mmichelson@digium.com

* apps/app_chanspy.c: Add a lock and unlock prior to the
  destruction of the chanspy_ds lock to ensure that no other
  threads still have it locked. While this should not happen under
  normal circumstances, it appears that if the spyer and spyee hang
  up at nearly the same time, the following may occur. 1.
  ast_channel_free is called on the spyee's channel. 2. The chanspy
  datastore is removed from the spyee's channel in
  ast_channel_free. 3. In the spyer's thread, the spyer attempts to
  remove and destroy the datastore from the spyee channel, but the
  datastore has already been removed in step 2, so the spyer
  continues in the code. 4. The spyee's thread continues and calls
  the datastore's destroy callback, chanspy_ds_destroy. This
  involves locking the chanspy_ds. 5. Now the spyer attempts to
  destroy the chanspy_ds lock. The problem is that in step 4, the
  spyee has locked this lock, meaning that the spyer is attempting
  to destroy a lock which is currently locked by another thread.
  The backtrace provided in issue #12969 supports the idea that
  this is possible (and has even occurred). This commit does not
  close the issue, but should help in preventing one type of crash
  associated with the use of app_chanspy.

* apps/app_queue.c: Change the inequalities used in app_queue with
  regards to timeouts from being strict to non-strict for more
  accuracy. (closes issue #13239) Reported by: atis Patches:
  app_queue_timeouts_v2.patch uploaded by atis (license 242)

2008-08-18 16:57 +0000 [r138663] Kevin P. Fleming kpfleming@digium.com

* codecs/codec_dahdi.c: look for transcoder in proper place based
  on build against Zaptel or DAHDI

2008-08-18 11:57 +0000 [r138569] Sean Bright sean.bright@gmail.com

* channels/chan_dahdi.c: You know what's awesome? Code that
  compiles... :wink:

2008-08-18 02:05 +0000 [r138516] Jeff Peeler jpeeler@digium.com

* channels/chan_dahdi.c: fix compilation warnings

2008-08-16 01:12 +0000 [r138309-138360] Jeff Peeler jpeeler@digium.com

* channels/chan_dahdi.c: fixes use count to properly decrement if
  an active dahdi channel is destroyed allowing module to be
  unloaded

* channels/chan_dahdi.c: add forgotten locks around ss_thread_count
  in ss_thread for dahdi restart

2008-08-15 22:33 +0000 [r138258] Tilghman Lesher tlesher@digium.com

* channels/chan_sip.c, configs/sip.conf.sample: More fixes for
  realtime peers. (closes issue #12921) Reported by: Nuitari
  Patches: 20080804__bug12921.diff.txt uploaded by Corydon76
  (license 14) 20080815__bug12921.diff.txt uploaded by Corydon76
  (license 14) Tested by: Corydon76

2008-08-15 21:28 +0000 [r138119-138238] Jeff Peeler jpeeler@digium.com

* channels/chan_dahdi.c: initialize condition variable
  ss_thread_complete using ast_cond_init

* channels/chan_dahdi.c: declared static mutexes using
  AST_MUTEX_DEFINE_STATIC macro

* channels/chan_dahdi.c: Fixes the dahdi restart functionality.
  Dahdi restart allows one to restart all DAHDI channels, even if
  they are currently in use. This is different from unloading and
  then loading the module since unloading requires the use count to
  be zero. Reloading the module is different in that the signalling
  is not changed from what it was originally configured. Also, this
  fixes not closing all the file descriptors for D-channels upon
  module unload (which would prevent loading the module
  afterwards). (closes issue #11017)

2008-08-15 15:07 +0000 [r138027] Russell Bryant russell@digium.com

* main/autoservice.c: Ensure that when a hangup occurs in
  autoservice, that a hangup frame gets properly deferred to be
  read from the channel owner when it gets taken out of
  autoservice. (closes issue #12874) Reported by: dimas Patches:
  v1-12874.patch uploaded by dimas (license 88)

2008-08-15 14:51 +0000 [r137847-138023] Tilghman Lesher tlesher@digium.com

* funcs/func_strings.c: Additional check for more string specifiers
  than arguments. (closes issue #13299) Reported by: adomjan
  Patches: 20080813__bug13299.diff.txt uploaded by Corydon76
  (license 14) func_strings.c-sprintf.patch uploaded by adomjan
  (license 487) Tested by: adomjan

* channels/chan_dahdi.c: Oops, wrong direction

* channels/chan_dahdi.c: When creating the secondary subchannel
  name, it is necessary to compare to the existing channel name
  without the "Zap/" or "DAHDI/" prefix, since our test string is
  also without that prefix. (closes issue #13027) Reported by:
  dferrer Patches: chan_zap-1.4.21.1_fix2.patch uploaded by dferrer
  (license 525) (Slightly modified by me, to compensate for both
  names)

2008-08-14 14:05 +0000 [r137731] Russell Bryant russell@digium.com

* configs/sip.conf.sample: Comments in this config file were
  aligned only if your tab size was set to 8. So, convert tabs to
  spaces so that things should be aligned regardless of what tab
  size you use in your editor.

2008-08-14 02:03 +0000 [r137677-137679] Kevin P. Fleming kpfleming@digium.com

* Zaptel-to-DAHDI.txt: forgot one module name that changed

* include/asterisk/dahdi_compat.h, channels/chan_dahdi.c,
  build_tools/menuselect-deps.in, configure, configure.ac,
  codecs/codec_dahdi.c: add support for Zaptel versions that
  contain the new transcoder interface

2008-08-13 21:35 +0000 [r137580] Jeff Peeler jpeeler@digium.com

* channels/chan_dahdi.c: Register DAHDISendKeypadFacility
  application if dahdi_chan_mode is set to DAHDI + Zap. Mark
  ZapSendKeypadFacility application as deprecated on usage.

2008-08-13 20:46 +0000 [r137527-137530] Kevin P. Fleming kpfleming@digium.com

* Zaptel-to-DAHDI.txt (added): add document describing what users
  will need to be aware of when upgrading to this version and using
  DAHDI

* apps/app_meetme.c: remove some more chan_zap references

* doc/asterisk-conf.txt, channels/chan_dahdi.c: document
  dahdichanname option in doc/asterisk-conf.txt make chan_dahdi
  read its configuration from zapata.conf if dahdichanname has been
  set to 'no'

2008-08-13 14:33 +0000 [r137348-137405] Sean Bright sean.bright@gmail.com

* doc/cdrdriver.txt: Update docs to reflect the change to cdr_tds

* cdr/cdr_tds.c: Bring cdr_tds in line with the other CDR backends
  and have it try to store CDR(userfield) if it is set. The new
  behavior is to check for the userfield column on module load, and
  if it exists, we will store CDR(userfield) when CDRs are written.
  A similar patch already went into trunk and 1.6.0. (closes issue
  #13290) Reported by: falves11

2008-08-11 13:33 +0000 [r137188] Kevin P. Fleming kpfleming@digium.com

* apps/app_meetme.c: convert this module to be able to handle DAHDI
  or Zaptel (reported on asterisk-users, don't know how this got
  missed before)

2008-08-11 00:20 +0000 [r137138] Tilghman Lesher tlesher@digium.com

* res/res_odbc.c: Deallocate database connection handle on
  disconnect, as we allocate another one on connect. (closes issue
  #13271) Reported by: dveiga

2008-08-09 17:11 +0000 [r136999] Russell Bryant russell@digium.com

* configure, configure.ac: Ensure PBX_DAHDI_TRANSCODE will evaluate
  to 0 if not found instead of empty. pointed out by tzafrir on
  #asterisk-dev

2008-08-09 15:25 +0000 [r136946] Tilghman Lesher tlesher@digium.com

* /, include/asterisk/compat.h, include/asterisk/astobj2.h: Merged
  revisions 136945 via svnmerge from
  [origsvn.digium.com/svn/asterisk/branches/1.2](https://origsvn.digium.com/svn/asterisk/branches/1.2) ........
  r136945 | tilghman | 2008-08-09 10:24:36 -0500 (Sat, 09 Aug 2008)
  | 2 lines Regression fixes for Solaris ........

2008-08-08 00:15 +0000 [r136726] Steve Murphy murf@digium.com

* pbx/ael/ael-test/ref.ael-test8, pbx/ael/ael-test/ref.ael-test18,
  pbx/ael/ael-test/ref.ael-vtest13,
  pbx/ael/ael-test/ref.ael-ntest10, pbx/pbx_ael.c,
  include/asterisk/ael_structs.h: (closes issue #13236) Reported
  by: korihor Wow, this one was a challenge! I regrouped and ran a
  new strategy for setting the ~~MACRO~~ value; I set it once per
  extension, up near the top. It is only set if there is a switch
  in the extension. So, I had to put in a chunk of code to detect a
  switch in the pval tree. I moved the code to insert the set of
  ~~exten~~ up to the beginning of the gen_prios routine, instead
  of down in the switch code. I learned that I have to push the
  detection of the switches down into the code, so everywhere I
  create a new exten in gen_prios, I make sure to pass onto it the
  values of the mother_exten first, and the exten next. I had to
  add a couple fields to the exten struct to accomplish this, in
  the ael_structs.h file. The checked field makes it so we don't
  repeat the switch search if it's been done. I also updated the
  regressions.

2008-08-07 18:25 +0000 [r136560] Kevin P. Fleming kpfleming@digium.com

* build_tools/menuselect-deps.in, configure, configure.ac: change
  the required dependency for codec_dahdi to only be satisfied by
  DAHDI and not Zaptel, as the new transcoder interface is only in
  DAHDI

2008-08-07 18:14 +0000 [r136544] Shaun Ruffell sruffell@digium.com

* codecs/codec_dahdi.c: Updated codec_dahdi to use the new
  transcoder interface in the first DAHDI release. Codec dahdi no
  longer functions with the transcoder interface in zaptel at this
  time (which the last zaptel release was 1.4.11). NOTE: Still
  needs an update to the configure script to make sure that
  codec_dahdi is only built if the new transcoder interface is
  present in the drivers. (Issue: DAHDI-42)

2008-08-07 16:50 +0000 [r136488] Tilghman Lesher tlesher@digium.com

* apps/app_queue.c: Update persistent state on all exit conditions.
  (closes issue #12916) Reported by: sgenyuk Patches:
  app_queue.patch.txt uploaded by neutrino88 (license 297) Tested
  by: sgenyuk, aragon

2008-08-07 16:30 +0000 [r136404-136484] Kevin P. Fleming kpfleming@digium.com

* include/asterisk/doxyref.h: add a raw list of all libraries that
  any part of Asterisk links directly to

* apps/app_voicemail.c: work around a bug in gcc-4.2.3 that
  incorrectly ignores the casting away of 'const' for pointers when
  the developer knows it is safe to do so

* Makefile: remove config.cache during distclean, in case the user
  is using autoconf caching

2008-08-07 01:31 +0000 [r136304-136348] Tilghman Lesher tlesher@digium.com

* channels/chan_dahdi.c: Also, parse
  useincomingcalleridonzaptransfer (and add appropriate deprecation
  warnings).

* channels/chan_dahdi.c: For backwards compatibility with previous
  1.4 versions which used "zapchan" in users.conf, ensure that we
  still support it.

2008-08-06 21:18 +0000 [r136241] Richard Mudgett rmudgett@digium.com

* channels/misdn_config.c, channels/chan_misdn.c,
  configs/misdn.conf.sample: * The allowed_bearers setting in
  misdn.conf misspelled one of its options: digital_restricted. *
  Fixed some other spelling errors and typos.

2008-08-06 20:42 +0000 [r136238] Mark Michelson mmichelson@digium.com

* apps/app_queue.c: We only need to unregister the QueueStatus
  manager command once on an unload

2008-08-06 20:14 +0000 [r136190] Tilghman Lesher tlesher@digium.com

* contrib/init.d/rc.redhat.asterisk: -C option takes a filename,
  not a directory path. (closes issue #13007) Reported by:
  klaus3000

2008-08-06 18:58 +0000 [r136168] Russell Bryant russell@digium.com

* Makefile: Remove the use of --no-print-directory when compiling
  subdirectories. This allows vim :make functionality to work
  properly when errors have occurred in the build. Without printing
  the directories, vim did not know how to find the file that the
  error occurred in. If the extra bit of build noise annoys anyone,
  just let me know, and I'll make this optional.

2008-08-06 15:58 +0000 [r136062] Mark Michelson mmichelson@digium.com

* main/rtp.c, channels/chan_skinny.c: Since adding the
  AST_CONTROL_SRCUPDATE frame type, there are places where
  ast_rtp_new_source may be called where the tech_pvt of a channel
  may not yet have an rtp structure allocated. This caused a crash
  in chan_skinny, which was fixed earlier, but now the same crash
  has been reported against chan_h323 as well. It seems that the
  best solution is to modify ast_rtp_new_source to not attempt to
  set the marker bit if the rtp structure passed in is NULL. This
  change to ast_rtp_new_source also allows the removal of what is
  now a redundant pointer check from chan_skinny. (closes issue
  #13247) Reported by: pj

2008-08-06 03:53 +0000 [r135899-135949] Tilghman Lesher tlesher@digium.com

* main/channel.c: Fix a longstanding bug in channel walking logic,
  and fix the explanation to make sense. (Closes issue #13124)

* main/translate.c: Since powerof() can return an error condition,
  it's foolhardy not to detect and deal with that condition.
  (Related to issue #13240)

* include/asterisk/threadstorage.h, include/asterisk/utils.h: 1)
  Bugfix for debugging code 2) Reduce compiler warnings for another
  section of debugging code (Closes issue #13237)

2008-08-06 00:29 +0000 [r135841-135850] Mark Michelson mmichelson@digium.com

* /: Remove properties that should not be here

* apps/app_skel.c: Revert inadvertent changes to app_skel that
  occurred when I was testing for a memory leak

* include/asterisk/abstract_jb.h, main/channel.c, /,
  apps/app_skel.c, main/abstract_jb.c, main/fixedjitterbuf.h:
  Merging the issue11259 branch. The purpose of this branch was to
  take into account "burps" which could cause jitterbuffers to
  misbehave. One such example is if the L option to Dial() were
  used to inject audio into a bridged conversation at regular
  intervals. Since the audio here was not passed through the
  jitterbuffer, it would cause a gap in the jitterbuffer's
  timestamps which would cause a frames to be dropped for a brief
  period. Now ast_generic_bridge will empty and reset the
  jitterbuffer each time it is called. This causes injected audio
  to be handled properly. ast_generic_bridge also will empty and
  reset the jitterbuffer if it receives an AST_CONTROL_SRCUPDATE
  frame since the change in audio source could negatively affect
  the jitterbuffer. All of this was made possible by adding a new
  public API call to the abstract_jb called ast_jb_empty_and_reset.
  (closes issue #11259) Reported by: plack Tested by: putnopvut

2008-08-05 23:13 +0000 [r135799] Steve Murphy murf@digium.com

* apps/app_dial.c, main/cdr.c, main/channel.c, res/res_features.c,
  include/asterisk/cdr.h: (closes issue #12982) Reported by: bcnit
  Tested by: murf I discovered that also, in the previous bug fixes
  and changes, the cdr.conf 'unanswered' option is not being
  obeyed, so I fixed this. And, yes, there are two 'answer' times
  involved in this scenario, and I would agree with you, that the
  first answer time is the time that should appear in the CDR. (the
  second 'answer' time is the time that the bridge was begun). I
  made the necessary adjustments, recording the first answer time
  into the peer cdr, and then using that to override the bridge
  cdr's value. To get the 'unanswered' CDRs to appear, I purposely
  output them, using the dial cmd to mark them as DIALED (with a
  new flag), and outputting them if they bear that flag, and you
  are in the right mode. I also corrected one small mention of the
  Zap device to equally consider the dahdi device. I heavily tested
  10-sec-wait macros in dial, and without the macro call; I tested
  hangups while the macro was running vs. letting the macro
  complete and the bridge form. Looks OK. Removed all the
  instrumentation and debug.

2008-08-05 21:34 +0000 [r135747] Tilghman Lesher tlesher@digium.com

* channels/chan_iax2.c: In a conversion to use ast_strlen_zero, the
  meaning of the flag IAX_HASCALLERID was perverted. This change
  reverts IAX2 to the original meaning, which was, that the
  callerid set on the client should be overridden on the server,
  even if that means the resulting callerid is blank. In other
  words, if you set "callerid=" in the IAX config, then the
  callerid should be overridden to blank, even if set on the
  client. Note that there's a distinction, even on realtime,
  between the field not existing (NULL in databases) and the field
  existing, but set to blank (override callerid to blank).

2008-08-05 13:25 +0000 [r135597] Sean Bright sean.bright@gmail.com

* main/cli.c: Use PATH_MAX for filenames

2008-08-04 20:15 +0000 [r135536] Russell Bryant russell@digium.com

* configs/chan_dahdi.conf.sample: fix a config sample typo

2008-08-04 17:07 +0000 [r135479-135482] Tilghman Lesher tlesher@digium.com

* contrib/init.d/rc.mandrake.asterisk: Define ASTSBINDIR for script

* apps/app_voicemail.c: Memory leak on unload (closes issue #13231)
  Reported by: eliel Patches: app_voicemail.leak.patch uploaded by
  eliel (license 64)

2008-08-04 16:26 +0000 [r135473] Russell Bryant russell@digium.com

* configs/chan_dahdi.conf.sample: Add a minor clarification to the
  documentation of mohinterpret and mohsuggest

2008-08-01 11:43 +0000 [r135055-135058] Michiel van Baak michiel@vanbaak.info

* apps/app_ices.c: make app_ices compile on OpenBSD.

* channels/chan_skinny.c: fix some potential deadlocks in
  chan_skinny (closes issue #13215) Reported by: qwell Patches:
  2008080100_bug13215.diff.txt uploaded by mvanbaak (license 7)
  Tested by: mvanbaak

2008-07-31 22:18 +0000 [r134983] Kevin P. Fleming kpfleming@digium.com

* main/http.c: accomodate users who seem to lack a sense of humor
  :smile:

2008-07-31 21:53 +0000 [r134976] Tilghman Lesher tlesher@digium.com

* sample.call, main/manager.c, pbx/pbx_spool.c: Specify codecs in
  callfiles and manager, to allow video calls to be set up from
  callfiles and AMI. (closes issue #9531) Reported by: Geisj
  Patches: 20080715__bug9531__1.4.diff.txt uploaded by Corydon76
  (license 14) 20080715__bug9531__1.6.0.diff.txt uploaded by
  Corydon76 (license 14) Tested by: Corydon76

2008-07-31 19:37 +0000 [r134915] Russell Bryant russell@digium.com

* apps/app_ices.c: Get app_ices working again (closes issue #12981)
  Reported by: dlogan Patches:
  20080709__app_ices_v2_update_trunk.diff uploaded by bbryant
  (license 36) 20080709__app_ices_v2_update_14.diff uploaded by
  bbryant (license 36) Tested by: bbryant

2008-07-31 19:23 +0000 [r134883] Steve Murphy murf@digium.com

* res/res_features.c: (closes issue #11849) Reported by: greyvoip
  Tested by: murf OK, a few days of debugging, a bunch of
  instrumentation in chan_sip, main/channel.c, main/pbx.c, etc. and
  5 solid notebook pages of notes later, I have made the small
  tweek necc. to get the start time right on the second CDR when: A
  Calls B B answ. A hits Xfer button on sip phone, A dials C and
  hits the OK button, A hangs up C answers ringing phone B and C
  converse B and/or C hangs up But does not harm the scenario
  where: A Calls B B answ. B hits xfer button on sip phone, B dials
  C and hits the OK button, B hangs up C answers ringing phone A
  and C converse A and/or C hangs up The difference in start times
  on the second CDR is because of a Masquerade on the B channel
  when the xfer number is sent. It ends up replacing the CDR on the
  B channel with a duplicate, which ends up getting tossed out. We
  keep a pointer to the first CDR, and update *that* after the
  bridge closes. But, only if the CDR has changed. I hope this
  change is specific enough not to muck up any current CDR-based
  apps. In my defence, I assert that the previous information was
  wrong, and this change fixes it, and possibly other similar
  scenarios. I wonder if I should be doing the same thing for the
  channel, as I did for the peer, but I can't think of a scenario
  this might affect. I leave it, then, as an exersize for the
  users, to find the scenario where the chan's CDR changes and
  loses the proper start time.

2008-07-31 16:45 +0000 [r134814] Russell Bryant russell@digium.com

* channels/iax2-parser.c: In case we have some processing threads
  that free more frames than they allocate, do not let the frame
  cache grow forever. (closes issue #13160) Reported by: tavius
  Tested by: tavius, russell

2008-07-31 15:56 +0000 [r134758] Mark Michelson mmichelson@digium.com

* apps/app_queue.c: Add more timeout checks into app_queue,
  specifically targeting areas where an unknown and potentially
  long time has just elapsed. Also added a check to try_calling()
  to return early if the timeout has elapsed instead of potentially
  setting a negative timeout for the call (thus making it have *no*
  timeout at all). (closes issue #13186) Reported by:
  miquel_cabrespina Patches: 13186.diff uploaded by putnopvut
  (license 60) Tested by: miquel_cabrespina

2008-07-30 22:39 +0000 [r134704] Tilghman Lesher tlesher@digium.com

* main/sched.c, include/asterisk/sched.h: Oops, wrong define

2008-07-30 22:02 +0000 [r134652] Steve Murphy murf@digium.com

* pbx/pbx_ael.c: (closes issue #13197) Reported by: pj (closes
  issue #13051) Reported by: pj This patch substitutes commas in
  the expr supplied to the if () statement, as in if ( expr ) ...
  This solves both the bugs above, and makes the source symmetric
  with switch statements, which were earlier reported to need this
  sort of treatment. I tested this using the examples, both for the
  compiler and at run time. Looks good.

2008-07-30 21:38 +0000 [r134649] Tilghman Lesher tlesher@digium.com

* configure, configure.ac: Qwell pointed out, via IRC, that the
  previous fix only worked when explicitly set. When nothing is
  set, and the option is implied, it breaks, because configure sets
  the prefix to 'NONE'. Fixing.

2008-07-30 20:37 +0000 [r134540-134595] Russell Bryant russell@digium.com

* pbx/pbx_dundi.c: Reduce stack consumption by 12.5% of the max
  stack size to fix a crash when compiled with LOW_MEMORY. (closes
  issue #13154) Reported by: edantie

* funcs/func_curl.c: Fix a memory leak in func_curl. Every thread
  that used this function leaked an allocation the size of a
  pointer. (reported by jmls in #asterisk-dev)

2008-07-30 19:47 +0000 [r134480-134536] Tilghman Lesher tlesher@digium.com

* configure, configure.ac: Only override sysconfdir and mandir when
  prefix=/usr (closes issue #13093) Reported by: pabelanger

* res/res_agi.c: launch_netscript sometimes returns -1, which fails
  to set AGISTATUS. Map failure to -1, so that AGISTATUS is always
  set. (closes issue #13199) Reported by: smw1218

2008-07-30 18:31 +0000 [r134475] Mark Michelson mmichelson@digium.com

* main/app.c: Fix a spot where a function could return without
  bringing a channel out of autoservice.

2008-07-30 15:29 +0000 [r134254-134352] Kevin P. Fleming kpfleming@digium.com

* Makefile: use the proper method for building version.h

* include/asterisk/dahdi_compat.h, apps/app_dahdibarge.c,
  channels/chan_dahdi.c, apps/app_meetme.c, apps/app_flash.c,
  apps/app_dahdiscan.c, apps/app_dahdiras.c, codecs/codec_dahdi.c:
  build against the now-typedef-free dahdi/user.h

2008-07-29 15:54 +0000 [r134223] Mark Michelson mmichelson@digium.com

* apps/app_voicemail.c: Merging the imap_consistency branch. The
  main aim of this branch was to make the IMAP code function in the
  same manner as the ODBC code does, eliminating the need for so
  many IMAP-specific code chunks. The focal point of all of this
  work was to make the various macros (e.g. RETRIEVE, DISPOSE)
  functionally equivalent. While doing the above work, I also fixed
  a few bugs that I came across in my testing. Among these were 1.
  Fixed message forwarding. This was completely broken when using
  IMAP. 2. Fixed the inability to save new messages as old and vice
  versa. 3. Fixed the "delete" options in voicemail.conf when using
  IMAP storage. Even though a few bugs were fixed and the code is a
  lot more consistent, the one thing that was *not* improved in
  this branch was performance. The merge of this to trunk may not
  come immediately due to the amount of work it will probably
  involve. (closes issue #12764) Reported by: balsamcn

2008-07-28 21:50 +0000 [r134161] Tilghman Lesher tlesher@digium.com

* apps/app_voicemail.c: Detect when sox fails to raise the volume,
  because sox can't read the file. (closes issue #12939) Reported
  by: rickbradley Patches: 20080728__bug12939.diff.txt uploaded by
  Corydon76 (license 14) Tested by: rickbradley

2008-07-26 15:31 +0000 [r133980] Russell Bryant russell@digium.com

* main/asterisk.c, include/asterisk/doxyref.h: Add the licensing
  section to the docs in 1.4, as well, so that we can work on
  having an accurate list for each version of Asterisk that is
  supported

2008-07-25 18:00 +0000 [r133649-133709] Tilghman Lesher tlesher@digium.com

* apps/app_voicemail.c: Remove unnecessary mmap flag (Closes issue
  #13161)

* main/channel.c, channels/chan_agent.c, main/devicestate.c: Fix
  some errant device states by making the devicestate API more
  strict in terms of the device argument (only without the unique
  identifier appended). (closes issue #12771) Reported by: davidw
  Patches: 20080717__bug12771.diff.txt uploaded by Corydon76
  (license 14) Tested by: davidw, jvandal, murf

2008-07-25 15:00 +0000 [r133578] Russell Bryant russell@digium.com

* /, LICENSE: Merged revisions 133577 via svnmerge from
  [origsvn.digium.com/svn/asterisk/branches/1.2](https://origsvn.digium.com/svn/asterisk/branches/1.2) ........
  r133577 | russell | 2008-07-25 10:00:13 -0500 (Fri, 25 Jul 2008)
  | 2 lines Fix the IAX2 URI for calling Digium ........

2008-07-25 14:40 +0000 [r133572] Mark Michelson mmichelson@digium.com

* channels/chan_sip.c: We need to make sure to null-terminate the
  "name" portion of SIP URI parameters so that there are no bogus
  comparisons. Thanks to bbryant for pointing this out.

2008-07-24 21:17 +0000 [r133361-133488] Tilghman Lesher tlesher@digium.com

* channels/chan_sip.c: Fix rtautoclear and rtcachefriends (Closes
  issue #12707)

* /: Blocked revisions 133360 via svnmerge ........ r133360 |
  tilghman | 2008-07-23 22:46:01 -0500 (Wed, 23 Jul 2008) | 2 lines
  This part was not correctly patched for AST-2008-010. ........

2008-07-23 21:49 +0000 [r133295] Jason Parker jparker@digium.com

* channels/chan_dahdi.c: inbandrelease is gone - it's now
  inbanddisconnect

2008-07-23 21:05 +0000 [r133226-133237] Kevin P. Fleming kpfleming@digium.com

* include/asterisk/stringfields.h, main/utils.c: revert an
  optimization that broke ABI... thanks russell!

* apps/app_chanspy.c, include/asterisk/options.h, main/asterisk.c,
  apps/app_dahdibarge.c, channels/chan_dahdi.c,
  apps/app_dahdiras.c: make some more changes to the dahdi/zap
  channel name support stuff to ensure allthe globals are 'const',
  and clean up mmichelson's changes to app_chanspy to simplify the
  code

2008-07-23 19:39 +0000 [r132974-133169] Mark Michelson mmichelson@digium.com

* apps/app_chanspy.c, include/asterisk/options.h, main/asterisk.c,
  channels/chan_dahdi.c: As suggested by seanbright, the
  PSEUDO_CHAN_LEN in app_chanspy should be set at load time, not at
  compile time, since dahdi_chan_name is determined at load time.
  Also changed the next_unique_id_to_use to have the static
  qualifier. Also added the dahdi_chan_name_len variable so that
  strlen(dahdi_chan_name) isn't necessary. Thanks to seanbright for
  the suggestion.

* apps/app_chanspy.c: Zap/pseudo is ten characters, but
  DAHDI/pseudo is twelve. The strncmp call in next_channel should
  account for this.

* apps/app_chanspy.c: Update the "last" channel in next_channel in
  app_chanspy so that the same pseudo channel isn't constantly
  returned. related to issue #13124

* channels/chan_dahdi.c: Small cleanup. Move the declaration of the
  DAHDI_SPANINFO variable to the block where it is used. This
  allows one less #ifdef HAVE_PRI to clutter things up. Thanks to
  Tzafrir for pointing this out on #asterisk-dev

* channels/chan_dahdi.c: Fix building of chan_dahdi when HAVE_PRI
  is not defined.

2008-07-23 15:52 +0000 [r132872-132942] Kevin P. Fleming kpfleming@digium.com

* channels/chan_dahdi.c: ensure that after a channel is created, if
  it happened to be in 'channel alarm' state, when that alarm
  clears we won't generate a spurious 'alarm cleared' message
  (closes issue #12160) Reported by: tzafrir

* include/asterisk/stringfields.h, main/utils.c: minor optimization
  for stringfields: when a field is being set to a larger value
  than it currently contains and it happens to be the most recent
  field allocated from the currentl pool, it is possible to 'grow'
  it without having to waste the space it is currently using (or
  potentially even allocate a new pool)

2008-07-23 11:37 +0000 [r132826] Christian Richter christian.richter@beronet.com

* channels/misdn/isdn_lib.c: another Fix because of r119585, this
  commit has broken high frequented BRI Ports, there was a
  possibility that a channel, that was marked as in_use would be
  reused later, the corresponding port could got stuck then. So it
  is recommended to upgrade for chan_misdn users.

2008-07-22 22:14 +0000 [r132790] Mark Michelson mmichelson@digium.com

* channels/chan_sip.c: Allow Spiraled INVITEs to work correctly
  within Asterisk. Prior to this change, a spiraled INVITE would
  cause a 482 Loop Detected to be sent to the caller. With this
  change, if a potential loop is detected, the Request-URI is
  inspected to see if it has changed from what was originally
  received. If pedantic mode is on, then this inspection is fully
  RFC 3261 compliant. If pedantic mode is not on, then a string
  comparison is used to test the equality of the two R-URIs. This
  has been tested by using OpenSER to rewrite the R-URI and send
  the INVITE back to Asterisk. (closes issue #7403) Reported by:
  stephen_dredge

2008-07-22 22:11 +0000 [r132784-132787] Kevin P. Fleming kpfleming@digium.com

* include/asterisk/options.h, main/asterisk.c,
  apps/app_dahdibarge.c, channels/chan_dahdi.c, apps/app_flash.c,
  apps/app_dahdiras.c: fix up namespace pollution for
  dahdi_chan_mode enum correct registration of AMI actions in
  chan_dahdi; in zap-only mode, only register the Zap flavors of
  the actions (and use Zap prefixes for headers and acks), but in
  dahdi+zap mode, register both Zap and DAHDI flavors of actions

* Makefile.rules: add rules to create preprocessor output... useful
  for debugging macros

2008-07-22 21:19 +0000 [r132713] Tilghman Lesher tlesher@digium.com

* configs/iax.conf.sample, /, channels/chan_iax2.c: Merged
  revisions 132711 via svnmerge from
  [origsvn.digium.com/svn/asterisk/branches/1.2](https://origsvn.digium.com/svn/asterisk/branches/1.2) ........
  r132711 | tilghman | 2008-07-22 16:14:10 -0500 (Tue, 22 Jul 2008)
  | 2 lines Fixes for AST-2008-010 and AST-2008-011 ........

2008-07-22 21:17 +0000 [r132704-132712] Kevin P. Fleming kpfleming@digium.com

* channels/chan_dahdi.c: ensure that if any alarms exist at channel
  creation time, they are handled identically to if they occurred
  later, so that later alarm clearing will work properly and 'make
  sense' (closes issue #12160) Reported by: tzafrir

* configure, configure.ac, acinclude.m4: make AST_C_COMPILE_CHECK
  able to print a 'pretty' description of what it is doing

2008-07-22 20:10 +0000 [r132645] Olle Johansson oej@edvina.net

* channels/chan_sip.c, doc/sip-retransmit.txt (added): The most
  common question on the #asterisk iRC channel and on mailing lists
  seems to be in regards to an error message when retransmit fails.
  This is frequently misunderstood as a failure of Asterisk, not a
  failure of the network to reach the other party. This document
  tries to assist the Asterisk user in sorting out these issues by
  explaining the logic and pointing at some possible causes.
  Hopefully, we will get other questions now :smile:

2008-07-22 19:57 +0000 [r132571-132642] Kevin P. Fleming kpfleming@digium.com

* channels/chan_dahdi.c: correct wording in comment

* channels/chan_dahdi.c, configs/chan_dahdi.conf.sample, configure,
  include/asterisk/autoconfig.h.in, configure.ac: use renamed
  libpri API call for controlling this feature (was improperly
  named before)

* channels/chan_dahdi.c: teach chan_dahdi how to find the D-channel
  on BRI spans, and don't attempt to use channel 24 as a D-channel
  on spans of unexpected sizes

2008-07-21 20:51 +0000 [r132506-132507] Brett Bryant bbryant@digium.com

* apps/app_sendtext.c: Fix a bug where SENDTEXTSTATUS isn't set
  properly when it isn't supported on a channel (yet _another_
  useful patch by eliel). (issue #13081) Reported by: eliel
  Patches: app_sendtext1.4.c uploaded by eliel (license 64) Tested
  by: eliel

* channels/chan_iax2.c: Fix a bug in 1.4 branch with iax2 channels
  not being removed when a call was rejected (from the calling box,
  not the box that denied the registration). Related to revisions
  132466 in trunk, and 132467 in 1.6.0. Earlier I had accidently
  tested 1.4 with a backport from those revisions, so I didn't see
  this problem (oops).

2008-07-19 16:45 +0000 [r132311] Kevin P. Fleming kpfleming@digium.com

* LICENSE: grant a license exception to allow distribution of
  Asterisk binaries that use the UW IMAP Toolkit (which is licensed
  under a non-GPL-compatible license)

2008-07-18 19:06 +0000 [r131970-132112] Tilghman Lesher tlesher@digium.com

* main/say.c: Fix for Taiwanese number syntax (closes issue #12319)
  Reported by: CharlesWang Patches: saynumber-tw-1.4.18.1.patch
  uploaded by CharlesWang (license 444)

* main/config.c: Textual clarification (closes issue #13106)
  Reported by: flefoll Patches:
  config.c.br14.120173.patch-unknown-directive uploaded by flefoll
  (license 244)

* include/asterisk/sched.h, channels/chan_iax2.c: Spinlock within
  the destroy, to allow a scheduled job to continue, if it's
  waiting on the mutex which the destroy thread has.

* main/sched.c: Oops

* main/sched.c, include/asterisk/sched.h: Preserve ABI
  compatibility with last change

* main/sched.c, include/asterisk/sched.h, channels/chan_iax2.c:
  Make the ast_assert call within ast_sched_del report something
  useful.

2008-07-18 16:15 +0000 [r131921] Kevin P. Fleming kpfleming@digium.com

* main/dlfcn.c (removed), main/loader.c, main/Makefile,
  include/asterisk/dlfcn-compat.h (removed): remove the dlfcn
  compatibility stuff, because no platforms that Asterisk currently
  runs on it use it, and it doesn't build anyway

2008-07-18 15:34 +0000 [r131915] Brett Bryant bbryant@digium.com

* res/res_features.c: Fix a bug in blind transfers where the
  BLINDTRANSFER variable isn't always set to the other end of the
  blind transfer. (closes issue #12586)

2008-07-17 20:35 +0000 [r131790] Tilghman Lesher tlesher@digium.com

* channels/chan_dahdi.c: Revert part of issue #5620 (revision 6965)
  as it appears that it was in error. This should fix talk call
  progress on analog lines. (closes issue #12178) Reported by:
  michael-fig Patches: 20080717__bug12178.diff.txt uploaded by
  Corydon76 (license 14)

2008-07-16 22:17 +0000 [r131491] Brett Bryant bbryant@digium.com

* channels/chan_iax2.c: Fix a bug in iax2 registration that allowed
  peers to register with case-insensitive names (user_cmp_cb and
  peer_cmp_cb are now both case-sensitive). (closes issue #13091)

2008-07-16 21:46 +0000 [r131480] Tilghman Lesher tlesher@digium.com

* channels/chan_iax2.c: Apparently, in certain cases, a callno is
  already destroyed when iax2_destroy is called.

2008-07-16 20:47 +0000 [r131421] Russell Bryant russell@digium.com

* channels/chan_iax2.c: Always ensure that the channel's tech_pvt
  reference is NULL after calling the destroy callback. (closes
  issue #13060) Reported by: jpgrayson Patches:
  chan_iax2_tech_pvt_crash.patch uploaded by jpgrayson (license
  492)

2008-07-16 20:23 +0000 [r131299-131369] Mark Michelson mmichelson@digium.com

* apps/app_queue.c: Move the init_queue call back to where it used
  to be (changed Sept 12 last year). It was moved then to prevent a
  memory leak. Since then, the same memory leak recurred and was
  fixed in a better way. Now it has been found that the placement
  of this init_queue call can cause problems if a realtime queue
  has values changed to an empty string. The problem is that the
  default value for that queue parameter would not be set. (closes
  issue #13084) Reported by: elbriga

* apps/app_queue.c: Apparently, "thread safety" is important,
  whatever that means. :stuck_out_tongue: (Thanks Russell!)

* apps/app_queue.c: Make absolutely certain that the transfer
  datastore is removed from the calling channel once the caller is
  finished in the queue. This could have weird con- sequences when
  dialing local queue members when multiple transfers occur on a
  single call. Also fixed a memory leak that would occur when an
  attended transfer occurred from a queue member. (closes issue
  #13047) Reported by: festr

2008-07-16 17:53 +0000 [r131242] Steve Murphy murf@digium.com

* pbx/pbx_ael.c: (closes issue #13090) Reported by: murf The
  problem was that, esoteric as it is, because the hangerupper
  context immediately preceded the std-priv-extent macro, that the
  checking code accidentally would fall from traversing hangerupper
  into the std-priv-exten macro, where it would hit the hangerupper
  in the 'includes', and proceed into an infinite recursion. A
  small fix to traverse into the statements of the context instead
  of the context solves this issue. I also added some commented out
  printfs for debug, which were pretty handy in the face of a dorky
  gdb. This was a problem around since the package was first
  written; but evidently pretty rare in turning up in the field.

2008-07-15 17:47 +0000 [r131012] Michiel van Baak michiel@vanbaak.info

* main/cdr.c: remove 4 lines of redundant code. (closes issue
  #13080) Reported by: gknispel_proformatique Patches:
  trunk_ast_cdr_setapp.patch uploaded by gknispel (license 261)

2008-07-15 17:19 +0000 [r130889-130959] Tilghman Lesher tlesher@digium.com

* main/manager.c, channels/chan_sip.c: astman_send_error does not
  need a newline appended -- the API takes care of that for us.
  (closes issue #13068) Reported by: gknispel_proformatique
  Patches: asterisk_1_4_astman_send.patch uploaded by gknispel
  (license 261) asterisk_trunk_astman_send.patch uploaded by
  gknispel (license 261)

* channels/chan_iax2.c: Override the callerid in all cases when the
  callerid is set in the user, not just when a remote callerid is
  set. Also, if not set in the user, allow the remote CallerID to
  pass through. (closes issue #12875) Reported by: dimas Patches:
  20080714__bug12875.diff.txt uploaded by Corydon76 (license 14)

2008-07-14 17:50 +0000 [r130792] Mark Michelson mmichelson@digium.com

* apps/app_dial.c: Add a check to the CAN_EARLY_BRIDGE macro in
  app_dial to be sure there are no audiohooks present on the
  channels involved. This fixed a one-way audio situation I had in
  my test setup. I couldn't find any open issues that suggested
  one-way audio with regards to mixmonitor (or other audiohook)
  usage, though.

2008-07-14 17:10 +0000 [r130735] Michiel van Baak michiel@vanbaak.info

* main/dnsmgr.c: notify the user that dnsmgr refresh wont work when
  dnsmgr is not enabled. Previously this command would
  automagically appear and disappear. This was confusing. (closes
  issue #12796) Reported by: chappell Patches:
  dnsmgr_refresh_3.diff uploaded by chappell (license 8) Tested by:
  russell, chappell, mvanbaak

2008-07-14 10:38 +0000 [r130634] Russell Bryant russell@digium.com

* main/audiohook.c: Bump up the debug level for a message.

2

I appreciate the info; please don’t think I doubt for one moment the value of upgrading. But that is something I plan to do in a controlled manner, as a separate exercise (and of course not just once but on an ongoing basis). I am not about to rush an upgrade in. I plan to maintain the support box at the same Asterisk version as the main box, knowing that I can therefore test any .conf/.ael changes on the support box in the reasonable certainty that the resulting behaviour will be identical when released to the main box. That is what I have prepared the support box for; that is its purpose. You may dispute the significance of this (and I certainly recognize that not everyone works this way!) but to me, it would be completely unacceptable (and completely pointless!) to have a different version of Asterisk on the support box. Hope this clarifies…