summaryrefslogtreecommitdiff
path: root/main/channel.c
AgeCommit message (Collapse)Author
2007-01-24Merged revisions 51848 via svnmerge from Russell Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.4 ................ r51848 | russell | 2007-01-23 18:59:58 -0600 (Tue, 23 Jan 2007) | 14 lines Merged revisions 51843 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r51843 | russell | 2007-01-23 18:57:28 -0600 (Tue, 23 Jan 2007) | 6 lines Fix an issue related to synchronization of recordings when using Monitor(). The bug is a miscalculation of the amount to seek the stream for writing to disk when the number of samples coming in and out of a channel do not match up. (issue #8298, #8887, report and patch by guillecabeza, patch files created and testing done by whoiswes) ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51850 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-23Cosmetic changes. Make main source files better conform to coding guidelines ↵Joshua Colp
and standards. (issue #8679 reported by johann8384) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51486 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-19Merged revisions 51311 via svnmerge from Russell Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r51311 | russell | 2007-01-19 11:49:38 -0600 (Fri, 19 Jan 2007) | 23 lines Merge the changes from the /team/group/vldtmf_fixup branch. The main bug being addressed here is a problem introduced when two SIP channels using SIP INFO dtmf have their media directly bridged. So, when a DTMF END frame comes into Asterisk from an incoming INFO message, Asterisk would try to emulate a digit of some length by first sending a DTMF BEGIN frame and sending a DTMF END later timed off of incoming audio. However, since there was no audio coming in, the DTMF_END was never generated. This caused DTMF based features to no longer work. To fix this, the core now knows when a channel doesn't care about DTMF BEGIN frames (such as a SIP channel sending INFO dtmf). If this is the case, then Asterisk will not emulate a digit of some length, and will instead just pass through the single DTMF END event. Channel drivers also now get passed the length of the digit to their digit_end callback. This improves SIP INFO support even further by enabling us to put the real digit duration in the INFO message instead of a hard coded 250ms. Also, for an incoming INFO message, the duration is read from the frame and passed into the core instead of just getting ignored. (issue #8597, maybe others...) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51314 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-19include "asterisk/zapata.h" to get the zaptel headers.Luigi Rizzo
this should be the last one left around... git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51299 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-18Merged revisions 51241 via svnmerge from Jason Parker
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r51241 | qwell | 2007-01-18 12:28:29 -0600 (Thu, 18 Jan 2007) | 2 lines Fix an issue with deprecated commands ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51242 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-17Don't hold channel lock while sleeping/waiting for audio stream to get ↵Joshua Colp
setup. (issue #8834 reported by phsultan) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51193 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-13Merged revisions 50727 via svnmerge from Joshua Colp
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r50727 | file | 2007-01-13 01:00:24 -0500 (Sat, 13 Jan 2007) | 2 lines Only write a frame out to the channel if one exists. There are cases where one may not and would therefore cause the channel driver to segfault. (issue #8434 reported by slimey) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@50728 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-12make the automatic post-answer delay happen only when the answer is ↵Kevin P. Fleming
'automatic' (not done by the Answer() dialplan application) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@50571 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-11when a channel gets automatically answered by an application, sleep a bit to ↵Kevin P. Fleming
give the audio path (for VOIP channels) time to be setup git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@50538 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-07Reduce duplication of code (Issue 6542)Tilghman Lesher
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49784 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-05Merged revisions 49675 via svnmerge from Joshua Colp
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r49675 | file | 2007-01-05 17:14:47 -0500 (Fri, 05 Jan 2007) | 2 lines Don't keep repeating the warning over and over when the end of the call is reached. (issue #8724 reported by xrg) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49677 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-30small formatting fixKevin P. Fleming
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49068 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-27Merged revisions 49006 via svnmerge from Kevin P. Fleming
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r49006 | kpfleming | 2006-12-27 16:06:56 -0600 (Wed, 27 Dec 2006) | 2 lines since these variables all have static duration, none of them need initializers (they default to zero anyway) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49008 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-25rename the structs struct tone_zone_sound and struct tone_zoneLuigi Rizzo
defined in indications.h to ind_tone_zone_sound and ind_tone_zone, to avoid conflicts with the structs with the same names defined in tonezone.h Hope i haven't missed any instance. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48958 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-21same as in other places, check that generator->release is not NULLLuigi Rizzo
before calling it. This allows generators to set it to NULL when they have nothing to do there. Later, the three copies of the code that releases a generator should be moved to a function. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48766 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15remove ast_safe_string_alloc() - it is completelyLuigi Rizzo
equivalent to asprintf(). git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48499 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15constify ast_state2str() and note it is not reentrant.Luigi Rizzo
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48477 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-06Staticize one, and Constify a bunch of usage strings for CLI commands.Russell Bryant
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48303 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-01Formatting fixOlle Johansson
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48188 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-25set pointers to NULL after freeing memory to avoid multiple free()Luigi Rizzo
probably 1.4/1.2 issue as well if someone can look into that. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48001 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-17This update fulfils the request of bug 7109, which claimed the language arg ↵Steve Murphy
to ast_stream_and_wait() was redundant. Almost all calls just used chan->language, and seeing how chan is the first argument, this certainly seems redundant. A change of language could just as easily be done by simply changing the channel language before calling. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47821 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-16Merged revisions 44809 via svnmerge from Paul Cadach
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r44809 | pcadach | 2006-10-10 23:44:54 +0700 (Втр, 10 Окт 2006) | 1 line CHANNEL() function sometime mix parameter and value ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47718 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-15Merged revisions 47707 via svnmerge from Joshua Colp
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r47707 | file | 2006-11-15 16:33:41 -0500 (Wed, 15 Nov 2006) | 2 lines We need to ensure timelimit stuff is included as well so warnings get played. (issue #8050 reported by KNK) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47708 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-08This mod via bug 7531Steve Murphy
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47349 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-07A fair number of changes for the sake of bug 7506Steve Murphy
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47290 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02Merged revisions 47051 via svnmerge from Tilghman Lesher
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r47051 | tilghman | 2006-11-02 17:00:20 -0600 (Thu, 02 Nov 2006) | 2 lines Reverse change of "show" to "list" and make several other commands more consistent with "category verb arguments" ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47052 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-24Merged revisions 46078 via svnmerge from Tilghman Lesher
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r46078 | tilghman | 2006-10-23 22:01:00 -0500 (Mon, 23 Oct 2006) | 3 lines Pass through a frame if we don't know what it is, rather than trying to pass a NULL, which will segfault a channel driver (Bug 8149) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46079 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19Extend the thread storage API such that a custom initialization function canRussell Bryant
be called for each thread specific object after they are allocated. Note that there was already the ability to define a custom cleanup function. Also, if the custom cleanup function is used, it *MUST* call free on the thread specific object at the end. There is no way to have this magically done that I can think of because the cleanup function registered with the pthread implementation will only call the function back with a pointer to the thread specific object, not the parent ast_threadstorage object. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45623 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18Merged revisions 45441 via svnmerge from Russell Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r45441 | russell | 2006-10-17 22:41:36 -0400 (Tue, 17 Oct 2006) | 7 lines Don't attempt to access private data members of the pthread_mutex_t object, because this does not work on all linux systems. Instead, just access the reentrancy field in the ast_mutex_info struct when DEBUG_THREADS is enabled. If DEBUG_CHANNEL_LOCKS is enabled, the developer probably has DEBUG_THREADS on as well. (issue #8139, me) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45442 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-17Merged revisions 45408 via svnmerge from Kevin P. Fleming
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r45408 | kpfleming | 2006-10-17 17:24:10 -0500 (Tue, 17 Oct 2006) | 3 lines optimize the 'quick response' code a bit more... no more malloc() or memset() for each response expand stringfields API a bit to allow reusing the stringfield pool on a structure when needed, and remove some unnecessary code when the structure was being freed ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45409 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-03Add Masquerade manager event which trips when a masquerade happens (issue ↵Joshua Colp
#7840 reported by moy) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44273 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-03bug #8076 check option_debug before printing to debug channel.Matt O'Gorman
patch provided in bugnote, with minor changes. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44253 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-02Make callerid fields in Manager events more consistent. CallerIDNum for ↵Joshua Colp
number and CallerIDName for name. (issue #7976 reported by suhler) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44217 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-27Merged revisions 43779 via svnmerge from Russell Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.4 ................ r43779 | russell | 2006-09-27 12:55:49 -0400 (Wed, 27 Sep 2006) | 50 lines Merged revisions 43778 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r43778 | russell | 2006-09-27 12:54:30 -0400 (Wed, 27 Sep 2006) | 42 lines Fix a problem that occurred if a user entered a digit that matched a bridge feature that was configured using multiple digits, and the digit that was pressed timed out in the feature digit timeout period. For example, if blind transfer is configured as '##', and a user presses just '#'. In this situation, the call would lock up and no longer pass any frames. (issue #7977 reported by festr, and issue #7982 reported by michaels and valuable input provided by mneuhauser and kuj. Fixed by me, with testing help and peer review from Joshua Colp). There are a couple of issues involved in this fix: 1) When ast_generic_bridge determines that there has been a timeout, it returned AST_BRIDGE_RETRY. Then, when ast_channel_bridge gets this result, it calls ast_generic_bridge over again with the same timestamp for the next event. This results in an endless loop of nothing until the call is terminated. This is resolved by simply changing ast_generic_bridge to return AST_BRIDGE_COMPLETE when it sees a timeout. 2) I also changed ast_channel_bridge such that if in the process of calculating the time until the next event, it knows a timeout has already occured, to immediately return AST_BRIDGE_COMPLETE instead of attempting to bridge the channels anyway. 3) In the process of testing the previous two changes, I ran into a problem in res_features where ast_channel_bridge would return because it determined that there was a timeout. However, ast_bridge_call in res_features would then determine by its own calculation that there was still 1 ms before the timeout really occurs. It would then proceed, and since the bridge broke out and did *not* return a frame, it interpreted this as the call was over and hung up the channels. The reason for this was because ast_bridge_call in res_features and ast_channel_bridge in channel.c were using different times for their calculations. channel.c uses the start_time on the bridge config, which is the time that the feature digit was recieved. However, res_features had another time, 'start', which was set right before calling ast_channel_bridge. 'start' will always be slightly after start_time in the bridge config, and sometimes enough to round up to one ms. This is fixed by making ast_bridge_call use the same time as ast_channel_bridge for the timeout calculation. ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43780 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-26Merged revisions 43695 via svnmerge from Joshua Colp
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r43695 | file | 2006-09-26 16:09:41 -0400 (Tue, 26 Sep 2006) | 2 lines Slight overhaul of the whisper support. 1. We need to duplicate the frame from ast_translate 2. We need to ensure we always have signed linear coming in for signed linear combining. 3. We need to ensure we are always feeding signed linear out. 4. Properly store and restore write format when beeping on the channel we are whispering on. 5. Properly discontinue the stream on the channel for the beep. (issue #8019 reported by timkelly1980) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43696 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-22Merged revisions 43486 via svnmerge from Kevin P. Fleming
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r43486 | kpfleming | 2006-09-22 10:51:13 -0500 (Fri, 22 Sep 2006) | 2 lines all the Linux systems I have don't use '__m_count' for this field, so I don't know where this came from... ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43488 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-21Remove deprecated CLI apps from the coreTilghman Lesher
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43449 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-21SS7 marked the start of an open season for trunk again but here's something ↵Joshua Colp
minor - abstract early bridging into the technology so that we don't always assume they use RTP and try it. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43437 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-18merge qwell's CLI verbification workKevin P. Fleming
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43212 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-09Merged revisions 42600 via svnmerge from Joshua Colp
https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r42600 | file | 2006-09-09 16:24:19 -0400 (Sat, 09 Sep 2006) | 2 lines Only truly consider the channel in the same format if the format matches the raw format OR if a translation path already exists to translate between them. (issue #7887 reported by softins & issue #7803 reported by alvaro_palma_aste). Thanks goes to stubert for giving me access to a box and showing me a scenario where this occured. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@42601 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-08Merged revisions 42452 via svnmerge from Joshua Colp
https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r42452 | file | 2006-09-08 14:50:43 -0400 (Fri, 08 Sep 2006) | 2 lines Swap spies during masquerading ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@42453 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-08whentohangup is already in seconds, just need to convert to millisecondsJoshua Colp
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@42374 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-03Make the difference clear about what the responsibilities of the core and a ↵Joshua Colp
spy are when it comes to spying on a channel. The core is responsible for adding a spy to a channel, feeding frames into the spy, removing the spy from the channel, and notifying the spy that is has been detached. The spy is responsible for reading frames in, and cleaning itself up. Each side will not try to do the other's job. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41959 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-03Tweak the if statement a bitJoshua Colp
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41865 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-03Don't use ast_frdup() in the AST_LIST_INSERT_TAIL macro directly. That was aRussell Bryant
very stupid thing to do. It ends up duplicating the frame twice, linking in one of them and setting the tail pointer to the other one. Sorry ... Thanks to file for pointing out the breakage!!! file rocks. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41864 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-01Merged revisions 41690 via svnmerge from Joshua Colp
https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r41690 | file | 2006-09-01 12:28:08 -0400 (Fri, 01 Sep 2006) | 2 lines Don't treat an unexpected control subclass as voice (issue #7858 reported by PCadach) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41693 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-31Don't fail the write if they try to write a NULL or IAX frame as we just ↵Joshua Colp
ignore these. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41596 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-31Merge in VLDTMF support with Zaptel/Core done by the ever great Darumkilla ↵Joshua Colp
Russell Bryant and the RTP portion done by myself, Muffinlicious Joshua Colp. This has gone through so many discussions/revisions it's not funny but we finally have it! git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41507 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-30fix a bug introduced when I merged my frame caching branch. Queue theRussell Bryant
translated frame to the spies, *not* the original frame. Thanks PCadach! git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41389 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-29Merge team/russell/frame_cachingRussell Bryant
There are some situations in Asterisk where ast_frame and/or iax_frame structures are rapidly allocatted and freed (at least 50 times per second for one call). This code significantly improves the performance of ast_frame_header_new(), ast_frdup(), ast_frfree(), iax_frame_new(), and iax_frame_free() by keeping a thread-local cache of these structures and using frames from the cache whenever possible instead of calling malloc/free every time. This commit also converts the ast_frame and iax_frame structures to use the linked list macros. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41278 65c4cc65-6c06-0410-ace0-fbb531ad65f3