Skip to content
Snippets Groups Projects
  1. Oct 01, 2018
  2. Sep 26, 2018
    • 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
  3. Sep 12, 2018
    • lvl's avatar
      manager: Set AMI event "Newexten" to the EVENT_FLAG_DIALPLAN class · 012272a1
      lvl authored
      The documentation already specified EVENT_FLAG_DIALPLAN for this
      event, but the implementation was using EVENT_FLAG_CALL.
      
      Using EVENT_FLAG_DIALPLAN allows AMI clients to opt out of receiving
      this highly verbose event.
      
      ASTERISK-28033
      
      Change-Id: I45b3119f30e4dbc17b49831f2b1a4f2c1beadafe
      012272a1
  4. Aug 17, 2018
  5. Jul 27, 2018
    • Richard Mudgett's avatar
      res_pjsip_endpoint_identifier_ip.c: Added regex support to match_header · e5ae04b4
      Richard Mudgett authored
      This patch adds regular expression support to make the identify section's
      match_header option more useful when attempting to match complex headers
      like the 'To' or 'From' headers.  The 'From' header has variable
      components such as the tag parameter that you cannot predict.  To specify
      a regular expression put slashes around the regular expression in place of
      the header value.
      
      [identify-alice]
      type=identify
      endpoint=alice
      match_header=From: /<sip:alice@127\\.0\\.0\\.1>/
      
      * Added regex support to match_header so you could match a 'To' header
      among other complex headers.
      
      Fixed reported crashes when trying to match special headers like 'Contact'.
      The identify section's match_header method used code that assumed you were
      matching a generic header.  Any other type of header could cause a crash
      if the header structure variant did not match the generic header enough.
      
      * Made use code that will work for any header type instead of code
      specific to generic headers.
      
      Other fixes while in the area:
      
      * Made check all headers of the requested name.
      * Added some more sanity checks to the configured identify matching
      options when applying the configuration.
      
      ASTERISK-27548
      
      Change-Id: I27dfd4ff5e2259b906640e3c330681b76b4ed1f1
      e5ae04b4
  6. Jul 20, 2018
  7. Jul 18, 2018
  8. Jul 06, 2018
    • George Joseph's avatar
      res_pjsip: Add 'suppress_q850_reason_headers' option to endpoint · 8f42447c
      George Joseph authored
      A new option 'suppress_q850_reason_headers' has been added to the
      endpoint object. Some devices can't accept multiple Reason headers and
      get confused when both 'SIP' and 'Q.850' Reason headers are received.
      This option allows the 'Q.850' Reason header to be suppressed.
      The default value is 'no'.
      
      ASTERISK-27949
      Reported-by: Ross Beer
      
      Change-Id: I54cf37a827d77de2079256bb3de7e90fa5e1deb1
      8f42447c
  9. Jun 26, 2018
    • George Joseph's avatar
      res_pjsip_session: Add ability to accept multiple sdp answers · 880fbff6
      George Joseph authored
      pjproject by default currently will follow media forked during an INVITE
      on outbound calls if the To tag is different on a subsequent response as
      that on an earlier response.  We handle this correctly.  There have
      been reported cases where the To tag is the same but we still need to
      follow the media.  The pjproject patch in this commit adds the
      capability to sip_inv and also adds the capability to control it at
      runtime.  The original "different tag" behavior was always controllable
      at runtime but we never did anything with it and left it to default to
      TRUE.
      
      So, along with the pjproject patch, this commit adds options to both the
      system and endpoint objects to control the two behaviors, and a small
      logic change to session_inv_on_media_update in res_pjsip_session to
      control the behavior at the endpoint level.
      
      The default behavior for "different tags" remains the same at TRUE and
      the default for "same tag" is FALSE.
      
      Change-Id: I64d071942b79adb2f0a4e13137389b19404fe3d6
      ASTERISK-27936
      Reported-by: Ross Beer
      880fbff6
  10. Jun 21, 2018
    • Kristian F. Høgh's avatar
      app_queue: Add option for predial handlers on caller and callee channels · 184b375b
      Kristian F. Høgh authored
      Add predial handler support to app_queue.  app_dial (ASTERISK_19548) and
      app_originate (ASTERISK_26587) have the ability to execute predial
      handlers on caller and callee channels.  This patch adds predial handlers
      to app_queue and uses the same options as Dial and Originate (b and B).
      The caller routine gets executed when the caller first enters the queue.
      The callee routine gets executed for each queue member when they are about
      to be called.
      
      ASTERISK-27912
      
      Change-Id: I5acf5c32587ee008658d12e8a8049eb8fa4d0f24
      184b375b
  11. Jun 13, 2018
    • George Joseph's avatar
      app_confbridge: Enable sending events to participants · e7a7506f
      George Joseph authored
      ConfBridge can now send events to participants via in-dialog MESSAGEs.
      All current Confbridge events are supported, such as ConfbridgeJoin,
      ConfbridgeLeave, etc.  In addition to those events, a new event
      ConfbridgeWelcome has been added that will send a list of all
      current participants to a new participant.
      
      For all but the ConfbridgeWelcome event, the JSON message contains
      information about the bridge, such as its id and name, and information
      about the channel that triggered the event such as channel name,
      callerid info, mute status, and the MSID labels for their audio and
      video tracks. You can use the labels to correlate callerid and mute
      status to specific video elements in a webrtc client.
      
      To control this behavior, the following options have been added to
      confbridge.conf:
      
      bridge_profile/enable_events:  This must be enabled on any bridge where
      events are desired.
      
      user_profile/send_events:  This must be set for a user profile to send
      events.  Different user profiles connected to the same bridge can have
      different settings.  This allows admins to get events but not normal
      users for instance.
      
      user_profile/echo_events:  In some cases, you might not want the user
      triggering the event to get the event sent back to them.  To prevent it,
      set this to false.
      
      A change was also made to res_pjsip_sdp_rtp to save the generated msid
      to the stream so it can be re-used.  This allows participant A's video
      stream to appear as the same label to all other participants.
      
      Change-Id: I26420aa9f101f0b2387dc9e2fd10733197f1318e
      e7a7506f
  12. Jun 01, 2018
    • William McCall's avatar
      app_confbridge: Add talking indicator for ConfBridgeList AMI response · a7f41212
      William McCall authored
      When an AMI client connects, it cannot determine if a user was talking
      prior to a transition in the user speaking state (which would generate
      a ConfbridgeTalking event). This patch causes app_confbridge to track the
      talking state and make this state available via ConfBridgeList.
      
      ASTERISK-27877 #close
      
      Change-Id: I19b5284f34966c3fda94f5b99a7e40e6b89767c6
      a7f41212
  13. May 03, 2018
    • Tzafrir Cohen's avatar
      chan_dahdi: Configurable dialed digit timeouts · 63015314
      Tzafrir Cohen authored
      Analog phones dial overlap dialing and it is chan_dahdi's job to read the
      numbers.  It has three timeout constants that this commit converts to
      channel-level configuration options:
      
      * firstdigit_timeout: Default time (ms) to detect first digit
      
      * interdigit_timeout: Default time (ms) to detect following digits
      
      * matchdigit_timeout: Default time (ms) to wait in case of ambiguous
      match.  This happens when the dialed digits match a number in the current
      context but are also the prefix of another number.
      
      Change-Id: Ib728fa900a4f6ae56d1ed810aba61b6593fb7213
      63015314
  14. Apr 17, 2018
    • George Joseph's avatar
      app_sendtext: Enhance SendText to support Enhanced Messaging · 8135558b
      George Joseph authored
      SendText now accepts new channel variables that can be used
      to override the To and From display names and set the Content-Type
      of a message.  Since you can now set Content-Type, other text/*
      content types are now valid.
      
      Change-Id: I648b4574478119f95de09d9f08e9595831b02830
      8135558b
    • George Joseph's avatar
      bridge_softmix: Forward TEXT frames · 4fb7967c
      George Joseph authored
      Core bridging and, more specifically, bridge_softmix have been
      enhanced to relay received frames of type TEXT or TEXT_DATA to all
      participants in a softmix bridge.  res_pjsip_messaging and
      chan_pjsip have been enhanced to take advantage of this so when
      res_pjsip_messaging receives an in-dialog MESSAGE message from a
      user in a conference call, it's relayed to all other participants
      in the call.
      
      res_pjsip_messaging already queues TEXT frames to the channel when
      it receives an in-dialog MESSAGE from an endpoint and chan_pjsip
      will send an MESSAGE when it gets a TEXT frame.  On a normal
      point-to-point call, the frames are forwarded between the two
      correctly.  bridge_softmix was not though so messages weren't
      getting forwarded to conference bridge participants.  Even if they
      were, the bridging code had no way to tell the participants who
      sent the message so it would look like it came from the bridge
      itself.
      
      * The TEXT frame type doesn't allow storage of any meta data, such
      as sender, on the frame so a new TEXT_DATA frame type was added that
      uses the new ast_msg_data structure as its payload.  A channel
      driver can queue a frame of that type when it receives a message
      from outside.  A channel driver can use it for sending messages
      by implementing the new send_text_data channel tech callback and
      setting the new AST_CHAN_TP_SEND_TEXT_DATA flag in its tech
      properties.  If set, the bridging/channel core will use it instead
      of the original send_text callback and it will get the ast_msg_data
      structure. Channel drivers aren't required to implement this.  Even
      if a TEXT_DATA enabled driver uses it for incoming messages, an
      outgoing channel driver that doesn't will still have it's send_text
      callback called with only the message text just as before.
      
      * res_pjsip_messaging now creates a TEXT_DATA frame for incoming
      in-dialog messages and sets the "from" to the display name in the
      "From" header, or if that's empty, the caller id name from the
      channel.  This allows the chat client user to set a friendly name
      for the chat.
      
      * bridge_softmix now forwards TEXT and TEXT_DATA frames to all
      participants (except the sender).
      
      * A new function "ast_sendtext_data" was added to channel which
      takes an ast_msg_data structure and calls a channel's
      send_text_data callback, or if that's not defined, the original
      send_text callback.
      
      * bridge_channel now calls ast_sendtext_data for TEXT_DATA frame
      types and ast_sendtext for TEXT frame types.
      
      * chan_pjsip now uses the "from" name in the ast_msg_data structure
      (if it exists) to set the "From" header display name on outgoing text
      messages.
      
      Change-Id: Idacf5900bfd5f22ab8cd235aa56dfad090d18489
      4fb7967c
  15. Apr 11, 2018
    • Nathan Bruning's avatar
      res_pjsip_notify.c: enable in-dialog NOTIFY · 1cd704de
      Nathan Bruning authored
      This patch adds support to send in-dialog SIP NOTIFY commands on
      chan_pjsip channels, similar to the functionality recently added
      for chan_sip (ASTERISK_27461).
      
      This extends res_pjsip_notify to allow for in-dialog messages.
      
      ASTERISK-27697
      
      Change-Id: If7f3151a6d633e414d5dc319d5efc1443c43dd29
      1cd704de
  16. Mar 22, 2018
  17. Mar 19, 2018
    • George Joseph's avatar
      channel.c: Allow generic plc then channel formats are equal · 5d097f82
      George Joseph authored
      If the two formats on a channel are equal, we don't transcode and since
      the generic plc needs slin to work, it doesn't get invoked.
      
      * A new configuration option "genericplc_on_equal_codecs" was added
        to the "plc" section of codecs.conf to allow generic packet loss
        concealment even if no transcoding was originally needed.
        Transcoding via SLIN is forced in this case.
      
      ASTERISK-27743
      
      Change-Id: I0577026a179dea34232e63123254b4e0508378f4
      5d097f82
  18. Mar 01, 2018
    • Richard Mudgett's avatar
      core: Remove ABI effects of MALLOC_DEBUG. · c711e407
      Richard Mudgett authored
      This allows asterisk to be compiled with MALLOC_DEBUG to load modules
      built without MALLOC_DEBUG.  Now pre-compiled third-party modules will
      still work regardless of MALLOC_DEBUG being enabled or not.
      
      Change-Id: Ic07ad80b2c2df894db984cf27b16a69383ce0e10
      c711e407
  19. Feb 28, 2018
    • Richard Mudgett's avatar
      pjproject: Add cache_pools debugging option. · 1a36a452
      Richard Mudgett authored
      The pool cache gets in the way of finding use after free errors of memory
      pool contents.  Tools like valgrind and MALLOC_DEBUG don't know when a
      pool is released because it gets put into the cache instead of being
      freed.
      
      * Added the "cache_pools" option to pjproject.conf.  Disabling the option
      helps track down pool content mismanagement when using valgrind or
      MALLOC_DEBUG.  The cache gets in the way of determining if the pool
      contents are used after free and who freed it.
      
      To disable the pool caching simply disable the cache_pools option in
      pjproject.conf and restart Asterisk.
      
      Sample pjproject.conf setting:
      [startup]
      cache_pools=no
      
      * Made current users of the caching pool factory initialization and
      destruction calls call common routines to create and destroy cached pools.
      
      ASTERISK-27704
      
      Change-Id: I64d5befbaeed2532f93aa027a51eb52347d2b828
      1a36a452
  20. Feb 22, 2018
  21. Feb 21, 2018
    • George Joseph's avatar
      AST-2018-005: res_pjsip_transport_management: Move to core · 758409de
      George Joseph authored
      Since res_pjsip_transport_management provides several attack
      mitigation features, its functionality moved to res_pjsip and
      this module has been removed.  This way the features will always
      be available if res_pjsip is loaded.
      
      ASTERISK-27618
      Reported By: Sandro Gauci
      
      Change-Id: I21a2d33d9dda001452ea040d350d7a075f9acf0d
      758409de
  22. Feb 13, 2018
    • Corey Farrell's avatar
      Deprecate legacy modules. · 9f74afbd
      Corey Farrell authored
      * app_fax (replaced by res_fax).
      * res_config_sqlite (replaced by res_config_sqlite3).
      * res_monitor (replaced by app_mixmonitor).
      
      This is related to ASTERISK~23657 but does not resolve that ticket.
      Resolving that ticket would require complete removal of res_monitor.
      
      ASTERISK-27671 #close
      
      Change-Id: I16a3edd61fc1abd4a7b2e9357693ed663f62dd49
      9f74afbd
  23. Feb 12, 2018
    • Corey Farrell's avatar
      core: Remove embedded editline. · 9fddc8b4
      Corey Farrell authored
      This removes the embedded copy of editline from the Asterisk source
      tree, making a system copy of libedit mandatory in Asterisk 16+.
      
      ASTERISK-27634 #close
      
      Change-Id: Iedb64ad92acb78419f3caefedaa2bb7cd2a1a33f
      9fddc8b4
  24. Feb 05, 2018
  25. Jan 31, 2018
  26. Jan 30, 2018
    • George Joseph's avatar
      res_pjsip_pubsub: Prune subs with reliable transports at startup · 2b9aa6b5
      George Joseph authored
      In an earlier release, inbound registrations on a reliable transport
      were pruned on Asterisk restart since the TCP connection would have
      been torn down and become unusable when Asterisk stopped.  This same
      process is now also applied to inbound subscriptions.
      
      Also fixed issues in res_pjsip_registrar where it wasn't handling the
      monitoring correctly when multiple registrations came in over the same
      transport.
      
      To accomplish this, the pjsip_transport_event feature needed to
      be refactored to allow multiple monitors (multiple subcriptions or
      registrations from the same endpoint) to exist on the same transport.
      Since this changed the API, any external modules that may have used the
      transport monitor feature (highly unlikey) will need to be changed.
      
      ASTERISK-27612
      Reported by: Ross Beer
      
      Change-Id: Iee87cf4eb9b7b2b93d5739a72af52d6ca8fbbe36
      2b9aa6b5
  27. Jan 24, 2018
  28. Jan 19, 2018
    • krells's avatar
      pbx: Reduce verbosity while loading extensions · 77f2814d
      krells authored
      Each time the dial plan is reloaded, a lot of logs like these are generated:
      "Added extension 'XXXXX' priority 1 to YYYYYYYYYYY"
      This patch changes the log level for those logs.
      
      ASTERISK-27084
      
      Change-Id: I5662902161c50890997ddc56835d4cafb456c529
      77f2814d
  29. Jan 17, 2018
  30. Jan 16, 2018
    • Richard Mudgett's avatar
      res_pjsip: Split type=identify to IP address and SIP header matching priorities · 8494e780
      Richard Mudgett authored
      The type=identify endpoint identification method can match by IP address
      and by SIP header.  However, the SIP header matching has limited
      usefulness because you cannot specify the SIP header matching priority
      relative to the IP address matching.  All the matching happens at the same
      priority and the order of evaluating the identify sections is
      indeterminate.  e.g., If you had two type=identify sections where one
      matches by IP address for endpoint alice and the other matches by SIP
      header for endpoint bob then you couldn't predict which endpoint is
      matched when a request comes in that matches both.
      
      * Extract the SIP header matching criteria into its own "header" endpoint
      identification method so the user can specify the relative priority of the
      SIP header and the IP address matching criteria in the global
      endpoint_identifier_order option.  The "ip" endpoint identification method
      now only matches by IP address.
      
      ASTERISK-27491
      
      Change-Id: I9df142a575b7e1e3471b7cda5d3ea156cef08095
      8494e780
  31. Jan 10, 2018
    • Sean Bright's avatar
      cdr_syslog: Deprecate unmaintained module · 9e2fcb82
      Sean Bright authored
      There has been an open issue against cdr_syslog (ASTERISK~14441) about
      a race condition for 7.5 years that has never been addressed. Because
      this module is effectively unmaintained and currently broken, there is
      no sense in keeping it around.
      
      If logging CDRs to syslog is a desirable feature, it would probably be
      better to write the logs directly to the syslog server via socket
      instead of using the facilities provided by openlog/syslog/closelog.
      Doing so would address the race condition referenced in the associated
      issue.
      
      Change-Id: Ic77b94cd97f355a9cf5b1d3f3444964a6e0ba5dc
      9e2fcb82
  32. Jan 08, 2018
  33. Jan 02, 2018
  34. Dec 18, 2017
  35. Dec 15, 2017
  36. Dec 11, 2017
    • Kevin Harwell's avatar
      pjsip_options: wrongly applied "UNKNOWN" status · b088cddc
      Kevin Harwell authored
      A couple of places were setting the status to "UNKNOWN" when qualifies were
      being disabled. Instead this should be set to the "CREATED" status that
      represents when a contact is given (uri available), but the qualify frequency
      is set to zero so we don't know the status.
      
      This patch updates the relevant places with "CREATED". It also updates the
      "CREATED" status description (value shown in CLI/AMI/ARI output) to a value
      of "NonQualified"/"NonQual" as this description is hopefully less confusing.
      
      ASTERISK-27467
      
      Change-Id: Id67509d25df92a72eb3683720ad2a95a27b50c89
      b088cddc
  37. Nov 11, 2017
    • Richard Mudgett's avatar
      core: Add cache_media_frames debugging option. · 90bb0a3e
      Richard Mudgett authored
      The media frame cache gets in the way of finding use after free errors of
      media frames.  Tools like valgrind and MALLOC_DEBUG don't know when a
      frame is released because it gets put into the cache instead of being
      freed.
      
      * Added the "cache_media_frames" option to asterisk.conf.  Disabling the
      option helps track down media frame mismanagement when using valgrind or
      MALLOC_DEBUG.  The cache gets in the way of determining if the frame is
      used after free and who freed it.  NOTE: This option has no effect when
      Asterisk is compiled with the LOW_MEMORY compile time option enabled
      because the cache code does not exist.
      
      To disable the media frame cache simply disable the cache_media_frames
      option in asterisk.conf and restart Asterisk.
      
      Sample asterisk.conf setting:
      [options]
      cache_media_frames=no
      
      ASTERISK-27413
      
      Change-Id: I0ab2ce0f4547cccf2eb214901835c2d951b78c00
      90bb0a3e
  38. Nov 06, 2017
    • Sean Bright's avatar
      dtls: Add support for ephemeral DTLS certificates. · 04d3785a
      Sean Bright authored
      This mimics the behavior of Chrome and Firefox and creates an ephemeral
      X.509 certificate for each DTLS session.
      
      Currently, the only supported key type is ECDSA because of its faster
      generation time, but other key types can be added in the future as
      necessary.
      
      ASTERISK-27395
      
      Change-Id: I5122e5f4b83c6320cc17407a187fcf491daf30b4
      04d3785a
Loading