Skip to content
Snippets Groups Projects
  1. Apr 13, 2015
    • Matt Jordan's avatar
      git migration: Refactor the ASTERISK_FILE_VERSION macro · 4a582616
      Matt Jordan authored
      Git does not support the ability to replace a token with a version
      string during check-in. While it does have support for replacing a
      token on clone, this is somewhat sub-optimal: the token is replaced
      with the object hash, which is not particularly easy for human
      consumption. What's more, in practice, the source file version was often
      not terribly useful. Generally, when triaging bugs, the overall version
      of Asterisk is far more useful than an individual SVN version of a file. As a
      result, this patch removes Asterisk's support for showing source file
      versions.
      
      Specifically, it does the following:
      
      * Rename ASTERISK_FILE_VERSION macro to ASTERISK_REGISTER_FILE, and
        remove passing the version in with the macro. Other facilities
        than 'core show file version' make use of the file names, such as
        setting a debug level only on a specific file. As such, the act of
        registering source files with the Asterisk core still has use. The
        macro rename now reflects the new macro purpose.
      
      * main/asterisk:
        - Refactor the file_version structure to reflect that it no longer
          tracks a version field.
        - Remove the "core show file version" CLI command. Without the file
          version, it is no longer useful.
        - Remove the ast_file_version_find function. The file version is no
          longer tracked.
        - Rename ast_register_file_version/ast_unregister_file_version to
          ast_register_file/ast_unregister_file, respectively.
      
      * main/manager: Remove value from the Version key of the ModuleCheck
        Action. The actual key itself has not been removed, as doing so would
        absolutely constitute a backwards incompatible change. However, since
        the file version is no longer tracked, there is no need to attempt to
        include it in the Version key.
      
      * UPGRADE: Add notes for:
        - Modification to the ModuleCheck AMI Action
        - Removal of the "core show file version" CLI command
      
      Change-Id: I6cf0ff280e1668bf4957dc21f32a5ff43444a40e
      4a582616
  2. Apr 10, 2015
    • Richard Mudgett's avatar
      chan_pjsip/res_pjsip/bridge_softmix/core: Improve translation path choices. · c499cabf
      Richard Mudgett authored
      With this patch, chan_pjsip/res_pjsip now sets the native formats to the
      codecs negotiated by a call.
      
      * The changes in chan_pjsip.c and res_pjsip_sdp_rtp.c set the native
      formats to include all the negotiated audio codecs instead of only the
      initial preferred audio codec and later the currently received audio
      codec.
      
      * The audio frame handling in channel.c:ast_read() is more streamlined and
      will automatically adjust to changes in received frame formats.  The new
      policy is to remove translation and pass the new frame format to the
      receiver except if the translation was to a signed linear format.  A more
      long winded version is commented in ast_read() along with some caveats.
      
      * The audio frame handling in channel.c:ast_write() is more streamlined
      and will automatically adjust any needed translation to changes in the
      frame formats sent.  Frame formats sent can change for many reasons such
      as a recording is being played back or the bridged peer changed the format
      it sends.  Since it is a normal expectation that sent formats can change,
      the codec mismatch warning message is demoted to a debug message.
      
      * Removed the short circuit check in
      channel.c:ast_channel_make_compatible_helper().  Two party bridges need to
      make channels compatible with each other.  However, transfers and moving
      channels among bridges can result in otherwise compatible channels having
      sub-optimal translation paths if the make compatible check is short
      circuited.  A result of forcing the reevaluation of channel compatibility
      is that the asterisk.conf:transcode_via_slin and codecs.conf:genericplc
      options take effect consistently now.  It is unfortunate that these two
      options are enabled by default and negate some of the benefits to the
      changes in channel.c:ast_read() by forcing translation through signed
      linear on a two party bridge.
      
      * Improved the softmix bridge technology to better control the translation
      of frames to the bridge.  All of the incoming translation is now normally
      handled by ast_read() instead of splitting any translation steps between
      ast_read() and the slin factory.  If any frame comes in with an unexpected
      format then the translation path in ast_read() is updated for the next
      frame and the slin factory handles the current frame translation.
      
      This is the final patch in a series of patches aimed at improving
      translation path choices.  The other patches are on the following reviews:
      https://reviewboard.asterisk.org/r/4600/
      https://reviewboard.asterisk.org/r/4605/
      
      ASTERISK-24841 #close
      Reported by: Matt Jordan
      
      Review: https://reviewboard.asterisk.org/r/4609/
      ........
      
      Merged revisions 434671 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@434672 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      c499cabf
    • Matthew Jordan's avatar
      res_pjsip: Add an 'auto' option for DTMF Mode · 8bae18ab
      Matthew Jordan authored
      This patch adds support for automatically detecting the type of DTMF that a
      PJSIP endpoint supports. When the 'dtmf_mode' endpoint option is set to 'auto',
      the channel created for an endpoint will attempt to determine if RFC 4733
      DTMF is supported. If so, it will use that DTMF type. If not, the DTMF type
      for the channel will be set to inband.
      
      Review: https://reviewboard.asterisk.org/r/4438
      
      ASTERISK-24706 #close
      Reported by: yaron nahum
      patches:
        yaron_patch_3_Feb.diff submitted by yaron nahum (License 6676)
      ........
      
      Merged revisions 434637 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@434638 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      8bae18ab
  3. Apr 08, 2015
  4. Mar 30, 2015
  5. Mar 28, 2015
  6. Mar 24, 2015
    • Richard Mudgett's avatar
      chan_pjsip: Add "rpid_immediate" option to prevent unnecessary "180 Ringing" messages. · 4c2fc5b8
      Richard Mudgett authored
      Incoming PJSIP call legs that have not been answered yet send unnecessary
      "180 Ringing" or "183 Progress" messages every time a connected line
      update happens.  If the outgoing channel is also PJSIP then the incoming
      channel will always send a "180 Ringing" or "183 Progress" message when
      the outgoing channel sends the INVITE.
      
      Consequences of these unnecessary messages:
      
      * The caller can start hearing ringback before the far end even gets the
      call.
      
      * Many phones tend to grab the first connected line information and refuse
      to update the display if it changes.  The first information is not likely
      to be correct if the call goes to an endpoint not under the control of the
      first Asterisk box.
      
      When connected line first went into Asterisk in v1.8, chan_sip received an
      undocumented option "rpid_immediate" that defaults to disabled.  When
      enabled, the option immediately passes connected line update information
      to the caller in "180 Ringing" or "183 Progress" messages as described
      above.
      
      * Added "rpid_immediate" option to prevent unnecessary "180 Ringing" or
      "183 Progress" messages.  The default is "no" to disable sending the
      unnecessary messages.
      
      ASTERISK-24781 #close
      Reported by: Richard Mudgett
      
      Review: https://reviewboard.asterisk.org/r/4473/
      ........
      
      Merged revisions 433338 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@433339 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      4c2fc5b8
  7. Mar 13, 2015
    • Richard Mudgett's avatar
      chan_pjsip/res_pjsip_callerid: Make Party ID handling simpler and consistent. · 636d82f4
      Richard Mudgett authored
      The res_pjsip modules were manually checking both name and number
      presentation values when there is a function that determines the combined
      presentation for a party ID struct.  The function takes into account if
      the name or number components are valid while the manual code rarely
      checked if the data was even valid.
      
      * Made use ast_party_id_presentation() rather than manually checking party
      ID presentation values.
      
      * Ensure that set_id_from_pai() and set_id_from_rpid() will not return
      presentation values other than what is pulled out of the SIP headers.  It
      is best if the code doesn't assume that AST_PRES_ALLOWED and
      AST_PRES_USER_NUMBER_UNSCREENED are zero.
      
      * Fixed copy paste error in add_privacy_params() dealing with RPID
      privacy.
      
      * Pulled the id->number.valid test from add_privacy_header() and
      add_privacy_params() up into the parent function add_id_headers() to skip
      adding PAI/RPID headers earlier.
      
      * Made update_connected_line_information() not send out connected line
      updates if the connected line number is invalid.  Lower level code would
      not add the party ID information and thus the sent message would be
      unnecessary.
      
      * Eliminated RAII_VAR usage in send_direct_media_request().
      
      Review: https://reviewboard.asterisk.org/r/4472/
      ........
      
      Merged revisions 432892 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@432893 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      636d82f4
  8. Feb 24, 2015
    • Matthew Jordan's avatar
      ARI/PJSIP: Apply requesting channel's format cap to created channels · a528dfc9
      Matthew Jordan authored
      This patch addresses the following problems:
      * ari/resource_channels: In ARI, we currently create a format capability
        structure of SLIN and apply it to the new channel being created. This was
        originally done when the PBX core was used to create the channel, as there
        was a condition where a newly created channel could be created without any
        formats. Unfortunately, now that the Dial API is being used, this has two
        drawbacks:
        (a) SLIN, while it will ensure audio will flows, can cause a lot of
            needless transcodings to occur, particularly when a Local channel is
            created to the dialplan. When no format capabilities are available, the
            Dial API handles this better by handing all audio formats to the requsted
            channels. As such, we defer to that API to provide the format
            capabilities.
        (b) If a channel (requester) is causing this channel to be created, we
            currently don't use its format capabilities as we are passing in our own.
            However, the Dial API will use the requester channel's formats if none
            are passed into it, and the requester channel exists and has format
            capabilities. This is the "best" scenario, as it is the most likely to
            create a media path that minimizes transcoding.
        Fixing this simply entails removing the providing of the format capabilities
        structure to the Dial API.
      
      * chan_pjsip: Rather than blindly picking the first format in the format
        capability structure - which actually *can* be a video or text format - we
        select an audio format, and only pick the first format if that fails. That
        minimizes the weird scenario where we attempt to transcode between video/audio.
      
      * res_pjsip_sdp_rtp: Applied the joint capapbilites to the format structure.
        Since ast_request already limits us down to one format capability once the
        format capabilities are passed along, there's no reason to squelch it here.
      
      * channel: Fixed a comment. The reason we have to minimize our requested
        format capabilities down to a single format is due to Asterisk's inability
        to convey the format to be used back "up" a channel chain. Consider the
        following:
      
          PJSIP/A => L;1 <=> L;2 => PJSIP/B
          g,u,a     g,u,a    g,u,a      u
      
        That is, we have PJSIP/A dialing a Local channel, where the Local;2 dials
        PJSIP/B. PJSIP/A has native format capabilities g722,ulaw,alaw; the Local
        channel has inherited those format capabilities down the line; PJSIP/B
        supports only ulaw. According to these format capabilities, ulaw is
        acceptable and should be selected across all the channels, and no
        transcoding should occur. However, there is no way to convey this: when L;2
        and PJSIP/B are put into a bridge, we will select ulaw, but that is not
        conveyed to PJSIP/A and L;1. Thus, we end up with:
      
          PJSIP/A <=> L;1 <=> L;2 <=> PJSIP/B
            g          g   X   u        u
      
        Which causes g722 to be written to PJSIP/B.
      
        Even if we can convey the 'ulaw' choice back up the chain (which through
        some severe hacking in Local channels was accomplished), such that the chain
        looks like:
      
          PJSIP/A <=> L;1 <=> L;2 <=> PJSIP/B
            u          u       u         u
      
        We have no way to tell PJSIP/A's *channel driver* to Answer in the SDP back
        with only 'ulaw'. This results in all the channel structures being set up
        correctly, but PJSIP/A *still* sending g722 and causing the chain to fall
        apart.
      
        There's a lot of difficulty just in setting this up, as there are numerous
        race conditions in the act of bridging, and no clean mechanism to pass the
        selected format backwards down an established channel chain. As such, the
        best that can be done at this point in time is clarifying the comment.
      
      Review: https://reviewboard.asterisk.org/r/4434/
      
      ASTERISK-24812 #close
      Reported by: Matt Jordan
      ........
      
      Merged revisions 432195 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@432196 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      a528dfc9
  9. Feb 12, 2015
    • Matthew Jordan's avatar
      ARI/PJSIP: Add the ability to redirect (transfer) a channel in a Stasis app · 29f66b04
      Matthew Jordan authored
      This patch adds a new feature to ARI to redirect a channel to another server,
      and fixes a few bugs in PJSIP's handling of the Transfer dialplan
      application/ARI redirect capability.
      
      *New Feature*
      A new operation has been added to the ARI channels resource, redirect. With
      this, a channel in a Stasis application can be redirected to another endpoint
      of the same underlying channel technology.
      
      *Bug fixes*
      In the process of writing this new feature, two bugs were fixed in the PJSIP
      stack:
      (1) The existing .transfer channel callback had the limitation that it could
          only transfer channels to a SIP URI, i.e., you had to pass
          'PJSIP/sip:foo@my_provider.com' to the dialplan application. While this is
          still supported, it is somewhat unintuitive - particularly in a world full
          of endpoints. As such, we now also support specifying the PJSIP endpoint to
          transfer to.
      (2) res_pjsip_multihomed was, unfortunately, trying to 'help' a 302 redirect by
          updating its Contact header. Alas, that resulted in the forwarding
          destination set by the dialplan application/ARI resource/whatever being
          rewritten with very incorrect information. Hence, we now don't bother
          updating an outgoing response if it is a 302. Since this took a looong time
          to find, some additional debug statements have been added to those modules
          that update the Contact headers.
      
      Review: https://reviewboard.asterisk.org/r/4316/
      
      ASTERISK-24015 #close
      Reported by: Private Name
      
      ASTERISK-24703 #close
      Reported by: Matt Jordan
      ........
      
      Merged revisions 431717 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@431718 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      29f66b04
  10. Jan 30, 2015
  11. Jan 16, 2015
  12. Dec 12, 2014
  13. Nov 20, 2014
  14. Nov 16, 2014
  15. Nov 15, 2014
  16. Nov 03, 2014
  17. Oct 16, 2014
  18. Oct 03, 2014
  19. Oct 02, 2014
  20. Sep 27, 2014
  21. Sep 19, 2014
  22. Sep 02, 2014
    • Mark Michelson's avatar
      Resolve race condition where channels enter dialplan application before media has been negotiated. · 1b64f353
      Mark Michelson authored
      Testsuite tests will occasionally fail because on reception of a 200 OK SIP response,
      an AST_CONTROL_ANSWER frame is queued prior to when media has finished being
      negotiated. This is because session supplements are called into before PJSIP's
      inv_session code has told us that media has been updated. Sometimes the queued answer
      frame is handled by the PBX thread before the ensuing media negotiations occur, causing
      a test failure.
      
      As it turns out, there is another place that session supplements could be called into, which is
      after media has finished getting negotiated. What this commit introduces is a means for session
      supplements to indicate when they wish to be called into when handling an incoming SIP response.
      By default, all session supplements will be run at the same point that they were prior to this
      commit. However, session supplements may indicate that they wish to be handled earlier than
      normal on redirects, or they may indicate they wish to be handled after media has been negotiated.
      
      In this changeset, two session supplements have been updated to indicate a preference for when
      they should be run: res_pjsip_diversion executes before handling redirection in order to get
      information from the Diversion header, and chan_pjsip now handles responses to INVITEs after
      media negotiation to fix the race condition mentioned previously.
      
      ASTERISK-24212 #close
      Reported by Matt Jordan
      
      Review: https://reviewboard.asterisk.org/r/3930
      ........
      
      Merged revisions 422536 from http://svn.asterisk.org/svn/asterisk/branches/12
      ........
      
      Merged revisions 422542 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@422543 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      1b64f353
  23. Aug 20, 2014
  24. Aug 19, 2014
    • Richard Mudgett's avatar
      chan_pjsip: Fix attended transfer connected line name update. · 83a9b91d
      Richard Mudgett authored
      A calls B
      B answers
      B SIP attended transfers to C
      C answers, B and C can see each other's connected line information
      B completes the transfer
      A has number but no name connected line information about C
        while C has the full information about A
      
      I examined the incoming and outgoing party id information handling of
      chan_pjsip and found several issues:
      
      * Fixed ast_sip_session_create_outgoing() not setting up the configured
      endpoint id as the new channel's caller id.  This is why party A got
      default connected line information.
      
      * Made update_initial_connected_line() use the channel's CALLERID(id)
      information.  The core, app_dial, or predial routine may have filled in or
      changed the endpoint caller id information.
      
      * Fixed chan_pjsip_new() not setting the full party id information
      available on the caller id and ANI party id.  This includes the configured
      callerid_tag string and other party id fields.
      
      * Fixed accessing channel party id information without the channel lock
      held.
      
      * Fixed using the effective connected line id without doing a deep copy
      outside of holding the channel lock.  Shallow copy string pointers can
      become stale if the channel lock is not held.
      
      * Made queue_connected_line_update() also update the channel's
      CALLERID(id) information.  Moving the channel to another bridge would need
      the information there for the new bridge peer.
      
      * Fixed off nominal memory leak in update_incoming_connected_line().
      
      * Added pjsip.conf callerid_tag string to party id information from
      enabled trust_inbound endpoint in caller_id_incoming_request().
      
      AFS-98 #close
      Reported by: Mark Michelson
      
      Review: https://reviewboard.asterisk.org/r/3913/
      ........
      
      Merged revisions 421400 from http://svn.asterisk.org/svn/asterisk/branches/12
      ........
      
      Merged revisions 421403 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@421404 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      83a9b91d
  25. Jul 31, 2014
    • Matthew Jordan's avatar
      res_hep_rtcp: Add module that sends RTCP information to a Homer Server · bbeaeea1
      Matthew Jordan authored
      This patch adds a new module to Asterisk, res_hep_rtcp. The module subscribes
      to the RTCP topics in Stasis and receives RTCP information back from the
      message bus. It encodes into HEPv3 packets and sends the information to the
      res_hep module for transmission.
      
      Using this, someone with a Homer server can get live call quality monitoring
      for all RTP-based channels in their Asterisk 12+ systems.
      
      In addition, there were a few bugs in the RTP engine, res_rtp_asterisk, and
      chan_pjsip that were uncovered by the tests written for the Asterisk Test
      Suite. This patch fixes the following:
      1) chan_pjsip failed to set its channel unique ids on its RTP instance on
         outbound calls. It now does this in the appropriate location, in the
         serialized call callback.
      2) The rtp_engine was overflowing some values when packed into JSON.
         Specifically, some longs and unsigned ints can't be be packed into integer
         values, for obvious reasons. Since libjansson only supports integers,
         floats, strings, booleans, and objects, we print these values into strings.
      3) res_rtp_asterisk had a few problems:
         (a) it would emit a source IP address of 0.0.0.0 if bound to that IP
             address. We now use ast_find_ourip to get a better IP address, and
             properly marshal the result into an ast_strdupa'd string.
         (b) Reports can be generated with no report bodies. In particular, this
             occurs when a sender is transmitting information to a receiver (who
             will send no RTP back to the sender). As such, the sender has no report
             body for what it received. We now properly handle this case, and the
             sender will emit SR reports with no body. Likewise, if we receive an
             RTCP packet with no report body, we will still generate the appropriate
             events.
      
      ASTERISK-24119 #close
      ........
      
      Merged revisions 419823 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419825 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      bbeaeea1
  26. Jul 25, 2014
  27. Jul 24, 2014
    • 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
  28. Jul 22, 2014
    • 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
  29. Jul 20, 2014
  30. Jul 16, 2014
  31. Jul 07, 2014
    • 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
  32. Jun 26, 2014
  33. Jun 05, 2014
  34. Jun 04, 2014
  35. May 09, 2014
  36. Apr 30, 2014
Loading