Skip to content
Snippets Groups Projects
  1. Sep 20, 2016
  2. Sep 19, 2016
  3. Sep 16, 2016
    • Richard Mudgett's avatar
      res_config_odbc.c: Fix buffer size limitation creating invalid SQL. · 2820b133
      Richard Mudgett authored
      Creating ODBC SQL queries resulted in queries too large to fit into the
      supplied buffer.  The resulting truncated buffer contained an invalid SQL
      query.
      
      * Made SQL query generation code use a thread storage buffer that can
      increase in size as needed.
      
      * Fixed bad multi-line warning messages.
      
      ASTERISK-26263 #close
      Reported by: Jeppe Ryskov Larsen
      
      Change-Id: I23f3cdd43c2dac80bed3ded4dd77d18cb17f21ae
      2820b133
  4. Sep 15, 2016
    • Joshua Colp's avatar
      rtp: Only accept the first payload for a format in SDP. · 0376af95
      Joshua Colp authored
      When receiving an SDP offer with multiple payloads for
      the same format we would generate an answer with the first
      payload, but during the payload crossover operation
      (to set the payloads for receiving) we would remove all
      payloads but the last. This would result in incoming
      traffic being matched against the wrong format and outgoing
      traffic being sent using the wrong payload.
      
      This change makes it so that once a format has a payload
      number put into the mapping all subsequent ones are ignored.
      This ensures there is only ever one payload in the mapping
      and that it is the payload placed into the answer SDP.
      
      ASTERISK-26365 #close
      
      Change-Id: I1e8150860a3518cab36d00b1fab50f9352b64e60
      0376af95
    • George Joseph's avatar
      pjproject_bundled: Prevent SERVFAIL from marking name server bad · 47c527df
      George Joseph authored
      A name server that returns "Server Failure" is indicating only that
      the server couldn't process that particular request.  We should NOT
      assume that the name server is incapable of serving other requests.
      
      Here's the scenario we've been encountering...
      
      * 2 local name servers configured in resolv.conf.
      * An OPTIONS request causes a request for A and AAAA records to go out
        to both nameservers.
      * The A responses both come back successfully resolved.
      * Because of an issue at some upstream nameserver, the AAAA responses
        for that particular query come back as "SERVFAIL" from both local
        name servers.
      * Both local servers are marked as bad and no further queries can be
        sent until the 60 second ttl expires.  Only previously cached results
        can be used.
      * In this case, 60 seconds is just enough time for another OPTIONS
        request to go out to the same host so the cycle repeats.
      
      We could set the bad ttl really low but that also affects REFUSED and
      NOTAUTH which probably DO signal a real server issue.  Besides, even
      a really low bad ttl would be an issue on a pbx.
      
      Although we use our own resolver in 14 and master and don't have this
      issue there, Teluu has merged this patch upstream so it's appropriate
      to cherry-pick to 14 and master to keep pjproject consistent.
      
      
      Change-Id: Ie03ba902288e274aff23f9b9bb2786e1e8be09e0
      47c527df
    • 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
    • Timo Teräs's avatar
      Fix showing of swap details when sysinfo() is available · bc81765b
      Timo Teräs authored
      If sysinfo() is available, but not sysctl() or swapctl() the
      printing code for swap buffer sizes is incorrectly omitted.
      The above condition happens with musl c-library.
      
      Fix #if rule to consider defined(HAVE_SYSINFO). And also
      remove the redundant || defined(HAVE_SYSCTL) which was
      incorrectly there to start with. Now swap information is
      displayed only if an actual libc function to get it is
      available.
      
      This also fixes warnings previously seen with musl libc:
      
         [CC] asterisk.c -> asterisk.o
      asterisk.c: In function 'handle_show_sysinfo':
      asterisk.c:773:6: warning: variable 'totalswap' set but not used
       [-Wunused-but-set-variable]
        int totalswap = 0;
            ^~~~~~~~~
      asterisk.c:770:11: warning: variable 'freeswap' set but not used
       [-Wunused-but-set-variable]
        uint64_t freeswap = 0;
                 ^~~~~~~~
      
      Change-Id: I1fb21dad8f27e416c60f138c6f2bff03fb626eca
      bc81765b
    • zuul's avatar
    • zuul's avatar
  5. Sep 14, 2016
  6. Sep 13, 2016
  7. Sep 12, 2016
    • Richard Mudgett's avatar
      app_queue: Fix CLI "queue show" and AMI Queues action output truncation. · 7d7b23f0
      Richard Mudgett authored
      The output of CLI "queue show" and AMI Queues action is truncated and
      "failed to extend from 240 to 327" messages are generated if the queue
      member and interface names are lengthy.
      
      * Increase the string buffer size from 240 to 512 in order to accommodate
      for more information fields added to the output since v1.8.
      
      ASTERISK-26360 #close
      Reported by: Richard Mudgett
      
      Change-Id: Id99c03cf5362453b80491a4b3b0434cb67aa966d
      7d7b23f0
    • zuul's avatar
    • Walter Doekes's avatar
      chan_sip: Allow target refresh (Contact update) on re-INVITE. · 740292e6
      Walter Doekes authored
      Previously, the Contact was stored only on initial INVITE and on any
      18X and 200. That meant that after re-INVITEs from *us* the Contact
      could get updated, but after re-INVITEs from the *peer*, it did not.
      
      This changeset fixes this inconsistency, properly allowing target
      refreshes through re-INVITES (RFC3261, 12.2).
      
      If your strictrtp setting allows it, this change allows you to switch
      the source IP of a connected/calling device mid-call with a simple
      re-INVITE from the new IP.
      
      ASTERISK-26358 #close
      
      Change-Id: Ibb8512054ab27c8c3d2514022568fde943bf2435
      740292e6
  8. Sep 09, 2016
    • Richard Mudgett's avatar
      sip_to_pjsip.py: Map legacy_useroption_parsing. · 82ec58aa
      Richard Mudgett authored
      Map the sip.conf general section legacy_useroption_parsing to the
      new pjsip.conf global ignore_uri_user_options.
      
      ASTERISK-26316
      Reported by: Kevin Harwell
      
      Change-Id: I78108a31995db19d41f4e1a07b3324692c5363fc
      82ec58aa
    • 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
    • zuul's avatar
    • Walter Doekes's avatar
      contrib: Let safe_asterisk script continue without /dev/tty9. · 56caf540
      Walter Doekes authored
      If you use the safe_asterisk script, it uses hardcoded defaults before
      running configurable values from /etc/asterisk/startup.d. The hardcoded
      default has TTY=9. Some containerized environments don't have such a
      TTY, and safe_asterisk would stop.
      
      The custom configuration from /etc/asterisk/startup.d/* isn't read until
      after it stopped, so changing TTY in a custom config did not help.
      
      This changeset changes safe_asterisk to continue if the TTY setting was
      untouched and /dev/tty9 and /dev/vc/9 aren't found.
      
      Change-Id: I2c7cdba549b77f418a0af4cb1227e8e6fe4148fc
      56caf540
    • Joshua Colp's avatar
      res_pjsip: Only invoke unidentified endpoint logic when unidentified. · 901e6127
      Joshua Colp authored
      The code was incorrectly invoking the unidentified logic when
      an endpoint had actually been identified, causing log messages
      to be output.
      
      ASTERISK-26349 #close
      
      Change-Id: Id8104fc9e3d138d5e8b6f6977ecc08765fd17d4f
      901e6127
    • 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
    • Mark Michelson's avatar
      res_pjsip: Do not crash on ACKs from unknown endpoints. · 28b2aeba
      Mark Michelson authored
      The endpoint identification PJSIP module is intended to identify which
      endpoint an incoming request is from. If an endpoint is not identified,
      then an artificial endpoint is used in its place when proceeding.
      
      The problem is that the ACK request type is an exception to the rule.
      The artificial endpoint is not used when processing an ACK. This results
      in the possibility of having a NULL endpoint being used further on.
      
      The reason ACK is an exception is an attempt not to spam security logs
      with unidentified requests. Presumably, you've already logged the
      unidentified request on the preceeding INVITE.
      
      Up until Asterisk 13.10, retrieving a NULL endpoint in this fashion
      didn't cause an issue. A new change in 13.10 added endpoint ACL checking
      shortly after endpoint identification. Because we are accessing a NULL
      endpoint, this ACL check resulted in a crash.
      
      The fix here is to be sure to retrieve the artificial endpoint for all
      request types. ACKs still do not generate unidentified request security
      events.
      
      ASTERISK-26264 #close
      Reported by nappsoft
      
      AST-2016-006
      
      Change-Id: Ie0c795ae2d72273decb972dd74b6a1489fb6b703
      28b2aeba
    • Joshua Colp's avatar
      chan_sip: Don't allocate new RTP instances on top of old ones. · 82a3d659
      Joshua Colp authored
      In some scenarios dialog_initialize_rtp can be called multiple times on
      the same dialog.  This can cause RTP instances to be leaked along with
      multiple file descriptors for each instance.
      
      This change makes it so the existing RTP instances are destroyed and
      not overwritten, stopping the memory leak.
      
      ASTERISK-26272 #close
      patches:
        ASTERISK-26272-13.patch submitted by Corey Farrell (license 5909)
      
      Change-Id: Id529de1184c68f2f4d254ab41a1f458dafdb5f73
      82a3d659
  9. Sep 08, 2016
  10. Sep 07, 2016
    • zuul's avatar
    • Richard Mudgett's avatar
      res_pjsip_messaging.c: Misc cleanups and fixes. · f369dbb7
      Richard Mudgett authored
      * Eliminated RAII_VAR in get_outbound_endpoint().
      
      * Simplify update_to() coding.  However, this function can only be a NoOp
      because the To string can only be a URI and not a name-address formatted
      string.
      
      * Simplify update_from() coding.  Also fixed a code path modifying the
      from string when the caller could still want to use the original string.
      
      * Fixed msg_data_create() incompletely removing the "pjsip:" to then add
      back the "sip:" string if needed.  The code didn't handle the "pjsip:sip:"
      case because it left the colon after pjsip in the string.
      
      Change-Id: I68a09a665f6d4daa9eaa59069045ab69122e28db
      f369dbb7
    • Joshua Colp's avatar
      res_pjsip: Allow global headers to be overridden. · 2e5da0c7
      Joshua Colp authored
      Currently when you add global headers from the dialplan both
      the header in the dialplan and the globally configured header
      are added to the resulting SIP INVITE. This change makes it
      so the headers in the dialplan take precedence and are the
      only ones added.
      
      Change-Id: I36f864298f38db3632ad503edc11267cb8ffb3ad
      2e5da0c7
Loading