summaryrefslogtreecommitdiff
path: root/configs
AgeCommit message (Collapse)Author
2016-06-29hep.conf.sample: Default 'enabled' to 'no'Matt Jordan
Following the principle of least surprise, we should not be sending massive numbers of PJSIP and RTCP HEP packets out into the ether to some only-slightly-random IP address. Having 'enabled' set to 'no' in the sample configuration file should prevent this from happening for those who run 'make samples'. ASTERISK-26159 #close Change-Id: I1753a64ca83a3442a6ebdc31061f8185c062d9b1
2016-06-28configs/basic-pbx/modules.conf: Remove 'bad' modulesMatt Jordan
This patch removes the following modules: - pbx_functions: It never existed. - res_pjsip_log_forwarder: It no longer exists. - res_hep_pjsip: The base HEP module wasn't loaded, and most basic PBXs aren't going to be installing HOMER - res_pjsip_phoneprov_provider: The basic res_phoneprov module isn't loaded, and we aren't configured to make use of the module Change-Id: Id91f68cae7c9c8c3d370029fe1268cb51e4ff5a5
2016-06-09Merge "chan_sip: Support auth username for callbackextension feature"zuul
2016-06-07res_odbc: Implement a connection pool.Joshua Colp
Testing has shown that our usage of UnixODBC is problematic due to bugs within UnixODBC itself as well as the heavy weight cost of connecting and disconnecting database connections, even when pooling is enabled. For users of UnixODBC 2.3.1 and earlier crashes would occur due to insufficient protection of the disconnect operation. This was fixed in UnixODBC 2.3.2 and above. For users of UnixODBC 2.3.3 and higher a slow-down would occur under heavy database use due to repeated connection establishment. A regression is present where on each connection the database configuration is cached again, with the cache growing out of control. The connection pool implementation present in this change helps to mitigate these issues by reducing how much we connect and disconnect database connections. We also solve the issue of crashes under UnixODBC 2.3.1 by defaulting the maximum number of connections to 1, returning us to the previous working behavior. For users who may have a fixed version the maximum concurrent connection limit can be increased helping with performance. The connection pool works by keeping a list of active connections. If the connection limit has not been reached a new connection is established. If the connection limit has been reached then the request waits until a connection becomes available before continuing. ASTERISK-26074 #close ASTERISK-26054 #close Change-Id: I6774bf4bac49a0b30242c76a09c403d2e856ecff
2016-06-03chan_sip: Support auth username for callbackextension featureTimo Teräs
ASTERISK-20527 #close Change-Id: I659cf7f00836a09d09d146ad226a40477d731239
2016-05-26followme: allow disabling callee promptTzafrir Cohen
Add the option 'enable_callee_prompt' to followme.conf. Enabled by default. If disabled, a callee is not prompted to accept or reject the forwarded call. ASTERISK-26064 #close Change-Id: I0a8b19d4cf95c86a07c992813babb9e4a4acfff5 Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
2016-05-24Merge "func_odbc: single database connection should be optional"Joshua Colp
2016-05-20func_odbc: single database connection should be optionalAlexei Gradinari
func_odbc was changed in Asterisk 13.9.0 to make func_odbc use a single database connection per DSN because of reported bug ASTERISK-25938 with MySQL/MariaDB LAST_INSERT_ID(). This is drawback in performance when func_odbc is used very often in dialplan. Single database connection should be optional. ASTERISK-26010 Change-Id: I7091783a7150252de8eeb455115bd00514dfe843
2016-05-19Merge "res_hep: Provide an option to pick the UUID type"Joshua Colp
2016-05-14configs/samples/pjsip.conf.sample: Fix typoMatt Jordan
A ':' is not a valid token for starting a comment. Change-Id: I123592d93a83d1bdde3e352822881eb9da85e5ad
2016-05-14res_hep: Provide an option to pick the UUID typeMatt Jordan
At one point in time, it seemed like a good idea to use the Asterisk channel name as the HEP correlation UUID. In particular, it felt like this would be a useful identifier to tie PJSIP messages and RTCP messages together, along with whatever other data we may eventually send to Homer. This also had the benefit of keeping the correlation UUID channel technology agnostic. In practice, it isn't as useful as hoped, for two reasons: 1) The first INVITE request received doesn't have a channel. As a result, there is always an 'odd message out', leading it to be potentially uncorrelated in Homer. 2) Other systems sending capture packets (Kamailio) use the SIP Call-ID. This causes RTCP information to be uncorrelated to the SIP message traffic seen by those capture nodes. In order to support both (in case someone is trying to use res_hep_rtcp with a non-PJSIP channel), this patch adds a new option, uuid_type, with two valid values - 'call-id' and 'channel'. The uuid_type option is used by a module to determine the preferred UUID type. When available, that source of a correlation UUID is used; when not, the more readily available source is used. For res_hep_pjsip: - uuid_type = call-id: the module uses the SIP Call-ID header value - uuid_type = channel: the module uses the channel name if available, falling back to SIP Call-ID if not For res_hep_rtcp: - uuid_type = call-id: the module uses the SIP Call-ID header if the channel type is PJSIP and we have a channel, falling back to the Stasis event provided channel name if not - uuid_type = channel: the module uses the channel name ASTERISK-25352 #close Change-Id: Ide67e59a52d9c806e3cc0a797ea1a4b88a00122c
2016-05-13Merge "basic-cfg: asterisk.conf: don't set languages"Joshua Colp
2016-05-13Merge "basic-cfg: asterisk.conf: debug level 5 spams"Joshua Colp
2016-05-13Merge "basic-cfg: asterisk.conf: defaults of options"Joshua Colp
2016-05-12Merge "basic-cfg: asterisk.conf: remove [directories]"zuul
2016-05-10basic-cfg: asterisk.conf: don't set languagesTzafrir Cohen
* No need to set language in a miniml configuration. 'en' will do just fine. * It would be useful to have an example of setting it to a different language. * Setting the documentation language explicitly is likewise not required. Setting it to a different value is not common. At least until there is a set of translated documentation. Change-Id: I94d91ea34e129925f25af81ef8dc0906fb568cb7 Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
2016-05-10basic-cfg: asterisk.conf: debug level 5 spamsTzafrir Cohen
Don't suggest users to use debug level 5, which spews (usually non-useful) debug information. Reduce the suggestion to (an arbitrarily-selected) level 2. Change-Id: Ib53195f78945970956ff59ef13fa89b90e0fcd60 Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
2016-05-10basic-cfg: asterisk.conf: defaults of optionsTzafrir Cohen
Note the default of remmed-out options. To clarify that those values are not the defaults. Change-Id: I849c29b7a710f0abc37355fcb5bfee335ae30738 Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
2016-05-10basic-cfg: asterisk.conf: remove [directories]Tzafrir Cohen
A minimal configuration does not need to explicitly spell out the directories. The built-in defaults will do just fine. In many cases they are wrong. Change-Id: Id1a671e5c5e9923765a4156b57f9f7e263fdd26c Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
2016-05-09app_confbridge: Add a regcontext option for confbridge bridge profiles.Jaco Kroon
This patch allows for having app_confbridge register the name of the conference as an extension into a specific context, similar to regcontext for chan_sip. This variant is not quite as involved as the one in chan_sip and doesn't allow for multiple contexts or custom extensions, you can only specify the context and the conference name will always be used as the extension to register. ASTERISK-25989 #close Change-Id: Icacf94d9f2b5dfd31ef36f6cb702392619a7902f
2016-05-01configs/basic-pbx/asterisk.conf: contains incorrect path separatorDiederik de Groot
Note: When packagers use these files (as an example) the paths are never really used when they are split using '='. Note: Thirdparty applications will also have trouble parsing the file when expecting '=>'. Change-Id: I0ada647f588e81f023fb1333ca15a1a333fd6004
2016-04-27res_pjsip: Add ability to identify by Authorization usernameGeorge Joseph
A feature of chan_sip that service providers relied upon was the ability to identify by the Authorization username. This is most often used when customers have a PBX that needs to register rather than identify by IP address. From my own experiance, this is pretty common with small businesses who otherwise don't need a static IP. In this scenario, a register from the customer's PBX may succeed because From will usually contain the PBXs account id but an INVITE will contain the caller id. With nothing recognizable in From, the service provider's Asterisk can never match to an endpoint and the INVITE just stays unauthorized. The fixes: A new value "auth_username" has been added to endpoint/identify_by that will use the username and digest fields in the Authorization header instead of username and domain in the the From header to match an endpoint, or the To header to match an aor. This code as added to res_pjsip_endpoint_identifier_user rather than creating a new module. Although identify_by was always a comma-separated list, there was only 1 choice so order wasn't preserved. So to keep the order, a vector was added to the end of ast_sip_endpoint. This is only used by res_pjsip_registrar to find the aor. The res_pjsip_endpoint_identifier_* modules are called in globals/endpoint_identifier_order. Along the way, the logic in res_pjsip_registrar was corrected to match most-specific to least-specific as res_pjsip_endpoint_identifier_user does. The order is: username@domain username@domain_alias username Auth by username does present 1 problem however, the first INVITE won't have an Authorization header so the distributor, not finding a match on anything, sends a securty_alert. It still sends a 401 with a challenge so the next INVITE will have the Authorization header and presumably succeed. As a result though, that first security alert is actually a false alarm. To address this, a new feature has been added to pjsip_distributor that keeps track of unidentified requests and only sends the security alert if a configurable number of unidentified requests come from the same IP in a configurable amout of time. Those configuration options have been added to the global config object. This feature is only used when auth_username is enabled. Finally, default_realm was added to the globals object to replace the hard coded "asterisk" used when an endpoint is not yet identified. The testsuite tests all pass but new tests are forthcoming for this new feature. ASTERISK-25835 #close Reported-by: Ross Beer Change-Id: I30ba62d208e6f63439600916fcd1c08a365ed69d
2016-04-27res_pjsip: disable multi domain to improve realtime performaceAlexei Gradinari
This patch added new global pjsip option 'disable_multi_domain'. Disabling Multi Domain can improve Realtime performance by reducing number of database requests. ASTERISK-25930 #close Change-Id: I2e7160f3aae68475d52742107949a799aa2c7dc7
2016-04-22Remove reference to non-existent sip.conf optionLeif Madsen
Option was removed in commit 7f883ef495b57ae9182e47213d01d5e8009dbf3f ASTERISK-25927 #close Change-Id: I92f9b0196d9fc41d1d58354c07340c465ef1fcf8
2016-03-30res_pjsip_mwi: Add voicemail extension and mwi_subscribe_replaces_unsolicitedGeorge Joseph
res_pjsip_mwi was missing the chan_sip "vmexten" functionality which adds the Message-Account header to the MWI NOTIFY. Also, specifying mailboxes on endpoints for unsolicited mwi and on aors for subscriptions required that the admin know in advance which the client wanted. If you specified mailboxes on the endpoint, subscriptions were rejected even if you also specified mailboxes on the aor. Voicemail extension: * Added a global default_voicemail_extension which defaults to "". * Added voicemail_extension to both endpoint and aor. * Added ast_sip_subscription_get_dialog for support. * Added ast_sip_subscription_get_sip_uri for support. When an unsolicited NOTIFY is constructed, the From header is parsed, the voicemail extension from the endpoint is substituted for the user, and the result placed in the Message-Account field in the body. When a subscribed NOTIFY is constructed, the subscription dialog local uri is parsed, the voicemail_extension from the aor (looked up from the subscription resource name) is substituted for the user, and the result placed in the Message-Account field in the body. If no voicemail extension was defined, the Message-Account field is not added to the NOTIFY body. mwi_subscribe_replaces_unsolicited: * Added mwi_subscribe_replaces_unsolicited to endpoint. The previous behavior was to reject a subscribe if a previous internal subscription for unsolicited MWI was found for the mailbox. That remains the default. However, if there are mailboxes also set on the aor and the client subscribes and mwi_subscribe_replaces_unsolicited is set, the existing internal subscription is removed and replaced with the external subscription. This allows an admin to configure mailboxes on both the endpoint and aor and allows the client to select which to use. ASTERISK-25865 #close Reported-by: Ross Beer Change-Id: Ic15a9415091760539c7134a5ba3dc4a6a1217cea
2016-03-27sorcery/res_pjsip: Refactor for realtime performanceGeorge Joseph
There were a number of places in the res_pjsip stack that were getting all endpoints or all aors, and then filtering them locally. A good example is pjsip_options which, on startup, retrieves all endpoints, then the aors for those endpoints, then tests the aors to see if the qualify_frequency is > 0. One issue was that it never did anything with the endpoints other than retrieve the aors so we probably could have skipped a step and just retrieved all aors. But nevermind. This worked reasonably well with local config files but with a realtime backend and thousands of objects, this was a nightmare. The issue really boiled down to the fact that while realtime supports predicates that are passed to the database engine, the non-realtime sorcery backends didn't. They do now. The realtime engines have a scheme for doing simple comparisons. They take in an ast_variable (or list) for matching, and the name of each variable can contain an operator. For instance, a name of "qualify_frequency >" and a value of "0" would create a SQL predicate that looks like "where qualify_frequency > '0'". If there's no operator after the name, the engines add an '=' so a simple name of "qualify_frequency" and a value of "10" would return exact matches. The non-realtime backends decide whether to include an object in a result set by calling ast_sorcery_changeset_create on every object in the internal container. However, ast_sorcery_changeset_create only does exact string matches though so a name of "qualify_frequency >" and a value of "0" returns nothing because the literal "qualify_frequency >" doesn't match any name in the objset set. So, the real task was to create a generic string matcher that can take a left value, operator and a right value and perform the match. To that end, strings.c has a new ast_strings_match(left, operator, right) function. Left and right are the strings to operate on and the operator can be a string containing any of the following: = (or NULL or ""), !=, >, >=, <, <=, like or regex. If the operator is like or regex, the right string should be a %-pattern or a regex expression. If both left and right can be converted to float, then a numeric comparison is performed, otherwise a string comparison is performed. To use this new function on ast_variables, 2 new functions were added to config.c. One that compares 2 ast_variables, and one that compares 2 ast_variable lists. The former is useful when you want to compare 2 ast_variables that happen to be in a list but don't want to traverse the list. The latter will traverse the right list and return true if all the variables in it match the left list. Now, the backends' fields_cmp functions call ast_variable_lists_match instead of ast_sorcery_changeset_create and they can now process the same syntax as the realtime engines. The realtime backend just passes the variable list unaltered to the engine. The only gotcha is that there's no common realtime engine support for regex so that's been noted in the api docs for ast_sorcery_retrieve_by_fields. Only one more change to sorcery was done... A new config flag "allow_unqualified_fetch" was added to reg_sorcery_realtime. "no": ignore fetches if no predicate fields were supplied. "error": same as no but emit an error. (good for testing) "yes": allow (the default); "warn": allow but emit a warning. (good for testing) Now on to res_pjsip... pjsip_options was modified to retrieve aors with qualify_frequency > 0 rather than all endpoints then all aors. Not only was this a big improvement in realtime retrieval but even for config files there's an improvement because we're not going through endpoints anymore. res_pjsip_mwi was modified to retieve only endpoints with something in the mailboxes field instead of all endpoints then testing mailboxes. res_pjsip_registrar_expire was completely refactored. It was retrieving all contacts then setting up scheduler entries to check for expiration. Now, it's a single thread (like keepalive) that periodically retrieves only contacts whose expiration time is < now and deletes them. A new contact_expiration_check_interval was added to global with a default of 30 seconds. Ross Beer reports that with this patch, his Asterisk startup time dropped from around an hour to under 30 seconds. There are still objects that can't be filtered at the database like identifies, transports, and registrations. These are not going to be anywhere near as numerous as endpoints, aors, auths, contacts however. Back to allow_unqualified_fetch. If this is set to yes and you have a very large number of objects in the database, the pjsip CLI commands will attempt to retrive ALL of them if not qualified with a LIKE. Worse, if you type "pjsip show endpoint <tab>" guess what's going to happen? :) Having a cache helps but all the objects will have to be retrieved at least once to fill the cache. Setting allow_unqualified_fetch=no prevents the mass retrieve and should be used on endpoints, auths, aors, and contacts. It should NOT be used for identifies, registrations and transports since these MUST be retrieved in bulk. Example sorcery.conf: [res_pjsip] endpoint=config,pjsip.conf,criteria=type=endpoint endpoint=realtime,ps_endpoints,allow_unqualified_fetch=error ASTERISK-25826 #close Reported-by: Ross Beer Tested-by: Ross Beer Change-Id: Id2691e447db90892890036e663aaf907b2dc1c67
2016-03-25res_parking: Update parking documentation for dynamic parking lots.Philip Correia
* Remove duplicate res_parking.conf courtesytone config option documentation. ASTERISK-24596 #close Reported by: Philip Correia ASTERISK-24605 Reported by: Philip Correia Patches: call_park_app_doc.patch (license #6672) patch uploaded by Philip Correia Change-Id: I90a92a891c6494dc08173e675856afcc4764c5b5
2016-02-27Merge "res_pjsip/config_transport: Allow reloading transports."Joshua Colp
2016-02-25Merge "chan_sip: Optionally supply fromuser/fromdomain in SIP dial string."zuul
2016-02-19res_pjsip/config_transport: Allow reloading transports.George Joseph
The 'reload' mechanism actually involves closing the underlying socket and calling the appropriate udp, tcp or tls start functions again. Only outbound_registration, pubsub and session needed work to reset the transport before sending requests to insure that the pjsip transport didn't get pulled out from under them. In my testing, no calls were dropped when a transport was changed for any of the 3 transport types even if ip addresses or ports were changed. To be on the safe side however, a new transport option was added (allow_reload) which defaults to 'no'. Unless it's explicitly set to 'yes' for a transport, changes to that transport will be ignored on a reload of res_pjsip. This should preserve the current behavior. Change-Id: I5e759850e25958117d4c02f62ceb7244d7ec9edf
2016-02-19chan_sip: Optionally supply fromuser/fromdomain in SIP dial string.Walter Doekes
Previously you could add [!dnid] to the SIP dial string to alter the To: header. This change allows you to alter the From header as well. SIP dial string extra options now look like this: [![touser[@todomain]][![fromuser][@fromdomain]]] INCOMPATIBLE CHANGE: If you were using an exclamation mark in your To: header, that is no longer possible. ASTERISK-25803 #close Change-Id: I2457e9ba7a89eb1da22084bab5a4d4328e189db7
2016-02-18res_pjproject: Add ability to map pjproject log levels to Asterisk log levelsGeorge Joseph
Warnings and errors in the pjproject libraries are generally handled by Asterisk. In many cases, Asterisk wouldn't even consider them to be warnings or errors so the messages emitted by pjproject directly are either superfluous or misleading. A good exampe of this are the level-0 errors pjproject emits when it can't open a TCP/TLS socket to a client to send an OPTIONS. We don't consider a failure to qualify a UDP client an "ERROR", why should a TCP/TLS client be treated any differently? A config file for res_pjproject has bene added (pjproject.conf) and a new log_mappings object allows mapping pjproject levels to Asterisk levels (or nothing). The defaults if no pjproject.conf file is found are the same as those that were hard-coded into res_pjproject initially: 0,1 = LOG_ERROR, 2 = LOG_WARNING, 3,4,5 = LOG_DEBUG<level> Change-Id: Iba7bb349c70397586889b8f45b8c3d6c6c8c3898
2016-02-05Merge "pjsip/alembic: Add missing columns to system and registration"Joshua Colp
2016-02-05Merge topic 'ASTERISK-20987'Joshua Colp
* changes: app_confbridge: Add ability to get the muted conference state. app_confbridge.c: Update CONFBRIDGE and CONFBRIDGE_INFO documentation. app_confbridge: Make non-admin users join a muted conference muted.
2016-02-04pjsip/alembic: Add missing columns to system and registrationGeorge Joseph
ps_systems needed disable_tcp_switch ps_registrations needed line and endpoint ASTERISK-25737 #close Change-Id: Iaf9c2d69e62243d9fa53104c28c5339c47d4ac19
2016-02-03res_rtp_asterisk: Allow ICE host candidates to be overridenSean Bright
During ICE negotiation the IPs of the local interfaces are sent to the remote peer as host candidates. In many cases Asterisk is behind a static one-to-one NAT, so these host addresses will be internal IP addresses. To help in hiding the topology of the internal network, this patch adds the ability to override the host candidates by matching them against a user-defined list of replacements. Change-Id: I1c9541af97b83a4c690c8150d19bf7202c8bff1f
2016-02-03AST-2016-001 http: Provide greater control of TLS and set modern defaults.Joshua Colp
This change exposes the configuration of various aspects of the TLS support and sets the default to the modern standards. The TLS cipher is now set to the best values according to the Mozilla OpSec team, different TLS versions can now be disabled, and the cipher order can be forced to be that of the server instead of the client. ASTERISK-24972 #close Change-Id: I0a10f2883f7559af5e48dee0901251dbf30d45b8
2016-01-27app_confbridge: Make non-admin users join a muted conference muted.Richard Mudgett
ASTERISK-20987 #close Reported by: hristo Change-Id: Ic61a2b524ab3a4cfadf227fc6b3506527bc03f38
2016-01-27res_pjsip: Add res_pjproject dependency to samplesGeorge Joseph
Since res_pjsip now depends on res_pjproject, this has been added to basic-pbx modules.conf. Change-Id: I42826597d5e10f08e518208860c44c96e52f1b2d
2016-01-21Merge "chan_sip: option 'notifyringing' change and doc fix"Mark Michelson
2016-01-16Update version number in features.conf.sampleDaniel Journo
Update the version number in the comments from Asterisk 12 to Asterisk 12+ Change-Id: Ie692ac8cda3c993c3bf10f27f51a1cca3317ec7b
2016-01-13pjsip: Add option global/regcontextDaniel Journo
Added new global option (regcontext) to pjsip. When set, Asterisk will dynamically create and destroy a NoOp priority 1 extension for a given endpoint who registers or unregisters with us. ASTERISK-25670 #close Reported-by: Daniel Journo Change-Id: Ib1530c5b45340625805c057f8ff1fb240a43ea62
2016-01-11pjsip_sdp_rtp: Add option endpoint/bind_rtp_to_media_addressGeorge Joseph
On a system with multiple ip addresses in the same subnet, if a transport is bound to a specific ip address and endpoint/media_address is set, the SIP/SDP will have the correct address in all fields but the rtp stream MAY still originate from one of the other ip addresses, most probably the "primary" ip address. This happens because res_pjsip_sdp_rtp/create_rtp always calls ast_instance_new with the "all" ip address (0.0.0.0 or ::). The new option causes res_pjsip_sdp_rtp/create_rtp to call ast_rtp_instance_new with the endpoint's media_address (if specified) instead of the "all" address. This causes the packets to originate from the specified address. ASTERISK-25632 ASTERISK-25637 Reported-by: Olivier Krief Reported-by: Dan Journo Change-Id: I3dfaa079e54ba7fb7c4fd1f5f7bd9509bbf8bd88
2015-12-26chan_sip: option 'notifyringing' change and doc fixWard van Wanrooij
In the sample sip.conf this is written with regard to notifyringing: ;notifyringing = no ; Control whether subscriptions already INUSE get sent RINGING when another call is sent (default: yes) However, this setting changes whether or not any RINGING indications are sent to subscriptions. There is no separate configurable setting that allows to control whether INUSE subscriptions also get sent RINGING. This is however a useful option, to see (using BLF) if somebody else is able to handle an incoming call or if everybody is busy. This patch corrects the documentation for notifyringing (so the documentation matches the functionality) and make notifyringing a tri-state option, by adding the value 'notinuse' (in addition to 'yes' and 'no'). When notifyringing = notinuse, only subscriptions that are not INUSE are sent the RINGING signal. The default setting for notifyringing remains set to yes, so the default behaviour is not affected. ASTERISK-25558 Change-Id: I88f7036ee084bb3f43b74f15612695c6708f74aa
2015-12-21app_amd: Correct maximum_number_of_words functionality & documentationDade Brandon
- The maximum_number_of_words was previously documented as being the number of words that when exceeded, would result in the AMD application returning that the audio represents a machine. This was inconsistent with its actual functionality - it was a number of words that when REACHED, would result in determination as a machine. This update corrects the functionality to match the previously documented functionality. This is a backwards incompatible change in configuration file, and has been added to UPGRADE.txt as a result. The sample configuration file and application defaults have been updated so that the default value is now 2, which reflects the same default functionality as previous versions. - Update documentation for silence_threshold, which previously implied that it was measuring time, rather than noise averages in the sample. - Update the comments in amd.conf.sample. ASTERISK-25639 #close Change-Id: I4b1451e5dc9cb3cb06d59b6ab872f5275ba79093
2015-11-16Confbridge: Add a user timeout optionMark Michelson
This option adds the ability to specify a timeout, in seconds, for a participant in a ConfBridge. When the user's timeout has been reached, the user is ejected from the conference with the CONFBRIDGE_RESULT channel variable set to "TIMEOUT". The rationale for this change is that there have been times where we have seen channels get "stuck" in ConfBridge because a network issue results in a SIP BYE not being received by Asterisk. While these channels can be hung up manually via CLI/AMI/ARI, adding some sort of automatic cleanup of the channels is a nice feature to have. ASTERISK-25549 #close Reported by Mark Michelson Change-Id: I2996b6c5e16a3dda27595f8352abad0bda9c2d98
2015-11-03chan_sip: Allow websockets to be disabled.Corey Farrell
This patch adds a new setting "websockets_enabled" to sip.conf. Setting this to false allows chan_sip to be used without causing conflicts with res_pjsip_transport_websocket. ASTERISK-24106 #close Reported by: Andrew Nagy Change-Id: I04fe8c4f2d57b2d7375e0e25826c91a72e93bea7
2015-10-23res_pjsip_outbound_registration: registration stops due to fatal 4xx responseKevin Harwell
During outbound registration it is possible to receive a fatal (any permanent/ non-temporary 4xx, 5xx, 6xx) response from the registrar that is simply due to a problem with the registrar itself. Upon receiving the failure response Asterisk terminates outbound registration for the given endpoint. This patch adds an option, 'fatal_retry_interval', that when set continues outbound registration at the given interval up to 'max_retries' upon receiving a fatal response. ASTERISK-25485 #close Change-Id: Ibc2c7b47164ac89cc803433c0bbe7063bfa143a2
2015-09-29main/logger: Add log formatters and JSON structured logsMatt Jordan
When Asterisk is part of a larger distributed system, log files are often gathered using tools (such as logstash) that prefer to consume information and have it rendered using other tools (such as Kibana) that prefer a structured format, e.g., JSON. This patch adds support for JSON formatted logs by adding support for an optional log format specifier in Asterisk's logging subsystem. By adding a format specifier of '[json]': full => [json]debug,verbose,notice,warning,error Log messages will be output to the 'full' channel in the following format: { "hostname": Hostname or name specified in asterisk.conf "timestamp": Date/Time "identifiers": { "lwp": Thread ID, "callid": Call Identifier } "logmsg": { "location": { "filename": Name of the file that generated the log statement "function": Function that generated the log statement "line": Line number that called the logging function } "level": Log level, e.g., DEBUG, VERBOSE, etc. "message": Actual text of the log message } } ASTERISK-25425 #close Change-Id: I8649bfedf3fb7bf3138008cc11565553209cc238
2015-07-24pjsip: Add rtp_timeout and rtp_timeout_hold endpoint options.Joshua Colp
This change adds support for the 'rtp_timeout' and 'rtp_timeout_hold' endpoint options. These allow the channel to be hung up if RTP is not received from the remote endpoint for a specified number of seconds. ASTERISK-25259 #close Change-Id: I3f39daaa7da2596b5022737b77799d16204175b9