Skip to content
Snippets Groups Projects
  1. Feb 13, 2017
    • Sean Bright's avatar
      cli: Fix various CLI documentation and completion issues · 3f943737
      Sean Bright authored
      * app_minivm: Use built-in completion facilities to complete optional
      arguments.
      
      * app_voicemail: Use built-in completion facilities to complete
      optional arguments.
      
      * app_confbridge: Add missing colons after 'Usage' text.
      
      * chan_alsa: Use built-in completion facilities to complete optional
      arguments.
      
      * chan_sip: Use built-in completion facilities to complete optional
      arguments. Add completions for 'load' for 'sip show user', 'sip show
      peer', and 'sip qualify peer.'
      
      * chan_skinny: Correct and extend completions for 'skinny reset' and
      'skinny show line.'
      
      * func_odbc: Correct completions for 'odbc read' and 'odbc write'
      
      * main/astmm: Use built-in completion facilities to complete arguments
      for 'memory' commands.
      
      * main/bridge: Correct completions for 'bridge kick.'
      
      * main/ccss: Use built-in completion facilities to complete arguments
      for 'cc cancel' command.
      
      * main/cli: Add 'all' completion for 'channel request hangup.' Correct
      completions for 'core set debug channel.' Correct completions for 'core
      show calls.'
      
      * main/pbx_app: Remove redundant completions for 'core show
      applications.'
      
      * main/pbx_hangup_handler: Remove unused completions for 'core show
      hanguphandlers all.'
      
      * res_sorcery_memory_cache: Add completion for 'reload' argument of
      'sorcery memory cache stale' and properly implement.
      
      Change-Id: Iee58c7392f6fec34ad9d596109117af87697bbca
      3f943737
    • zuul's avatar
      5780492c
    • zuul's avatar
    • Joshua Colp's avatar
    • Norbert Varga's avatar
      chan_pjsip: Multidomain endpoint finding on call · 75f8167e
      Norbert Varga authored
      When PJSIP tries to call an endpoint with a domain (e.g. 1000@test.com),
      the user part is stripped down as it would be a trunk with a specified user,
      and only the host part is called as a PJSIP endpoint and can't be found.
      This is not correct in the case of a multidomain SIP account, so the stripping
      after the @ sign is done only if the whole endpoint (in multidomain case
      1000@test.com) can't be found.
      
      ASTERISK-26248
      
      Change-Id: I3a2dd6f57f3bd042df46b961eccd81d31ab202e6
      75f8167e
  2. Feb 10, 2017
    • Sean Bright's avatar
      manager: Restore Originate failure behavior from Asterisk 11 · 09107730
      Sean Bright authored
      In Asterisk 11, if the 'Originate' AMI command failed to connect the provided
      Channel while in extension mode, a 'failed' extension would be looked up and
      run. This was, I believe, unintentionally removed in 51b6c496. This patch
      restores that behavior.
      
      This also adds an enum for the various 'synchronous' modes in an attempt to
      make them meaningful.
      
      ASTERISK-26115 #close
      Reported by: Nasir Iqbal
      
      Change-Id: I8afbd06725e99610e02adb529137d4800c05345d
      09107730
    • Joshua Colp's avatar
      stream: Add media stream definition and API with unit tests. · bab4885f
      Joshua Colp authored
      This change adds the media stream definition and API for
      accessing and using it. Unit tests have also been written
      which exercise aspects of the API.
      
      ASTERISK-26773
      
      Change-Id: I3dbe54065b55aaa51f467e1a3bafd67fb48cac87
      bab4885f
    • George Joseph's avatar
      configs/samples: Fix placement of 'identify' entry in sorcery.conf · 648d181d
      George Joseph authored
      The entry for 'identify' was incorrectly placed in the
      res_pjsip section when it should be in
      res_pjsip_endpoint_identifier_ip.
      
      ASTERISK-26785 #close
      
      Change-Id: Ia1372b12a952bfe2df6b1b1e0e725ca306a5d41a
      648d181d
  3. Feb 08, 2017
  4. Feb 07, 2017
    • Joshua Colp's avatar
      srv: Fix crash when ast_srv_lookup is used and 0 records are returned. · 5422ec14
      Joshua Colp authored
      When performing an SRV lookup using the ast_srv_lookup function it
      did not properly handle the situation where 0 records are returned.
      If this happened it would wrongly assume that at least one record
      was present.
      
      This change fixes the code so it will exit early if an error occurs
      or if 0 records are returned.
      
      ASTERISK-26772
      patches:
        srv_lookup.patch submitted by nappsoft (license 6822)
      
      Change-Id: I09b19081c74e0ad11c12bf54a257243b1bcb2351
      5422ec14
    • Joshua Colp's avatar
      res_stasis_device_state: Protect the adding/removing of subscriptions. · b79cc620
      Joshua Colp authored
      The adding and removing of device state subscriptions did not protect
      fully against simultaneous manipulation. In particular the subscribe
      case allowed a small window where two subscriptions could be added for
      the same device state instead of just one.
      
      This change makes the code hold the subscriptions lock for the entirety
      of each operation to ensure that two are not occurring at the same time.
      
      ASTERISK-26770
      
      Change-Id: I3e7f8eb9d09de440c9024d2dd52029f6f20e725b
      b79cc620
  5. Feb 06, 2017
  6. Feb 03, 2017
  7. Feb 02, 2017
    • zuul's avatar
    • Richard Mudgett's avatar
      channel.c: Fix unbalanced read queue deadlocking local channels. · 50029f58
      Richard Mudgett authored
      Using the timerfd timing module can cause channel freezing, lingering, or
      deadlock issues.  The problem is because this is the only timing module
      that uses an associated alert-pipe.  When the alert-pipe becomes
      unbalanced with respect to the number of frames in the read queue bad
      things can happen.  If the alert-pipe has fewer alerts queued than the
      read queue then nothing might wake up the thread to handle received frames
      from the channel driver.  For local channels this is the only way to wake
      up the thread to handle received frames.  Being unbalanced in the other
      direction is less of an issue as it will cause unnecessary reads into the
      channel driver.
      
      ASTERISK-26716 is an example of this deadlock which was indirectly fixed
      by the change that found the need for this patch.
      
      * In channel.c:__ast_queue_frame(): Adding frame lists to the read queue
      did not add the same number of alerts to the alert-pipe.  Correspondingly,
      when there is an exceptionally long queue event, any removed frames did
      not also remove the corresponding number of alerts from the alert-pipe.
      
      ASTERISK-26632 #close
      
      Change-Id: Ia98137c5bf6e9d6d202ce0eb36441851875863f6
      50029f58
    • Richard Mudgett's avatar
      res_agi: Prevent an AGI from eating frames it should not. (Re-do) · 97c30847
      Richard Mudgett authored
      A dialplan intercept routine is equivalent to an interrupt routine.  As
      such, the routine must be done quickly and you do not have access to the
      media stream.  These restrictions are necessary because the media stream
      is the responsibility of some other code and interfering with or delaying
      that processing is bad.  A possible future dialplan processing
      architecture change may allow the interception routine to run in a
      different thread from the main thread handling the media and remove the
      execution time restriction.
      
      * Made res_agi.c:run_agi() running an AGI in an interception routine run
      in DeadAGI mode.  No touchy channel frames.
      
      ASTERISK-25951
      
      ASTERISK-26343
      
      ASTERISK-26716
      
      Change-Id: I638f147ca7a7f2590d7194a8ef4090eb191e4e43
      97c30847
    • Richard Mudgett's avatar
      Frame deferral: Revert API refactoring. · 72e3fc58
      Richard Mudgett authored
      There are several issues with deferring frames that are caused by the
      refactoring.
      
      1) The code deferring frames mishandles adding a deferred frame to the
      deferred queue.  As a result the deferred queue can only be one frame
      long.
      
      2) Deferrable frames can come directly from the channel driver as well as
      the read queue.  These frames need to be added to the deferred queue.
      
      3) Whoever is deferring frames is really only doing the __ast_read() to
      collect deferred frames and doesn't care about the returned frames except
      to detect a hangup event.  When frame deferral is completed we must make
      the normal frame processing see the hangup as a frame anyway.  As such,
      there is no need to have varying hangup frame deferral methods.  We also
      need to be aware of the AST_SOFTHANGUP_ASYNCGOTO hangup that isn't real.
      That fake hangup is to cause the PBX thread to break out of loops to go
      execute a new dialplan location.
      
      4) To properly deal with deferrable frames from the channel driver as
      pointed out by (2) above, means that it is possible to process a dialplan
      interception routine while frames are deferred because of the
      AST_CONTROL_READ_ACTION control frame.  Deferring frames is not
      implemented as a re-entrant operation so you could have the unsupported
      case of two sections of code thinking they have control of the media
      stream.
      
      A worse problem is because of the bad implementation of the AMI PlayDTMF
      action.  It can cause two threads to be deferring frames on the same
      channel at the same time.  (ASTERISK_25940)
      
      * Rather than fix all these problems simply revert the API refactoring as
      there is going to be only autoservice and safe_sleep deferring frames
      anyway.
      
      ASTERISK-26343
      
      ASTERISK-26716 #close
      
      Change-Id: I45069c779aa3a35b6c863f65245a6df2c7865496
      72e3fc58
    • zuul's avatar
      3c558b4b
    • Sean Bright's avatar
      res_odbc: Remove deprecated settings from sample configuration file · 4c51ad15
      Sean Bright authored
      ASTERISK-26704 #close
      Reported by: Anthony Messina
      
      Change-Id: I976a1f94cf79c5f31e76174c61f5c6a65fd6354f
      4c51ad15
    • zuul's avatar
  8. Feb 01, 2017
    • Richard Mudgett's avatar
      res_resolver_unbound.c: Fix frequent ref leak caught by excessive ref trap. · 7d9b50a7
      Richard Mudgett authored
      ASTERISK-26765
      
      Change-Id: I27eb97df7f8d7e624b0b9a61c0fcee4718c86d8d
      7d9b50a7
    • Sean Bright's avatar
      audiohooks: Muting a hook can mute underlying frames · 2849b726
      Sean Bright authored
      If an audiohook is placed on a channel that does not require transcoding,
      muting that hook will cause the underlying frames to be muted as well.
      
      The original patch is from David Woolley but I have modified slightly.
      
      ASTERISK-21094 #close
      Reported by: David Woolley
      Patches:
            ASTERISK-21094-Patch-1.8-1.txt (license #5737) patch uploaded
            by David Woolley
      
      Change-Id: Ib2b68c6283e227cbeb5fa478b2d0f625dae338ed
      2849b726
    • Joshua Colp's avatar
    • Mark Michelson's avatar
      Update qualifies when AOR configuration changes. · bbed75c3
      Mark Michelson authored
      Prior to this change, qualifies would only update in the following
      cases:
      * A reload of res_pjsip.so was issued.
      * A dynamic contact was re-registered after its AOR's qualify_frequency
        had been changed
      This does not work well if you are using realtime for your AORs. You can
      update your database to have a new qualify_frequency, but the permanent
      contacts on that AOR will not have their qualifies updated. And the
      dynamic contacts on that AOR will not have their qualifies updated until
      the next registration, which could be a long time.
      
      This change seeks to fix this problem by making it so that whenever AOR
      configuration is applied, the contacts pertaining to that AOR have their
      qualifies updated.
      
      Additions from this patch:
      * AOR sorcery objects now have an apply handler that calls into a newly
        added function in the OPTIONS code. This causes all contacts
        associated with that AOR to re-schedule qualifies.
      * When it is time to qualify a contact, the OPTIONS code checks to see
        if the AOR can still be retrieved. If not, then qualification is
        canceled on the contact.
      
      Alterations from this patch:
      * The registrar code no longer updates contact's qualify_frequence and
        qualify_timeout. There is no point to this since those values already
        get updated when the AOR changes.
      * Reloading res_pjsip.so no longer calls the OPTIONS initialization
        function. Reloading res_pjsip.so results in re-loading AORs, which
        results in re-scheduling qualifies.
      
      Change-Id: I2e7c3316da28f389c45954f24c4e9389abac1121
      bbed75c3
    • Joshua Colp's avatar
      res_pjsip: Handle invocation of callback on outgoing request when error occurs. · aeea634b
      Joshua Colp authored
      There are some error cases in PJSIP when sending a request that will
      result in the callback for the request being invoked.  The code did not
      handle this case and assumed on every error case that the callback was not
      invoked.
      
      The code has been changed to check whether the callback has been invoked
      and if so to absorb the error and treat it as a success.
      
      ASTERISK-26679
      ASTERISK-26699
      
      Change-Id: I563982ba204da5aa1428989a11c06dd9087fea91
      aeea634b
    • Sean Bright's avatar
      res_rtp_asterisk: Swap byte-order when sending signed linear · 7a16524a
      Sean Bright authored
      Before Asterisk 13, signed linear was converted into network byte order by a
      smoother before being sent over the network. We restore this behavior by
      forcing the creation of a smoother when slinear is in use and setting the
      appropriate flags so that the byte order conversion is always done.
      
      ASTERISK-24858 #close
      Reported-by: Frankie Chin
      
      Change-Id: I868449617d1a7819578f218c8c6b2111ad84f5a9
      7a16524a
  9. Jan 31, 2017
  10. Jan 30, 2017
  11. Jan 29, 2017
  12. Jan 28, 2017
  13. Jan 27, 2017
    • George Joseph's avatar
      debug_utilities: Add ast_logescalator · ef4deb8e
      George Joseph authored
      The escalator works by creating a set of startup commands in cli.conf
      that set up logger channels and issue the debug commands for the
      subsystems specified.  If asterisk is running when it is executed,
      the same commands will be issued to the running instance.  The original
      cli.conf is saved before any changes are made and can be restored by
      executing '$prog --reset'.
      
      The log output will be stored in...
      $astlogdir/message.$uniqueid
      $astlogdir/debug.$uniqueid
      $astlogdir/dtmf.$uniqueid
      $astlogdir/fax.$uniqueid
      $astlogdir/security.$uniqueid
      $astlogdir/pjsip_history.$uniqueid
      $astlogdir/sip_history.$uniqueid
      
      Some minor tweaks were made to chan_sip, and res_pjsip_history
      so their history output could be send to a log channel as packets
      are captured.
      
      A minor tweak was also made to manager so events are output to verbose
      when "manager set debug on" is issued.
      
      Change-Id: I799f8e5013b86dc5282961b27383d134bf09e543
      ef4deb8e
    • zuul's avatar
      Merge "tests: use datadir for sound files" · 3eabae43
      zuul authored
      3eabae43
    • Torrey Searle's avatar
      libastssl/pj: libastssl/pj should have an so_version · 178b90af
      Torrey Searle authored
      Issue introduced in b59956a8.  In the non-darwin case libastssl/pj
      should be versioned.  This causes the symbol file for this lib
      to not be generated.
      
      Change-Id: Ib07ae8c40252813c488e2c1ac6204fd42816dd4c
      (cherry picked from commit 54b02791)
      178b90af
Loading