Skip to content
Snippets Groups Projects
  1. Jan 06, 2014
  2. Jan 02, 2014
  3. Dec 23, 2013
  4. Dec 20, 2013
  5. Dec 19, 2013
    • Richard Mudgett's avatar
      Voicemail: Remove mailbox identifier format (box@context) assumptions in the system. · e4803bbd
      Richard Mudgett authored
      This change is in preparation for external MWI support.
      
      Removed code from the system for normal mailbox handling that appends
      @default to the mailbox identifier if it does not have a context.  The
      only exception is the legacy hasvoicemail users.conf option.  The legacy
      option will only work for app_voicemail mailboxes.  The system cannot make
      any assumptions about the format of the mailbox identifer used by
      app_voicemail.
      
      chan_sip and chan_dahdi/sig_pri had the most changes because they both
      tried to interpret the mailbox identifier.  chan_sip just stored and
      compared the two components.  chan_dahdi actually used the box
      information.
      
      The ISDN MWI support configuration options had to be reworked because
      chan_dahdi was parsing the box@context format to get the box number.  As a
      result the mwi_vm_boxes chan_dahdi.conf option was added and is documented
      in the chan_dahdi.conf.sample file.
      
      Review: https://reviewboard.asterisk.org/r/3072/
      ........
      
      Merged revisions 404348 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@404350 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      e4803bbd
  6. Dec 18, 2013
  7. Dec 17, 2013
  8. Dec 16, 2013
  9. Dec 11, 2013
  10. Nov 22, 2013
  11. Nov 15, 2013
  12. Nov 08, 2013
  13. Nov 02, 2013
  14. Oct 23, 2013
  15. Oct 14, 2013
  16. Oct 08, 2013
  17. Oct 04, 2013
  18. Sep 30, 2013
    • Jonathan Rose's avatar
      configuration samples: Pull all parking related stuff out of features.conf · 8fbe62f5
      Jonathan Rose authored
      This patch also adds documentation for parking from features.conf to
      res_parking.conf
      ........
      
      Merged revisions 400205 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@400206 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      8fbe62f5
    • David M. Lee's avatar
      Multiple revisions 399887,400138,400178,400180-400181 · 2de42c2a
      David M. Lee authored
      ........
        r399887 | dlee | 2013-09-26 10:41:47 -0500 (Thu, 26 Sep 2013) | 1 line
        
        Minor performance bump by not allocate manager variable struct if we don't need it
      ........
        r400138 | dlee | 2013-09-30 10:24:00 -0500 (Mon, 30 Sep 2013) | 23 lines
        
        Stasis performance improvements
        
        This patch addresses several performance problems that were found in
        the initial performance testing of Asterisk 12.
        
        The Stasis dispatch object was allocated as an AO2 object, even though
        it has a very confined lifecycle. This was replaced with a straight
        ast_malloc().
        
        The Stasis message router was spending an inordinate amount of time
        searching hash tables. In this case, most of our routers had 6 or
        fewer routes in them to begin with. This was replaced with an array
        that's searched linearly for the route.
        
        We more heavily rely on AO2 objects in Asterisk 12, and the memset()
        in ao2_ref() actually became noticeable on the profile. This was
        #ifdef'ed to only run when AO2_DEBUG was enabled.
        
        After being misled by an erroneous comment in taskprocessor.c during
        profiling, the wrong comment was removed.
        
        Review: https://reviewboard.asterisk.org/r/2873/
      ........
        r400178 | dlee | 2013-09-30 13:26:27 -0500 (Mon, 30 Sep 2013) | 24 lines
        
        Taskprocessor optimization; switch Stasis to use taskprocessors
        
        This patch optimizes taskprocessor to use a semaphore for signaling,
        which the OS can do a better job at managing contention and waiting
        that we can with a mutex and condition.
        
        The taskprocessor execution was also slightly optimized to reduce the
        number of locks taken.
        
        The only observable difference in the taskprocessor implementation is
        that when the final reference to the taskprocessor goes away, it will
        execute all tasks to completion instead of discarding the unexecuted
        tasks.
        
        For systems where unnamed semaphores are not supported, a really
        simple semaphore implementation is provided. (Which gives identical
        performance as the original taskprocessor implementation).
        
        The way we ended up implementing Stasis caused the threadpool to be a
        burden instead of a boost to performance. This was switched to just
        use taskprocessors directly for subscriptions.
        
        Review: https://reviewboard.asterisk.org/r/2881/
      ........
        r400180 | dlee | 2013-09-30 13:39:34 -0500 (Mon, 30 Sep 2013) | 28 lines
        
        Optimize how Stasis forwards are dispatched
        
        This patch optimizes how forwards are dispatched in Stasis.
        
        Originally, forwards were dispatched as subscriptions that are invoked
        on the publishing thread. This did not account for the vast number of
        forwards we would end up having in the system, and the amount of work it
        would take to walk though the forward subscriptions.
        
        This patch modifies Stasis so that rather than walking the tree of
        forwards on every dispatch, when forwards and subscriptions are changed,
        the subscriber list for every topic in the tree is changed.
        
        This has a couple of benefits. First, this reduces the workload of
        dispatching messages. It also reduces contention when dispatching to
        different topics that happen to forward to the same aggregation topic
        (as happens with all of the channel, bridge and endpoint topics).
        
        Since forwards are no longer subscriptions, the bulk of this patch is
        simply changing stasis_subscription objects to stasis_forward objects
        (which, admittedly, I should have done in the first place.)
        
        Since this required me to yet again put in a growing array, I finally
        abstracted that out into a set of ast_vector macros in
        asterisk/vector.h.
        
        Review: https://reviewboard.asterisk.org/r/2883/
      ........
        r400181 | dlee | 2013-09-30 13:48:57 -0500 (Mon, 30 Sep 2013) | 28 lines
        
        Remove dispatch object allocation from Stasis publishing
        
        While looking for areas for performance improvement, I realized that an
        unused feature in Stasis was negatively impacting performance.
        
        When a message is sent to a subscriber, a dispatch object is allocated
        for the dispatch, containing the topic the message was published to, the
        subscriber the message is being sent to, and the message itself.
        
        The topic is actually unused by any subscriber in Asterisk today. And
        the subscriber is associated with the taskprocessor the message is being
        dispatched to.
        
        First, this patch removes the unused topic parameter from Stasis
        subscription callbacks.
        
        Second, this patch introduces the concept of taskprocessor local data,
        data that may be set on a taskprocessor and provided along with the data
        pointer when a task is pushed using the ast_taskprocessor_push_local()
        call. This allows the task to have both data specific to that
        taskprocessor, in addition to data specific to that invocation.
        
        With those two changes, the dispatch object can be removed completely,
        and the message is simply refcounted and sent directly to the
        taskprocessor.
        
        Review: https://reviewboard.asterisk.org/r/2884/
      ........
      
      Merged revisions 399887,400138,400178,400180-400181 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@400186 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      2de42c2a
    • Kinsey Moore's avatar
      chan_sip: Allow Asterisk to retry after 403 on register · b44ce141
      Kinsey Moore authored
      This adds a global option in chan_sip to allow it to continue
      attempting registration if a 403 is received, clearing the cached nonce
      and treating it as a non-fatal response. Normally, this would cause
      registration attempts to that endpoint to stop.
      
      This also adds a similar per-outbound-registration option to chan_pjsip
      which allows the retry interval to be altered for 403 responses to
      REGISTER requests.
      
      (closes issue ASTERISK-17138)
      Review: https://reviewboard.asterisk.org/r/2874/
      Reported by: Rudi
      ........
      
      Merged revisions 400137 from http://svn.asterisk.org/svn/asterisk/branches/1.8
      ........
      
      Merged revisions 400140 from http://svn.asterisk.org/svn/asterisk/branches/11
      ........
      
      Merged revisions 400141 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@400142 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      b44ce141
  19. Sep 28, 2013
  20. Sep 27, 2013
  21. Sep 11, 2013
  22. Aug 30, 2013
  23. Aug 29, 2013
  24. Aug 23, 2013
  25. Aug 20, 2013
  26. Aug 15, 2013
  27. Jul 31, 2013
  28. Jul 30, 2013
    • Mark Michelson's avatar
      The large GULP->PJSIP renaming effort. · 735b30ad
      Mark Michelson authored
      The general gist is to have a clear boundary between old SIP stuff
      and new SIP stuff by having the word "SIP" for old stuff and "PJSIP"
      for new stuff. Here's a brief rundown of the changes:
      
      * The word "Gulp" in dialstrings, functions, and CLI commands is now
        "PJSIP"
      * chan_gulp.c is now chan_pjsip.c
      * Function names in chan_gulp.c that were "gulp_*" are now "chan_pjsip_*"
      * All files that were "res_sip*" are now "res_pjsip*"
      * The "res_sip" directory is now "res_pjsip"
      * Files in the "res_pjsip" directory that began with "sip_*" are now "pjsip_*"
      * The configuration file is now "pjsip.conf" instead of "res_sip.conf"
      * The module info for all PJSIP-related files now uses "PJSIP" instead of "SIP"
      * CLI and AMI commands created by Asterisk's PJSIP modules now have "pjsip" as
      the starting word instead of "sip"
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@395764 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      735b30ad
  29. Jul 27, 2013
  30. Jul 21, 2013
  31. Jul 15, 2013
    • Richard Mudgett's avatar
      Replace chan_agent with app_agent_pool. · d43b17a8
      Richard Mudgett authored
      The ill conceived chan_agent is no more.  It is now replaced by
      app_agent_pool.
      
      Agents login using the AgentLogin() application as before.  The
      AgentLogin() application no longer does any authentication.
      Authentication is now the responsibility of the dialplan.  (Besides, the
      authentication done by chan_agent did not match what the voice prompts
      asked for.)
      
      Sample extensions.conf
      [login]
      ; Sample agent 1001 login
      ; Set COLP for in between calls so the agent does not see the last caller COLP.
      exten => 1001,1,Set(CONNECTEDLINE(all)="Agent Waiting" <1001>)
      ; Give the agent DTMF transfer and disconnect features when connected to a caller.
      same => n,Set(CHANNEL(dtmf-features)=TX)
      same => n,AgentLogin(1001)
      same => n,NoOp(AGENT_STATUS is ${AGENT_STATUS})
      same => n,Hangup()
      
      [caller]
      ; Sample caller direct connect to agent 1001
      exten => 800,1,AgentRequest(1001)
      same => n,NoOp(AGENT_STATUS is ${AGENT_STATUS})
      same => n,Hangup()
      
      ; Sample caller going through a Queue to agent 1001
      exten => 900,1,Queue(agent_q)
      same => n,Hangup()
      
      Sample queues.conf
      [agent_q]
      member => Local/800@caller,,SuperAgent,Agent:1001
      
      Under the hood operation overview:
      1) Logged in agents wait for callers in an agents holding bridge.
      2) Caller requests an agent using AgentRequest()
      3) A basic bridge is created, the agent is notified, and caller joins the
         basic bridge to wait for the agent.
      4) The agent is either automatically connected to the caller or must ack
         the call to connect.
      5) The agent is moved from the agents holding bridge to the basic bridge.
      6) The agent and caller talk.
      7) The connection is ended by either party.
      8) The agent goes back to the agents holding bridge.
      
      To avoid some locking issues with the agent holding bridge, I needed to
      make some changes to the after bridge callback support.  The after bridge
      callback is now a list of requested callbacks with the last to be added
      the only active callback.  The after bridge callback for failed callbacks
      will always happen in the channel thread when the channel leaves the
      bridging system or is destroyed.
      
      (closes issue ASTERISK-21554)
      Reported by: Matt Jordan
      
      Review: https://reviewboard.asterisk.org/r/2657/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@394417 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      d43b17a8
  32. Jul 11, 2013
  33. Jul 10, 2013
    • Russell Bryant's avatar
      astobj2-ify the SLA code · 0bfe2d4c
      Russell Bryant authored
      The SLA code within app_meetme was written before asotbj2 had been
      merged into Asterisk.  Worse, support for reloads did not exist at first
      and was added later as a bolt-on feature.  I knew at the time that
      reloading was not safe at all while SLA was in use, so the reload would
      be queued up to execute when the system was idle.  Unfortunately, this
      approach was still prone to errors beyond the fact that this was the
      only place in Asterisk where configuration was not reloaded
      instantly when requested.
      
      This patch converts various SLA objects to be reference counted objects
      using astobj2.  This allows reloads to be processed while the system is
      in use.  The code ensures that the objects will not disappear while one
      of the other threads is using them.  However, they will be immediately
      removed from the global trunk and station containers so no new calls
      will use them if removed from configuration.
      
      Review: https://reviewboard.asterisk.org/r/2581/
      ........
      
      Merged revisions 393928 from http://svn.asterisk.org/svn/asterisk/branches/1.8
      ........
      
      Merged revisions 393929 from http://svn.asterisk.org/svn/asterisk/branches/11
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393930 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      0bfe2d4c
  34. Jul 03, 2013
Loading