Skip to content
Snippets Groups Projects
  1. Apr 05, 2017
  2. Mar 28, 2017
    • George Joseph's avatar
      res_pjsip_config_wizard: Add 2 new parameters to help with proxy config · 2fe52174
      George Joseph authored
      Two new parameters have been added to the pjsip config wizard.
      
       * Setting 'sends_line_with_registrations' to true will cause the wizard
         to skip the creation of an identify object to match incoming request
         to the endpoint and instead add the line and endpoint parameters to
         the outbound registration object.
      
       * Setting 'outbound_proxy' is a shortcut for adding individual
         endpoint/outbound_proxy, aor/outbound_proxy and
         registration/outbound_proxy parameters.
      
      Change-Id: I678e5f80765734c056620528a6d40d82736ceeb0
      (cherry picked from commit a827892f)
      (cherry picked from commit 27344675)
      2fe52174
  3. Mar 27, 2017
  4. Mar 22, 2017
    • Kevin Harwell's avatar
      rtp_engine: allocate RTP dynamic payloads per session · 9b103e7b
      Kevin Harwell authored
      Dynamic payload types were statically defined in Asterisk. This unfortunately
      limited the number of dynamic payloads that could be registered. With this patch
      dynamic payload type numbers are now assigned dynamically and per RTP instance.
      However, in order to limit any issues where some clients expect the old
      statically defined value this patch makes it so the value Asterisk used to pre-
      designate is used for the dynamic assignment if available.
      
      An option, "rtp_use_dynamic", has also been added (can be set in asterisk.conf)
      that turns the new dynamic behavior on or off. When off it reverts back to using
      statically defined payload values. This option defaults to "yes" in Asterisk 15.
      
      ASTERISK-26515 #close
      patches:
        ASTERISK-26515.diff submitted by jcolp (license 5000
      
      Change-Id: I7653465c5ebeaf968f1a1cc8f3f4f5c4321da7fc
      9b103e7b
    • Richard Begg's avatar
      res_pjsip_session: Enable RFC3578 overlap dialing support. · 6b7697ed
      Richard Begg authored
      Support for RFC3578 overlap dialling (i.e. 484 Response to partially matched
      destinations) as currently provided by chan_sip is missing from res_pjsip.
      This patch adds a new endpoint attribute (allow_overlap) [defaults to yes]
      which when set to yes enables 484 responses to partial destination
      matches rather than the current 404.
      
      ASTERISK-26864
      
      Change-Id: Iea444da3ee7c7d4f1fde1d01d138a3d7b0fe40f6
      6b7697ed
  5. Mar 17, 2017
  6. Mar 16, 2017
    • George Joseph's avatar
      res_pjsip: Symmetric transports · 5013d8f5
      George Joseph authored
      A new transport parameter 'symmetric_transport' has been added.
      
      When a request from a dynamic contact comes in on a transport with
      this option set to 'yes', the transport name will be saved and used
      for subsequent outgoing requests like OPTIONS, NOTIFY and INVITE.
      It's saved as a contact uri parameter named 'x-ast-txp' and will
      display with the contact uri in CLI, AMI, and ARI output.  On the
      outgoing request, if a transport wasn't explicitly set on the
      endpoint AND the request URI is not a hostname, the saved transport
      will be used and the 'x-ast-txp' parameter stripped from the
      outgoing packet.
      
      * config_transport was modified to accept and store the new parameter.
      
      * config_transport/transport_apply was updated to store the transport
        name in the pjsip_transport->info field using the pjsip_transport->pool
        on UDP transports.
      
      * A 'multihomed_on_rx_message' function was added to
        pjsip_message_ip_updater that, for incoming requests, retrieves the
        transport name from pjsip_transport->info and retrieves the transport.
        If transport->symmetric_transport is set, an 'x-ast-txp' uri parameter
        containing the transport name is added to the incoming Contact header.
      
      * An 'ast_sip_get_transport_name' function was added to res_pjsip.
        It takes an ast_sip_endpoint and a pjsip_sip_uri and returns a
        transport name if endpoint->transport is set or if there's an
        'x-ast-txp' parameter on the uri and the uri host is an ipv4 or
        ipv6 address.  Otherwise it returns NULL.
      
      * An 'ast_sip_dlg_set_transport' function was added to res_pjsip
        which takes an ast_sip_endpoint, a pjsip_dialog, and an optional
        pjsip_tpselector.  It calls ast_sip_get_transport_name() and if
        a non-NULL is returned, sets the selector and sets the transport
        on the dialog.  If a selector was passed in, it's updated.
      
      * res_pjsip/ast_sip_create_dialog_uac and ast_sip_create_dialog_uas
        were modified to call ast_sip_dlg_set_transport() instead of their
        original logic.
      
      * res_pjsip/create_out_of_dialog_request was modified to call
        ast_sip_get_transport_name() and pjsip_tx_data_set_transport()
        instead of its original logic.
      
      * Existing transport logic was removed from endpt_send_request
        since that can only be called after a create_out_of_dialog_request.
      
      * res_pjsip/ast_sip_create_rdata was converted to a wrapper around
        a new 'ast_sip_create_rdata_with_contact' function which allows
        a contact_uri to be specified in addition to the existing
        parameters.  (See below)
      
      * res_pjsip_pubsub/internal_pjsip_evsub_send_request was eliminated
        since all it did was transport selection and that is now done in
        ast_sip_create_dialog_uac and ast_sip_create_dialog_uas.
      
      * 'contact_uri' was added to subscription_persistence.  This was
        necessary because although the parsed rdata contact header has the
        x-ast-txp parameter added (if appropriate),
        subscription_persistence_update stores the raw packet which
        doesn't have it.  subscription_persistence_recreate was then
        updated to call ast_sip_create_rdata_with_contact with the
        persisted contact_uri so the recreated subscription has the
        correct transport info to send the NOTIFYs.
      
      * res_pjsip_session/internal_pjsip_inv_send_msg was eliminated since
        all it did was transport selection and that is now done in
        ast_sip_create_dialog_uac.
      
      * pjsip_message_ip_updater/multihomed_on_tx_message was updated
        to remove all traces of the x-ast-txp parameter from the
        outgoing headers.
      
      NOTE:  This change does NOT modify the behavior of permanent
      contacts specified on an aor.  To do so would require that the
      permanent contact's contact uri be updated with the x-ast-txp
      parameter and the aor sorcery object updated.  If we need to
      persue this, we need to think about cloning permanent contacts into
      the same store as the dynamic ones on an aor load so they can be
      updated without disturbing the originally configured value.
      
      You CAN add the x-ast-txp parameter to a permanent contact's uri
      but it would be much simpler to just set endpoint->transport.
      
      Change-Id: I4ee1f51473da32ca54b877cd158523efcef9655f
      5013d8f5
  7. Mar 14, 2017
  8. Mar 08, 2017
  9. Feb 28, 2017
  10. Feb 24, 2017
    • frahaase's avatar
      Binaural synthesis (confbridge): DTMF conference management. · 5b1796f5
      frahaase authored
      DTMF configuration options for the binaural softmix bridge:
      toggle binaural rendering (per channel).
      
      ASTERISK-26292
      
      Change-Id: Ibfe708b9fe26097c1798fcbfcc4dc461267d8af8
      5b1796f5
    • Joshua Colp's avatar
      config: Improve documentation and behavior of outbound_proxy option. · 20467439
      Joshua Colp authored
      This change updates the documentation for the outbound_proxy option
      to ensure it is consistently stated that a full SIP URI must be
      provided for the option.
      
      The res_pjsip_outbound_registration module has also been changed so
      that the provided outbound_proxy value is checked to ensure it is a
      URI and if not an error is output stating so.
      
      ASTERISK-26782
      
      Change-Id: I6c239a32274846fd44e65b44ad9bf6373479b593
      20467439
  11. Feb 21, 2017
    • Richard Mudgett's avatar
      res_pjsip: Update authentication realm documentation. · 0b660c99
      Richard Mudgett authored
      Using the same auth section for inbound and outbound authentication is not
      recommended.  There is a difference in meaning for an empty realm setting
      between inbound and outbound authentication uses.
      
      An empty inbound auth realm represents the global section's default_realm
      value when the authentication object is used to challenge an incoming
      request.  An empty outgoing auth realm is treated as a don't care wildcard
      when the authentication object is used to respond to an incoming
      authentication challenge.
      
      ASTERISK-26799
      
      Change-Id: Id3952f7cfa1b6683b9954f2c5d2352d2f11059ce
      0b660c99
  12. Feb 14, 2017
  13. Feb 10, 2017
  14. Feb 02, 2017
  15. Jan 23, 2017
    • Lorenzo Miniero's avatar
      media: Add experimental support for RTCP feedback. · 1061539b
      Lorenzo Miniero authored
      This change adds experimental support for providing RTCP
      feedback information to codec modules so they can dynamically
      change themselves based on conditions.
      
      ASTERISK-26584
      
      Change-Id: Ifd6aa77fb4a7ff546c6025900fc2baf332c31857
      1061539b
  16. Jan 20, 2017
    • George Joseph's avatar
      debug_utilities: Create ast_loggrabber · d16b3a99
      George Joseph authored
      ast_loggrabber gathers log files from customizable search patterns,
      optionally converts POSIX timestamps to a readable format and
      tarballs the results.
      
      Also a few tweaks were made to ast_coredumper.
      
      Change-Id: I8bfe1468ada24c1344ce4abab7b002a59a659495
      (cherry picked from commit c70915287837704090d75f181525765de7a17221)
      d16b3a99
  17. Jan 11, 2017
    • George Joseph's avatar
      debug_utilities: Create the ast_coredumper utility · 0d53c91f
      George Joseph authored
      This utility allows easy manipulation of asterisk coredumps.
      
      * Configurable search paths and patterns for existing coredumps
      * Can generate a consistent coredump from the running instance
      * Can dump the lock_infos table from a coredump
      * Dumps backtraces to separate files...
        - thread apply 1 bt full -> <coredump>.thread1.txt
        - thread apply all bt -> <coredump>.brief.txt
        - thread apply all bt full -> <coredump>.full.txt
        - lock_infos table -> <coredump>.locks.txt
      * Can tarball corefiles and optionally delete them after processing
      * Can tarball results files and optionally delete them after processing
      * Converts ':' in coredump and results file names '-' to facilitate
        uploading.  Jira for instance, won't accept file names with colons
        in them.
      
      Tested on Fedora24+, Ubuntu14+, Debian6+, CentOS6+ and FreeBSD9+[1].
      
      [1] For *BSDs, the "devel/gdb" package might have to be installed to
      get a recent gdb.  The utility will check all instances of gdb
      it finds in $PATH and if one isn't found that can run python, it
      prints a friendly error.
      
      Change-Id: I935d37ab9db85ef923f32b05579897f0893d33cd
      (cherry picked from commit cb47b4556053cd50d9102eef913671ad0306062d)
      0d53c91f
  18. Jan 04, 2017
  19. Nov 30, 2016
    • Richard Mudgett's avatar
      PJPROJECT logging: Made easier to get available logging levels. · 1dfa11b6
      Richard Mudgett authored
      Use of the new logging is as simple as issuing the new CLI command or
      setting the new pjproject.conf option.
      
      Other options that can affect the logging are how you have the pjproject
      log levels mapped to Asterisk log types in pjproject.conf and if you have
      configured Asterisk to log the DEBUG type messages.  Altering the
      pjproject.conf level mapping shouldn't be necessary for most installations
      as the default mapping is sensible.  Configuring Asterisk to log the DEBUG
      message type is standard practice for collecting debug information.
      
      * Added CLI "pjproject set log level" command to dynamically adjust the
      maximum pjproject log message level.
      
      * Added CLI "pjproject show log level" command to see the currently set
      maximum pjproject log message level.
      
      * Added pjproject.conf startup section "log_level" option to set the
      initial maximum pjproject log message level so all messages could be
      captured from initialization.
      
      * Set PJ_LOG_MAX_LEVEL to 6 to compile in all defined logging levels into
      bundled pjproject.  Pjproject will use the currently set run time log
      level to determine if a log message is generated just like Asterisk
      verbose and debug logging levels.
      
      * In log_forwarder(), made always log enabled and mapped pjproject log
      messages.  DEBUG mapped log messages are no longer gated by the current
      Asterisk debug logging level.
      
      * Removed RAII_VAR() from res_pjproject.c:get_log_level().
      
      ASTERISK-26630 #close
      
      Change-Id: I6dca12979f482ffb0450aaf58db0fe0f6d2e5389
      1dfa11b6
  20. Nov 14, 2016
    • Sebastien Duthil's avatar
      res_ari: Add support for channel variables in ARI events. · c6d755de
      Sebastien Duthil authored
      This works the same as for AMI manager variables. Set
      "channelvars=foo,bar" in your ari.conf general section, and then the
      channel variables "foo" and "bar" (along with their values), will
      appear in every Stasis websocket channel event.
      
      ASTERISK-26492 #close
      patches:
        ari_vars.diff submitted by Mark Michelson
      
      Change-Id: I5609ba239259577c0948645df776d7f3bc864229
      c6d755de
  21. Nov 02, 2016
    • Alexander Traud's avatar
      rtp_engine: Allow more than 32 dynamic payload types. · 9ac53877
      Alexander Traud authored
      Since adding all remaining rates of Signed Linear (ASTERISK-24274), SILK
      (Gerrit 3136) and Codec 2 (ASTERISK-26217), no RTP Payload Type is left in the
      dynamic range (96-127). RFC 3551 section 3 allows to reassign other ranges.
      Consequently, when the dynamic range is exhausted, this change utilizes payload
      types in the range between 35 and 63 giving room for another 29 payload types.
      
      ASTERISK-26311 #close
      
      Change-Id: I7bc96ab764bc30098a178b841cbf7146f9d64964
      9ac53877
  22. Nov 01, 2016
  23. Oct 27, 2016
    • Tzafrir Cohen's avatar
      chan_dahdi: remove by_name support · 0646b48e
      Tzafrir Cohen authored
      Support for referring to DAHDI channels by logical names was added in
      (FIXME: when? Asterisk 11? 1.8?) and was intended to be part of support
      of refering to channels by name.
      
      While technically usable, it has never been properly supported in
      dahdi-tools, as using it would require many changes at the Asterisk
      level. Instead logical mapping was added at the kernel level.
      
      Thus it seems that refering to DAHDI channels by name is not really used
      by anyone, and therefore should probably be removed.
      
      Change-Id: I7d50bbfd9d957586f5cd06570244ef87bd54b485
      0646b48e
  24. Oct 26, 2016
    • Joshua Colp's avatar
      pjsip: Fix a few media bugs with reinvites and asymmetric payloads. · aed6c219
      Joshua Colp authored
      When channel format changes occurred as a result of an RTP
      re-negotiation the bridge was not informed this had happened.
      As a result the bridge technology was not re-evaluated and the
      channel may have been in a bridge technology that was incompatible
      with its formats. The bridge is now unbridged and the technology
      re-evaluated when this occurs.
      
      The chan_pjsip module also allowed asymmetric codecs for sending
      and receiving. This did not work with all devices and caused one
      way audio problems. The default has been changed to NOT do this
      but to match the sending codec to the receiving codec. For users
      who want asymmetric codecs an option has been added, asymmetric_rtp_codec,
      which will return chan_pjsip to the previous behavior.
      
      The codecs returned by the chan_pjsip module when queried by
      the bridge_native_rtp module were also not reflective of the
      actual negotiated codecs. The nativeformats are now returned as
      they reflect the actual negotiated codecs.
      
      ASTERISK-26423 #close
      
      Change-Id: I6ec88c6e3912f52c334f1a26983ccb8f267020dc
      aed6c219
  25. Oct 23, 2016
    • Joshua Colp's avatar
      pjsip: Support dual stack automatically. · 403c4f58
      Joshua Colp authored
      This change adds support for dual stack automatically. No
      configuration is required and the IP address and version
      in the SIP messages and SDP will be automatically changed
      based on the transport over which the message is being
      sent. RTP usage has also been changed to listen on both
      IPv4 and IPv6 simultaneously to allow media to flow, and
      to allow ICE support on both simultaneously. This also
      allows failover between IPv6 and IPv4 to work as expected.
      
      ASTERISK-26309 #close
      
      Change-Id: I235a421d8f9a326606d861b449fa6fe3a030572d
      403c4f58
  26. Oct 19, 2016
    • Michael Walton's avatar
      res_rtp_asterisk: Add ice_blacklist option · 3e96d491
      Michael Walton authored
      Introduces ice_blacklist configuration in rtp.conf. Subnets listed in the
      form ice_blacklist = <subnet spec>, e.g. ice_blacklist =
      192.168.1.0/255.255.255.0, are excluded from ICE host, srflx and relay
      discovery. This is useful for optimizing the ICE process where a system
      has multiple host address ranges and/or physical interfaces and certain
      of them are not expected to be used for RTP. Multiple ice_blacklist
      configuration lines may be used. If left unconfigured, all discovered
      host addresses are used, as per previous behavior.
      
      Documention in rtp.conf.sample.
      
      ASTERISK-26418 #close
      
      Change-Id: Ibee88f80d7693874fda1cceaef94a03bd86012c9
      3e96d491
  27. Oct 10, 2016
    • Ludovic Gasc (GMLudo)'s avatar
      res_calendar: Add support for fetching calendars when reloading · 9f62feca
      Ludovic Gasc (GMLudo) authored
      We use a lot res_calendar, we are very happy with that, especially
      because you use libical, the almost alone opensource library that
      supports really ical format with all types of recurrency.
      
      Nevertheless, some features are missed for our business use cases.
      
      This first patch adds a new option in calendar.conf:
      fetch_again_at_reload. Be my guest for a better name.
      
      If it's true, when you'll launch "module reload res_calendar.so",
      Asterisk will download again the calendar.
      
      The business use case is that we have a WebUI with a scheduler planner,
      we know when the calendars are modified.
      
      For now, we need to define 1 minute of timeout to have a chance that
      our user doesn't wait too long between the modification and the real
      test.  But it generates a lot of useless HTTP traffic.
      
      
      ASTERISK-26422 #close
      
      Change-Id: I384b02ebfa42b142bbbd5b7221458c7f4dee7077
      9f62feca
  28. Sep 21, 2016
  29. Sep 15, 2016
    • Tzafrir Cohen's avatar
      cdr_mysql: fix UTC support · d3ddf4b0
      Tzafrir Cohen authored
      * Make 'cdrzone=UTC' work properly.
      * Fix the documentation of cdr_mysql.conf: it's cdrzone and not timezone
      
      ASTERISK-26359 #close
      
      Change-Id: I2a6f67b71bbbe77cac31a34d0bbfb1d67c933778
      d3ddf4b0
  30. 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
  31. Sep 02, 2016
  32. Aug 19, 2016
    • Alexander Traud's avatar
      sip.conf: tlsclientmethod is using sslv23 as default. · 1a9555f0
      Alexander Traud authored
      When 'tlsclientmethod' is not specified in sip.conf, chan_sip uses the OpenSSL
      SSLv23_method. This was documented incorrectly in the file sip.conf.sample.
      
      SSLv23_method got its name in the 90s. Today, with OpenSSL 1.0.2, this method
      enables (just) the secure TLSv1.0 and TLSv1.2. Or stated differently, that
      function should have been called 'secure_method' or 'automatic_method' back in
      the 90s.
      
      Consequently please, specify 'tlsclientmethod=tlsv1' in your sip.conf only if
      you face a server which has problems like not falling back to TLSv1.0
      automatically.
      
      ASTERISK-24425
      
      Change-Id: I502ce6146b4504cadfd3973af8d6ec3994f54fa3
      1a9555f0
  33. 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
  34. Aug 15, 2016
    • Alexei Gradinari's avatar
      core: Entity ID is not set or invalid · e85adbd9
      Alexei Gradinari authored
      The Exchanging Device and Mailbox States could not working
      if the Entity ID (EID) is not set manually and can't be obtained
      from ethernet interface.
      
      This patch replaces debug message to warning
      and addes missing description about option 'entityid' to
      asterisk.conf.sample.
      
      With this patch the asterisk also:
      (1) decline loading the modules which won't work without EID:
          res_corosync and res_pjsip_publish_asterisk.
      (2) warn if EID is empty on loading next modules:
          pbx_dundi, res_xmpp
      
      Starting with v197 systemd/udev will automatically assign "predictable"
      names for all local Ethernet interfaces.
      This patch also addes some new ethernet prefixes "eno" and "ens".
      
      ASTERISK-26164 #close
      
      Change-Id: I72d712f1ad5b6f64571bb179c5cb12461e7c58c6
      e85adbd9
    • Joshua Colp's avatar
      manager: Clarify that dialplan manipulation actions are under system class. · 922b7416
      Joshua Colp authored
      ASTERISK-26246 #close
      
      Change-Id: Id673b9786389f9d2a87f638ce1a25161f5f31657
      922b7416
  35. Aug 11, 2016
  36. 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
Loading