Skip to content
Snippets Groups Projects
  1. Jul 18, 2014
  2. Jul 16, 2014
  3. Jul 09, 2014
  4. Jul 08, 2014
  5. Jul 07, 2014
    • Joshua Colp's avatar
      res_pjsip_dialog_info_body_generator: Add dialog-info+xml support for presence. · 534ffd84
      Joshua Colp authored
      This module implements dialog-info+xml for the purposes of presence. This means
      that phones such as Grandstreams can now subscribe to receive presence information
      for an extension.
      
      ASTERISK-21443 #close
      Reported by: Matt Jordan
      
      Review: https://reviewboard.asterisk.org/r/3705/
      ........
      
      Merged revisions 418116 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@418117 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      534ffd84
    • Matthew Jordan's avatar
      ARI/res_stasis: Subscribe to both Local channel halves when originating to app · d4b436d0
      Matthew Jordan authored
      This patch fixes two bugs:
      
      1. When originating a channel into a Stasis application, we already create a
         subscription for the channel that is going into our Stasis app.
         Unfortunately, when you create a Local channel and pass it off to a Stasis
         app, you really aren't creating just one channel: you're creating two. This
         patch snags the second half of the Local channel pair (assuming it is a
         Local channel pair, but luckily core_local is kind about such assumptions)
         and subscribes to it as well.
      
      2. Subscriptions are a bit sticky right now. If a subscription is made, the
         'interest' count gets bumped on the Stasis subscription - but unless
         something explicitly unsubscribes the channel, said subscription sticks
         around. This is not much of a problem is a user is creating the subscription
         - if they made it, they must want it. However, when we are creating
         implicit subscriptions, we need to make sure something clears them out.
         This patch takes a pessimistic approach: it watches the cache updates
         coming from Stasis and, if we notice that the cache just cleared out an
         object, we delete our subscription object. This keeps our ao2 container of
         Stasis forwards in an application from growing out of hand; it also is a
         bit more forgiving for end users who may not realize they were supposed to
         unsubscribe from that channel that just hung up.
      
      Review: https://reviewboard.asterisk.org/r/3710/
      #ASTERISK-23939 #close
      ........
      
      Merged revisions 418089 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@418090 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      d4b436d0
    • Kinsey Moore's avatar
      CEL: Fix incorrect/missing extra field information · edcaa540
      Kinsey Moore authored
      This corrects two issues with the extra field information in Asterisk
      12+ in channel event logs.
      
      It is possible to inject custom values into the dialstatus provided by
      ast_channel_dial_type() Stasis messages that fall outside the
      enumeration allowed for the DIALSTATUS channel variable. CEL now
      filters for the allowed values and ignores other values.
      
      The "hangupsource" extra field key is always blank if the far end
      channel is a chan_pjsip channel. This is because the hangupsource is
      never set for the pjsip channel driver. This change sets the
      hangupsource whenever a hangup is queued for chan_pjsip channels.
      
      This corrects an issue with the pjsip channel driver where the
      hangupcause information was not being set properly.
      
      Review: https://reviewboard.asterisk.org/r/3690/
      ........
      
      Merged revisions 418071 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@418084 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      edcaa540
  6. Jul 04, 2014
    • Matthew Jordan's avatar
      Remove many deprecated modules · 97834718
      Matthew Jordan authored
      Billing records are fair,
      To get paid is quite bright,
      You should really use ODBC;
      Good-bye cdr_sqlite.
      
      Microsoft did once push H.323,
      Hell, we all remember NetMeeting.
      But try to compile chan_h323 now
      And you will take quite a beating.
      
      The XMPP and SIP war was fierce,
      And in the distant fray
      Was birthed res_jabber/chan_jingle;
      But neither to stay.
      
      For everyone did care and chase what Google professed.
      "Free Internet Calling" was what devotees cried,
      But Google did change the specs so often
      That the developers were happy the day chan_gtalk died.
      
      And then there was that odd application
      Dedicated to the Polish tongue.
      app_saycountpl was subsumed by Say;
      One could say its bell was rung.
      
      To read and parse a file from the dialplan
      You could (I guess) use an application.
      app_readfile did fill that purpose, but I think
      A function is perhaps better in its creation.
      
      Barging is rude, I'm not sure why we do it.
      Inwardly, the caller will probably sigh.
      But if you really must do it,
      Don't use app_dahdibarge, use ChanSpy.
      
      We all despise the sound of tinny robots
      It makes our queues so cold.
      To control such an abomination
      It's better to not use Wait/SetMusicOnHold.
      
      It's often nice to know properties of a channel
      It makes our calls right
      We have a nice function called CHANNEL
      And so SIPCHANINFO is sent off into the night.
      
      And now things get odd;
      Apparently one could delimit with a colon
      Properties from the SIPPEER function!
      Commas are in; all others are done.
      
      Finally, a word on pipes and commas.
      We're sorry. We can't say it enough.
      But those compatibility options in asterisk.conf;
      To maintain them forever was just too tough.
      
      This patch removes:
      
      * cdr_sqlite
      * chan_gtalk
      * chan_jingle
      * chan_h323
      * res_jabber
      * app_saycountpl
      * app_readfile
      * app_dahdibarge
      
      It removes the following applications/functions:
      
      * WaitMusicOnHold
      * SetMusicOnHold
      * SIPCHANINFO
      
      It removes the colon delimiter from the SIPPEER function.
      
      Finally, it also removes all compatibility options that were configurable from
      asterisk.conf, as these all applied to compatibility with Asterisk 1.4 systems.
      
      Review: https://reviewboard.asterisk.org/r/3698/
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@418019 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      97834718
  7. Jul 03, 2014
  8. Jul 02, 2014
  9. Jul 01, 2014
  10. Jun 30, 2014
  11. Jun 27, 2014
  12. Jun 26, 2014
  13. Jun 25, 2014
  14. Jun 23, 2014
  15. Jun 20, 2014
  16. Jun 19, 2014
  17. Jun 17, 2014
  18. Jun 16, 2014
  19. Jun 15, 2014
  20. Jun 14, 2014
  21. Jun 13, 2014
    • Matthew Jordan's avatar
      stasis: Reduce creation of channel snapshots to improve performance · 9cc1a8e8
      Matthew Jordan authored
      During some performance testing of Asterisk with AGI, ARI, and lots of Local
      channels, we noticed that there's quite a hit in performance during channel
      creation and releasing to the dialplan (ARI continue). After investigating
      the performance spike that occurs during channel creation, we discovered
      that we create a lot of channel snapshots that are technically unnecessary.
      This includes creating snapshots during:
       * AGI execution
       * Returning objects for ARI commands
       * During some Local channel operations
       * During some dialling operations
       * During variable setting
       * During some bridging operations
      And more.
      
      This patch does the following:
       - It removes a number of fields from channel snapshots. These fields were
         rarely used, were expensive to have on the snapshot, and hurt performance.
         This included formats, translation paths, Log Call ID, callgroup, pickup
         group, and all channel variables. As a result, AMI Status,
         "core show channel", "core show channelvar", and "pjsip show channel" were
         modified to either hit the live channel or not show certain pieces of data.
         While this is unfortunate, the performance gain from this patch is worth
         the loss in behaviour.
       - It adds a mechanism to publish a cached snapshot + blob. A large number of
         publications were changed to use this, including:
         - During Dial begin
         - During Variable assignment (if no AMI variables are emitted - if AMI
           variables are set, we have to make snapshots when a variable is changed)
         - During channel pickup
         - When a channel is put on hold/unhold
         - When a DTMF digit is begun/ended
         - When creating a bridge snapshot
         - When an AOC event is raised
         - During Local channel optimization/Local bridging
         - When endpoint snapshots are generated
         - All AGI events
         - All ARI responses that return a channel
         - Events in the AgentPool, MeetMe, and some in Queue
       - Additionally, some extraneous channel snapshots were being made that were
         unnecessary. These were removed.
       - The result of ast_hashtab_hash_string is now cached in stasis_cache. This
         reduces a large number of calls to ast_hashtab_hash_string, which reduced
         the amount of time spent in this function in gprof by around 50%.
      
      #ASTERISK-23811 #close
      Reported by: Matt Jordan
      
      Review: https://reviewboard.asterisk.org/r/3568/
      ........
      
      Merged revisions 416211 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@416216 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      9cc1a8e8
    • Kinsey Moore's avatar
      MoH: Don't restart stream on repeated start calls · 0acc6265
      Kinsey Moore authored
      Currently, music on hold will stop and then start again from the
      beginning if ast_moh_start() is called multiple times. This can happen
      if a call is put on hold repeatedly (the channel receives multiple
      HOLD control frames) and can be triggered from ARI by starting MoH on a
      channel multiple times. This is fairly jarring/annoying to users.
      
      This change prevents MoH from being restarted if the requested music
      class is the same as the one currently playing.
      
      Review: https://reviewboard.asterisk.org/r/3615/
      ........
      
      Merged revisions 416150 from http://svn.asterisk.org/svn/asterisk/branches/1.8
      ........
      
      Merged revisions 416151 from http://svn.asterisk.org/svn/asterisk/branches/11
      ........
      
      Merged revisions 416152 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@416153 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      0acc6265
  22. Jun 12, 2014
    • Kinsey Moore's avatar
      Fix build in devmode for GCC 4.10 · 27430374
      Kinsey Moore authored
      ........
      
      Merged revisions 415980 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@415982 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      27430374
    • Richard Mudgett's avatar
      AST-2014-007: Fix DOS by consuming the number of allowed HTTP connections. · 4ca5745d
      Richard Mudgett authored
      Simply establishing a TCP connection and never sending anything to the
      configured HTTP port in http.conf will tie up a HTTP connection.  Since
      there is a maximum number of open HTTP sessions allowed at a time you can
      block legitimate connections.
      
      A similar problem exists if a HTTP request is started but never finished.
      
      * Added http.conf session_inactivity timer option to close HTTP
      connections that aren't doing anything.  Defaults to 30000 ms.
      
      * Removed the undocumented manager.conf block-sockets option.  It
      interferes with TCP/TLS inactivity timeouts.
      
      * AMI and SIP TLS connections now have better authentication timeout
      protection.  Though I didn't remove the bizzare TLS timeout polling code
      from chan_sip.
      
      * chan_sip can now handle SSL certificate renegotiations in the middle of
      a session.  It couldn't do that before because the socket was non-blocking
      and the SSL calls were not restarted as documented by the OpenSSL
      documentation.
      
      * Fixed an off nominal leak of the ssl struct in
      handle_tcptls_connection() if the FILE stream failed to open and the SSL
      certificate negotiations failed.
      
      The patch creates a custom FILE stream handler to give the created FILE
      streams inactivity timeout and timeout after a specific moment in time
      capability.  This approach eliminates the need for code using the FILE
      stream to be redesigned to deal with the timeouts.
      
      This patch indirectly fixes most of ASTERISK-18345 by fixing the usage of
      the SSL_read/SSL_write operations.
      
      ASTERISK-23673 #close
      Reported by: Richard Mudgett
      ........
      
      Merged revisions 415841 from http://svn.asterisk.org/svn/asterisk/branches/1.8
      ........
      
      Merged revisions 415854 from http://svn.asterisk.org/svn/asterisk/branches/11
      ........
      
      Merged revisions 415896 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@415907 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      4ca5745d
    • Kevin Harwell's avatar
      res_pjsip_pubsub: unauthenticated remote crash in PJSIP pub/sub framework · 870394c0
      Kevin Harwell authored
      A remotely exploitable crash vulnerability exists in the PJSIP channel driver's
      pub/sub framework. If an attempt is made to unsubscribe when not currently
      subscribed and the endpoint's "sub_min_expiry" is set to zero, Asterisk tries
      to create an expiration timer with zero seconds, which is not allowed, so an
      assertion raised.
      
      The fix was to reject a subscription that is attempting to unsubscribe when not
      being already subscribed.  Asterisk now checks for this situation appropriately
      and responds with a 400 instead of crashing.
      
      AST-2014-005
      
      ASTERISK-23489 #close
      ........
      
      Merged revisions 415812 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@415813 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      870394c0
    • Mark Michelson's avatar
      Fix potential deadlock situation in res_pjsip. · e6cb6974
      Mark Michelson authored
      SIP transaction timeouts are handled in the PJSIP monitor thread. When
      this happens on a subscription, and the subscription is destroyed, the
      subscription destruction is dispatched synchronously to the threadpool.
      The issue is that the PJSIP dialog is locked by the monitor thread,
      and then the dispatched task attempts to lock the dialog. This leads
      to a deadlock that causes SIP traffic to no longer be accepted on the
      Asterisk server.
      
      The fix here is to treat the monitor thread as if it were a threadpool
      thread when it attempts to dispatch synchronous tasks. This way, the
      dispatched task turns into a simple function call within the same thread,
      and the locking issue is averted.
      
      AST-2014-008
      
      ASTERISK-23802 #close
      ........
      
      Merged revisions 415794 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@415795 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      e6cb6974
Loading