summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-12-06sounds_index: Avoid repeatedly reindexing.Corey Farrell
The sounds index is rebuilt each time a format is registered or unregistered. This causes the index to be repeatedly rebuilt during startup and shutdown. This patch significantly reduces the work done by delaying sound index initialization until after modules are loaded. This way a reindex only occurs if a format module is loaded after startup. We also skip reindexing when format modules are unloaded during shutdown. Change-Id: I585fd6ee04200612ab1490dc804f76805f89cf0a
2017-12-06media_index: Improve startup.Corey Farrell
This eliminates some wasteful operations in media_index startup. * Replace statically set string-fields with char[0]. * Eliminate pointless RAII_VAR's. * alloc_variant: Avoid pointless ao2_find on new info->variant. * Stop trying find_variant before alloc_variant. * process_media_file: replace ast_str with ast_asprintf. This avoids reallocation of file_id_str. Overall sounds_index.c is about 27% of Asterisk startup time when using sample configs. This patch reduces it to 20%. This is a half-fix. The real problem is that the media_index is regenerated repeatedly - 68 times in my test. Change-Id: Ia50b752f8efb356f852b05c4be495a6631af8652
2017-12-06CDR: Fix deadlock setting some CDR values.Richard Mudgett
Setting channel variables with the AMI Originate action caused a deadlock when you set CDR(amaflags) or CDR(accountcode). This path has the channel locked when the CDR function is called. The CDR function then synchronously passes the job to a stasis thread. The stasis handling function then attempts to lock the channel. Deadlock results. * Avoid deadlock by making the CDR function handle setting amaflags and accountcode directly on the channel rather than passing it off to the CDR processing code under a stasis thread to do it. * Made the CHANNEL function and the CDR function process amaflags the same way. * Fixed referencing the wrong message type in cdr_prop_write(). ASTERISK-27460 Change-Id: I5eacb47586bc0b8f8ff76a19bd92d1dc38b75e8f
2017-12-06bridge_basic.c: Update transfer diagnostic messages addendum.Richard Mudgett
* Added start DTMF transfer verbose messages. * Made associated transfer messages use a similar message format. * Adjusted message verbose level as requested by initial reporter. ASTERISK-27449 Change-Id: I2045714586414b3c5ef1f3cc56c1c4af4b31f551
2017-12-06Merge "bridge_basic.c: Update transfer diagnostic messages." into 15Joshua Colp
2017-12-05Merge "Add new object for VoicemailUserEntry" into 15Jenkins2
2017-12-05Merge "res_rtp_asterisk.c: Increase strictrtp learning timeout time." into 15Jenkins2
2017-12-05Merge "pjproject: Clean up disabling of WebRTC support." into 15Joshua Colp
2017-12-05bridge_basic.c: Update transfer diagnostic messages.Niklas Larsson
* Add the channel name to diagnostic messages so you will know which channel failed to transfer. * Promoted some debug messages to verbose 4 messages. ASTERISK-27449 #close Change-Id: Idac66b7628c99379cc9269158377fd87dc97a880
2017-12-04security-events: Fix SuccessfulAuth using_password declaration.Richard Mudgett
The SuccessfulAuth using_password field was declared as a pointer to a uint32_t when the field was later read as a uint32_t value. This resulted in unnecessary casts and a non-portable field value reinterpret in main/security_events.c:add_json_object(). i.e., It would work on a 32 bit architecture but not on a 64 bit big endian architecture. Change-Id: Ia08bc797613a62f07e5473425f9ccd8d77c80935
2017-12-04Add new object for VoicemailUserEntrySungtae Kim
Currently, when the app_voicemail sending VoicemailUserEntry AMI event, there's no OldMessageCount info for default. To check the OldMessageCount info, it required IMAP_STORAGE define, but this is not correct. Added OldMessageCount item as a default. ASTERISK-27456 Change-Id: I5c71521c2d1daf8b7b161e31c34d28cca6aea4c7
2017-12-04Merge "res_rtp_asterisk: Correct default in sample configuration file." into 15Jenkins2
2017-12-04res_rtp_asterisk.c: Increase strictrtp learning timeout time.Richard Mudgett
More complicated direct media reinvite negotiations can result in longer delays before direct media flows. The strictrtp learning timeout time was too short. One log showed that the first RTP packet came in just after three seconds. * Increase the strictrtp learning timeout time from 1.5 to 5 seconds. ASTERISK-27453 Change-Id: Ic5e711164cbb91b4d1c1e40c83697755640f138c
2017-12-04Merge "README-SERIOUSLY.bestpractices.txt: Convert to markdown" into 15Jenkins2
2017-12-04Merge "autoconf: Remove use of m4_ifblank." into 15Jenkins2
2017-12-04Merge "config: Speed up config template lookup" into 15Joshua Colp
2017-12-04res_rtp_asterisk: Correct default in sample configuration file.Alexander Traud
With Asterisk 12 (commit 866d968), the default of "icesupport" changed to - "yes" in the module "res_rtp_asterisk" and - "no" in the module "chan_sip". The latter was reflected in the sample configuration file for "sip.conf". The former did not make it into "rtp.conf.sample". ASTERISK-20643 Change-Id: I2a2e0a900455d0767a99ea576e30adc6d7608a36
2017-12-04Merge "config: Speed up ACO & sorcery initialization" into 15Joshua Colp
2017-12-04Merge "res_http_post: Not all versions of gmime have GMIME_MAJOR_VERSION." ↵Jenkins2
into 15
2017-12-03pjproject: Clean up disabling of WebRTC support.Joshua Colp
The definition in config_site.h and the argument to the configure script are not necessary to disable WebRTC support. The correct argument, --disable-libwebrtc, is already passed. ASTERISK-26980 Change-Id: I27da2c894f87914956a72710222e17462d8a44bc
2017-12-02autoconf: Remove use of m4_ifblank.Corey Farrell
The m4_ifblank macro is not available on CentOS 6, reverse conditionals to allow use of m4_ifval instead. ./bootstrap.sh was run but this patch does not result in any difference to the generated configure script. Change-Id: I280785deb872ed8d3339d99cce63a2b54d5f1438
2017-12-01README-SERIOUSLY.bestpractices.txt: Convert to markdownCorey Farrell
Follow-up to conversion of README.md. Change-Id: I17ee7cf25bc027ece844efa2c1dfe613aff1e35b
2017-12-01AST-2017-013: chan_skinny: Call pthread_detach when sess threads endGeorge Joseph
chan_skinny creates a new thread for each new session. In trying to be a good cleanup citizen, the threads are joinable and the unload_module function does a pthread_cancel() and a pthread_join() on any sessions that are active at that time. This has an unintended side effect though. Since you can call pthread_join on a thread that's already terminated, pthreads keeps the thread's storage around until you explicitly call pthread_join (or pthread_detach()). Since only the module_unload function was calling pthread_join, and even then only on the ones active at the tme, the storage for every thread/session ever created sticks around until asterisk exits. * A thread can detach itself so the session_destroy() function now calls pthread_detach() just before it frees the session memory allocation. The module_unload function still takes care of the ones that are still active should the module be unloaded. ASTERISK-27452 Reported by: Juan Sacco Change-Id: I9af7268eba14bf76960566f891320f97b974e6dd
2017-12-01config: Speed up config template lookupSean Bright
ast_category_get() has an (undocumented) implementation detail where it tries to match the category name first by an explicit pointer comparison and if that fails falls back to a normal match. When initially building an ast_config during ast_config_load, this pointer comparison can never succeed, but we will end up iterating all categories twice. As the number of categories using a template increases, this dual looping becomes quite expensive. So we pass a flag to category_get_sep() indicating if a pointer match is even possible before trying to do so, saving us a full pass over the list of current categories. In my tests, loading a file with 3 template categories and 12000 additional categories that use those 3 templates (this file configures 4000 PJSIP endpoints with AOR & Auth) takes 1.2 seconds. After this change, that drops to 22ms. Change-Id: I59b95f288e11eb6bb34f31ce4cc772136b275e4a
2017-12-01config: Speed up ACO & sorcery initializationSean Bright
When starting Asterisk in the foreground, there is a perceptible delay when loading modules that use the ACO and sorcery config frameworks. For example, a lightly configured res_pjsip took 853ms to load on my VM. I tracked down the slowness to the XPath queries used to associate the relevant documentation with the config options. One improvement was adding a call to xmlXPathOrderDocElems after loading an XML document. From the libxml2 docs: Call this routine to speed up XPath computation on static documents. The second change was to remove recursive descent and wildcard operators from the XPath queries. After these changes, res_pjsip takes 85ms to load on my VM and there is no longer a perceptible delay when starting Asterisk in the foreground. Change-Id: I45d457f1580e26bf5a2b0dab16e8e9ae46dcbd82
2017-12-01res_http_post: Not all versions of gmime have GMIME_MAJOR_VERSION.Joshua Colp
This change makes the presence of the GMIME_MAJOR_VERSION definition optional, as not all versions of gmime actually define it. ASTERISK-27454 Change-Id: I01d99590045971ed6787899147170a5954077238
2017-11-30Merge "translate: Transcode siren14, speex32, silk24, and silk12 via ↵Jenkins2
slin16." into 15
2017-11-30Merge "autoconf: Use m4 conditionals where possible." into 15Jenkins2
2017-11-30Merge "autoconf: Fix call to AC_CONFIG_AUX_DIR." into 15Jenkins2
2017-11-28Merge "translate: Show sample rate for silk, speex, and slin in translation ↵Jenkins2
table." into 15
2017-11-28autoconf: Use m4 conditionals where possible.Corey Farrell
Change-Id: I530c0a72f965437acef6a9a4fbfe5c487f078b65
2017-11-28autoconf: Fix call to AC_CONFIG_AUX_DIR.Corey Farrell
The `pwd` parameter to AC_CONFIG_AUX_DIR is unnecessary, the default value is $srcdir. Additionally remove the AC_REVISION call. It only added a comment and is pointless without SVN tag replacements. Change-Id: I99299a3217f095bddcb2edefb3b9af0ab147bc29
2017-11-27Merge "res_ari: Fix inverted test giving wrong error message." into 15Joshua Colp
2017-11-27Merge "res_rtp_asterisk.c: Fix rtp source address learning for broken ↵Joshua Colp
clients" into 15
2017-11-27Merge "CLI: Finish conversion of completion handling to vectors." into 15Joshua Colp
2017-11-27Merge "features.conf.sample: Clarify ActivatedBy documentation wording." into 15Jenkins2
2017-11-27Merge "CLI: Refactor cli_complete." into 15Jenkins2
2017-11-27Merge "CLI: Rewrite ast_el_strtoarr to use vector's internally." into 15Jenkins2
2017-11-27Merge "CLI: Refactor ast_cli_display_match_list." into 15Jenkins2
2017-11-27Merge "CLI: Create ast_cli_completion_add function." into 15George Joseph
2017-11-27Merge "CLI: Remove calls to ast_cli_generator." into 15George Joseph
2017-11-27Merge "add cmd connection creation on creation ooh323 call data structure" ↵George Joseph
into 15
2017-11-27Merge "pjsip: 183 without To tag does not negotiate media" into 15Joshua Colp
2017-11-27Merge "Add defaultbranch to .gitreview." into 15Joshua Colp
2017-11-26translate: Transcode siren14, speex32, silk24, and silk12 via slin16.Alexander Traud
When a format has no pre-recorded sound files, Asterisk has to transcode between formats. For this, Asterisk has a fixed translation table. If the pre-recorded sound files are not available in the same sample rate, Asterisk has not only to transcode but also to resample. Asterisk has pre-recorded files for SLN (8000 kHz) and SLN16 (16000 kHz). However before this change, Asterisk did not take the sample rate into account, because the translation paths to SLN and SLN16 got the same score/weight in the table. Consequently, you might have got narrow-band audio with siren14, speex32, silk24, and silk12 although those are (ultra) wide-band audio codecs. With this change, the distance in sample-rates is taken into account. Now on the Command-Line interface (CLI) 'core show channels', you should see: (slin@16000)->(slin@32000)->(speex@32000). ASTERISK-23735 Reported by: Richard Kenner Change-Id: I9448295c1978be26f8633b6066395e7bbbe2e213
2017-11-26res_ari: Fix inverted test giving wrong error message.Richard Mudgett
The patch for ASTERISK_24560 inverted a test checking if the bridge name is being updated to a different name. * Fix the test to return "Changing bridge name is not implemented" when someone attempts to change the bridge name. ASTERISK-27445 Change-Id: I4b70bf08b0e02e016108b077ff75b345dec12fc9
2017-11-25translate: Show sample rate for silk, speex, and slin in translation table.Alexander Traud
ASTERISK-24662 Change-Id: I3822956984292c99c48bca8e97807e498ccc0e88
2017-11-23Merge "res_parking: Make load_pri explicit." into 15Joshua Colp
2017-11-23features.conf.sample: Clarify ActivatedBy documentation wording.Richard Mudgett
Change-Id: Id2899331fe05d1909a862ea879742879d086bc64
2017-11-23Merge "res_mwi_external_ami: Remove incorrect load priority." into 15Joshua Colp