Skip to content
Snippets Groups Projects
  1. Jul 25, 2014
  2. Jul 24, 2014
    • Richard Mudgett's avatar
      accountcode: Slightly change accountcode propagation. · a2ce95d9
      Richard Mudgett authored
      The previous behavior was to simply set the accountcode of an outgoing
      channel to the accountcode of the channel initiating the call.  It was
      done this way a long time ago to allow the accountcode set on the SIP/100
      channel to be propagated to a local channel so the dialplan execution on
      the Local;2 channel would have the SIP/100 accountcode available.
      
      SIP/100 -> Local;1/Local;2 -> SIP/200
      
      Propagating the SIP/100 accountcode to the local channels is very useful.
      Without any dialplan manipulation, all channels in this call would have
      the same accountcode.
      
      Using dialplan, you can set a different accountcode on the SIP/200 channel
      either by setting the accountcode on the Local;2 channel or by the Dial
      application's b(pre-dial), M(macro) or U(gosub) options, or by the
      FollowMe application's b(pre-dial) option, or by the Queue application's
      macro or gosub options.  Before Asterisk v12, the altered accountcode on
      SIP/200 will remain until the local channels optimize out and the
      accountcode would change to the SIP/100 accountcode.
      
      Asterisk v1.8 attempted to add peeraccount support but ultimately had to
      punt on the support.  The peeraccount support was rendered useless because
      of how the CDR code needed to unconditionally force the caller's
      accountcode onto the peer channel's accountcode.  The CEL events were thus
      intentionally made to always use the channel's accountcode as the
      peeraccount value.
      
      With the arrival of Asterisk v12, the situation has improved somewhat so
      peeraccount support can be made to work.  Using the indicated example, the
      the accountcode values become as follows when the peeraccount is set on
      SIP/100 before calling SIP/200:
      
      SIP/100 ---> Local;1 ---- Local;2 ---> SIP/200
      acct: 100 \/ acct: 200 \/ acct: 100 \/ acct: 200
      peer: 200 /\ peer: 100 /\ peer: 200 /\ peer: 100
      
      If a channel already has an accountcode it can only change by the
      following explicit user actions:
      
      1) A channel originate method that can specify an accountcode to use.
      
      2) The calling channel propagating its non-empty peeraccount or its
      non-empty accountcode if the peeraccount was empty to the outgoing
      channel's accountcode before initiating the dial.  e.g., Dial and
      FollowMe.  The exception to this propagation method is Queue.  Queue will
      only propagate peeraccounts this way only if the outgoing channel does not
      have an accountcode.
      
      3) Dialplan using CHANNEL(accountcode).
      
      4) Dialplan using CHANNEL(peeraccount) on the other end of a local
      channel pair.
      
      If a channel does not have an accountcode it can get one from the
      following places:
      
      1) The channel driver's configuration at channel creation.
      
      2) Explicit user action as already indicated.
      
      3) Entering a basic or stasis-mixing bridge from a peer channel's
      peeraccount value.
      
      You can specify the accountcode for an outgoing channel by setting the
      CHANNEL(peeraccount) before using the Dial, FollowMe, and Queue
      applications.  Queue adds the wrinkle that it will not overwrite an
      existing accountcode on the outgoing channel with the calling channels
      values.
      
      Accountcode and peeraccount values propagate to an outgoing channel before
      dialing.  Accountcodes also propagate when channels enter or leave a basic
      or stasis-mixing bridge.  The peeraccount value only makes sense for
      mixing bridges with two channels; it is meaningless otherwise.
      
      * Made peeraccount functional by changing accountcode propagation as
      described above.
      
      * Fixed CEL extracting the wrong ie value for the peeraccount.  This was
      done intentionally in Asterisk v1.8 when that version had to punt on
      peeraccount.
      
      * Fixed a few places dealing with accountcodes that were reading from
      channels without the lock held.
      
      AFS-65 #close
      
      Review: https://reviewboard.asterisk.org/r/3601/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419520 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      a2ce95d9
    • Michael L. Young's avatar
      core/db: Revert Patch Added In Attempt To Improve I/O Performance · 7059b001
      Michael L. Young authored
      Reverting the patch since it was causing a regression and after fixing the
      regression, there were no performance gains.  At least based on my method
      for measurement.
      
      ASTERISK-24050
      
      Review: https://reviewboard.asterisk.org/r/3841/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419504 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      7059b001
    • Corey Farrell's avatar
      Blocked revisions 419442 · 7e78a8cb
      Corey Farrell authored
      These change was applied to trunk in r419438
      
      ........
      chan_sip: sip_subscribe_mwi_destroy should not call sip_destroy
      
      sip_subscribe_mwi_destroy calls sip_destroy on the reference counted
      mwi->call.  This results in the fields of mwi->call being freed, but
      mwi->call itself it leaked.  If other code is still using mwi->call
      it can cause problems.  This change uses dialog_unref instead, to
      balance the ref provided by sip_alloc().
      
      ASTERISK-24087 #close
      Reported by: Corey Farrell
      Review: https://reviewboard.asterisk.org/r/3834/
      ........
      
      Merged revisions 419440 from http://svn.asterisk.org/svn/asterisk/branches/1.8
      ........
      
      Merged revisions 419441 from http://svn.asterisk.org/svn/asterisk/branches/11
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419443 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      7e78a8cb
    • Corey Farrell's avatar
      Deprecate astobj.h · d074a939
      Corey Farrell authored
      This flags astobj.h as deprecated, warns people to use astobj2.h instead.
      Only netsock.c (also deprecated) still uses astobj.h.
      
      ASTERISK-24069 #close
      Reported by: Corey Farrell
      Review: https://reviewboard.asterisk.org/r/3818/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419439 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      d074a939
    • Corey Farrell's avatar
      chan_sip: complete upgrade to ao2 · 5bea6c1b
      Corey Farrell authored
      This change upgrades sip_registry and sip_subscription_mwi to astobj2.
      
      ASTERISK-24067 #close
      Reported by: Corey Farrell
      Review: https://reviewboard.asterisk.org/r/3759/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419438 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      5bea6c1b
    • Jason Parker's avatar
      Don't cause Asterisk to exit if ooh323.conf not found. · 7e7ba079
      Jason Parker authored
      (closes issue ASTERISK-23814)
      ........
      
      Merged revisions 419374 from http://svn.asterisk.org/svn/asterisk/branches/1.8
      ........
      
      Merged revisions 419375 from http://svn.asterisk.org/svn/asterisk/branches/11
      ........
      
      Merged revisions 419376 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419377 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      7e7ba079
    • Matthew Jordan's avatar
      device state: Update the core to report ONHOLD if a channel is on hold · f6283866
      Matthew Jordan authored
      In Asterisk, it is possible for a device to have a status of ONHOLD. This is
      not typically an easy thing to determine, as a channel being on hold is not
      a direct channel state. Typically, this has to be calculated outside of the
      core independently in channel drivers, notably, chan_sip and chan_pjsip. Both
      of these channel drivers already have to calculate device state in a fashion
      more complex than the core can handle, as they aggregate all state of all
      channels associated with a peer/endpoint; they also independently track
      whether or not one of those channels is currently on hold and mark the device
      state appropriately.
      
      In 12+, we now have the ability to report an AST_DEVICE_ONHOLD state for all
      channels that defer their device state to the core. This is due to channel hold
      state actually now being tracked on the channel itself. If a channel driver
      defers its device state to the core (which many, such as DAHDI, IAX2, and
      others do in most situations), the device state core already goes out to get a
      channel associated with the device. As such, it can now also factor the channel
      hold state in its calculation.
      
      This patch adds this logic to the device state core. It also uses an existing
      mapping between device state and channel state to handle more channel states.
      chan_pjsip has been updated slightly as well to make use of this (as it was,
      for some reason, reporting a channel state of BUSY as a device state of INUSE,
      which feels slightly wrong).
      
      Review: https://reviewboard.asterisk.org/r/3771/
      
      ASTERISK-24038 #close
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419358 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      f6283866
    • Kinsey Moore's avatar
      AMI: Allow for command response documentation · 4445ee7f
      Kinsey Moore authored
      Allow for responses to AMI actions/commands to be documented properly
      in XML and displayed via the CLI. Response events are documented
      exactly as standard AMI events are documented.
      
      Review: https://reviewboard.asterisk.org/r/3812/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419342 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      4445ee7f
  3. Jul 23, 2014
  4. Jul 22, 2014
    • Michael L. Young's avatar
      core/bridge_channel: Substitute Variables In Features Application Map · f613fc24
      Michael L. Young authored
      Say you wanted to include variables in an application map and have those
      variables substituted and passed along to the application being executed;
      currently this does not happen.
      
      This patch adds this ability to pass channel variable values to an
      application before being executed.
      
      ASTERISK-22608 #close
      Reported by: Michael L. Young
      patches:
        features_substitute_arguments_v2.diff
                                           uploaded by Michael L. Young (license 5026)
      
      Review: https://reviewboard.asterisk.org/r/3819/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419252 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      f613fc24
    • Michael L. Young's avatar
      apps/app_mixmonitor: Add Options To Play Beep At Start Or Stop · 20cb961b
      Michael L. Young authored
      We have a new periodic beep feature but sometimes a user needs some sort of
      feedback, without the need to have a periodic beep during the recording, to let
      them know that MixMonitor started recording or ended the recording.  The use
      case where this patch is being used is when using Dynamic Features to start and
      end MixMonitor.
      
      This patch adds an option to play a beep when MixMonitor starts and an option to
      play a beep when MixMonitor ends.
      
      ASTERISK-24051 #close
      Reported by: Michael L. Young
      patches:
        mixmonitor-play-beep-start-stop.diff
                                           uploaded by Michael L. Young (license 5026)
      
      Review: https://reviewboard.asterisk.org/r/3820/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419238 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      20cb961b
    • Michael L. Young's avatar
      core/db: Improve I/O When Updating Rows · b4a68168
      Michael L. Young authored
      When updating a row, we are currently doing an INSERT OR REPLACE INTO.  The
      downside to this is that the row is deleted if it exists and then a new row is
      inserted.  So, we are hitting the disk twice.  One for the deletion and one for
      the insertion.
      
      This patch changes this statement to an INSERT INTO and if the insert fails
      because a row with that key exists, we will IGNORE the failure.  Then we will
      attempt to perform an UPDATE on the existing row if that row wasn't just
      INSERTed.
      
      ASTERISK-24050 #close
      Reported by: Michael L. Young
      patches:
        astdb-insert-update-io-help_trunk_v2.diff
                                           uploaded by Michael L. Young (license 5026)
      
      Review: https://reviewboard.asterisk.org/r/3815/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419222 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      b4a68168
    • Richard Mudgett's avatar
      codec_speex: Fix trashing normal static frame for AST_FRAME_CNG. · 197f06be
      Richard Mudgett authored
      Made use a local static frame to generate the AST_FRAME_CNG frame when
      silence starts.
      
      I don't think the handling of the AST_FRAME_CNG has ever really worked
      because there doesn't seem to be any consumers of it.
      
      Review: https://reviewboard.asterisk.org/r/3813/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419206 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      197f06be
    • Matthew Jordan's avatar
      ARI: Fix endpoint/channel subscription issues; allow for subscriptions to tech · bb87796f
      Matthew Jordan authored
      This patch serves two purposes:
      (1) It fixes some bugs with endpoint subscriptions not reporting all of the
          channel events
      (2) It serves as the preliminary work needed for ASTERISK-23692, which allows
          for sending/receiving arbitrary out of call text messages through ARI in a
          technology agnostic fashion.
      
      The messaging functionality described on ASTERISK-23692 requires two things:
      (1) The ability to send/receive messages associated with an endpoint. This is
          relatively straight forwards with the endpoint core in Asterisk now.
      (2) The ability to send/receive messages associated with a technology and an
          arbitrary technology defined URI. This is less straight forward, as
          endpoints are formed from a tech + resource pair. We don't have a
          mechanism to note that a technology that *may* have endpoints exists.
      
      This patch provides such a mechanism, and fixes a few bugs along the way.
      
      The first major bug this patch fixes is the forwarding of channel messages
      to their respective endpoints. Prior to this patch, there were two problems:
      (1) Channel caching messages weren't forwarded. Thus, the endpoints missed
          most of the interesting bits (such as channel creation, destruction, state
          changes, etc.)
      (2) Channels weren't associated with their endpoint until after creation.
          This resulted in endpoints missing the channel creation message, which
          limited the usefulness of the subscription in the first place (a major use
          case being 'tell me when this endpoint has a channel'). Unfortunately,
          this meant another parameter to ast_channel_alloc. Since not all channel
          technologies support an ast_endpoint, this patch makes such a call
          optional and opts for a new function, ast_channel_alloc_with_endpoint.
      
      When endpoints are created, they will implicitly create a technology endpoint
      for their technology (if one does not already exist). A technology endpoint is
      special in that it has no state, cannot have channels created for it, cannot
      be created explicitly, and cannot be destroyed except on shutdown. It does,
      however, have all messages from other endpoints in its technology forwarded to
      it.
      
      Combined with the bug fixes, we now have Stasis messages being properly
      forwarded. Consider the following scenario: two PJSIP endpoints (foo and bar),
      where bar has a single channel associated with it and foo has two channels
      associated with it. The messages would be forwarded as follows:
      
      channel PJSIP/foo-1 --
                            \
                             --> endpoint PJSIP/foo --
                            /                         \
      channel PJSIP/foo-2 --                           \
                                                        ---- > endpoint PJSIP
                                                      /
      channel PJSIP/bar-1 -----> endpoint PJSIP/bar --
      
      ARI, through the applications resource, can:
       - subscribe to endpoint:PJSIP/foo and get notifications for channels
         PJSIP/foo-1,PJSIP/foo-2 and endpoint PJSIP/foo
       - subscribe to endpoint:PJSIP/bar and get notifications for channels
         PJSIP/bar-1 and endpoint PJSIP/bar
       - subscribe to endpoint:PJSIP and get notifications for channels
         PJSIP/foo-1,PJSIP/foo-2,PJSIP/bar-1 and endpoints PJSIP/foo,PJSIP/bar
      
      Note that since endpoint PJSIP never changes, it never has events itself. It
      merely provides an aggregation point for all other endpoints in its technology
      (which in turn aggregate all channel messages associated with that endpoint).
      
      This patch also adds endpoints to res_xmpp and chan_motif, because the actual
      messaging work will need it (messaging without XMPP is just sad).
      
      Review: https://reviewboard.asterisk.org/r/3760/
      
      ASTERISK-23692
      ........
      
      Merged revisions 419196 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419203 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      bb87796f
    • Joshua Colp's avatar
      chan_iax2: Restore previous behavior of iax2_best_codec. · 84beaf27
      Joshua Colp authored
      The iax2_best_codec function was changed to convert the formats
      into a format compatibilities structure and grab the first
      format from it. The resulting order differs from the previous
      order of iax2_best_codec which causes unexpected formats to
      get chosen (such as g723).
      
      This commit brings back the old behavior of iax2_best_codec by
      having a specified preference list.
      
      Review: https://reviewboard.asterisk.org/r/3835/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419180 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      84beaf27
    • Kinsey Moore's avatar
      Fix more dev-mode build issues · 9056c23b
      Kinsey Moore authored
      ........
      
      Merged revisions 419129 from http://svn.asterisk.org/svn/asterisk/branches/1.8
      ........
      
      Merged revisions 419162 from http://svn.asterisk.org/svn/asterisk/branches/11
      ........
      
      Merged revisions 419163 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419175 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      9056c23b
  5. Jul 21, 2014
  6. Jul 20, 2014
  7. Jul 18, 2014
Loading