Skip to content
Snippets Groups Projects
  1. Dec 11, 2018
  2. Nov 26, 2018
    • George Joseph's avatar
      bridges: Remove reliance on stasis caching · 3667c5e1
      George Joseph authored
      * The bridging core no longer uses the stasis cache for bridge
        snapshots.  The latest bridge snapshot is now stored on the
        ast_bridge structure itself.
      
      * The following APIs are no longer available since the stasis cache
        is no longer used:
          ast_bridge_topic_cached()
          ast_bridge_topic_all_cached()
      
      * A topic pool is now used for individual bridge topics.
      
      * The ast_bridge_cache() function was removed since there's no
        longer a separate container of snapshots.
      
      * A new function "ast_bridges()" was created to retrieve the
        container of all bridges.  Users formerly calling
        ast_bridge_cache() can use the new function to iterate over
        bridges and retrieve the latest snapshot directly from the
        bridge.
      
      * The ast_bridge_snapshot_get_latest() function was renamed to
        ast_bridge_get_snapshot_by_uniqueid().
      
      * A new function "ast_bridge_get_snapshot()" was created to retrieve
        the bridge snapshot directly from the bridge structure.
      
      * The ast_bridge_topic_all() function now returns a normal topic
        not a cached one so you can't use stasis cache functions on it
        either.
      
      * The ast_bridge_snapshot_type() stasis message now has the
        ast_bridge_snapshot_update structure as it's data.  It contains
        the last snapshot and the new one.
      
      * cdr, cel, manager and ari have been updated to use the new
        arrangement.
      
      Change-Id: I7049b80efa88676ce5c4666f818fa18ad1985369
      3667c5e1
    • Joshua Colp's avatar
      stasis: Segment channel snapshot to reduce creation cost. · 50ac85cb
      Joshua Colp authored
      When a channel snapshot was created it used to be done
      from scratch, copying all data (many strings). This incurs
      a cost when doing so.
      
      This change segments the channel snapshot into different
      components which can be reused if unchanged from the
      previous snapshot creation, reducing the cost. In normal
      cases this results in some pointers being copied with
      reference count being bumped, some integers being set,
      and a string or two copied. The other benefit is that it
      is now possible to determine if a channel snapshot update
      is redundant and thus stop it before a message is published
      to stasis.
      
      The specific segments in the channel snapshot were split up
      based on whether they are changed together, how often they
      are changed, and their general grouping. In practice only
      1 (or 0) of the segments actually get changed in normal
      operation.
      
      Invalidation is done by setting a flag on the channel when
      the segment source is changed, forcing creation of a new
      segment when the channel snapshot is created.
      
      ASTERISK-28119
      
      Change-Id: I5d7ef3df963a88ac47bc187d73c5225c315f8423
      50ac85cb
    • Joshua Colp's avatar
      stasis: Use an implementation specific channel snapshot cache. · d0ccbb33
      Joshua Colp authored
      Channels no longer use the Stasis cache for channel snapshots. Instead
      they are stored in a hash table in stasis_channels which reduces the
      number of Stasis messages created and allows better storage.
      
      As a result the following APIs are no longer available since the stasis
      cache is no longer used:
      ast_channel_topic_cached()
      ast_channel_topic_all_cached()
      
      The ast_channel_cache_all() and ast_channel_cache_by_name() functions
      now return an ao2_container of ast_channel_snapshots rather than
      a container of stasis_messages therefore you can't (and don't need
      to) call stasis_cache functions on it.
      
      The ast_channel_topic_all() function now returns a normal topic not
      a cached one so you can't use stasis cache functions on it either.
      
      The ast_channel_snapshot_type() stasis message now has the
      ast_channel_snapshot_update structure as it's data. It contains the
      last snapshot and the new one.
      
      ast_channel_snapshot_get_latest() still returns the latest snapshot.
      
      The latest snapshot is now stored on the channel itself to eliminate
      cache hits when Stasis messages that have the snapshot as a payload
      are created.
      
      ASTERISK-28102
      
      Change-Id: I9334febff60a82d7c39703e49059fa3a68825786
      d0ccbb33
  3. Nov 23, 2018
    • Alexei Gradinari's avatar
      RTP: need to reset DTMF last seqno/timestamp on voice packet with marker bit · 3f530412
      Alexei Gradinari authored
      The marker bit set on the voice packet indicates the start
      of a new stream and a new time stamp.
      Need to reset the DTMF last sequence number and the timestamp
      of the last END packet.
      
      If the new time stamp is lower then the timestamp of the last DTMF END packet
      the asterisk drops all DTMF frames as out of order.
      
      This bug was caught using Cisco ip-phone SPA50X and codec g722.
      On SIP session update the SPA50X resets stream indicating it with market bit
      and a new timestamp is twice smaller then the previous.
      
      ASTERISK-28162 #close
      
      Change-Id: If9c5742158fa836ad549713a9814d46a5d2b1620
      3f530412
  4. Nov 21, 2018
  5. Nov 18, 2018
    • Joshua Colp's avatar
      stasis: Add internal filtering of messages. · 3077ad0c
      Joshua Colp authored
      This change adds the ability for subscriptions to indicate
      which message types they are interested in accepting. By
      doing so the filtering is done before being dispatched
      to the subscriber, reducing the amount of work that has
      to be done.
      
      This is optional and if a subscriber does not add
      message types they wish to accept and set the subscription
      to selective filtering the previous behavior is preserved
      and they receive all messages.
      
      There is also the ability to explicitly force the reception
      of all messages for cases such as AMI or ARI where a large
      number of messages are expected that are then generically
      converted into a different format.
      
      ASTERISK-28103
      
      Change-Id: I99bee23895baa0a117985d51683f7963b77aa190
      3077ad0c
  6. Nov 17, 2018
    • Sungtae Kim's avatar
      res/res_ari: Fix null endpoint handle · 1dea4974
      Sungtae Kim authored
      The res_ari(POST /channels/create handler) deos not check the endpoint
      parameter length. And it causes core
      dump.
      Fixed it to check the parameter length. Also fixed memory leak.
      
      ASTERISK-28169
      
      Change-Id: Ibf10a9eb8a2e3a9ee1e13fbe748b2ecf955c3993
      1dea4974
  7. Nov 15, 2018
    • Corey Farrell's avatar
      res_pjsip_caller_id: Use static pj_str_t for fromto header names. · 02c7a061
      Corey Farrell authored
      PJSIP assumes that these header names are not allocated, does not clone
      the name strings when reusing headers.
      
      Block unload of res_pjsip_caller_id until shutdown to ensure static
      memory stays valid.  It was previously unsafe to unload while any
      sessions are active.
      
      Change-Id: I190854dea943d6e441cf03733f8a0da661aea27f
      02c7a061
    • Torrey Searle's avatar
      res/res_pjsip_nat: Fix logic for REINVITES · d0554783
      Torrey Searle authored
      The presence of Record-Route in re-invites is optional, thus it is
      important to make sure the dialog doesn't have a routset before
      rewriting the contact header.
      
      ASTERISK-28129 #close
      
      Change-Id: Ic8ceb54ccfc93f7e315e476c514a2c777f2da7dc
      d0554783
  8. Nov 07, 2018
    • Chris-Savinovich's avatar
      res_pjsip: Send a 503 response when overload state if reliable transport. · a3fc97aa
      Chris-Savinovich authored
      When Asterisk's taskprocessors get overloaded we need to reduce the work
      load. res_pjsip currently ignores new SIP requests and relies on SIP
      retransmissions in the hope that the overload condition will clear soon
      enough to handle the retransmitted SIP request.
      This change adds the following code after ast_taskprocessor_alert_get()
      has returned TRUE:
      1- identifies transport type. If non-udp then send a 503 response
      2- if transport type is udp/udp6 then ignore, as before.
      
      Change-Id: I1c230b40d43a254ea0f226b7acf9ee480a5d3836
      a3fc97aa
  9. Nov 06, 2018
    • Kevin Harwell's avatar
      res_pjsip: formatting error in documentation · fdca9cb6
      Kevin Harwell authored
      The use of a '|' in the "global/debug" synopsis documentation caused the
      generated html table on the wiki to add an extra column that included the
      text after the pipe.
      
      This patch replaces the pipe with a comma.
      
      ASTERISK-28150
      
      Change-Id: I3d79a6ca6d733d9cb290e779438114884b98a719
      fdca9cb6
    • Alexei Gradinari's avatar
      res_pjsip.c: Make taskprocessor scheduling algorithm pick the shortest queue · 5f3f7077
      Alexei Gradinari authored
      The current round-robin method does not take the current taskprocessor
      load into consideration when distributing requests.  Using the least-size
      method the request goes to the taskprocessor that is servicing the least
      number of active tasks at the current time.
      
      Longer running tasks with the round-robin method can delay processing
      tasks.
      
      * Change the algorithm from round-robin to least-size for picking the
      PJSIP taskprocessor from the default serializer pool.
      
      Change-Id: I7b8d8cc2c2490494f579374b6af0a4868e3a37cd
      5f3f7077
  10. Oct 31, 2018
  11. Oct 30, 2018
    • Alexei Gradinari's avatar
      pjsip: new endpoint's options to control Connected Line updates · eee93598
      Alexei Gradinari authored
      This patch adds new options 'trust_connected_line' and 'send_connected_line'
      to the endpoint.
      
      The option 'trust_connected_line' is to control if connected line updates
      are accepted from this endpoint.
      
      The option 'send_connected_line' is to control if connected line updates
      can be sent to this endpoint.
      
      The default value is 'yes' for both options.
      
      Change-Id: I16af967815efd904597ec2f033337e4333d097cd
      eee93598
  12. Oct 27, 2018
    • Alexei Gradinari's avatar
      res_pjsip_notify: improve realtime performance on CLI completion on the endpoint · e407b8af
      Alexei Gradinari authored
      The module 'res_pjsip_notify' inefficiently makes a lot of DB requests
      on CLI completion on the endpoint.
      
      For example if there are 10k endpoints the module makes 10k requests
      of these 10k records.
      
      Even if a part of the endpoint entered
      the module makes the same 10k requests and then filtered them by itself.
      
      This patch gathers endpoints container by prefix
      and adds all gathered endpoints to completion at once.
      
      ASTERISK-28137 #close
      
      Change-Id: Ic20024912cc77bf4d3e476c4cd853293c52b254b
      e407b8af
  13. Oct 26, 2018
    • Torrey Searle's avatar
      res_pjsip_session: add new flag use_callerid_contact · cac4ccef
      Torrey Searle authored
      Add a new global flag to res_pjsip to allow the callerid to be used
      as the username in the contact header.  This allows chan_pjsip to have
      the same behavour as chan_sip
      
      ASTERISK-28087 #close
      
      Change-Id: I9a720e058323f6862a91c62f8a8c1a4b5c087b95
      cac4ccef
  14. Oct 25, 2018
  15. Oct 24, 2018
    • Nick French's avatar
      res_pjsip: Implement additional SIP RFCs for Google Voice trunk compatability · 37b2e686
      Nick French authored
      This change implements a few different generic things which were brought
      on by Google Voice SIP.
      
      1.  The concept of flow transports have been introduced.  These are
      configurable transports in pjsip.conf which can be used to reference a
      flow of signaling to a target.  These have runtime configuration that can
      be changed by the signaling itself (such as Service-Routes and
      P-Preferred-Identity).  When used these guarantee an individual connection
      (in the case of TCP or TLS) even if multiple flow transports exist to the
      same target.
      
      2.  Service-Routes (RFC 3608) support has been added to the outbound
      registration module which when received will be stored on the flow
      transport and used for requests referencing it.
      
      3.  P-Associated-URI / P-Preferred-Identity (RFC 3325) support has been
      added to the outbound registration module.  If a P-Associated-URI header
      is received it will be used on requests as the P-Preferred-Identity.
      
      4.  Configurable outbound extension support has been added to the outbound
      registration module.  When set the extension will be placed in the
      Supported header.
      
      5.  Header parameters can now be configured on an outbound registration
      which will be placed in the Contact header.
      
      6.  Google specific OAuth / Bearer token authentication
      (draft-ietf-sipcore-sip-authn-02) has been added to the outbound
      registration module.
      
      All functionality changes are controlled by pjsip.conf configuration
      options and do not affect non-configured pjsip endpoints otherwise.
      
      ASTERISK-27971 #close
      
      Change-Id: Id214c2d1c550a41fcf564b7df8f3da7be565bd58
      37b2e686
  16. Oct 22, 2018
  17. Oct 19, 2018
    • Corey Farrell's avatar
      astobj2: Eliminate legacy container allocation macros. · 687ab7ae
      Corey Farrell authored
      These macros have been documented as legacy for a long time but are
      still used in new code because they exist.  Remove all references to:
      * ao2_container_alloc_options
      * ao2_t_container_alloc_options
      * ao2_t_container_alloc
      
      These macro's are also removed.  Only ao2_container_alloc remains due to
      it's use in over 100 places.
      
      Change-Id: I1a26258b5bf3deb081aaeed11a0baa175c933c7a
      Unverified
      687ab7ae
  18. Oct 18, 2018
    • Richard Mudgett's avatar
      Fix 'statement' typo throughout code. · 467f7c67
      Richard Mudgett authored
      Most were in comments.  A couple were in warning messages.
      
      Pointed out by Jonathan H on the Asterisk users mailing list.
      
      Change-Id: I6286939dff5d0a27a2758140570106f1cb351855
      467f7c67
  19. Oct 17, 2018
  20. Oct 15, 2018
    • Alexei Gradinari's avatar
      res_pjsip: set callerid_tag to empty string · aae5bdc2
      Alexei Gradinari authored
      This patch sets the callerid_tag to empty string by default.
      
      If the callerid_tag is set to NULL then the tag does not
      become part of a connected line update.
      For example:
      Alice's tag is "Alice".
      Bob's tag is empty.
      Charlie's tag is "Charlie".
      Alice calls Bob and then does attended transfer to Charlie.
      When Alice hangs up the CONNECTEDLINE(tag) is "Alice"
      on the interception routine on the Charlie's channel, but should be empty.
      
      Ths patch also fix memory leaks if there are more then one options
      "callerid", "callerid_tag", "voicemail_extension" and "contact_user"
      in the pjsip.conf endpoint definition.
      
      Change-Id: I86ba455c4677ca8d516d9a04ce7fb4d24dd576e4
      aae5bdc2
  21. Oct 09, 2018
    • Richard Mudgett's avatar
      res_statsd.c: Fix returned reload status. · 682f96cb
      Richard Mudgett authored
      The return status when there was no change in statsd.conf was incorrect.
      This resulted in the wrong status message on the CLI when reloading the
      module.
      
      * Fixed cleanup on initial load if initializing statsd failed.
      
      Change-Id: Id24fae75f1a7ff584a444a5680e867d989792481
      682f96cb
  22. Oct 03, 2018
    • Richard Mudgett's avatar
      res_smdi.c: Fix module ref counting and inverted test. · 3601329c
      Richard Mudgett authored
      I think this module is so screwed up that it doesn't work anymore.  Even
      with these attempts to fix things it still won't gracefully shut down.
      The module refs will not go to zero to allow unloading the module.
      
      * Fix module ref counting dealing with the SMDI interface object.  There
      were several off-nominal paths that unbalanced the module ref count.  Also
      the destructor freed the ao2 object itself which is bad.  Made the
      smdi_read thread not hold its own ref to the SMDI interface object so when
      all refs go away the destructor will stop the listener thread.
      
      * Fixed the smdi_load() return code of 1 concerning the number of
      listeners.  The test was inverted.
      
      Change-Id: Ic288db51b58e395d6a2fc3847f77176c16988784
      3601329c
    • Richard Mudgett's avatar
      res_smdi.c: Made use defaults if the smdi.conf file does not exist. · 305d08f1
      Richard Mudgett authored
      This module is an optional dependency of a couple of other modules.  If it
      declines to load, it then forces other modules that can optionally use
      this module to also decline.
      
      * Made use the default configuration if the config file does not exist and
      simplified some of the logic.
      
      Change-Id: Ib93191f1fe28c0dd9ebe3d84c7762b32f83c4eb9
      305d08f1
  23. Oct 02, 2018
    • Richard Mudgett's avatar
      res_statsd.c: Made use defaults if the statsd.conf file does not exist. · a69a50b6
      Richard Mudgett authored
      This module is an optional dependency of many modules.  If it declines to
      load it then forces other modules that can optionally use this module to
      also decline.
      
      * Made use default configuration if there is a config error or the config
      file does not exist.
      
      Change-Id: If1068a582ec54ab7fb437265cb5370a97a825737
      a69a50b6
  24. Sep 28, 2018
    • Alexei Gradinari's avatar
      res_pjsip: improve realtime performance on CLI 'pjsip show contacts' · 8bb031ab
      Alexei Gradinari authored
      CLI command 'pjsip show contacts' inefficiently make a lot of DB requests.
      
      For example if there are 10k aors then asterisk requests these 10k records
      of aor and then does 10k requests of contact - one request per aor.
      
      Even if use 'like <pattern>' the asterisk requests all aor's and contact's
      records and then filters them by itself.
      
      This patch gathers contact's container by
      - retrieving all dynamic contacts by regex (filtered by reg_server)
      - retrieving all aors with permanent contacts
      - finally filters container by regex
      
      ASTERISK-28077 #close
      
      Change-Id: Id0ad65d14952a02fb213273a90f3f680a8149618
      8bb031ab
  25. Sep 26, 2018
    • Moritz Fain's avatar
      res_stasis: Fix stale data in ARI bridges · f3422312
      Moritz Fain authored
      Fixed an issue that resulted in "Allocation failed" each time an ARI
      request was made to start playing MOH on a bridge.
      
      In bridge_moh_create() we were attaching the after bridge callbacks to
      chan which is the ;1 channel of the unreal channel pair.  We should have
      attached them to the ;2 channel which is pushed into the bridge by
      ast_unreal_channel_push_to_bridge().  The callbacks are called when the
      specific channel leaves the bridging system.  Since the ;1 channel is
      never put into a bridge the callbacks never get called.  The callbacks
      then never remove the moh_wrapper from the app_bridges_moh container.  As
      a result we cannot find the channel associated with the wrapper to start
      MOH because it has hungup.  This is the reason causing the reported issue.
      
      * Rather than using after bridge callbacks to cleanup, we now have
      moh_channel_thread() doing the cleanup when the channel hangs up.
      
      * Fixed moh_channel_thread() accumulating control frames on the stasis
      bridge MOH channel until MOH is stopped.  Control frames are no longer
      accumulated while MOH is playing.
      
      * Fixed channel ref counting issue.  stasis_app_bridge_moh_channel() may
      or may not return a channel ref.  As a result ast_ari_bridges_start_moh()
      wouldn't know it may have a channel ref to release.
      stasis_app_bridge_moh_channel() will now return a ref with the channel it
      returns.
      
      * Eliminated RAII_VAR in bridge_moh_create().
      
      ASTERISK-26094 #close
      
      Change-Id: Ibff479e167b3320c68aaabfada7e1d0ef7bd548c
      f3422312
    • Ben Ford's avatar
      res_rtp_asterisk.c: Add "seqno" strictrtp option · b11a6643
      Ben Ford authored
      When networks experience disruptions, there can be large gaps of time
      between receiving packets. When strictrtp is enabled, this created
      issues where a flood of packets could come in and be seen as an attack.
      Another option - seqno - has been added to the strictrtp option that
      ignores the time interval and goes strictly by sequence number for
      validity.
      
      Change-Id: I8a42b8d193673899c8fc22fe7f98ea87df89be71
      b11a6643
    • Alexei Gradinari's avatar
      res_odbc: fix missing SQL error diagnostic · e6a69ea2
      Alexei Gradinari authored
      On SQL error there is not diagnostic information about this error.
      There is only
      WARNING res_odbc.c: SQL Execute error -1!
      
      The function ast_odbc_print_errors calls a SQLGetDiagField to get the number
      of available diagnostic records, but the SQLGetDiagField returns 0.
      However SQLGetDiagRec could return one diagnostic records in this case.
      
      Looking at many example of getting diagnostics error information
      I found out that the best way it's to use only SQLGetDiagRec
      while it returns SQL_SUCCESS.
      
      Also this patch adds calls of ast_odbc_print_errors on SQL_ERROR
      to res_config_odbc.
      
      ASTERISK-28065 #close
      
      Change-Id: Iba5ae5470ac49ecd911dd084effbe9efac68ccc1
      e6a69ea2
  26. Sep 25, 2018
    • George Joseph's avatar
      configure.ac: Check for unbound version >= 1.5 · 1ba51b00
      George Joseph authored
      In order to do this and provide good feedback, a new macro was
      created (AST_EXT_LIB_EXTRA_CHECK) which does the normal check and
      path setups for the library then compiles, links and runs a supplied
      code fragment to do the final determination.  In this case, the
      final code fragment compares UNBOUND_VERSION_MAJOR
      and UNBOUND_VERSION_MINOR to determine if they're greater than or
      equal to 1.5.
      
      Since we require version 1.5, some code in res_resolver_unbound
      was also simplified.
      
      ASTERISK-28045
      Reported by: Samuel Galarneau
      
      Change-Id: Iee94ad543cd6f8b118df8c4c7afd9c4e2ca1fa72
      1ba51b00
    • Joshua Colp's avatar
      res_rtp_asterisk: Raise event when RTP port is allocated · 8bb26484
      Joshua Colp authored
      This change raises a testsuite event to provide what port
      Asterisk has actually allocated for RTP. This ensures that
      testsuite tests can remove any assumption of ports and instead
      use the actual port in use.
      
      ASTERISK-28070
      
      Change-Id: I91bd45782e84284e01c89acf4b2da352e14ae044
      8bb26484
  27. Sep 24, 2018
    • Corey Farrell's avatar
      json: Take advantage of new API's. · 93777faf
      Corey Farrell authored
      * Use "o*" format specifier for optional fields in ast_json_party_id.
      * Stop using ast_json_deep_copy on immutable objects, it is now thread
        safe to just use ast_json_ref.
      
      Additional changes to ast_json_pack calls in the vicinity:
      * Use "O" when an object needs to be bumped.  This was previously
        avoided as it was not thread safe.
      * Use "o?" and "O?" to replace NULL with ast_json_null().  The
        "?" is a new feature of ast_json_pack starting with Asterisk 16.
      
      Change-Id: I8382d28d7d83ee0ce13334e51ae45dbc0bdaef48
      Unverified
      93777faf
  28. Sep 21, 2018
    • Corey Farrell's avatar
      res_rtp_asterisk: Fix crash on ast_rtp_new failure. · bdc81597
      Corey Farrell authored
      ast_rtp_new free'd rtp upon failure, but rtp_engine.c would also call
      the destroy callback.  Remove call to ast_free from ast_rtp_new, leave
      it to rtp_engine.c to initiate the full cleanup.  Add error detection
      for the ssrc_mapping vector initialization.  In rtp_allocate_transport
      set rtp->s = -1 in the failure path where we close that FD to ensure we
      don't try closing it twice.
      
      ASTERISK-27854 #close
      
      Change-Id: Ie02aecbb46228ca804e24b19cec2bb6f7b94e451
      Unverified
      bdc81597
  29. Sep 20, 2018
    • Sean Bright's avatar
      res_rtp_asterisk: Reset all settings on module reload · ad4a6bc2
      Sean Bright authored
      'rtpchecksums' and 'rtcpinterval' are not being reset to their defaults
      if they are not present in the updated configuration file.
      
      Change-Id: I1162e40199314d46cf3225d5e1271c4c81176670
      ad4a6bc2
    • Sean Bright's avatar
      AST-2018-009: Fix crash processing websocket HTTP Upgrade requests · a801543f
      Sean Bright authored
      The HTTP request processing in res_http_websocket allocates additional
      space on the stack for various headers received during an Upgrade request.
      An attacker could send a specially crafted request that causes this code
      to overflow the stack, resulting in a crash.
      
      * No longer allocate memory from the stack in a loop to parse the header
      values.  NOTE: There is a slight API change when using the passed in
      strings as is.  We now require the passed in strings to no longer have
      leading or trailing whitespace.  This isn't a problem as the only callers
      have already done this before passing the strings to the affected
      function.
      
      ASTERISK-28013 #close
      
      Change-Id: Ia564825a8a95e085fd17e658cb777fe1afa8091a
      a801543f
    • Joshua Colp's avatar
      res_remb_modifier: Add module for controlling REMB from CLI. · b9874da7
      Joshua Colp authored
      This adds a module which registers a CLI command that can set the
      REMB bitrate value for REMB as it enters or exits Asterisk. This
      allows you to ignore what Asterisk or a client produces and is
      useful for demonstrations.
      
      This does not generate REMB frames, however, but just modifies
      them as they flow to or from a channel.
      
      Change-Id: Ib089427c46a4a36d645cecfe02406adb38c17bec
      b9874da7
  30. Sep 18, 2018
    • Joshua Colp's avatar
      pjproject: Upgrade to 2.8. · ce9a980b
      Joshua Colp authored
      This change brings in PJSIP 2.8, removes all the patches
      that were merged upstream, and makes a minor change to
      support a breaking change that was done.
      
      ASTERISK-28059
      
      Change-Id: I5097772b11b0f95c3c1f52df6400158666f0a189
      ce9a980b
Loading