Skip to content
Snippets Groups Projects
  1. Sep 17, 2008
  2. Sep 13, 2008
  3. Sep 12, 2008
    • Tilghman Lesher's avatar
      Create a new config file status, CONFIG_STATUS_FILEINVALID for differentiating · 08af5bb3
      Tilghman Lesher authored
      when a file is invalid from when a file is missing.  This is most important when
      we have two configuration files.  Consider the following example:
      
      Old system:
      sip.conf     users.conf     Old result               New result
      ========     ==========     ==========               ==========
      Missing      Missing        SIP doesn't load         SIP doesn't load
      Missing      OK             SIP doesn't load         SIP doesn't load
      Missing      Invalid        SIP doesn't load         SIP doesn't load
      OK           Missing        SIP loads                SIP loads
      OK           OK             SIP loads                SIP loads
      OK           Invalid        SIP loads incompletely   SIP doesn't load
      Invalid      Missing        SIP doesn't load         SIP doesn't load
      Invalid      OK             SIP doesn't load         SIP doesn't load
      Invalid      Invalid        SIP doesn't load         SIP doesn't load
      
      So in the case when users.conf doesn't load because there's a typo that
      disrupts the syntax, we may only partially load users, instead of failing with
      an error, which may cause some calls not to get processed.  Worse yet, the old
      system would do this with no indication that anything was even wrong.
      
      (closes issue #10690)
       Reported by: dtyoo
       Patches: 
             20080716__bug10690.diff.txt uploaded by Corydon76 (license 14)
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@142992 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      08af5bb3
    • Tilghman Lesher's avatar
      Merged revisions 142744 via svnmerge from · 81c2d7bc
      Tilghman Lesher authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r142744 | tilghman | 2008-09-12 11:38:02 -0500 (Fri, 12 Sep 2008) | 4 lines
      
      Missing merge from 1.2 fixes errant exit on DTMF, only when language is Italian
      (cf commit 34242)
      (Closes issue #7353)
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@142745 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      81c2d7bc
    • Steve Murphy's avatar
      Merged revisions 142675 via svnmerge from · 67f7ac04
      Steve Murphy authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r142675 | murf | 2008-09-11 22:29:34 -0600 (Thu, 11 Sep 2008) | 29 lines
      
      Tested by: sergee, murf, chris-mac, andrew, KNK
      
      This is a "second attempt" to restore the previous "endbeforeh" behavior
      in 1.4 and up. In order to capture information concerning all the
      legs of transfers in all their infinite combinations, I was forced
      to this particular solution by a chain of logical necessities, the
      first being that I was not allowed to rewrite the CDR mechanism from 
      the ground up!
      
      This change basically leaves the original machinery alone, which allows
      IVR and local channel type situations to generate CDR's as normal, but
      a channel flag can be set to suppress the normal running of the h exten.
      That flag would be set by the code that runs the h exten from the
      ast_bridge_call routine, to prevent the h exten from being run twice.
      Also, a flag in the ast_bridge_config struct passed into ast_bridge_call
      can be used to suppress the running of the h exten in that routine. This
      would happen, for instance, if you use the 'g' option in the Dial app.
      
      Running this routine 'early' allows not only the CDR() func to be used
      in the h extension for reading CDR variables, but also allows them to
      be modified before the CDR is posted to the backends.
      
      While I dearly hope that this patch overcomes all problems, and 
      introduces no new problems, reality suggests that surely someone
      will have problems. In this case, please re-open 13251 (or 13289),
      and we'll see if we can't fix any remaining issues.
      
      ** trunk note: some code to suppress the h exten being run 
      from app_queue was added; for the 'continue' option available
      only in trunk/1.6.x.
      
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@142676 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      67f7ac04
  4. Sep 09, 2008
    • Mark Michelson's avatar
      This is the trunk version of the patch to close · 4ad993ed
      Mark Michelson authored
      issue 12979. The difference between this and the
      1.6.0 and 1.6.1 versions is that this is a much more
      invasive change. With this, we completely get rid
      of the interfaces list, along with all its helper
      functions.
      
      Let me take a moment to say that this change personally
      excites me since it may mean huge steps forward regarding
      proper lock order in app_queue without having to strew
      seemingly unnecessary locks all over the place. It also
      results in a huge reduction in lines of code and complexity.
      Way to go Brett!
      
      (closes issue #12979)
      Reported by: sigxcpu
      Patches:
            20080710_issue12979_queue_custom_state_interface_trunk_2.diff uploaded by bbryant (license 36)
      Tested by: sigxcpu, putnopvut
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@142146 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      4ad993ed
    • Mark Michelson's avatar
      Use ast_debug for debug messages. I was wondering why debug · 16d2c417
      Mark Michelson authored
      messages weren't showing up when I had set the debug level
      high for just app_queue.c. It's because we were only checking
      the global option_debug variable instead of using the awesome
      macro which checks both the global and file-specific value
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@141998 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      16d2c417
  5. Sep 08, 2008
  6. Sep 03, 2008
  7. Sep 02, 2008
  8. Aug 29, 2008
    • Mark Michelson's avatar
      Merged revisions 140488 via svnmerge from · 5dfefa5e
      Mark Michelson authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r140488 | mmichelson | 2008-08-29 12:34:17 -0500 (Fri, 29 Aug 2008) | 22 lines
      
      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.
      
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@140489 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      5dfefa5e
    • Mark Michelson's avatar
      Merged revisions 140421 via svnmerge from · d69c866f
      Mark Michelson authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r140421 | mmichelson | 2008-08-29 11:01:07 -0500 (Fri, 29 Aug 2008) | 12 lines
      
      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
      
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@140422 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      d69c866f
  9. Aug 26, 2008
  10. Aug 25, 2008
  11. Aug 22, 2008
    • Steve Murphy's avatar
      Merged revisions 139347 via svnmerge from · 2488366a
      Steve Murphy authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r139347 | murf | 2008-08-21 17:03:50 -0600 (Thu, 21 Aug 2008) | 47 lines
      
      
      (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!
      
      
      ........
      
      I also made a little fix to the app_dial's 'e' option,
      that is related to my updates.
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@139627 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      2488366a
  12. Aug 21, 2008
  13. Aug 20, 2008
    • Russell Bryant's avatar
      Merged revisions 139213 via svnmerge from · 89eaa39a
      Russell Bryant authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r139213 | russell | 2008-08-20 17:14:35 -0500 (Wed, 20 Aug 2008) | 11 lines
      
      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
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@139215 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      89eaa39a
  14. Aug 19, 2008
    • Mark Michelson's avatar
      Merged revisions 138886 via svnmerge from · b949d534
      Mark Michelson authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r138886 | mmichelson | 2008-08-19 13:50:53 -0500 (Tue, 19 Aug 2008) | 23 lines
      
      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.
      
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@138887 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      b949d534
  15. Aug 18, 2008
  16. Aug 13, 2008
  17. Aug 10, 2008
  18. Aug 08, 2008
  19. Aug 07, 2008
  20. Aug 06, 2008
  21. Aug 05, 2008
    • Steve Murphy's avatar
      Merged revisions 135799 via svnmerge from · 5eaf8450
      Steve Murphy authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r135799 | murf | 2008-08-05 17:13:20 -0600 (Tue, 05 Aug 2008) | 34 lines
      
      (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.
      
      
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@135821 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      5eaf8450
    • Kevin P. Fleming's avatar
      make datastore creation and destruction a generic API since it is not really... · 7df8b8b8
      Kevin P. Fleming authored
      make datastore creation and destruction a generic API since it is not really channel related, and add the ability to add/find/remove datastores to manager sessions
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@135680 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      7df8b8b8
Loading