Skip to content
Snippets Groups Projects
  1. Oct 17, 2016
    • Matt Jordan's avatar
      res/ari: Add the Asterisk EID field to outgoing events · dd5129d8
      Matt Jordan authored
      This patch adds the Asterisk EID field to all outgoing ARI events.
      Because this field should be added to all events as they are
      transmitted, it is appended to the JSON message just prior to it being
      handed off to the application message handler. This makes it somewhat
      resilient to both new events being added to ARI, as well as other
      potential event transport mechanisms.
      
      ASTERISK-26470 #close
      
      Change-Id: Ieff0ecc24464e83f3f44e9c3e7bd9a5d70b87a1d
      dd5129d8
  2. Oct 11, 2016
    • George Joseph's avatar
      app_dial: Add the "Q" option to set the cause on unanswered channels · 86e87169
      George Joseph authored
      The "Q" option will set the cause on the unanswered channels when
      another channel answers.  It overrides the default of
      ANSWERED_ELSEWHERE.
      
      NOTE:  chan_sip does not support setting the cause on a CANCEL to
      anything other than ANSWERED_ELSEWHERE.
      
      ASTERISK-26446 #close
      
      Change-Id: I71742e0919aaa16784c30a2b2e73fbeed7672e47
      86e87169
  3. Sep 29, 2016
  4. Sep 15, 2016
    • Tzafrir Cohen's avatar
      sd_notify (systemd status notifications) support · 07b95f7c
      Tzafrir Cohen authored
      sd_notify() is used to notify systemd of changes to the status of the
      process. This allows the systemd daemon to know when the process
      finished loading (and thus only start another program after Asterisk has
      finished loading).
      
      To use this, use a systemd unit with 'Type=notify' for Asterisk.
      
      This commit also adds the function ast_sd_notify(), a wrapper around
      sd_notify that does nothing if not built with systemd support.
      
      Also adds support for libsystemd detection in the configure script.
      
      Change-Id: Ied6a59dafd5ef331c5c7ae8f3ccd2dfc94be7811
      07b95f7c
  5. Sep 09, 2016
    • Richard Mudgett's avatar
      res_pjsip: Add ignore_uri_user_options option. · ba362822
      Richard Mudgett authored
      This implements the chan_sip legacy_useroption_parsing option but with a
      better name.
      
      * Made the caller-id number and redirecting number strings obtained from
      incoming SIP URI user fields always truncated at the first semicolon.
      People don't care about anything after the semicolon showing up on their
      displays even though the RFC allows the semicolon.
      
      ASTERISK-26316 #close
      Reported by: Kevin Harwell
      
      Change-Id: Ib42b0e940dd34d84c7b14bc2e90d1ba392624f62
      ba362822
    • Aaron An's avatar
      res/res_pjsip: Add preferred_codec_only config to pjsip endpoint. · 2a50c291
      Aaron An authored
      This patch add config to pjsip by endpoint.
      ;preferred_codec_only=yes
      ; Respond to a SIP invite with the single most preferred codec
      ; rather than advertising all joint codec capabilities. This
      ; limits the other side's codec choice to exactly what we prefer.
      
      ASTERISK-26317 #close
      Reported by: AaronAn
      Tested by: AaronAn
      
      Change-Id: Iad04dc55055403bbf5ec050997aee2dadc4f0762
      2a50c291
  6. Sep 07, 2016
    • Mark Michelson's avatar
      ConfBridge: Make some announcements asynchronous. · ac02bbd9
      Mark Michelson authored
      Confbridge announcements tend to block a channel while they are being
      played. In some circumstances, this is warranted since you want that
      particular channel not to hear the announcement (Example: "John Doe has
      entered the conference"). For others it makes less sense.
      
      This change first introduces methods for playing sounds asynchronously
      into the conference. This is very similar to how synchronous sounds are
      played, except the channel initiating the playback does not wait for the
      sound to complete before moving on.
      
      Asynchronous announcements are used for two circumstances:
      * Sounds played for a user after they have left the bridge
      * Sounds that play first to a single user and then the rest of the
        conference (if the channel and conference use the same language)
      
      ASTERISK-26289 #close
      Reported by Mark Michelson
      
      Change-Id: Ie486bb3de1646d50894489030326a423e594ab0a
      ac02bbd9
    • Alexander Traud's avatar
      chan_sip: Allow Preferred sRTP. · 7a12355d
      Alexander Traud authored
      Following the Encrypt-all-the-things paradigm:
      
      The user enters his SIP-URI and password. Thanks to DNS-NAPTR, the phone
      determines SIP-over-TLS as preferred transport. In SIP/SDP, the phone starts
      the call with a crypto attribute, but not as RTP/sAVP but the RTP/AVP profile
      (sRTP is preferred aka optional; not mandatory). If the VoIP server does not
      support sRTP and TLS, the phone shows an open padlock icon.
      
      This paradigm is supported by several VoIP/SIP clients on default. Some
      implementations even cannot be changed to RTP/sAVP. Therefore here, this
      change allows Preferred sRTP for ingress. For egress, please, create a dial
      plan which starts with RTP/SAVP, and when rejected tries again with RTP/AVP.
      
      ASTERISK-20234 #close
      Reported by: tootai
      Tested by: tootai, Alexander Traud
      patches:
       srtp_patches.diff submitted by Matt Jordan
      
      Change-Id: I42cb779df3a9c7b3dd03a629fb3a296aa4ceb0fd
      7a12355d
  7. Sep 06, 2016
    • George Joseph's avatar
      build: Add download capability for external packages · 6caf6bcd
      George Joseph authored
      The DPMA and g729a, silk, siren7 and siren14 codecs hosted at
      http://downloads.digium.com/pub/telephony/ are now listed in the
      "External" sections of the "Resource Modules" and "Codec Translators"
      pages in menuselect.  Any that are selected will automatically be
      downloaded and installed when "make install" is run.  Their LICENSE and
      README (if avaialble) files will be installed to
      ASTVARLIBDIR/documentation/thirdparty/<product_name>.
      
      Example use with codecs:
      
      The codecs/codecs.xml file is a menuselect style xml file that lists
      the codecs to be included.  Their support levels are 'external', which
      triggers the download and install, and defaultenabled is no.  Also
      because codec_g729a is actually in a directory named codec_g729 on the
      download server, the newly added 'member_data' element is used to
      override the default of the directory name being the package name.  You
      can use the 'directory_name' attribute to keep default base URL
      (http://downloads.digium.com/pub/telephony/) but use the new directory,
      or you use the 'remote_url' attribute to specify a full URL to the
      download directory.  In this case, you must still follow the same
      subdirectory naming conventions as that used for the packages located
      at 'http://downloads.digium.com/pub/telephony'.
      
      A new configure option '--with-externals-cache' was added and like
      '--with-sounds-cache' it allows the installer to cache tarballs so
      they're not downloaded every time.
      
      To assist with the download and install process, each external package
      now has a manifest.xml file that, among other things, contains a package
      version and checksums for each file in the tarball.  The manifest is
      saved to both the cache directory and ASTMODDIR and together with the
      manifest.xml on the downloads site, tells the install scripts whether
      a download and/or update is needed.
      
      bash and xmlstarlet are required for downloader operation.  If they're
      not installed, the external items in menuselect will be unavailable.
      
      Change-Id: Id3dcf1289ffd3cb0bbd7dfab3cafbb87be60323a
      6caf6bcd
  8. Aug 25, 2016
    • Richard Mudgett's avatar
      res_pjsip: Cache global config options. · ea929d76
      Richard Mudgett authored
      We may check a global config option hundreds of times a second or more.
      Asking sorcery for the global configuration from the config files backend
      involves several allocations and container traversals.  Using realtime
      without a memory cache is a lot worse because you have to lookup in the
      realtime database each time to reconstitute the sorcery object.  With a
      memory cache for realtime, there is about the same amount of overhead as
      for config files.  Either way, it is still fairly expensive to access the
      sorcery object that much.
      
      * Cache the global config options so we can access them faster.  You must
      now always perform a res_pjsip reload to change the global options.
      
      Change-Id: Ice16c7a4cbca4614da344aaea21a072b86263ef7
      ea929d76
    • varnav's avatar
      chan_iax2: Set plaintext auth to deprecated as per ASTERISK-22820 · d2e03c25
      varnav authored
      Starting from draft 2 of RFC 5456 (October 23, 2006) plaintext auth
      is not supported in IAX2 protocol. Please refer to section 8.6.13 of
      RFC 5456.
      
      But plaintext auth is still supported by Asterisk implementation of IAX2.
      This support should be dropped.
      
      Patch, based on asterisk-dev discussion, adds deprecation warning on
      startup if 'auth' is set to 'plaintext', changes default values of
      'auth' from 'md5, plaintext' to 'md5'.
      
      Patch is safe in terms of backwards compatibility, will work even if
      remote peers have auth=plaintext and we have defaults.
      
      auth=plaintext setting will remain deprecated in Asterisk 14 and 15,
      and IAX2 plaintext support will be removed in Asterisk 16.
      
      ASTERISK-22820 #close
      
      Change-Id: I5d2f3830cb57645604818f87518916e8a5c317bf
      d2e03c25
  9. Aug 17, 2016
    • George Joseph's avatar
      res_pjsip: Add contact_user to endpoint · 534063fd
      George Joseph authored
      contact_user, when specified on an endpoint, will override the user
      portion of the Contact header on outgoing requests.
      
      Change-Id: Icd4ebfda2f2e44d3ac749d0b4066630e988407d4
      534063fd
  10. Aug 11, 2016
  11. Aug 10, 2016
    • Matt Jordan's avatar
      channels/chan_pjsip: Add PJSIP_SEND_SESSION_REFRESH · c315460a
      Matt Jordan authored
      This patch adds a new PJSIP specific dialplan function,
      PJSIP_SEND_SESSION_REFRESH. When invoked on a PJSIP channel, the media
      session will be refreshed via either an UPDATE or re-INVITE request.
      When used in conjunction with the PJSIP_MEDIA_OFFER dialplan function,
      the formats in use on a PJSIP channel can be re-negotiated and changed
      dynamically after call setup.
      
      ASTERISK-26277 #close
      
      Change-Id: Ib98fe09ba889aafe26d58d32f0fd1323f8fd9b1b
      (cherry picked from commit eec60dd7)
      c315460a
  12. Aug 08, 2016
    • Alexei Gradinari's avatar
      res_pjsip_mwi: fix unsolicited mwi blocks PJSIP stack · 403b6357
      Alexei Gradinari authored
      The PJSIP taskprocessors could be overflowed on startup
      if there are many (thousands) realtime endpoints
      configured with unsolicited mwi.
      The PJSIP stack could be totally unresponsive for a few minutes
      after boot completed.
      
      This patch creates a separate PJSIP serializers pool for mwi
      and makes unsolicited mwi use serializers from this pool.
      This patch also adds 2 new global options to tune taskprocessor
      alert levels: 'mwi_tps_queue_high' and 'mwi_tps_queue_low'.
      
      This patch also adds new global option 'mwi_disable_initial_unsolicited'
      to disable sending unsolicited mwi to all endpoints on startup.
      If disabled then unsolicited mwi will start processing
      on next endpoint's contact update.
      
      ASTERISK-26230 #close
      
      Change-Id: I4c8ecb82c249eb887930980a800c9f87f28f861a
      403b6357
  13. Aug 05, 2016
    • Alexei Gradinari's avatar
      app_voicemail: Add taskprocessor alert level options. · 9042ad40
      Alexei Gradinari authored
      On heavy loaded system with IMAP or DB storage,
      'app_voicemail' taskprocessor queue could reach 500 scheduled tasks.
      It could happen when the IMAP or DB server dies or is unreachable.
      It could happen on startup when there are many (thousands)
      realtime endpoints configured with unsolicited mwi.
      If the taskprocessor queue reaches the high water level
      then the alert is triggered and pjsip stops processing new requests
      until the queue reaches the low water level to clear the alert.
      
      This patch adds 2 new 'general' configuration options
      to tune taskprocessor alert levels:
      'tps_queue_high' - Taskprocessor high water alert trigger level.
      'tps_queue_low' - Taskprocessor low water clear alert level
      
      ASTERISK-26229 #close
      
      Change-Id: I766294fbffedf64053c0d9ac0bedd3109f043ee8
      9042ad40
  14. Jul 22, 2016
    • Alexander Traud's avatar
      chan_sip: Enable Session-Timers for SIP over TCP (and TLS). · 9be69c16
      Alexander Traud authored
      Asterisk defaults to timers=accept/refresher=uas. In that scenario, only in that
      scenario, Sessions-Timers (RFC 4028) had no effect via TCP. This change enables
      Session-Timers for SIP over TCP (and for SIP over TLS).
      
      However with longer international calls via TCP, the SIP channel might break,
      because all hops on the Internet route must stay online (have not a single power
      outage, for example). Therefore with Session-Timers enabled (which are enabled
      at default), you might see dropped calls. Consequently even with this change,
      you might be better-off going for session-timers=refuse in your sip.conf.
      
      ASTERISK-19968 #close
      
      Change-Id: I1cd33453c77c56c8e1394cd60a6f17bb61c1d957
      9be69c16
    • Alexander Traud's avatar
      codecs: Add iLBC 20. · 8fb80700
      Alexander Traud authored
      Asterisk already supported iLBC 30. This change adds iLBC 20. Now, Asterisk
      defaults to iLBC 20 but falls back to iLBC 30, when the remote party requests
      this.
      
      ASTERISK-26218 #close
      ASTERISK-26221 #close
      Reported by: Aaron Meriwether
      
      Change-Id: I07f523a3aa1338bb5217a1bf69c1eeb92adedffa
      8fb80700
  15. Jul 21, 2016
  16. Jul 19, 2016
    • Richard Mudgett's avatar
      chan_dahdi: Add faxdetect_timeout option. · 0d1744e1
      Richard Mudgett authored
      The new option allows the channel driver's faxdetect option to timeout on
      a call after the specified number of seconds into a call.  The new feature
      is disabled if the timeout is set to zero.  The option is disabled by
      default.
      
      * Don't clear dsp_features after passing them to the dsp code in
      my_pri_ss7_open_media().  We should still remember them especially for the
      new faxdetect_timeout option.
      
      ASTERISK-26214
      Reported by: Richard Mudgett
      
      Change-Id: Ieffd3fe788788d56282844774365546dce8ac810
      0d1744e1
    • Richard Mudgett's avatar
      res_pjsip: Add fax_detect_timeout endpoint option. · e739888d
      Richard Mudgett authored
      The new endpoint option allows the PJSIP channel driver's fax_detect
      endpoint option to timeout on a call after the specified number of
      seconds into a call.  The new feature is disabled if the timeout is set
      to zero.  The option is disabled by default.
      
      ASTERISK-26214
      Reported by: Richard Mudgett
      
      Change-Id: Id5a87375fb2c4f9dc1d4b44c78ec8735ba65453d
      e739888d
  17. Jul 13, 2016
    • Alexander Traud's avatar
      res_rtp_asterisk: Enable Forward Secrecy (PFS) for DTLS. · 85212f27
      Alexander Traud authored
      Since July 2014, TLS based protocols (SIP over TLS, Secure WebSockets, HTTPS)
      support PFS thanks to ASTERISK-23905. In July 2015, the same feature was added
      for DTLS. The source code from main/tcptls.c should have been re-used to ease
      security audits. Therefore, this change rolls back the change from July 2015 and
      re-uses the code from July 2014. This has the additional benefits to work under
      CentOS 7 and enabling not just ECDHE but DHE based cipher suites as well.
      
      ASTERISK-25659 #close
      Reported by: StefanEng86, urbaniak, pay123
      Tested by: sarumjanuch, traud
      patches:
      res_rtp_asterisk.patch submitted by sarumjanuch
      dtls_centos_step_1.patch submitted by traud
      dtls_centos_step_2.patch submitted by traud
      
      Change-Id: I537cadf4421f092a613146b230f2c0ee1be28d5c
      85212f27
  18. Jul 12, 2016
    • Richard Mudgett's avatar
      res_pjsip: Fix statsd regression. · b85446d0
      Richard Mudgett authored
      The ASTERISK-25904 change-id I8fad8aae9305481469c38d2146e1ba3a56d3108f
      patch introduced several regressions when the newly created "Updated"
      state goes out for each endpoint registration refresh.
      
      1) It restarted any OPTIONS RTT ping cycle.
      
      2) It would interfere with a currently active ping and throw off that
      ping's resulting RTT calculation.
      
      3) It cleared the RTT time each time the endpoint was refreshed.
      
      4) The cleared RTT time was sent out as a statsd update each time.
      
      5) It created two AMI events for each update.
      
      * Revert the original patch and reimplement it.  Now the current contact
      status state is re-sent instead of the state being momentarily toggled
      every time the endpoint refreshes its registration.  The statsd events are
      not created for the re-sent refresh because they are sent after every
      OPTIONS ping.
      
      ASTERISK-26160 #close
      Reported by: Matt Jordan
      
      Change-Id: Ie072be790fbb2a8f5c1c874266e4143fa31f66d1
      b85446d0
  19. Jul 06, 2016
    • Alexei Gradinari's avatar
      res_pjsip: Added "subscribe_context" to endpoint · 1c949eea
      Alexei Gradinari authored
      If specified, incoming SUBSCRIBE requests will be searched for the matching
      extension in the indicated context. If no "subscribe_context" is specified,
      then the "context" setting is used.
      
      ASTERISK-25471 #close
      
      Change-Id: I3fb7a15f5bc154079bd348c08b7ad1cdd2d5e514
      1c949eea
  20. Jun 09, 2016
  21. Jun 07, 2016
    • Joshua Colp's avatar
      res_odbc: Implement a connection pool. · 31a5c283
      Joshua Colp authored
      Testing has shown that our usage of UnixODBC is problematic
      due to bugs within UnixODBC itself as well as the heavy weight
      cost of connecting and disconnecting database connections, even
      when pooling is enabled.
      
      For users of UnixODBC 2.3.1 and earlier crashes would occur due
      to insufficient protection of the disconnect operation. This was
      fixed in UnixODBC 2.3.2 and above.
      
      For users of UnixODBC 2.3.3 and higher a slow-down would occur
      under heavy database use due to repeated connection establishment.
      A regression is present where on each connection the database
      configuration is cached again, with the cache growing out of
      control.
      
      The connection pool implementation present in this change helps
      to mitigate these issues by reducing how much we connect and
      disconnect database connections. We also solve the issue of
      crashes under UnixODBC 2.3.1 by defaulting the maximum number of
      connections to 1, returning us to the previous working behavior.
      For users who may have a fixed version the maximum concurrent
      connection limit can be increased helping with performance.
      
      The connection pool works by keeping a list of active connections.
      If the connection limit has not been reached a new connection is
      established. If the connection limit has been reached then the
      request waits until a connection becomes available before
      continuing.
      
      ASTERISK-26074 #close
      ASTERISK-26054 #close
      
      Change-Id: I6774bf4bac49a0b30242c76a09c403d2e856ecff
      31a5c283
    • Örn Arnarson's avatar
      apps/app_voicemail.c and main/say.c: Add support for Icelandic language · 60caebc7
      Örn Arnarson authored
      Icelandic has some weird grammar rules when dealing with dates and
      numbers. There are different genders used depending on which number
      you're dealing with, and only a handful of numbers do change depending
      on the gender. There is also an implied gender in several cases.
      
      This patch was originally written for asterisk 1.6, and has been in use
      for several years without crashes. I cleaned it up a bit and rewrote
      what was necessary for Asterisk 13.
      
      The functions were copied from other similar languages and modified
      where appropriate. If i recall correctly, the German and Danish
      functions were used as a base.
      
      ASTERISK-26087
      Reported by: Örn Arnarson
      Tested by: Örn Arnarson
      
      Change-Id: Ib7d8bd7b0fede5767921ed821315b5b508c0e665
      60caebc7
  22. Jun 06, 2016
    • Richard Mudgett's avatar
      chan_rtp.c: Simplify options to UnicastRTP channel creation. · dca052e5
      Richard Mudgett authored
      Change the awkward and not as flexible UnicastRTP options format
      From:
      Dial(UnicastRTP/127.0.0.1[/[<engine>][/[<codec>]]])
      To:
      Dial(UnicastRTP/127.0.0.1[/[<options>]])
      
      Where <options> can be standard Asterisk flag options:
      c(<codec>) - Specify which codec/format to use such as 'ulaw'.
      e(<engine>) - Specify which RTP engine to use such as 'asterisk'.
      
      More option flags can be easily added later such as the codec's RTP
      payload type to use when the codec does not have a static payload type
      defined.
      
      Change-Id: I0c297aaf09e2ee515536cb7437bb8042ff8ff3c9
      dca052e5
  23. Jun 04, 2016
    • Alexei Gradinari's avatar
      core/dial: New channel variable FORWARDERNAME · 3e8d523d
      Alexei Gradinari authored
      Added a new channel variable FORWARDERNAME which indicates which
      channel was responsible for a forwarding requests received on dial attempt.
      
      Fixed a bug in the app_queue: FORWARD_CONTEXT is not used.
      
      ASTERISK-26059 #close
      
      Change-Id: I34e93e8c1b5e17776a77b319703c48c8ca48e7b2
      3e8d523d
  24. Jun 03, 2016
    • George Joseph's avatar
      ari/resource_channels: Add 'formats' to channel create/originate · a2f820e8
      George Joseph authored
      If you create a local channel and don't specify an originator channel
      to take capabilities from, we automatically add all audio formats to
      the new channel's capabilities. When we try to make the channel
      compatible with another, the "best format" functions pick the best
      format available, which in this case will be slin192.  While this is
      great for preserving quality, it's the worst for performance and
      overkill for the vast majority of applications.
      
      In the absense of any other information, adding all formats is the
      correct thing to do and it's not always possible to supply an
      originator so a new parameter 'formats' has been added to the channel
      create/originate functions. It's just a comma separated list of formats
      to make availalble for the channel. Example: "ulaw,slin,slin16".
      'formats' and 'originator' are mutually exclusive.
      
      To facilitate determination of format names, the format name has been
      added to "core show codecs".
      
      ASTERISK-26070 #close
      
      Change-Id: I091b23ecd41c1b4128d85028209772ee139f604b
      a2f820e8
  25. May 31, 2016
    • Mark Michelson's avatar
      Expand the scope of Dial Events · 205a31f8
      Mark Michelson authored
      Dial events up to this point have come in two flavors
      * A Dial event with no status to indicate that dialing has begun
      * A Dial event with a status to indicate that dialing has ended
      
      With this change, Dial events have been expanded to also give
      intermediate events, such as "RINGING", "PROCEEDING", and "PROGRESS".
      This is especially useful for ARI dialing, as it gives the application
      writer the opportunity to place a channel into an early bridge when
      early media is detected.
      
      AMI handles these in-progress dial events by sending a new event called
      "DialState" that simply indicates that dial state has changed but has
      not ended. ARI never distinguished between DialBegin and DialEnd, so no
      change was made to the event itself.
      
      Another change here relates to dial forwards. A forward-related event
      was previously only sent when a channel was successfully able to forward
      a call to a new channel. With this set of changes, if forwarding is
      blocked, we send a Dial event with a forwarding destination but no
      forwarding channel, since we were prevented from creating one. This is
      again useful for ARI since application writers can now handle call
      forward attempts from within their own application.
      
      ASTERISK-25925 #close
      Reported by Mark Michelson
      
      Change-Id: I42cbec7730d84640a434d143a0d172a740995543
      205a31f8
  26. May 26, 2016
    • Alexei Gradinari's avatar
      res_pjsip: add "via_addr", "via_port", "call_id" to contact · 31f17abe
      Alexei Gradinari authored
      As res_pjsip_nat rewrites contact's address, only the last Via header
      can contain the source address of registered endpoint.
      Also Call-Id header may contain the source address of registered
      endpoint.
      
      Added "via_addr", "via_port", "call_id" to contact.
      Added new fields ViaAddress, CallID to AMI event ContactStatus.
      
      ASTERISK-26011
      
      Change-Id: I36bcc0bf422b3e0623680152d80486aeafe4c576
      31f17abe
    • Tzafrir Cohen's avatar
      followme: allow disabling callee prompt · 1d60bfcd
      Tzafrir Cohen authored
      
      Add the option 'enable_callee_prompt' to followme.conf. Enabled by
      default. If disabled, a callee is not prompted to accept or reject
      the forwarded call.
      
      ASTERISK-26064 #close
      
      Change-Id: I0a8b19d4cf95c86a07c992813babb9e4a4acfff5
      Signed-off-by: default avatarTzafrir Cohen <tzafrir.cohen@xorcom.com>
      1d60bfcd
  27. May 20, 2016
    • Alexei Gradinari's avatar
      func_odbc: single database connection should be optional · c378b00a
      Alexei Gradinari authored
      func_odbc was changed in Asterisk 13.9.0
      to make func_odbc use a single database connection per DSN
      because of reported bug ASTERISK-25938
      with MySQL/MariaDB LAST_INSERT_ID().
      
      This is drawback in performance when func_odbc is used
      very often in dialplan.
      
      Single database connection should be optional.
      
      ASTERISK-26010
      
      Change-Id: I7091783a7150252de8eeb455115bd00514dfe843
      c378b00a
    • Matt Jordan's avatar
      ARI: Add the ability to download the media associated with a stored recording · e773e3a9
      Matt Jordan authored
      This patch adds a new feature to ARI that allows a client to download
      the media associated with a stored recording. The new route is
      /recordings/stored/{name}/file, and transmits the underlying binary file
      using Asterisk's HTTP server's underlying file transfer facilities.
      
      Because this REST route returns non-JSON, a few small enhancements had
      to be made to the Python Swagger generation code, as well as the
      mustache templates that generate the ARI bindings.
      
      ASTERISK-26042 #close
      
      Change-Id: I49ec5c4afdec30bb665d9c977ab423b5387e0181
      e773e3a9
  28. May 19, 2016
    • snuffy's avatar
      res_pjsip_empty_info: Respond to empty SIP INFO packets · 9766a12b
      snuffy authored
      Some SBCs require responses to empty SIP INFO packets
      after establishing call via INVITE, if not responded to
      they may drop your call after unspecified timeout of X minutes.
      
      They are identified by having no Content-Type, check for this
      and respond with 200 - OK message.
      
      ASTERISK-24986 #close
      Reported-by: Ilya Trikoz, Federico Santulli
      
      Change-Id: Ib27e4f07151e5aef28fa587e4ead36c5b87c43e0
      9766a12b
  29. May 18, 2016
    • Kevin Harwell's avatar
      res_pjsip_outbound_publish: Add multi-user support per configuration · 3905997b
      Kevin Harwell authored
      Added a new multi_user option that when specified allows a particular
      configuration to be used for multiple users. It does this by replacing
      the user portion of the server uri with a dynamically created one.
      
      Two new API calls have been added in order to make use of the new
      functionality:
      
      ast_sip_publish_user_send - Sends an outgoing publish message based on the
      given user. If state for the user already exists it uses that, otherwise
      it dynamically creates new outbound publishing state for the user at that
      time.
      
      ast_sip_publish_user_remove - Removes all outbound publish state objects
      associated with the user. This essentially stops outbound publishing for
      the user.
      
      ASTERISK-25965 #close
      
      Change-Id: Ib88dde024cc83c916424645d4f5bb84a0fa936cc
      3905997b
  30. May 17, 2016
    • Matt Jordan's avatar
      CHANGES: Update formatting of items · 52148d93
      Matt Jordan authored
      * Provide consistent indenting of lines in bulleted paragraphs
      * Respect the 80 character column width
      * Group all like items together, e.g., all dialplan applications under
        "Applications", etc.
      * Use a single blank line to break up functionality changes within a
        larger section
      * Use two blanks lines to delineate larger sections
      
      Change-Id: I0488554f5cb7c51da70003d69288a21c9aab9647
      52148d93
    • Matt Jordan's avatar
      ARI: Add the ability to play multiple media URIs in a single operation · 03d88b56
      Matt Jordan authored
      Many ARI applications will want to play multiple media files in a row to
      a resource. The most common use case is when building long-ish IVR prompts
      made up of multiple, smaller sound files. Today, that requires building a
      small state machine, listening for each PlaybackFinished event, and triggering
      the next sound file to play. While not especially challenging, it is tedious
      work. Since requiring developers to write tedious code to do normal activities
      stinks, this patch adds the ability to play back a list of media files to a
      resource.
      
      Each of the 'play' operations on supported resources (channels and bridges)
      now accepts a comma delineated list of media URIs to play. A single Playback
      resource is created as a handle to the entire list. The operation of playing
      a list is identical to playing a single media URI, save that a new event,
      PlaybackContinuing, is raised instead of a PlaybackFinished for each non-final
      media URI. When the entire list is finished being played, a PlaybackFinished
      event is raised.
      
      In order to help inform applications where they are in the list playback, the
      Playback resource now includes a new, optional attribute, 'next_media_uri',
      that contains the next URI in the list to be played.
      
      It's important to note the following:
       - If an offset is provided to the 'play' operations, it only applies to the
         first media URI, as it would be weird to skip n seconds forward in every
         media resource.
       - Operations that control the position of the media only affect the current
         media being played. For example, once a media resource in the list
         completes, a 'reverse' operation on a subsequent media resource will not
         start a previously completed media resource at the appropiate offset.
       - This patch does not add any new operations to control the list. Hopefully,
         user feedback and/or future patches would add that if people want it.
      
      ASTERISK-26022 #close
      
      Change-Id: Ie1ea5356573447b8f51f2e7964915ea01792f16f
      03d88b56
Loading