aboutsummaryrefslogtreecommitdiffstats
path: root/channels/sig_analog.c
AgeCommit message (Collapse)AuthorFilesLines
2010-05-04The inalarm flag is not passed up from the sig_analog and sig_pri submodules.rmudgett1-9/+17
The CLI "dahdi show channel" command was not correctly reporting the InAlarm status. The inalarm flag is now consistently passed between chan_dahdi and submodules. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261007 f38db490-d61c-443f-a65b-d21fe96a405b
2010-04-30Merged revisions 260434 via svnmerge from jpeeler1-0/+8
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r260434 | jpeeler | 2010-04-30 17:22:46 -0500 (Fri, 30 Apr 2010) | 11 lines Ensure channel state is not incorrectly set in the case of a very early answer. The needringing bit was being read in dahdi_read after answering thereby setting the state to ringing from up. This clears needringing upon answering so that is no longer possible. (closes issue #17067) Reported by: tzafrir Patches: needringing.diff uploaded by tzafrir (license 46) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260437 f38db490-d61c-443f-a65b-d21fe96a405b
2010-04-29Merged revisions 260195 via svnmerge from rmudgett1-11/+22
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r260195 | rmudgett | 2010-04-29 17:11:47 -0500 (Thu, 29 Apr 2010) | 26 lines DTMF CallerID detection problems. The code handling DTMF CallerID drops digits on long CallerID numbers and may timeout waiting for the first ring with shorter numbers. The DTMF emulation mode was not turned off when processing DTMF CallerID. When the emulation code gets behind in processing the DTMF digits it can skip a digit. For shorter numbers, the timeout may have been too short. I increased it from 2 seconds to 4 seconds. Four seconds is a typical time between rings for many countries. (closes issue #16460) Reported by: sum Patches: issue16460.patch uploaded by rmudgett (license 664) issue16460_v1.6.2.patch uploaded by rmudgett (license 664) Tested by: sum, rmudgett Review: https://reviewboard.asterisk.org/r/634/ JIRA SWP-562 JIRA AST-334 JIRA SWP-901 ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260231 f38db490-d61c-443f-a65b-d21fe96a405b
2010-04-09Merge Call completion support into trunk.mmichelson1-0/+26
From Reviewboard: CCSS stands for Call Completion Supplementary Services. An admittedly out-of-date overview of the architecture can be found in the file doc/CCSS_architecture.pdf in the CCSS branch. Off the top of my head, the big differences between what is implemented and what is in the document are as follows: 1. We did not end up modifying the Hangup application at all. 2. The document states that a single call completion monitor may be used across multiple calls to the same device. This proved to not be such a good idea when implementing protocol-specific monitors, and so we ended up using one monitor per-device per-call. 3. There are some configuration options which were conceived after the document was written. These are documented in the ccss.conf.sample that is on this review request. For some basic understanding of terminology used throughout this code, see the ccss.tex document that is on this review. This implements CCBS and CCNR in several flavors. First up is a "generic" implementation, which can work over any channel technology provided that the channel technology can accurately report device state. Call completion is requested using the dialplan application CallCompletionRequest and can be canceled using CallCompletionCancel. Device state subscriptions are used in order to monitor the state of called parties. Next, there is a SIP-specific implementation of call completion. This method uses the methods outlined in draft-ietf-bliss-call-completion-06 to implement call completion using SIP signaling. There are a few things to note here: * The agent/monitor terminology used throughout Asterisk sometimes is the reverse of what is defined in the referenced draft. * Implementation of the draft required support for SIP PUBLISH. I attempted to write this in a generic-enough fashion such that if someone were to want to write PUBLISH support for other event packages, such as dialog-state or presence, most of the effort would be in writing callbacks specific to the event package. * A subportion of supporting PUBLISH reception was that we had to implement a PIDF parser. The PIDF support added is a bit minimal. I first wrote a validation routine to ensure that the PIDF document is formatted properly. The rest of the PIDF reading is done in-line in the call-completion-specific PUBLISH-handling code. In other words, while there is PIDF support here, it is not in any state where it could easily be applied to other event packages as is. Finally, there are a variety of ISDN-related call completion protocols supported. These were written by Richard Mudgett, and as such I can't really say much about their implementation. There are notes in the CHANGES file that indicate the ISDN protocols over which call completion is supported. Review: https://reviewboard.asterisk.org/r/523 git-svn-id: http://svn.digium.com/svn/asterisk/trunk@256528 f38db490-d61c-443f-a65b-d21fe96a405b
2010-03-10Simplified dahdi_request() channel selection failed reason/cause code.rmudgett1-7/+1
Also avoid potential crash because cause could be NULL. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@251585 f38db490-d61c-443f-a65b-d21fe96a405b
2010-03-03Merged revisions 250480 via svnmerge from jpeeler1-1/+6
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r250480 | jpeeler | 2010-03-03 13:04:11 -0600 (Wed, 03 Mar 2010) | 15 lines Make sure to clear red alarm after polarity reversal. From the issue: The automatic overnight line tests (or manual ones) used on UK (BT) lines causes a red alarm on a dahdi / TDM400P connected channel. This is because the line uses voltage tests (battery loss) and polarity reversal. The polarity reversal causes chan_dahdi to initiate v23 CallerID processing but during this the event DAHDI_EVENT_NOALARM is ignored so that the alarm is never cleared. (closes issue #14163) Reported by: jedi98 Patches: chan_dahdi-1.4-inalarm.diff uploaded by jedi98 (license 653) Tested by: mattbrown, Chainsaw, mikeeccleston ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@250481 f38db490-d61c-443f-a65b-d21fe96a405b
2010-01-18Extend max call limit duration from 24.8 days to 292+ million years.jpeeler1-1/+1
If the limit was set past MAX_INT upon answering, the call was immediately hung up due to overflow from the return of ast_tvdiff_ms (in ast_check_hangup). The time calculation functions ast_tvdiff_sec and ast_tvdiff_ms have been changed to return an int64_t to prevent overflow. Also the reporter suggested adding a message indicating the reason for the call hanging up. Given that the new limit is so much higher, the message (which would only really be useful in the overflow scenario) has been made a debug message only. (closes issue #16006) Reported by: viraptor git-svn-id: http://svn.digium.com/svn/asterisk/trunk@241143 f38db490-d61c-443f-a65b-d21fe96a405b
2010-01-05Removed unused parameters from analog_available() and sig_pri_available().rmudgett1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@237804 f38db490-d61c-443f-a65b-d21fe96a405b
2009-12-21Change all refererences to 1.6.3 to be 1.8, since that will be the next ↵kpfleming1-1/+1
feature release git-svn-id: http://svn.digium.com/svn/asterisk/trunk@235904 f38db490-d61c-443f-a65b-d21fe96a405b
2009-12-17Fix call forwarding for analog phones.jpeeler1-0/+1
(closes issue #16440) Reported by: mmichelson git-svn-id: http://svn.digium.com/svn/asterisk/trunk@235382 f38db490-d61c-443f-a65b-d21fe96a405b
2009-11-04Expand codec bitfield from 32 bits to 64 bits.tilghman1-20/+20
Reviewboard: https://reviewboard.asterisk.org/r/416/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@227580 f38db490-d61c-443f-a65b-d21fe96a405b
2009-10-05Add a few missing events to analog_handle_event.jpeeler1-14/+88
The reported bug was actually only for pulsedigit, dtmfup, and dtmfdown handling. Also added recognition for fax events (just some verbose output) and fixed handling for the ec_disabled_event. In order to make comparing the analog version of events to the DAHDI events easier, the ordering has been changed to follow that of the DAHDI events. (closes issue #15924) Reported by: tzafrir git-svn-id: http://svn.digium.com/svn/asterisk/trunk@222108 f38db490-d61c-443f-a65b-d21fe96a405b
2009-09-14Merged revisions 218401 via svnmerge from jpeeler1-12/+18
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r218401 | jpeeler | 2009-09-14 16:47:11 -0500 (Mon, 14 Sep 2009) | 11 lines Fix handling of DAHDI_EVENT_REMOVED event to prevent crash in do_monitor. After talking to rmudgett about some of his recent iflist locking changes, it was determined that the only place that would destroy a channel without being explicitly to do so was in handle_init_event. The loop to walk the interface list has been modified to wait to destroy the channel until the dahdi_pvt of the channel to be destroyed is no longer needed. (closes issue #15378) Reported by: samy ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@218430 f38db490-d61c-443f-a65b-d21fe96a405b
2009-09-10Allow do not disturb to be set on analog channels via the CLI and AMI.jpeeler1-0/+19
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@217954 f38db490-d61c-443f-a65b-d21fe96a405b
2009-09-10Stop caller id transmission when offhook event detected.jpeeler1-0/+12
This fixes the problem that would occur if an analog phone was picked up while the caller id was being sent. The caller id before sent the whole spill even after pickup and is now corrected. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@217744 f38db490-d61c-443f-a65b-d21fe96a405b
2009-09-08Fix memory leak of sig_xxx private structures.rmudgett1-2/+14
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@217332 f38db490-d61c-443f-a65b-d21fe96a405b
2009-09-03Added detection DTMF CID without polarity change alert.dbailey1-2/+28
Added detection of DTMF tone energy levels on FXO channels in chan_dahdi monitoring loop so DTMF CID can be detected without the need of a polarity change precursor. (closes issue #9096) Reported by: fleed Patches: 9096-chan_dahdi-trunk.diff uploaded by dbailey (license 819) Tested by: cyberplant, sum, maturs git-svn-id: http://svn.digium.com/svn/asterisk/trunk@216094 f38db490-d61c-443f-a65b-d21fe96a405b
2009-09-02Fix issue where DTMF CID detect was placing channels into signed linear modedbailey1-2/+4
made analog_set_linear_mode return back the mode that was being overwritten so it could be restored later. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@215608 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-17Merged revisions 212430 via svnmerge from rmudgett1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 Fix uninitialized variable causing random MWI indications. (closes issue #15727) Reported by: doda Patches: dahdi_changes.patch uploaded by doda (license 853) ........ r212430 | rmudgett | 2009-08-17 10:36:28 -0500 (Mon, 17 Aug 2009) | 1 line Fix uninitialized variable. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@212431 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-14Add braces where missing and a few whitespace fixes in sig_analogjpeeler1-301/+455
(closes issue #15678) Reported by: alecdavis Patches: sig_analog_mainly_braces.diff.txt uploaded by alecdavis (license 585) Tested by: alecdavis git-svn-id: http://svn.digium.com/svn/asterisk/trunk@212291 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-14More code that somehow got left out of sig_analogjpeeler1-14/+69
* confirmanswer option now respected * check and set waiting for dialtone timer * unneeded needcallerid flag removed from analog_subchannel * ss_astchan does not need to be a void pointer * swap_channels callback updated to trunk * analog_hangup now resets channel to default law git-svn-id: http://svn.digium.com/svn/asterisk/trunk@212287 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-12Fix chan_dahdi option ringtimeoutjpeeler1-6/+15
dahdi_read relies on the dahdi_pvt copy of ringt which was not getting set in sig_analog. This patch adds a callback to do so. (closes issue #15288) Reported by: alecdavis Patches: chan_dahdi.ringtimeout.diff.txt uploaded by alecdavis (license 585) Tested by: alecdavis git-svn-id: http://svn.digium.com/svn/asterisk/trunk@211908 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-06Miscellaneous minor fixes to sig_analog.rmudgett1-6/+9
* Sanity adjustments to __analog_ss_thread for sig_analog environment. * Deleted some duplicated code. * Fixed analog_ss_thread_start passing the wrong pointer. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@210869 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-03Trim trailing whitespace.rmudgett1-26/+26
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@210094 f38db490-d61c-443f-a65b-d21fe96a405b
2009-07-21Merged revisions 207827 via svnmerge from jpeeler1-2/+2
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r207827 | jpeeler | 2009-07-21 15:16:55 -0500 (Tue, 21 Jul 2009) | 9 lines Wait for wink before dialing when using E&M wink signaling There was already code for other signaling types in dahdi_handle_event to handle dialing if a dial operation dial string was present. Simply add SIG_EMWINK to the list. (closes issue #14434) Reported by: araasch ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@207854 f38db490-d61c-443f-a65b-d21fe96a405b
2009-07-17Fix segfault in sig_analog when using callwaiting, respect callwaiting optionsjpeeler1-3/+7
Sig_analog handles allocating the sub channel for callwaiting, so no longer try to do it in chan_dahdi. Modified analog_alloc_sub to only mark the sub as allocated upon success of the alloc_sub callback, which was responsible for the segfault. Also, the callwaiting and callwaitingcallerid options were being unconditionally set to true. Now, the options are properly set from chan_dahdi.conf. (closes issue #15508) Reported by: elguero Tested by: elguero git-svn-id: http://svn.digium.com/svn/asterisk/trunk@206998 f38db490-d61c-443f-a65b-d21fe96a405b
2009-07-15The dialing flag was mistakingly removed from sig_pri.jpeeler1-11/+19
This readds the proper setting of the flag and is really a continuation of r205731. The flag was being set properly in sig_analog, but use of the newly added set_dialing callback allowed for some simplification in chan_dahdi. (closes issue #15486) Reported by: rmudgett git-svn-id: http://svn.digium.com/svn/asterisk/trunk@206767 f38db490-d61c-443f-a65b-d21fe96a405b
2009-07-14Restore some missing functionality to sig_analog.jpeeler1-240/+146
The main purpose of this commit is to restore missing functionality present in the ss_thread before all the sig related work was done. Two of the biggest missing things were distinctive ring detection and cid handling for V23. fxsoffhookstate and associated mwi variables have been moved inside sig_analog as they were not being set properly as well. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@206566 f38db490-d61c-443f-a65b-d21fe96a405b
2009-07-07Fix a deadlock in sig_analogmnicholson1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@205047 f38db490-d61c-443f-a65b-d21fe96a405b
2009-07-06Add CEL transfer events to analog (chan_dahdi) transfers.mnicholson1-3/+13
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@205014 f38db490-d61c-443f-a65b-d21fe96a405b
2009-06-26Check if polarityonanswerdelay has elapsed before setting a channel as answeredjpeeler1-30/+71
after a polarity reversal. Previously on a polarity switch event chan_dahdi would set the channel immediately as answered. This would cause problems if a polarity reversal occurred when the line was picked up as the dial would not have yet occurred. Now if the polarity reversal occurs before delay has elapsed after coming off hook or an answer, it is ignored. Also, some refactoring was done in _handle_event. (closes issue #13917) Reported by: alecdavis Patches: chan_dahdi.bug13917.feb09.diff2.txt uploaded by alecdavis (license 585) Tested by: alecdavis git-svn-id: http://svn.digium.com/svn/asterisk/trunk@203672 f38db490-d61c-443f-a65b-d21fe96a405b
2009-06-26Merge the new Channel Event Logging (CEL) subsystem.russell1-10/+10
CEL is the new system for logging channel events. This was inspired after facing many problems trying to represent what is possible to happen to a call in Asterisk using CDR records. For more information on CEL, see the built in HTML or PDF documentation generated from the files in doc/tex/. Many thanks to Steve Murphy (murf) and Brian Degenhardt (bmd) for their hard work developing this code. Also, thanks to Matt Nicholson (mnicholson) and Sean Bright (seanbright) for their assistance in the final push to get this code ready for Asterisk trunk. Review: https://reviewboard.asterisk.org/r/239/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@203638 f38db490-d61c-443f-a65b-d21fe96a405b
2009-06-25New signaling module to handle PRI/BRI operations in chan_dahdijpeeler1-49/+24
This merge splits the PRI/BRI signaling logic out of chan_dahdi.c into sig_pri.c. Functionality in theory should not change (mostly). A few trivial changes were made in sig_analog with verbose messages and commenting. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@203304 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-29New signaling module to handle analog operations in chan_dahdijpeeler1-0/+3262
This branch splits all the analog signaling logic out of chan_dahdi.c into sig_analog.c. Functionality in theory should not change at all. As noted in the code, there is still some unused code remaining that will be cleaned up in a later commit. Review: https://reviewboard.asterisk.org/r/253/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@198088 f38db490-d61c-443f-a65b-d21fe96a405b