Skip to content
Snippets Groups Projects
  1. Jan 06, 2022
    • Sean Bright's avatar
      utils.c: Remove all usages of ast_gethostbyname() · 0bbef4d8
      Sean Bright authored
      gethostbyname() and gethostbyname_r() are deprecated in favor of
      getaddrinfo() which we use in the ast_sockaddr family of functions.
      
      ASTERISK-29819 #close
      
      Change-Id: Ie277c0ef768d753b169c121ef570a71665692ab7
      0bbef4d8
  2. Dec 13, 2021
    • Naveen Albert's avatar
      chan_sip: Fix crash when accessing RURI before initiating outgoing call · 3108457d
      Naveen Albert authored
      Attempting to access ${CHANNEL(ruri)} in a pre-dial handler before
      initiating an outgoing call will cause Asterisk to crash. This is
      because a null field is accessed, resulting in an offset from null and
      subsequent memory access violation.
      
      Since RURI is not guaranteed to exist, we now check if the base
      pointer is non-null before calculating an offset.
      
      ASTERISK-29772
      
      Change-Id: Icd3b02f07256bbe6615854af5717074087b95a83
      3108457d
  3. Dec 02, 2021
  4. Nov 30, 2021
    • Naveen Albert's avatar
      documentation: Standardize examples · bcb7aee7
      Naveen Albert authored
      Most examples in the XML documentation use the
      example tag to demonstrate examples, which gets
      parsed specially in the Wiki to make it easier
      to follow for users.
      
      This fixes a few modules to use the example
      tag instead of vanilla para tags to bring them
      in line with the standard syntax.
      
      ASTERISK-29777 #close
      
      Change-Id: I9acb6cc5faf1d220e73c6dd28592371d768d279b
      bcb7aee7
  5. Nov 29, 2021
  6. Nov 19, 2021
  7. Nov 18, 2021
  8. Nov 16, 2021
    • Josh Soref's avatar
      channels: Spelling fixes · c1b21bee
      Josh Soref authored
      Correct typos of the following word families:
      
      appease
      permanently
      overriding
      residue
      silliness
      extension
      channels
      globally
      reference
      japanese
      group
      coordinate
      registry
      information
      inconvenience
      attempts
      cadence
      payloads
      presence
      provisioning
      mimics
      behavior
      width
      natively
      syslabel
      not owning
      unquelch
      mostly
      constants
      interesting
      active
      unequipped
      brodmann
      commanding
      backlogged
      without
      bitstream
      firmware
      maintain
      exclusive
      practically
      structs
      appearance
      range
      retransmission
      indication
      provisional
      associating
      always
      whether
      cyrillic
      distinctive
      components
      reinitialized
      initialized
      capability
      switches
      occurring
      happened
      outbound
      
      ASTERISK-29714
      
      Change-Id: Ife52ee89cd2170b684fa651ca72b1cb911a57339
      c1b21bee
  9. Nov 08, 2021
    • Naveen Albert's avatar
      sig_analog: Fix truncated buffer copy · 36c5f5e5
      Naveen Albert authored
      Fixes compiler warning caused by a truncated copy of the ANI2 into a
      buffer of size 10. This could prevent the null terminator from being
      copied if the copy value exceeds the size of the buffer. This increases
      the buffer size to 101 to ensure there is no way for truncation to occur.
      
      ASTERISK-29702 #close
      
      Change-Id: Ief9052212952840fa44de6463b8699fdb3e163d0
      36c5f5e5
    • Naveen Albert's avatar
      chan_iax2: Allow both secret and outkey at dial time · bea08a56
      Naveen Albert authored
      Historically, the dial syntax for IAX2 has held that
      an outkey (used only for RSA authenticated calls)
      and a secret (used only for plain text and MD5 authenticated
      calls, historically) were mutually exclusive, and thus
      the same position in the dial string was used for both
      values.
      
      Now that encryption is possible with RSA authentication,
      this poses a limitation, since encryption requires a
      secret and RSA authentication requires an outkey. Thus,
      the dial syntax is extended so that both a secret and
      an outkey can be specified.
      
      The new extended syntax is backwards compatible with the
      old syntax. However, a secret can now be specified after
      the outkey, or the outkey can be specified after the secret.
      This makes it possible to spawn an encrypted RSA authenticated
      call without a corresponding peer being predefined in iax.conf.
      
      ASTERISK-29707 #close
      
      Change-Id: I1f8149313ed760169d604afbb07720a8b07dd00e
      bea08a56
  10. Oct 21, 2021
    • Mike Bradeen's avatar
      various: Fix GCC 11 compilation issues. · 0b2646ae
      Mike Bradeen authored
      test_voicemail_api: Use empty char* for empty_msg_ids.
      chan_skinny: Fix size of calledParty to be maximum extension.
      menuselect: Change Makefile to stop deprecated warnings. Added comments
      test_linkedlist: 'bogus' variable was manually allocated from a macro
      and the test fails if this happens but the compiler couldn't 'see' this
      and returns a warning. memset to all 0's after allocation.
      chan_ooh323: Fixed various indentation issues that triggered misleading
       indentation warnings.
      
      ASTERISK-29682
      Reported by: George Joseph
      
      Change-Id: If4fe42222c8444dc16828a42731ee53b4ce5cbbe
      0b2646ae
  11. Oct 07, 2021
    • Naveen Albert's avatar
      chan_iax2: Add encryption for RSA authentication · 437b2bfb
      Naveen Albert authored
      Adds support for encryption to RSA-authenticated
      calls. Also prevents crashes if an RSA IAX2 call
      is initiated to a switch requiring encryption
      but no secret is provided.
      
      ASTERISK-20219
      
      Change-Id: I18f1f9d7c59b4f9cffa00f3b94a4c875846efd40
      437b2bfb
  12. Sep 15, 2021
    • Naveen Albert's avatar
      res_pjsip_caller_id: Add ANI2/OLI parsing · 1a23c9c0
      Naveen Albert authored
      Adds parsing of ANI II digits (Originating
      Line Information) to PJSIP, on par with
      what currently exists in chan_sip.
      
      ASTERISK-29472
      
      Change-Id: Ifc938a7a7d45ce33999ebf3656a542226f6d3847
      1a23c9c0
  13. Sep 02, 2021
    • Naveen Albert's avatar
      chan_iax2: Add ANI2/OLI information element · 5a685249
      Naveen Albert authored
      Adds an information element for ANI2 so that
      Originating Line Information can be transmitted
      over IAX2 channels.
      
      ASTERISK-29605 #close
      
      Change-Id: Iaeacdf6ccde18eaff7f776a0f49fee87dcb549d2
      5a685249
  14. Aug 20, 2021
    • Sarah Autumn's avatar
      sig_analog: Changes to improve electromechanical signalling compatibility · 241686f8
      Sarah Autumn authored
      This changeset is intended to address compatibility issues encountered
      when interfacing Asterisk to electromechanical telephone switches that
      implement ANI-B, ANI-C, or ANI-D.
      
      In particular the behaviours that this impacts include:
      
       - FGC-CAMA did not work at all when using MF signaling. Modified the
         switch case block to send calls to the correct part of the
         signaling-handling state machine.
      
       - For FGC-CAMA operation, the delay between called number ST and
         second wink for ANI spill has been made configurable; previously
         all calls were made to wait for one full second.
      
       - After the ANI spill, previous behavior was to require a 'ST' tone
         to advance the call.  This has been changed to allow 'STP' 'ST2P'
         or 'ST3P' as well, for compatibility with ANI-D.
      
       - Store ANI2 (ANI INFO) digits in the CALLERID(ANI2) channel variable.
      
       - For calls with an ANI failure, No. 1 Crossbar switches will send
         forward a single-digit failure code, with no calling number digits
         and no ST pulse to terminate the spill.  I've made the ANI timeout
         configurable so to reduce dead air time on calls with ANI fail.
      
       - ANI info digits configurable.  Modern digital switches will send 2
         digits, but ANI-B sends only a single info digit.  This caused the
         ANI reported by Asterisk to be misaligned.
      
       - Changed a confusing log message to be more informative.
      
      ASTERISK-29518
      
      Change-Id: Ib7e27d987aee4ed9bc3663c57ef413e21b404256
      241686f8
  15. Aug 16, 2021
    • Sean Bright's avatar
      mgcp: Remove dead debug code · 121860e3
      Sean Bright authored
      ASTERISK-20339 #close
      
      Change-Id: I36f364aaa1971241d8f3ea1a5909b463d185a2d5
      121860e3
    • Joshua C. Colp's avatar
      policy: Add deprecation and removal versions to modules. · 13fd0789
      Joshua C. Colp authored
      app_meetme is deprecated in 19, to be removed in 21.
      app_osplookup is deprecated in 19, to be removed in 21.
      chan_alsa is deprecated in 19, to be removed in 21.
      chan_mgcp is deprecated in 19, to be removed in 21.
      chan_skinny is deprecated in 19, to be removed in 21.
      res_pktccops is deprecated in 19, to be removed in 21.
      cdr_mysql was deprecated in 1.8, to be removed in 19.
      app_mysql was deprecated in 1.8, to be removed in 19.
      app_ices was deprecated in 16, to be removed in 19.
      app_macro was deprecated in 16, to be removed in 21.
      app_fax was deprecated in 16, to be removed in 19.
      app_url was deprecated in 16, to be removed in 19.
      app_image was deprecated in 16, to be removed in 19.
      app_nbscat was deprecated in 16, to be removed in 19.
      app_dahdiras was deprecated in 16, to be removed in 19.
      cdr_syslog was deprecated in 16, to be removed in 19.
      chan_oss was deprecated in 16, to be removed in 19.
      chan_phone was deprecated in 16, to be removed in 19.
      chan_sip was deprecated in 17, to be removed in 21.
      chan_nbs was deprecated in 16, to be removed in 19.
      chan_misdn was deprecated in 16, to be removed in 19.
      chan_vpb was deprecated in 16, to be removed in 19.
      res_config_sqlite was deprecated in 16, to be removed in 19.
      res_monitor was deprecated in 16, to be removed in 21.
      conf2ael was deprecated in 16, to be removed in 19.
      muted was deprecated in 16, to be removed in 19.
      
      ASTERISK-29548
      ASTERISK-29549
      ASTERISK-29550
      ASTERISK-29551
      ASTERISK-29552
      ASTERISK-29553
      ASTERISK-29554
      ASTERISK-29555
      ASTERISK-29557
      ASTERISK-29558
      ASTERISK-29559
      ASTERISK-29560
      ASTERISK-29561
      ASTERISK-29562
      ASTERISK-29563
      ASTERISK-29564
      ASTERISK-29565
      ASTERISK-29566
      ASTERISK-29567
      ASTERISK-29568
      ASTERISK-29569
      ASTERISK-29570
      ASTERISK-29571
      ASTERISK-29572
      ASTERISK-29573
      ASTERISK-29574
      
      Change-Id: Ic3bee31a10d42c4b3bbc913d893f7b2a28a27131
      13fd0789
  16. Jul 22, 2021
    • Kevin Harwell's avatar
      AST-2021-008 - chan_iax2: remote crash on unsupported media format · 2a141a58
      Kevin Harwell authored
      If chan_iax2 received a packet with an unsupported media format, for
      example vp9, then it would set the frame's format to NULL. This could
      then result in a crash later when an attempt was made to access the
      format.
      
      This patch makes it so chan_iax2 now ignores/drops frames received
      with unsupported media format types.
      
      ASTERISK-29392 #close
      
      Change-Id: Ifa869a90dafe33eed8fd9463574fe6f1c0ad3eb1
      2a141a58
  17. May 17, 2021
    • Naveen Albert's avatar
      chan_sip: Expand hook flash recognition. · 7b82587d
      Naveen Albert authored
      Some ATAs send hook flash events as application/hook-flash, rather than a DTMF
      event. Now, we also recognize hook-flash as a flash event.
      
      ASTERISK-29370
      
      Change-Id: I1c3b82a040dff3affcd94bad8ce33edc90c04725
      7b82587d
  18. May 13, 2021
  19. May 04, 2021
    • George Joseph's avatar
      Updates for the MessageSend Dialplan App · 40bdfff7
      George Joseph authored
      Enhancements:
      
       * The MessageSend dialplan application now takes an optional
         third argument that can set the message's "To" field on
         outgoing messages.  It's an alternative to using the
         MESSAGE(to) dialplan function.
      
         NOTE: No channel driver currently implements this field.  A
         follow-on commit for res_pjsip_messaging will implement it for
         the chan_pjsip channel driver.
      
       * To prevent confusion with the first argument, currently named
         "to", it's been renamed to "destination". Its function,
         creating the request URI, hasn't changed.
      
       * The documentation for MessageSend was updated to be
         more clear about the parameters and how they interact
         the MESSAGE() dialplan function.
      
       * With the rename of MessageSend's first parameter, and the fact
         that message.c references <info> elements in chan_sip.c,
         res_pjsip_messaging.c and res_xmpp, they each needed
         documentation updates to use MessageDestinationInfo instead of
         MessageToInfo.
      
       * appdocsxml.dtd was updated to include a missing element
         declaration for "dataType".  This was showing up as an error
         in Eclipse's dtd editor.
      
       * Despite the changes in this commit, there should be
         no impact to current users of MessageSend.
      
      Change-Id: I6fb5b569657a02866a66ea352fd53d30d8ac965a
      40bdfff7
  20. Mar 16, 2021
    • Joshua C. Colp's avatar
      xml: Embed module information into core XML documentation. · 60800b03
      Joshua C. Colp authored
      This change embeds the MODULEINFO block of modules
      into the core XML documentation. This provides a shared
      mechanism for use by both menuselect and Asterisk for
      information and a definitive source of truth.
      
      ASTERISK-29335
      
      Change-Id: Ifbfd5c700049cf320a3e45351ac65dd89bc99d90
      60800b03
  21. Mar 10, 2021
  22. Mar 02, 2021
  23. Feb 23, 2021
    • Alexander Traud's avatar
      chan_sip: Filter pass-through audio/video formats away, again. · 1adf9368
      Alexander Traud authored
      Instead of looking for pass-through formats in the list of transcodable
      formats (which is going to find nothing), go through the result which
      is going to be the jointcaps of the tech_pvt of the channel. Finally,
      only with that list, ast_format_cap_remove(.) is going to succeed.
      
      This restores the behaviour of Asterisk 1.8. However, it does not fix
      ASTERISK_29282 because that issue report is about chan_sip and PJSIP.
      Here, only chan_sip is fixed because PJSIP does not even call
      ast_rtp_instance_available_formats -> ast_translate_available_format.
      
      Change-Id: Icade2366ac2b82935b95a9981678c987da2e8c34
      1adf9368
  24. Feb 12, 2021
    • Alexander Traud's avatar
      chan_sip: Allow [peer] without audio (text+video). · 45e48e38
      Alexander Traud authored
      Two previous commits, 620d9f47 and 6d980de2, allow to set up a call
      without audio, again. That was introduced originally with commit f04d5fb8
      but changed and broke over time. The original commit missed one
      scenario: A [peer] section in sip.conf, which does not allow audio at
      all. In that case, chan_sip rejected the call, although even when the
      requester offered no audio. Now, chan_sip does not check whether there
      is no audio format but checks whether there is no format in general. In
      other words, if there is at least one format to offer, the call succeeds.
      
      However, to prevent calls with no-audio, chan_sip still rejects calls
      when both call parties (caller = requester of the call *and* callee =
      [peer] section in sip.conf) included audio. In such a case, it is
      expected that the call should have audio.
      
      ASTERISK-29280
      
      Change-Id: I0fb74faf51ef22a60c10b467df6a4d1c1943b73e
      45e48e38
  25. Feb 09, 2021
    • George Joseph's avatar
      chan_iax2.c: Require secret and auth method if encryption is enabled · 28f187d6
      George Joseph authored
      If there's no secret specified for an iax2 peer and there's no secret
      specified in the dial string, Asterisk will crash if the auth method
      requested by the peer is MD5 or plaintext.  You also couldn't specify
      a default auth method in the [general] section of iax.conf so if you
      don't have static peers defined and just use the dial string, Asterisk
      will still crash even if you have a secret specified in the dial string.
      
      * Added logic to iax2_call() and authenticate_reply() to print
        a warning and hanhup the call if encryption is requested and
        there's no secret or auth method.  This prevents the crash.
      
      * Added the ability to specify a default "auth" in the [general]
        section of iax.conf.
      
      ASTERISK-29624
      Reported by: N A
      
      Change-Id: I5928e16137581f7d383fcc7fa04ad96c919e6254
      28f187d6
  26. Feb 03, 2021
    • Alexander Traud's avatar
      chan_sip: Set up calls without audio (text+video), again. · 87ad1138
      Alexander Traud authored
      The previous commit 6d980de2 fixed this issue in the core of Asterisk.
      With that, each channel technology can be used without audio
      theoretically. Practically, the channel-technology driver chan_sip
      turned out to have an invalid check preventing that. chan_sip tested
      whether there is at least one audio format. However, chan_sip has to
      test whether there is at least one format. More cannot be tested while
      requesting chan_sip because only the [general] capabilities but not the
      [peer] caps are known yet. And the [peer] caps might not be a subset or
      show any intersection with the [general] caps. This change here fixes
      this.
      
      The original commit f04d5fb8, thirteen years ago, contained a software
      bug as it passed ANY audio capability to the channel-technology driver.
      Instead, it should have passed NO audio format. Therefore, this
      addressed issue here was not noticed in Asterisk 1.6.x and Asterisk 1.8.
      Then, Asterisk 10 changed that from ANY to NO, but nobody reported since
      then.
      
      ASTERISK-29265
      
      Change-Id: Ic16a3bf13cd1b5c4fc4041ed74961177d96b600f
      87ad1138
  27. Jan 27, 2021
    • Dan Cropp's avatar
      chan_pjsip, app_transfer: Add TRANSFERSTATUSPROTOCOL variable · 08881628
      Dan Cropp authored
      When a Transfer/REFER is executed, TRANSFERSTATUSPROTOCOL variable is
      0 when no protocl specific error
      SIP example of failure, 3xx-6xx for the SIP error code received
      
      This allows applications to perform actions based on the failure
      reason.
      
      ASTERISK-29252 #close
      Reported-by: Dan Cropp
      
      Change-Id: Ia6a94784b4925628af122409cdd733c9f29abfc4
      08881628
    • Alexander Traud's avatar
      chan_sip: SDP: Reject audio streams correctly. · 4c154f34
      Alexander Traud authored
      This completes the fix for ASTERISK_24543. Only when the call is an
      outgoing call, consult and append the configured format capabilities
      (p->caps). When all audio formats got rejected the negotiated format
      capabilities (p->jointcaps) contain no audio formats for incoming
      calls. This is required when there are other accepted media streams.
      
      ASTERISK-29258
      
      Change-Id: I8bab31c7f3f3700dce204b429ad238a524efebb9
      4c154f34
  28. Jan 18, 2021
    • Ben Ford's avatar
      chan_pjsip.c: Add parameters to frame in indicate. · 87a35f8e
      Ben Ford authored
      There are a couple of parameters (datalen and data) that do not get set
      in chan_pjsip_indicate which could cause an Invalid message to pop up
      for things such as fax. This patch adds them to the frame.
      
      Change-Id: Ia51be086a0708be905e73d1f433572c49c7e38f8
      87a35f8e
  29. Jan 13, 2021
    • Ivan Poddubnyi's avatar
      chan_pjsip: Assign SIPDOMAIN after creating a channel · c3fad2fd
      Ivan Poddubnyi authored
      session->channel doesn't exist until chan_pjsip creates it, so intead of
      setting a channel variable every new incoming call sets one and the same
      global variable.
      
      This patch moves the code to chan_pjsip so that SIPDOMAIN is set on
      a newly created channel, it also removes a misleading reference to
      channel->session used to fetch call pickup configuraion.
      
      ASTERISK-29240
      
      Change-Id: I90c9bbbed01f5d8863585631a29322ae4e046755
      c3fad2fd
    • Alexander Traud's avatar
      chan_sip: SDP: Sidestep stream parsing when its media is disabled. · ad606d4a
      Alexander Traud authored
      Previously, chan_sip parsed all known media streams in an SDP offer
      like video (and text) even when videosupport=no (and textsupport=no).
      This wasted processor power. Furthermore, chan_sip accepted SDP offers,
      including no audio but just video (or text) streams although
      videosupport=no (or textsupport=no). Finally, chan_sip denied the whole
      offer instead of individual streams when they had encryption (SDES-sRTP)
      unexpectedly enabled.
      
      ASTERISK-29238
      ASTERISK-29237
      ASTERISK-29222
      
      Change-Id: Ie49e4e2a11f0265f914b684738348ba8c0f89755
      ad606d4a
  30. Jan 11, 2021
    • Ivan Poddubnyi's avatar
      chan_pjsip: Stop queueing control frames twice on outgoing channels · cc496044
      Ivan Poddubnyi authored
      The fix for ASTERISK-27902 made chan_pjsip process SIP responses twice.
      This resulted in extra noise in logs (for example, "is making progress"
      and "is ringing" get logged twice by app_dial), as well as in noise in
      signalling: one incoming 183 Session Progress results in 2 outgoing 183-s.
      
      This change splits the response handler into 2 functions:
       - one for updating HANGUPCAUSE, which is still called twice,
       - another that does the rest, which is called only once as before.
      
      ASTERISK-28016
      Reported-by: Alex Hermann
      
      ASTERISK-28549
      Reported-by: Gant Liu
      
      ASTERISK-28185
      Reported-by: Julien
      
      Change-Id: I0a1874be5bb5ed12d572d17c7f80de6e5e542940
      cc496044
  31. Jan 06, 2021
    • Dan Cropp's avatar
      chan_pjsip: Incorporate channel reference count into transfer_refer(). · fb23f985
      Dan Cropp authored
      Add channel reference count for PJSIP REFER. The call could be terminated
      prior to the result of the transfer. In that scenario, when the SUBSCRIBE/NOTIFY
      occurred several minutes later, it would attempt to access a session which was
      no longer valid.  Terminate event subscription if pjsip_xfer_initiate() or
      pjsip_xfer_send_request() fails in transfer_refer().
      
      ASTERISK-29201 #close
      Reported-by: Dan Cropp
      
      Change-Id: I3fd92fd14b4e3844d3d7b0f60fe417a4df5f2435
      fb23f985
  32. Dec 31, 2020
  33. Dec 09, 2020
    • Joshua C. Colp's avatar
      pjsip: Match lifetime of INVITE session to our session. · 5b4e71fa
      Joshua C. Colp authored
      In some circumstances it was possible for an INVITE
      session to be destroyed while we were still using it.
      This occurred due to the reference on the INVITE session
      being released internally as a result of its state
      changing to DISCONNECTED.
      
      This change adds a reference to the INVITE session
      which is released when our own session is destroyed,
      ensuring that the INVITE session remains valid for
      the lifetime of our session.
      
      ASTERISK-29022
      
      Change-Id: I300c6d9005ff0e6efbe1132daefc7e47ca6228c9
      5b4e71fa
  34. Nov 19, 2020
    • Alexander Traud's avatar
      chan_sip: Remove unused sip_socket->port. · e884d935
      Alexander Traud authored
      12 years ago, with ASTERISK_12115 the last four get/uses of socket.port
      vanished. However, the struct member itself and all seven set/uses
      remained as dead code.
      
      ASTERISK-28798
      
      Change-Id: Ib90516a49eca3d724a70191278aaf2144fb58c59
      e884d935
  35. Nov 03, 2020
Loading