Skip to content
Snippets Groups Projects
  1. Jul 26, 2018
    • Corey Farrell's avatar
      loader: Process dependencies for built-in modules. · 709f4b81
      Corey Farrell authored
      With the new module loader it was missed that built-in modules never
      parsed dependencies from mod->info into vectors of mod.  This caused
      manager to be initialized before acl (named_acl).  If manager.conf
      used any named ACL's they would not be found and result in no ACL being
      applied to the AMI user.
      
      In addition to the manager ACL fix this adds "extconfig" to all builtin
      modules which support realtime configuration.  This only matters if one
      of the builtin modules is configured with 'preload', depending on
      "extconfig" will cause config.c to automatically be initialize during
      the preload stage.
      
      Change-Id: I482ed6bca6c1064b05bb538d7861cd7a4f02d9fc
      709f4b81
  2. Jul 25, 2018
    • Kevin Harwell's avatar
      json.c: improve ast_json_to_ast_variables performance · 783bff06
      Kevin Harwell authored
      When converting from a json object to an ast variables list the conversion
      algorithm was doing a complete traversal of the entire variables list for
      every item appended from the json structure.
      
      This patch makes it so the list is no longer traversed for each new ast
      variable being appended.
      
      Change-Id: I8bf496a1fc449485150d6db36bfc0354934a3977
      783bff06
    • Joshua Colp's avatar
      devicestate: Don't create topic when change isn't cached. · 66f58131
      Joshua Colp authored
      When publishing a device state the change can be marked as being
      cachable or not. If it is not cached the change is just published
      to all interested and not stored away for later query. This was not
      fully taken into account when publishing in stasis. The act of
      publishing would create a topic for the device even if it may be
      ephemeral.
      
      This change makes it so messages which are not cached won't create
      a topic for the device. If a topic does already exist it will be
      published to but otherwise the change will only be published to
      the device state all topic.
      
      ASTERISK-27591
      
      Change-Id: I18da0e8cbb18e79602e731020c46ba4101e59f0a
      66f58131
  3. Jul 23, 2018
    • Richard Mudgett's avatar
      asterisk.c: Make displayed copyright always consistent · 0f8657aa
      Richard Mudgett authored
      Change-Id: I4f5499486e8ec90d7c7ffeebc659ceda1db6d5b5
      0f8657aa
    • George Joseph's avatar
      xmldoc.c: Fix dump of xml document · ba8f2c40
      George Joseph authored
      The "xmldoc dump" cli command was simply concatenating xml documents
      into the output file.  The resulting file had multiple "xml"
      processing instructions and multiple root elements which is illegal.
      Normally this isn't an issue because Asterisk has only 1 main xml
      documentation file but codec_opus has its own file so if it's
      downloaded and you do "xmldoc dump", the result is invalid.
      
      * Added 2 new functions to xml.c:
          ast_xml_copy_node_list creates a copy of a list of children.
          ast_xml_add_child_list adds a list to an existing list.
      
      * Modified handle_dump_docs to create a new output document and
        add to it the children from each input file.  It then dumps the
        new document to the output file.
      
      Change-Id: I3f182d38c75776aee76413dadd2d489d54a85c07
      ba8f2c40
  4. Jul 22, 2018
    • Joshua Colp's avatar
      sched: Make ABI compatible between dev mode and non-dev mode. · 33f855bb
      Joshua Colp authored
      In the past there was an assertion in the ast_sched_del function
      and in order to ensure it was useful the calling function name,
      line number, and filename had to be passed in. This cause the ABI
      to be different between dev mode and non-dev mode.
      
      This assertion is no longer present so the special logic can be
      removed to make it the same between them both.
      
      Change-Id: Icbc69c801e357d7004efc5cf2ab936d9b83b6ab8
      33f855bb
  5. Jul 20, 2018
  6. Jul 18, 2018
    • Ben Ford's avatar
      res_rtp_asterisk: Add support for sending NACK requests. · 5bacde37
      Ben Ford authored
      Support has been added for receiving a NACK request and handling it.
      Now, Asterisk can detect when a NACK request should be sent and knows
      how to construct one based on the packets we've received from the remote
      end. A buffer has been added that will store out of order packets until
      we receive the packet we are expecting. Then, these packets are handled
      like normal and frames are queued to the core like normal. Asterisk
      knows which packets to request in the NACK request using a vector
      which stores the sequence numbers of the packets we are currently missing.
      
      If a missing packet is received, cycle through the buffer until we reach
      another packet we have not received yet. If the buffer reaches a certain
      size, send a NACK request. If the buffer reaches its max size, queue all
      frames to the core and wipe the buffer and vector.
      
      According to RFC3711, the NACK request must be sent out in a compound
      packet. All compound packets must start with a sender or receiver
      report, so some work was done to refactor the current sender / receiver
      code to allow it to be used without having to also include sdes
      information and automatically send the report.
      
      Also added additional functionality to ast_data_buffer, along with some
      testing.
      
      For more information, refer to the wiki page:
      https://wiki.asterisk.org/wiki/display/AST/WebRTC+User+Experience+Improvements
      
      ASTERISK-27810 #close
      
      Change-Id: Idab644b08a1593659c92cda64132ccc203fe991d
      5bacde37
    • Joshua Colp's avatar
      module: Remove deprecated modules and update support levels. · 134e2f0d
      Joshua Colp authored
      I have removed the STATIC_BUILD option immediately as it has not
      been maintained in many years and is non-functional.
      
      ASTERISK-27965
      
      Change-Id: I64783d017b86dba9ee3c7bcfb97e59889a3f76d7
      134e2f0d
    • Chris-Savinovich's avatar
      stasis: Improve message type "Use of before/init after destruction" · 94dd0544
      Chris-Savinovich authored
      Fixes issue where error msg
      "Use of before/init after destruction"
      was being printed on disabled messages
      in dev mode.  With this
      fix if message is disabled
      a warning will print.
      
      ASTERISK-25548
      Change-Id: Ie0d866d1cbc60c16dbef08bc65e99505c3c1adfa
      94dd0544
  7. Jul 16, 2018
    • Corey Farrell's avatar
      loader: Fix startup issues. · 49f83a74
      Corey Farrell authored
      * Merge the preload and load stages, use load ordering to try preload's
        first.  This fixes an issue where `preload=res_config_curl` would fail
        unless res_curl and func_curl were also preloaded.  Now it is only
        required that those modules be loaded during startup: autoload or
        regular load is good enough.
      * The configuration option `require` and `preload-require` were only
        effective if the modules failed to load.  These options will now abort
        Asterisk startup if required modules fail to reach the 'Running'
        state.
      * Missing or invalid 'module.conf' did not prevent startup.  Asterisk
        doesn't do anything without modules so this a fatal error.
      
      Change-Id: Ie4176699133f0e3a823b43f90c3348677e43a5f3
      49f83a74
  8. Jul 06, 2018
    • George Joseph's avatar
      test.c: Make output jUnit compatible · c1e49720
      George Joseph authored
      Separate "name" into "classname" and "name".
      Use '.' for classname separator instead of '/'.
      Prefix reserved words with '_'.
      Wrap output with a top-level "testsuites" element.
      
      Change-Id: Iec1a985eba1c478e5c1d65d5dfd95cb708442099
      c1e49720
  9. Jun 29, 2018
    • Matthew Fredrickson's avatar
      main/cdr.c: Alleviate CDR deadlock · db02218d
      Matthew Fredrickson authored
      There is a rare case (do to the infrequent timing involved) where
      CDR submission threads in batch mode can deadlock with a currently
      running CDR batch process.  This patch should remove the need for
      holding the lock in the scheduler and should clean a few code
      paths up that inconsistently submitted new work to the CDR batch
      processor.
      
      ASTERISK-27909
      
      Change-Id: I6333e865db7c593c102c2fd948cecdb96481974d
      Reported-by: Denis Lebedev
      db02218d
  10. Jun 28, 2018
    • Richard Mudgett's avatar
      AMI SendText action: Fix to use correct thread to send the text. · 7a238fe7
      Richard Mudgett authored
      The AMI action was directly sending the text to the channel driver.
      However, this makes two threads attempt to handle media and runs afowl of
      CHECK_BLOCKING.
      
      * Queue a read action to make the channel's media handling thread actually
      send the text message.  This changes the AMI actions success/fail response
      to just mean the text was queued to be sent not that the text actually got
      sent.  The channel driver may not even support sending text messages.
      
      ASTERISK-27943
      
      Change-Id: I9dce343d8fa634ba5a416a1326d8a6340f98c379
      7a238fe7
  11. Jun 27, 2018
  12. Jun 23, 2018
  13. Jun 21, 2018
    • Alexander Traud's avatar
      utils: Avoid an unused variable in Solaris 11. · a5c53bd3
      Alexander Traud authored
      With ./configure --enable-dev-mode[=noisy], the build fails because every
      warning gets an error. Therefore, Asterisk has to be free of warnings and this
      variable must go.
      
      Change-Id: I63dd2bc4833b9bdb04602f83422d16caf289d46a
      a5c53bd3
  14. Jun 19, 2018
  15. Jun 18, 2018
  16. Jun 12, 2018
    • Joshua Colp's avatar
      rtp: Don't negotiate dynamic codecs using payload. · 41175cae
      Joshua Colp authored
      In Asterisk there are some dynamic codecs that have
      a fixed payload number. This number was being improperly
      used to negotiate the codec, instead of using the name
      and sample rate. This could result in the wrong payload
      number being negotiated for a codec.
      
      This change makes it so that only static payloads
      will be negotiated using their payload number.
      
      ASTERISK-27848
      
      Change-Id: Ia865830170fd3f808cdb33104f3d4c4ffdc77570
      41175cae
  17. Jun 11, 2018
    • Sean Bright's avatar
      AST-2018-007: iostreams potential DoS when client connection closed prematurely · b649682c
      Sean Bright authored
      Before Asterisk sends an HTTP response (at least in the case of errors),
      it attempts to read & discard the content of the request. If the client
      lies about the Content-Length, or the connection is closed from the
      client side before "Content-Length" bytes are sent, the request handling
      thread will busy loop.
      
      ASTERISK-27807
      
      Change-Id: I945c5fc888ed92be625b8c35039fc6d2aa89c762
      b649682c
  18. Jun 05, 2018
    • Pirmin Walthert's avatar
      bridge_channel.c: Fix Deadlock when using Local channels and fax gateway · e0785580
      Pirmin Walthert authored
      ast_indicate is invoked with the bridge locked. As ast_indicate locks the
      other end of the bridge as well this can lead to a deadlock in some situations.
      (Especially when a different thread does the same in the reverse order).
      This patch calls ast_indicate after unlocking the bridge which fixes the
      deadlock. Calling ast_indicate with these parameters without locking the
      bridge should be safe as this is done at different places without a
      bridge lock.
      
      ASTERISK-27094 #close
      Reported-by: David Brillert
      
      Change-Id: I5f86c1e2ce75b9929a36ab589b18c450e62ea35f
      e0785580
  19. Jun 04, 2018
    • George Joseph's avatar
      app_sendtext: Allow content types other than text/plain · 437ab418
      George Joseph authored
      There was no real reason to limit the conteny type to text/plain other
      than that's what it was limited to before.  Now any text/* content
      type will be allowed for channel drivers that don't support enhanced
      messaging and any type will be allowed for channel drivers that do
      support enhanced messaging.
      
      Change-Id: I94a90cfee98b4bc8e22aa5c0b6afb7b862f979d9
      437ab418
  20. May 28, 2018
    • Alexander Traud's avatar
      tcptls.h: Repair ./configure --with-ssl=PATH. · 24503fb6
      Alexander Traud authored
      asterisk/tcptls.h was included (explicitly, implicitly, or transitively). Those
      inclusions got replaced by forward declarations. As side effect, the inclusions
      got completed.
      
      ASTERISK-27878
      
      Change-Id: I9d102728e30336d6522e5e4ae9e964013a0835f7
      24503fb6
  21. May 25, 2018
  22. May 23, 2018
    • Joshua Colp's avatar
      rtp: Add support for RTP extension negotiation and abs-send-time. · a507c73a
      Joshua Colp authored
      When RTP was originally created it had the ability to place a single
      extension in an RTP packet. In practice people wanted to potentially
      put multiple extensions in one and so RFC 5285 (obsoleted by RFC
      8285) came into existence. This allows RTP extensions to be negotiated
      with a unique identifier to be used in the RTP packet, allowing
      multiple extensions to be present in the packet.
      
      This change extends the RTP engine API to add support for this. A
      user of it can enable extensions and the API provides the ability to
      retrieve the information (to construct SDP for example) and to provide
      negotiated information (from SDP). The end result is that the RTP
      engine can then query to see if the extension has been negotiated and
      what unique identifier is to be used. It is then up to the RTP engine
      implementation to construct the packet appropriately.
      
      The first extension to use this support is abs-send-time which is
      defined in the REMB draft[1] and is a second timestamp placed in an
      RTP packet which is for when the packet has left the sending system.
      It is used to more accurately determine the available bandwidth.
      
      ASTERISK-27831
      
      [1] https://tools.ietf.org/html/draft-alvestrand-rmcat-remb-03
      
      Change-Id: I508deac557867b1e27fc7339be890c8018171588
      a507c73a
  23. May 22, 2018
    • Richard Mudgett's avatar
      channel.c: Fix off nominal channel allocation failure path. · 1bec0c73
      Richard Mudgett authored
      __ast_channel_alloc_ap() had a failure exit path that hadn't setup the fd
      descriptors to -1 yet.  The destructor would then attempt to close these
      fd's that had never been opened.
      
      Change-Id: Icf21093f36c60781e8cf6ee9d586536302af33e3
      1bec0c73
    • Alexei Gradinari's avatar
      config.c: Fix successful DELETE treated as failure · 39632c7e
      Alexei Gradinari authored
      The config engine destroy_func callback function returns the number of
      rows deleted or -1 on error.  But the function
      ast_destroy_realtime_fields treated non-zero return values as error.
      
      ASTERISK-27863
      
      Change-Id: Ied02b38e8196cb03043e609a0679feebd288d17b
      39632c7e
  24. May 21, 2018
    • Matthew Fredrickson's avatar
      netsock2: Add ast_sockaddr_resolve_first_af to netsock2 public API · 9f9dce05
      Matthew Fredrickson authored
      This function originally was used in chan_sip to enable some simplifying
      assumptions and eventually was copy and pasted into res_pjsip_logger and
      res_hep.  Since it's replicated in three places, it's probably best to
      move it into the public netsock2 API for these modules to use.
      
      Change-Id: Id52e23be885601c51d70259f62de1a5e59d38d04
      9f9dce05
  25. May 20, 2018
  26. May 19, 2018
  27. May 11, 2018
Loading