Skip to content
Snippets Groups Projects
  1. 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
  2. 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
  3. Oct 29, 2017
  4. Oct 25, 2017
    • Joshua Colp's avatar
      res_pjsip: Add 'ip' as a valid option to 'identify_by' on endpoint. · 9e1fbab3
      Joshua Colp authored
      When the identify_by option on an endpoint is set to ip it will
      only be identified using the res_pjsip_endpoint_identifier_ip module.
      This ensures that it is not mistakenly matched using the username of
      the From header. To ensure behavior has not changed the default has
      been changed to "username,ip" for the identify_by option.
      
      ASTERISK-27206
      
      Change-Id: I2170b86a7f7e221b4f00bf14aa1ef1ac5b050bbd
      9e1fbab3
  5. Oct 18, 2017
    • Corey Farrell's avatar
      app_macro deprecation. · 955a891a
      Corey Farrell authored
      * Mark the module deprecated.
      * Disable the module by default.
      * Produce a warning the first time a macro is used.
      * Note deprecation related options in app_dial and app_queue.
      
      ASTERISK-27350
      
      Change-Id: I560ea043bacdbc5534a17d97854273d52c2f1bdc
      955a891a
  6. Oct 12, 2017
  7. Oct 09, 2017
    • Richard Mudgett's avatar
      res_pjsip_registrar.c: Update remove_existing AOR contact handling. · fb19799b
      Richard Mudgett authored
      When "rewrite_contact" is enabled, the "max_contacts" count option can
      block re-registrations because the source port from the endpoint can be
      random.  When the re-registration is blocked, the endpoint may give up
      re-registering and require manual intervention.
      
      * The "remove_existing" option now allows a registration to succeed by
      displacing any existing contacts that now exceed the "max_contacts" count.
      Any removed contacts are the next to expire.  The behaviour change is
      beneficial when "rewrite_contact" is enabled and "max_contacts" is greater
      than one.  The removed contact is likely the old contact created by
      "rewrite_contact" that the device is refreshing.
      
      ASTERISK-27192
      
      Change-Id: I64c107a10b70db1697d17136051ae6bf22b5314b
      fb19799b
  8. Sep 13, 2017
    • George Joseph's avatar
      res_pjsip: Add handling for incoming unsolicited MWI NOTIFY · 446d48fd
      George Joseph authored
      A new endpoint parameter "incoming_mwi_mailbox" allows Asterisk to
      receive unsolicited MWI NOTIFY requests and make them available to
      other modules via the stasis message bus.
      
      res_pjsip_pubsub has a new handler "pubsub_on_rx_mwi_notify_request"
      that parses a simple-message-summary body and, if
      endpoint->incoming_mwi_account is set, calls ast_publish_mwi_state
      with the voice-message counts from the message.
      
      Change-Id: I08bae3d16e77af48fcccc2c936acce8fc0ef0f3c
      446d48fd
  9. Aug 15, 2017
  10. Aug 08, 2017
    • George Joseph's avatar
      Make --with-pjproject-bundled the default for Asterisk 15 · 305bd0d9
      George Joseph authored
      '--with-pjproject-bundled' is now the default when running
      ./configure. It can be disabled with '--without-pjproject-bundled'.
      
      To make building without an internet connection easier, a new
      ./configure option '--with-download-cache' was added that sets
      the cache for externals (like pjproject, the codecs and the DPMA),
      AND the sounds files.  It can also be specified as an environment
      variable named "AST_DOWNLOAD_CACHE".  The existing
      '--with-sounds-cache' option / SOUNDS_CACHE_DIR env variable and
      '--with-externals-cache' option / EXTERNALS_CACHE_DIR env variable
      remain and if specified, will override '--with-downloads-cache'.
      
      ASTERISK-27189
      
      Change-Id: Ifa9783fddf44aafadb060c9feba713dfa81d38ce
      305bd0d9
  11. Aug 07, 2017
    • kkm's avatar
      chan_sip: Access incoming REFER headers in dialplan · 4b58609c
      kkm authored
      This adds a way to access information passed along with SIP headers in
      a REFER message that initiates a transfer. Headers matching a dialplan
      variable GET_TRANSFERRER_DATA in the transferrer channel are added to
      a HASH object TRANSFER_DATA to be accessed with functions HASHKEY and HASH.
      
      The variable GET_TRANSFERRER_DATA is interpreted to be a prefix for
      headers that should be put into the hash. If not set, no headers are
      included. If set to a string (perhaps 'X-' in a typical case), all headers
      starting this string are added. Empty string matches all headers.
      
      If there are multiple of the same header, only the latest occurrence in
      the REFER message is available in the hash.
      
      Obviously, the variable GET_TRANSFERRER_DATA must be inherited by the
      referrer channel, and should be set with the '_' or '__' prefix.
      
      I avoided a specific reference to SIP or REFER, as in my mind the mechanism
      can be generalized to other channel techs.
      
      ASTERISK-27162
      
      Change-Id: I73d7a1e95981693bc59aa0d5093c074b555f708e
      4b58609c
  12. Aug 03, 2017
    • kkm's avatar
      chan_sip: Add dialplan function SIP_HEADERS · 4c0798e9
      kkm authored
      Syntax: SIP_HEADERS([prefix])
      
      If the argument is specified, only the headers matching the given prefix
      are returned.
      
      The function returns a comma-separated list of SIP header names from an
      incoming INVITE message. Multiple headers with the same name are included
      in the list only once. The returned list can be iterated over using the
      functions POP() and SIP_HEADER().
      
      For example, '${SIP_HEADERS(Co)}' might return the string
      'Contact,Content-Length,Content-Type'.
      
      Practical use is rather '${SIP_HEADERS(X-)}' to enumerate optional
      extended headers sent by a peer.
      
      ASTERISK-27163
      
      Change-Id: I2076d3893d03a2f82429f393b5b46db6cf68a267
      4c0798e9
  13. Aug 01, 2017
    • Joshua Colp's avatar
      res_pjsip: Add support for dnsmgr to external_media_address. · 2a4283f3
      Joshua Colp authored
      The "external_media_address" option on transports is now
      resolved using dnsmgr. This allows it to be automatically
      refreshed regularly if refreshes are enabled in dnsmgr.
      If the system is using a dynamic IP address a dynamic DNS
      hostname can be provided to keep the IP address up to
      date.
      
      Change-Id: Ia54771720dff0105bde55d5bbb81a3ba437e05b2
      2a4283f3
    • Sean Bright's avatar
      app_queue: Add announce-position-only-up option · 3f984882
      Sean Bright authored
      Setting this option will cause the Queue application to only announce
      the caller's position if it has improved since the last time that we
      announced it.
      
      Change-Id: I173a124121422209485b043e2bf784f54242fce6
      3f984882
    • Torrey Searle's avatar
      chan_pjsip: add a new function PJSIP_DTMF_MODE · 65c56089
      Torrey Searle authored
      This function is a replica of SIPDtmfMode, allowing the DTMF mode of a
      PJSIP call to be modified on a per-call basis
      
      ASTERISK-27085 #close
      
      Change-Id: I20eef5da3e5d1d3e58b304416bc79683f87e7612
      65c56089
  14. Jul 11, 2017
    • George Joseph's avatar
      res_musiconhold: Add kill_escalation_delay, kill_method to class · b7a87577
      George Joseph authored
      By default, when res_musiconhold reloads or unloads, it sends a HUP
      signal to custom applications (and all descendants), waits 100ms,
      then sends a TERM signal, waits 100ms, then finally sends a KILL
      signal.  An application which is interacting with an external
      device and/or spawns children of its own may not be able to exit
      cleanly in the default times, expecially if sent a KILL signal, or
      if it's children are getting signals directly from
      res_musiconhoild.
      
      * To allow extra time, the 'kill_escalation_delay'
        class option can be used to set the number of milliseconds
        res_musiconhold waits before escalating kill signals, with the
        default being the current 100ms.
      
      * To control to whom the signals are sent, the "kill_method" class
        option can be set to "process_group" (the default, existing
        behavior), which sends signals to the application and its
        descendants directly, or "process" which sends signals only to the
        application itself.
      
      Change-Id: Iff70a1a9405685a9021a68416830c0db5158603b
      b7a87577
  15. Jun 30, 2017
    • George Joseph's avatar
      pjproject_bundled: Allow passing configure options to bundled · f573e599
      George Joseph authored
      There wasn't any good way to pass options like --host or --build
      down to the pjproject configure which makes cross-compiling difficult.
      
      * Added a new PJPROJECT_CONFIGURE_OPTS environment variable which
        can be used to pass arbitrary options to pjproject configure.
      * Automatically set the pjproject configure --host and --build
        options to match those supplied for the asterisk configure.
      
      ASTERISK-27097 #close
      Reported-by: Kinsey Moore
      
      Change-Id: I5fa776e110262851173002a26ffe1172e4c35b2e
      f573e599
  16. Jun 29, 2017
    • Torrey Searle's avatar
      res_pjsip: Add DTMF INFO Failback mode · fb7247c5
      Torrey Searle authored
      The existing auto dtmf mode reverts to inband if 4733 fails to be
      negotiated.  This patch adds a new mode auto_info which will
      switch to INFO instead of inband if 4733 is not available.
      
      ASTERISK-27066 #close
      
      Change-Id: Id185b11e84afd9191a2f269e8443019047765e91
      fb7247c5
  17. Jun 22, 2017
    • Alexei Gradinari's avatar
      app_voicemail: IMAP connection control · 0cef7b9d
      Alexei Gradinari authored
      A new global option "imap_poll_logout" was added to specify whether need to
      disconnect from the IMAP server after polling of mailboxes.
      
      ASTERISK-27068 #close
      
      Closing IMAP connection after loading mailbox from voicemail.conf
      
      ASTERISK-24052 #close
      
      Change-Id: Ib7558ba04516240a32b65f42e9be64372a0ae12a
      0cef7b9d
  18. Jun 16, 2017
    • Alexei Gradinari's avatar
      res_pjsip: New endpoint option "notify_early_inuse_ringing" · 7a46309d
      Alexei Gradinari authored
      This option was added to control whether to notify dialog-info state
      'early' or 'confirmed' on Ringing when already INUSE.
      The value "yes" is useful for some SIP phones (Cisco SPA)
      to be able to indicate and pick up ringing devices.
      
      ASTERISK-26919 #close
      
      Change-Id: Ie050bc30023543c7dfb4365c5be3ce58c738c711
      7a46309d
  19. Jun 07, 2017
    • Alexei Gradinari's avatar
      CHANGES: correct version for a new option 'refer_blind_progress' · 19da99df
      Alexei Gradinari authored
      Change-Id: If4817d26a8974610827624fb8a4e56d681d6bf97
      19da99df
    • Joshua Colp's avatar
      pjsip: Extend 'asymmetric_rtp_codec' option to include us changing. · d3e951ed
      Joshua Colp authored
      PJSIP support in Asterisk differs from chan_sip in that it
      allows media to be sent as-is without transcoding provided
      the codecs were negotiated in the SDP. This is allowed
      according to the RFC. Support for this differs quite a lot
      though and some endpoints do not handle it well.
      
      This change extends the 'asymmetric_rtp_codec' option to
      also cover this case. When set to no (the default) the code
      behaves as chan_sip does - the best codec is selected and
      we will only ever send that, unless we change what we are
      sending if the remote side changes. When set to yes we
      will send media as-is without transcoding if the codec
      has been negotiated in the SDP.
      
      ASTERISK-26996
      
      Change-Id: Ib1647f6902a0843e8c435946f831c2159e8d1d51
      d3e951ed
  20. Jun 06, 2017
    • Joshua Colp's avatar
      res_pjsip: Add support for returning only reachable contacts and use it. · 861984ea
      Joshua Colp authored
      This introduces the ability for PJSIP code to specify filtering flags
      when retrieving PJSIP contacts. The first flag for use causes the
      query code to only retrieve contacts that are not unreachable. This
      change has been leveraged by both the Dial() process and the
      PJSIP_DIAL_CONTACTS dialplan function so they will now only attempt
      calls to contacts which are not unreachable.
      
      ASTERISK-26281
      
      Change-Id: I8233b4faa21ba3db114f5a42e946e4b191446f6c
      861984ea
  21. May 23, 2017
    • Sean Bright's avatar
      res_agi: Allow configuration of audio format of EAGI pipe · d847fe65
      Sean Bright authored
      This change allows the format of the EAGI audio pipe to be changed by
      setting the dialplan variable 'EAGI_AUDIO_FORMAT' to the name of one of
      the loaded formats.
      
      ASTERISK-26124 #close
      
      Change-Id: I7a10fad401ad2a21c68c2e7246fa357d5cee5bbd
      d847fe65
  22. May 11, 2017
    • Alexei Gradinari's avatar
      res_pjsip: New endpoint option "refer_blind_progress" · 808f2998
      Alexei Gradinari authored
      This option was added to turn off notifying the progress details
      on Blind Transfer. If this option is not set then the chan_pjsip
      will send NOTIFY "200 OK" immediately after "202 Accepted".
      
      Some SIP phones like Mitel/Aastra or Snom keep the line busy until
      receive "200 OK".
      
      ASTERISK-26333 #close
      
      Change-Id: Id606fbff2e02e967c02138457badc399144720f2
      808f2998
  23. May 09, 2017
    • Joshua Colp's avatar
      res_hep_rtcp: Provide chan_sip Call-ID for RTCP messages. · 3c36c29c
      Joshua Colp authored
      This change adds the required logic to allow the SIP
      Call-ID to be placed into the HEP RTCP traffic if the
      chan_sip module is used. In cases where the option is
      enabled but the channel is not either SIP or PJSIP then
      the code will fallback to the channel name as done
      previously.
      
      Based on the change on Nir's branch at:
      team/nirs/hep-chan-sip-support
      
      ASTERISK-26427
      
      Change-Id: I09ffa5f6e2fdfd99ee999650ba4e0a7aad6dc40d
      3c36c29c
  24. May 08, 2017
    • George Joseph's avatar
      logger: Added logger_queue_limit to the configuration options. · 201346fb
      George Joseph authored
      All log messages go to a queue serviced by a single thread
      which does all the IO.  This setting controls how big that
      queue can get (and therefore how much memory is allocated)
      before new messages are discarded. The default is 1000.
      Should something go bezerk and log tons of messages in a tight
      loop, this will prevent memory escalation.
      
      When the limit is reached, a WARNING is logged to that effect
      and messages are discarded until the queue is empty again.  At
      that time another WARNING will be logged with the count of
      discarded messages.  There's no "low water mark" for this queue
      because the logger thread empties the entire queue and processes it
      in 1 batch before going back and waiting on the queue again.
      Implementing a low water mark would mean additional locking as
      the thread processes each message and it's not worth it.
      
      A "test" was added to test_logger.c but since the outcome is
      non-deterministic, it's really just a cli command, not a unit
      test.
      
      Change-Id: Ib4520c95e1ca5325dbf584c7989ce391649836d1
      201346fb
  25. Apr 11, 2017
    • Richard Mudgett's avatar
      res_rtp_asterisk.c: Add stun_blacklist option · 7312cbe8
      Richard Mudgett authored
      Added the stun_blacklist option to rtp.conf.  Some multihomed servers have
      IP interfaces that cannot reach the STUN server specified by stunaddr.
      Blacklist those interface subnets from trying to send a STUN packet to
      find the external IP address.  Attempting to send the STUN packet
      needlessly delays processing incoming and outgoing SIP INVITEs because we
      will wait for a response that can never come until we give up on the
      response.  Multiple subnets may be listed.
      
      ASTERISK-26890 #close
      
      Change-Id: I3ff4f729e787f00c3e6e670fe6435acce38be342
      7312cbe8
  26. Apr 05, 2017
    • Troy Bowman's avatar
      app_queue: Log reason for PAUSEALL/UNPAUSEALL · fac5115c
      Troy Bowman authored
      We needed the reason for our reporting when agents pause/unpause all of
      their queues at once.  This is a small, simple patch that adds a reason
      for PAUSEALL and UNPAUSEALL.  I have been using it in production for years.
      
      ASTERISK-26920 #close
      
      Change-Id: Ifb3f0d1a0abd5194253d9794023546e1395baf3d
      fac5115c
  27. 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
  28. 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
  29. Mar 17, 2017
    • Richard Mudgett's avatar
      CHANNEL(callid): Give dialplan access to the callid. · 8cb4f9ce
      Richard Mudgett authored
      * Added CHANNEL(callid) to retrieve the call identifier log tag associated
      with the channel.  Dialplan now has access to the call log search key
      associated with the channel so it can be saved in case there is a problem
      with the call.
      
      ASTERISK-26878
      
      Change-Id: I2c97ebd928b6f3c5bc80c5729e4d3c07f453049f
      8cb4f9ce
  30. 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
  31. Mar 15, 2017
    • Mark Michelson's avatar
      Add rtcp-mux support · 10fa49e3
      Mark Michelson authored
      This commit adds support for RFC 5761: Multiplexing RTP Data and Control
      Packets on a Single Port. Specifically, it enables the feature when
      using chan_pjsip.
      
      A new option, "rtcp_mux" has been added to endpoint configuration in
      pjsip.conf. If set, then Asterisk will attempt to use rtcp-mux with
      whatever it communicates with. Asterisk follows the rules set forth in
      RFC 5761 with regards to falling back to standard RTCP behavior if the
      far end does not indicate support for rtcp-mux.
      
      The lion's share of the changes in this commit are in
      res_rtp_asterisk.c. This is because it was pretty much hard wired to
      have an RTP and an RTCP transport. The strategy used here is that when
      rtcp-mux is enabled, the current RTCP transport and its trappings (such
      as DTLS SSL session) are freed, and the RTCP session instead just
      mooches off the RTP session. This leads to a lot of specialized if
      statements throughout.
      
      ASTERISK-26732 #close
      Reported by Dan Jenkins
      
      Change-Id: If46a93ba1282418d2803e3fd7869374da8b77ab5
      10fa49e3
    • Matt Jordan's avatar
      res_pjsip_endpoint_identifier_ip: Add an option to match requests by header · 1475604e
      Matt Jordan authored
      This patch adds a new features to the endpoint identifier module,
      'match_header'. When set, inbound requests are matched by a provided SIP
      header: value pair. This option works in conjunction with the existing
      'match' configuration option, such that if any 'match*' attribute
      matches an inbound request, the request is associated with the specified
      endpoint.
      
      Since this module now identifies by more than just IP address,
      appropriate renaming of the module and/or variables can be done in a
      non-release branch.
      
      ASTERISK-26863 #close
      
      Change-Id: Icfc14835c962f92e35e67bbdb235cf0589de5453
      (cherry picked from commit 30f52d79)
      1475604e
  32. Mar 08, 2017
  33. Mar 01, 2017
    • Jørgen H's avatar
      res_pjsip WebRTC/websockets: Fix usage of WS vs WSS. · 7922f26c
      Jørgen H authored
      According to the RFC[1] WSS should only be used in the Via header
      for secure Websockets.
      
      * Use WSS in Via for secure transport.
      
      * Only register one transport with the WS name because it would be
      ambiguous.  Outgoing requests may try to find the transport by name and
      pjproject only finds the first one registered.  This may mess up unsecure
      websockets but the impact should be minimal.  Firefox and Chrome do not
      support anything other than secure websockets anymore.
      
      * Added and updated some debug messages concerning websockets.
      
      * security_events.c: Relax case restriction when determining security
      transport type.
      
      * The res_pjsip_nat module has been updated to not touch the transport
      on Websocket originating messages.
      
      [1] https://tools.ietf.org/html/rfc7118
      
      ASTERISK-26796 #close
      
      Change-Id: Ie3a0fb1a41101a4c1e49d875a8aa87b189e7ab12
      7922f26c
  34. Feb 27, 2017
    • George Joseph's avatar
      res_pjsip_outbound_registration: Subscribe to network change events · 22242fef
      George Joseph authored
      Outbound registration now subscribes to network change events
      published by res_stun_monitor and refreshes all registrations
      when an event happens.
      
      The 'pjsip send (un)register' CLI commands were updated to accept
      '*all' as an argument to operate on all registrations.
      
      The 'PJSIP(Un)Register' AMI commands were also updated to
      accept '*all'.
      
      ASTERISK-26808 #close
      
      Change-Id: Iad58a9e0aa5d340477fca200bf293187a6ca5a25
      22242fef
Loading