Skip to content
Snippets Groups Projects
  1. Feb 20, 2019
    • George Joseph's avatar
      taskprocessor: Enable subsystems and overload by subsystem · c2adeb9d
      George Joseph authored
      To prevent one subsystem's taskprocessors from causing others
      to stall, new capabilities have been added to taskprocessors.
      
      * Any taskprocessor name that has a '/' will have the part
        before the '/' saved as its "subsystem".
        Examples:
        "sorcery/acl-0000006a" and "sorcery/aor-00000019"
        will be grouped to subsystem "sorcery".
        "pjsip/distributor-00000025" and "pjsip/distributor-00000026"
        will bn grouped to subsystem "pjsip".
        Taskprocessors with no '/' have an empty subsystem.
      
      * When a taskprocessor enters high-water alert status and it
        has a non-empty subsystem, the subsystem alert count will
        be incremented.
      
      * When a taskprocessor leaves high-water alert status and it
        has a non-empty subsystem, the subsystem alert count will be
        decremented.
      
      * A new api ast_taskprocessor_get_subsystem_alert() has been
        added that returns the number of taskprocessors in alert for
        the subsystem.
      
      * A new CLI command "core show taskprocessor alerted subsystems"
        has been added.
      
      * A new unit test was addded.
      
      REMINDER: The taskprocessor code itself doesn't take any action
      based on high-water alerts or overloading.  It's up to taskprocessor
      users to check and take action themselves.  Currently only the pjsip
      distributor does this.
      
      * A new pjsip/global option "taskprocessor_overload_trigger"
        has been added that allows the user to select the trigger
        mechanism the distributor uses to pause accepting new requests.
        "none": Don't pause on any overload condition.
        "global": Pause on ANY taskprocessor overload (the default and
        current behavior)
        "pjsip_only": Pause only on pjsip taskprocessor overloads.
      
      * The core pjsip pool was renamed from "SIP" to "pjsip" so it can
        be properly grouped into the "pjsip" subsystem.
      
      * stasis taskprocessor names were changed to "stasis" as the
        subsystem.
      
      * Sorcery core taskprocessor names were changed to "sorcery" to
        match the object taskprocessors.
      
      Change-Id: I8c19068bb2fc26610a9f0b8624bdf577a04fcd56
      c2adeb9d
  2. Jan 11, 2019
    • Alexei Gradinari's avatar
      res_pjsip: add option to enable ContactStatus event when contact is updated · f0546d1d
      Alexei Gradinari authored
      The commit I2f97ebfa79969a36a97bb7b9afd5b6268cf1a07d removed sending out
      the ContactStatus AMI event when a contact is updated.
      Thist change broke things which rely on old behavior.
      
      This patch adds a new PJSIP global configuration option
      'send_contact_status_on_update_registration' to be able to preserve old
      ContactStatus behavior.
      By default new behavior, i.e. the ContactStatus event will not be sent when a
      device refreshes its registration.
      
      Change-Id: I706adf7584e7077eb6bde6d9799ca408bc82ce46
      f0546d1d
  3. Dec 24, 2018
    • George Joseph's avatar
      ast_coredumper: Refactor the pid determination process · 809e8362
      George Joseph authored
      In order to get a dump of the running process, we need to find the
      pid of the main asterisk process.  This can be tricky if there are
      also instances of "asterisk -r" running or if an alternate location
      for asterisk.conf was specified on the command line with the -C
      option that also specified an alternation location for the pid file.
      
      So now...
      
      1. We find the asterisk executable with "which" or the --asterisk-bin
         command line option.
      2. If there's only 1 process with an executable path that matches,
         we use that pid.  If not...
      3. We try "<asterisk-bin> -rx 'core show settings'" and parse the
         output to find the pidfile, then read that for the pid.  If that
         didn't work...
      4. We get a list of all the pids matching <asterisk-bin> and look
         in /proc/<pid>/cmdline for a -C argument and retry the "core show
         settings" using the same -C option.  We can't parse the output
         of "ps" to get the -C path because it may contain spaces.  The
         contents of /proc/<pid>/cmdline are delimited by NULLs.  For BSDs
         we may have to mount /proc first. :(
      
      ASTERISK-28221
      Reported by: Andrew Nagy
      
      Change-Id: I8aa1f3f912f949df2b5348908803c636bde1d57c
      809e8362
  4. Dec 03, 2018
  5. Nov 01, 2018
    • Pascal Cadotte Michaud's avatar
      contrib/sip_to_pjsip: add a --quiet option to avoid prints · ebff81e3
      Pascal Cadotte Michaud authored
      Using the --quiet or -q option in conjonction with /dev/stdout as the output
      file allow the output to be used as a valid configuration.
      
      Given a script that generates a valid sip.conf I can pipe the output of that
      script into `sip_to_pjsip.py -q /dev/stdin /dev/stdout`. This allow me to use
      that piped command in my pjsip.conf using the `exec` command.
      
      ASTERISK-28136
      
      Change-Id: I7b0e2e90e2549f3f8e01dc96701f111b5874c88d
      ebff81e3
  6. Oct 30, 2018
  7. Oct 26, 2018
    • Torrey Searle's avatar
      res_pjsip_session: add new flag use_callerid_contact · cac4ccef
      Torrey Searle authored
      Add a new global flag to res_pjsip to allow the callerid to be used
      as the username in the contact header.  This allows chan_pjsip to have
      the same behavour as chan_sip
      
      ASTERISK-28087 #close
      
      Change-Id: I9a720e058323f6862a91c62f8a8c1a4b5c087b95
      cac4ccef
  8. Oct 24, 2018
    • Nick French's avatar
      res_pjsip: Implement additional SIP RFCs for Google Voice trunk compatability · 37b2e686
      Nick French authored
      This change implements a few different generic things which were brought
      on by Google Voice SIP.
      
      1.  The concept of flow transports have been introduced.  These are
      configurable transports in pjsip.conf which can be used to reference a
      flow of signaling to a target.  These have runtime configuration that can
      be changed by the signaling itself (such as Service-Routes and
      P-Preferred-Identity).  When used these guarantee an individual connection
      (in the case of TCP or TLS) even if multiple flow transports exist to the
      same target.
      
      2.  Service-Routes (RFC 3608) support has been added to the outbound
      registration module which when received will be stored on the flow
      transport and used for requests referencing it.
      
      3.  P-Associated-URI / P-Preferred-Identity (RFC 3325) support has been
      added to the outbound registration module.  If a P-Associated-URI header
      is received it will be used on requests as the P-Preferred-Identity.
      
      4.  Configurable outbound extension support has been added to the outbound
      registration module.  When set the extension will be placed in the
      Supported header.
      
      5.  Header parameters can now be configured on an outbound registration
      which will be placed in the Contact header.
      
      6.  Google specific OAuth / Bearer token authentication
      (draft-ietf-sipcore-sip-authn-02) has been added to the outbound
      registration module.
      
      All functionality changes are controlled by pjsip.conf configuration
      options and do not affect non-configured pjsip endpoints otherwise.
      
      ASTERISK-27971 #close
      
      Change-Id: Id214c2d1c550a41fcf564b7df8f3da7be565bd58
      37b2e686
  9. Oct 15, 2018
    • Corey Farrell's avatar
      refdebug: Create refstats.py script. · 79677ead
      Corey Farrell authored
      This allows us to process AO2 statistics for total objects, memory
      usage, memory overhead and lock usage.
      
      * Install refstats.py and reflocks.py into the Asterisk scripts folder.
      * Enable support for reflocks.py without DEBUG_THREADS.
      
      Steal a bit from the ao2 magic to flag when an object lock is used.
      Remove 'lockobj' from reflocks.py since we can now record 'used' or
      'unused' for those objects.
      
      Add comments to explain thread safety of the 'struct __priv_data'
      bitfields.
      
      Change-Id: I84e9d679cc86d772cc97c888d9d856a17e0d3a4a
      79677ead
  10. Oct 03, 2018
  11. Oct 02, 2018
    • Corey Farrell's avatar
      astobj2: Record lock usage to refs log when DEBUG_THREADS is enabled. · 13df7452
      Corey Farrell authored
      When DEBUG_THREADS is enabled we can know if the astobj2 mutex / rwlock
      was ever used, so it can be recorded in the REF_DEBUG destructor entry.
      
      Create contrib/scripts/reflocks.py to process locking used by
      allocator.  This can be used to identify places where
      AO2_ALLOC_OPT_LOCK_NOLOCK should be used to reduce memory usage.
      
      Change-Id: I2e3cd23336a97df2692b545f548fd79b14b53bf4
      13df7452
  12. Sep 18, 2018
    • Florian Floimair's avatar
      alembic: fix suppress_q850_reason_headers column name · 6a1c313f
      Florian Floimair authored
      In the original commit introducing the feature the column in the alembic
      script was called 'suppress_q850_reason_header'.
      In the code however the option is called 'suppress_q850_reason_headers'
      (trailing 's'). This leads to errors when ARI push configuration is used.
      
      Change-Id: Ie84808adbca6fcc9136556e4f5d741adbef5d14f
      6a1c313f
  13. Sep 17, 2018
    • Corey Farrell's avatar
      install_prereq: Remove unpackaged version of jansson. · 246c39e4
      Corey Farrell authored
      This is removed in favor of ./configure --with-jansson-bundled.  The
      install-unpackaged command would only install jansson once, so once
      installed it would never update, where the bundled copy will be kept up
      to date.
      
      Change-Id: Ideab1f65419608d3795aa608e9da873823cc42d3
      246c39e4
  14. Aug 29, 2018
  15. Aug 23, 2018
    • Florian Floimair's avatar
      alembic: increase uri column size · 3bdbbb76
      Florian Floimair authored
      When mobile SIP clients register with Asterisk that use some sort of
      push notifications, the URI can get quite lengthy due to the
      additional push-service annotations (things like tokens, pn-type, etc.)
      contained in it.
      
      ASTERISK-28022 #close
      
      Change-Id: I4c7ceadc3bb405f3daf722641c8cd5ca4188cc37
      3bdbbb76
  16. Aug 14, 2018
  17. Jul 18, 2018
  18. Jul 06, 2018
    • George Joseph's avatar
      res_pjsip: Add 'suppress_q850_reason_headers' option to endpoint · 8f42447c
      George Joseph authored
      A new option 'suppress_q850_reason_headers' has been added to the
      endpoint object. Some devices can't accept multiple Reason headers and
      get confused when both 'SIP' and 'Q.850' Reason headers are received.
      This option allows the 'Q.850' Reason header to be suppressed.
      The default value is 'no'.
      
      ASTERISK-27949
      Reported-by: Ross Beer
      
      Change-Id: I54cf37a827d77de2079256bb3de7e90fa5e1deb1
      8f42447c
  19. Jun 26, 2018
    • George Joseph's avatar
      res_pjsip_session: Add ability to accept multiple sdp answers · 880fbff6
      George Joseph authored
      pjproject by default currently will follow media forked during an INVITE
      on outbound calls if the To tag is different on a subsequent response as
      that on an earlier response.  We handle this correctly.  There have
      been reported cases where the To tag is the same but we still need to
      follow the media.  The pjproject patch in this commit adds the
      capability to sip_inv and also adds the capability to control it at
      runtime.  The original "different tag" behavior was always controllable
      at runtime but we never did anything with it and left it to default to
      TRUE.
      
      So, along with the pjproject patch, this commit adds options to both the
      system and endpoint objects to control the two behaviors, and a small
      logic change to session_inv_on_media_update in res_pjsip_session to
      control the behavior at the endpoint level.
      
      The default behavior for "different tags" remains the same at TRUE and
      the default for "same tag" is FALSE.
      
      Change-Id: I64d071942b79adb2f0a4e13137389b19404fe3d6
      ASTERISK-27936
      Reported-by: Ross Beer
      880fbff6
  20. May 24, 2018
    • George Joseph's avatar
      ast_coredumper: Fix output directory and variable precedence · 2bf26ce5
      George Joseph authored
      The OUTPUTDIR variable in ast_debug_tools.conf.sample is now set
      to "/tmp" instead of "/some/directory".
      
      Variables set on the command line or that are already in the
      environment now take predecence over variables set in the config files.
      
      ASTERISK-27846
      Reported by: Ted G
      
      Change-Id: Ie8baec52d531886bf5849ec1d59bb59dc87ad387
      2bf26ce5
  21. May 09, 2018
    • Alexander Traud's avatar
      sip_to_pjsip: Enable python3 compatibility. · 2d81709a
      Alexander Traud authored
      The script remains compatible with Python 2.7 but now also works with
      Python 3.3 and newer; to ease the migration from chan_sip to chan_pjsip.
      
      ASTERISK-27811
      
      Change-Id: I59cc6b52a1a89777eebcf25b3023bdf93babf835
      2d81709a
  22. Apr 20, 2018
  23. Apr 09, 2018
    • Corey Farrell's avatar
      Build System: Enable python3 compatibility. · 879e592b
      Corey Farrell authored
      * Consistently use spaces in rest-api-templates/asterisk_processor.py.
      * Exclude third-party from docs/full-en_US.xml.
      * Add docs/full-en_US.xml to .gitignore.
      * Use list() to convert python3 view.
      * Use python3 print function.
      * Replace cmp() with equivalent equation.
      * Replace reference to out of scope subtype variable with name
        parameter.
      * Use unescaping triple bracket notation in mustache templates where
        needed.  This causes behavior of Python2 to be maintained when using
        Python3.
      * Fix references to has_websocket / is_websocket in
        res_ari_resource.c.mustache.
      * Update calculation of has_websocket to use any().
      * Use unicode mode for writing output file in transform.py.
      * Replace 'from swagger_model import *' with explicit import of required
        symbols.
      
      I have not tested spandspflow2pcap.py or voicemailpwcheck.py, only the
      print syntax has been fixed.
      
      Change-Id: If5c5b556a2800d41a3e2cfef080ac2e151178c33
      879e592b
  24. Mar 23, 2018
  25. Mar 17, 2018
    • Alexander Traud's avatar
      BuildSystem: Remove unused dependency on libltdl. · 10a97882
      Alexander Traud authored
      Asterisk does not need the development package of libltdl, because it does not
      use any symbol of -lltdl directly. Instead, it uses the runtime package via the
      shared library -lodbc. On the supported platforms, that shared library declares
      its dependency on -lltdl correctly, otherwise AST_EXT_LIB_CHECK would have
      failed.
      
      ASTERISK-27745
      
      Change-Id: Icd315809b8e7978203431f3afb66240dd3a040ba
      10a97882
  26. Mar 15, 2018
  27. Mar 14, 2018
  28. Mar 12, 2018
    • Alexander Traud's avatar
      install_prereq: Update FreeBSD libraries. · ea3b8bb0
      Alexander Traud authored
      Because the code review system Gerrit creates merge conflicts even when one line
      apart another change happened, the previous update to the FreeBSD libraries had
      to be rebased via Git. Because of a break for training of the original
      contributor, this rebase was done by another contributor and the variant for
      Asterisk 13 was cherry-picked to all branches. By this, dependencies for new
      features added in newer Asterisk version got lost. This can be seen, when not
      the original path set but a previous patch set is compared.
      
      This change here fixes this by adding those (optional) dependencies for
      Asterisk 15 and newer (again).
      
      ASTERISK-27686
      
      Change-Id: I6638a3d0dc37ad4ff5f94be15463e3dd8a2bfe74
      ea3b8bb0
  29. Mar 08, 2018
  30. Feb 23, 2018
    • George Joseph's avatar
      ast_coredumper: Minor fixes · 7e2128c8
      George Joseph authored
      * Fix --tarball-config so the option doesn't cause an error.
      
      * Allow for missing /etc/os-release.
      
      * Add a sleep between tarballing the coredump and removing the
        output directory to allow the filesystem to settle.
      
      Change-Id: I73e03b13087978bcc7f6bc9f45753990f82d9d77
      7e2128c8
  31. Feb 22, 2018
    • Alexander Traud's avatar
      install_prereq: Update FreeBSD libraries. · c4c5d005
      Alexander Traud authored
      deleted
       autoconf gcc libsamplerate sqlite
      
      changed
       binutils to libbfd
       freetds-devel to freetds
       gmime2 to gmime26
       mysql55-client to mysql57-client
      
      added
       alsa-lib bison bzip2 cclient corosync doxygen libedit flex graphviz
       libhoard libical libilbc libltdl lua neon newt net-snmp
       openldap-client openssl patch pkgconf portaudio postgresql10-client
       python radcli speexdsp subversion uriparser xmlstarlet libzip
      
      ASTERISK-27686
      
      Change-Id: Ibe88c9b26e59c30d26cdb313a3ef01c9f37ac80d
      c4c5d005
  32. Feb 16, 2018
    • Alexander Traud's avatar
      install_prereq: Update OpenBSD libraries. · a7e7302a
      Alexander Traud authored
      deleted
       jack sqlite
      
      renamed
       freetds-0.63p1-msdblib to freetds
       mysql-client to mariadb-client
      
      added
       bison bzip2 c-client doxygen e2fsprogs graphviz gsm libical jansson libltdl
       lua neon net-snmp libsrtp portaudio-svn postgresql-client python speexdsp
       subversion uriparser xmlstarlet
       fftw3 libsndfile
      
      ASTERISK-27684
      
      Change-Id: I26bdcb0a1d0e484a8dad1052da97f194aefd3370
      a7e7302a
    • Torrey Searle's avatar
      contrib/script/sip_to_pjsip: add support for realtime · 976afd26
      Torrey Searle authored
      Add a new script that can read from legacy realtime peers & generate
      an sql file for populating pjsip endpoints, identify, and aor records.
      
      ASTERISK-27348 #close
      
      Change-Id: Idd3d7968a3c9c3ee7936d21acbdaf001b429bf65
      976afd26
  33. Feb 14, 2018
  34. Feb 12, 2018
  35. Feb 10, 2018
Loading