Summary: | ASTERISK-10856: [patch] Implement call park | ||
Reporter: | dea (dea) | Labels: | |
Date Opened: | 2007-11-21 15:54:54.000-0600 | Date Closed: | 2008-06-13 06:15:20 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Channels/NewFeature |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) chan_skinny-park.txt ( 1) chan_skinny-park-v2.diff.txt ( 2) res_features-park.txt | |
Description: | Add support for the Park Softkey on skinny phones. Depends on a working Call Park setup (features.conf) ****** ADDITIONAL INFORMATION ****** There is a quirk with park_call_full that will segfault while trying to say the parked extension on a masqueraded channel. Commenting out the ast_say_digits in that function allowed me to test this patch. | ||
Comments: | By: dea (dea) 2007-12-03 19:20:20.000-0600 Commit 90631 fixed the segfault the plagued chan_skinny with Park enabled. So call parking works with chan_skinny, but user feedback is limited to a line of text on the phone. Phones that lack the display also lack the Park softkey, so this should not be an issue. By: Jason Parker (jparker) 2007-12-07 08:53:01.000-0600 I'm getting a lot of crashes with this. Will try to diagnose some time today. By: dea (dea) 2007-12-07 11:10:13.000-0600 Crud. My tests right after updating to SVN post 90631 all succeed. Now if is back to failing in the same way. It appears that during the masquarade that chan_skinny closes it's channel too fast and the playback of the parking extension is now to a non-existant channel. Instant segfault. If you can offer ma a tip or two on how to convince chan_skinny to delay tearing down the channel, I think this can be resolved that way. Otherwise it might be handy/required to have a version of ast_masq_park_call() that has a parameter to control whether the calling channel driver will wait for an audio stream. ** Edit ** Actually, if chan_skinny originated the call is works, but is chan_skinny received the call is fails. I am trying to reference the other channels with the park feature, but I do not see anything to hint at this behaviour. By: dea (dea) 2007-12-07 12:32:49.000-0600 More macro madness. Parking works in either direction if the call to a skinny device is sent directly to the device: exten => 7012,n, Dial(Skinny/7012@support) BUT if is routes through a macro: exten => 7012,n, Macro(stdexten,7012,Skinny/7012@support) It will segfault if the call was inbound to the skinny device. Outbound does work. So it looks like chan_skinny might need to be taught the difference between calls sent directly to the device and calls that route through a macro first. By: dea (dea) 2008-01-22 16:26:16.000-0600 OK, it was not related to the use of macros. It seems that using a macro would alter the timing just enough that SOMETIMES it would work. The real issue appears to be the relationship between: ast_masq_park_call -> ast_park_call -> park_call_full ast_masq_park_call sets up the masquerade and calls ast_park_call which explicitly calls park_call_full with orig_chan_name set to NULL. Once inside park_call_full, we use orig_chan_name to detect if this is a masqueraded channel. I've done a cursory review of apps/channels, and it appears the only way into park_call_full is through ast_park_call or ast_masq_park_call, so the logic used to test for masquerading could not possibly work. By: Digium Subversion (svnbot) 2008-01-28 12:23:43.000-0600 Repository: asterisk Revision: 100626 U branches/1.4/res/res_features.c ------------------------------------------------------------------------ r100626 | russell | 2008-01-28 12:23:43 -0600 (Mon, 28 Jan 2008) | 7 lines Fix a crash in ast_masq_park_call() (issue ASTERISK-10856) Reported by: DEA Patches: res_features-park.txt uploaded by DEA (license 3) ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=100626 By: Digium Subversion (svnbot) 2008-01-28 12:24:19.000-0600 Repository: asterisk Revision: 100627 _U trunk/ ------------------------------------------------------------------------ r100627 | russell | 2008-01-28 12:24:19 -0600 (Mon, 28 Jan 2008) | 15 lines Merged revisions 100626 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r100626 | russell | 2008-01-28 12:26:31 -0600 (Mon, 28 Jan 2008) | 7 lines Fix a crash in ast_masq_park_call() (issue ASTERISK-10856) Reported by: DEA Patches: res_features-park.txt uploaded by DEA (license 3) ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=100627 By: Digium Subversion (svnbot) 2008-01-29 10:57:18.000-0600 Repository: asterisk Revision: 100881 _U team/murf/bug11210/ U team/murf/bug11210/apps/app_voicemail.c U team/murf/bug11210/build_tools/menuselect-deps.in U team/murf/bug11210/channels/Makefile U team/murf/bug11210/channels/chan_h323.c U team/murf/bug11210/channels/chan_iax2.c U team/murf/bug11210/channels/chan_local.c U team/murf/bug11210/channels/chan_mgcp.c U team/murf/bug11210/channels/chan_misdn.c U team/murf/bug11210/channels/chan_sip.c A team/murf/bug11210/channels/chan_vpb.cc U team/murf/bug11210/channels/chan_zap.c A team/murf/bug11210/configs/vpb.conf.sample U team/murf/bug11210/configure U team/murf/bug11210/configure.ac U team/murf/bug11210/doc/tex/channelvariables.tex U team/murf/bug11210/include/asterisk/autoconfig.h.in U team/murf/bug11210/include/asterisk/channel.h U team/murf/bug11210/include/asterisk/sched.h U team/murf/bug11210/main/cdr.c U team/murf/bug11210/main/channel.c U team/murf/bug11210/main/dnsmgr.c U team/murf/bug11210/main/features.c U team/murf/bug11210/main/file.c U team/murf/bug11210/main/logger.c U team/murf/bug11210/main/pbx.c U team/murf/bug11210/main/rtp.c U team/murf/bug11210/makeopts.in U team/murf/bug11210/pbx/pbx_dundi.c ------------------------------------------------------------------------ r100881 | murf | 2008-01-29 10:57:16 -0600 (Tue, 29 Jan 2008) | 213 lines Merged revisions 100488,100497,100514,100532-100533,100549,100565,100582,100625,100627-100628,100630-100632,100671,100674,100676-100679 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r100488 | tilghman | 2008-01-27 15:35:29 -0700 (Sun, 27 Jan 2008) | 19 lines Merged revisions 100465 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r100465 | tilghman | 2008-01-27 15:59:53 -0600 (Sun, 27 Jan 2008) | 11 lines When deleting a task from the scheduler, ignoring the return value could possibly cause memory to be accessed after it is freed, which causes all sorts of random memory corruption. Instead, if a deletion fails, wait a bit and try again (noting that another thread could change our taskid value). (closes issue ASTERISK-10897) Reported by: flujan Patches: 20080124__bug11386.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76, flujan, stuarth` ........ ................ r100497 | tilghman | 2008-01-27 16:14:48 -0700 (Sun, 27 Jan 2008) | 5 lines With the switch to the ast_sched_replace* API in trunk, we lose the correction that was just merged from 1.4, so this is a changeover to those APIs to use the macro versions, so that we properly detect errors from ast_sched_del, instead of simply ignoring the return values. ................ r100514 | russell | 2008-01-27 17:56:14 -0700 (Sun, 27 Jan 2008) | 5 lines These readlocks always fail for me on my mac, and I saw it happen again today on another mac. We ignore the return value of locking operations almost everywhere in Asterisk. So, ignore these, as well, so Asterisk will actually work on systems where this is occurring while I look into what the issue is. ................ r100532 | russell | 2008-01-27 21:30:44 -0700 (Sun, 27 Jan 2008) | 3 lines - Simplify a line with ARRAY_LEN() - Make a few little formatting changes ................ r100533 | russell | 2008-01-27 21:43:14 -0700 (Sun, 27 Jan 2008) | 2 lines Make a couple more uses of ARRAY_LEN, and convert some spaces to tabs ................ r100549 | file | 2008-01-28 06:57:38 -0700 (Mon, 28 Jan 2008) | 4 lines Don't do a network byte order conversion when setting the socket's port variable to that of bindaddr's. It is already in the correct network byte order. (closes issue ASTERISK-11268) Reported by: hmodes ................ r100565 | russell | 2008-01-28 07:27:28 -0700 (Mon, 28 Jan 2008) | 2 lines Clean up some formatting, and simplify a bit of code using ast_str ................ r100582 | russell | 2008-01-28 10:21:24 -0700 (Mon, 28 Jan 2008) | 17 lines Merged revisions 100581 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r100581 | russell | 2008-01-28 11:15:41 -0600 (Mon, 28 Jan 2008) | 9 lines Make some deadlock related fixes. These bugs were discovered and reported internally at Digium by Steve Pitts. - Fix up chan_local to ensure that the channel lock is held before the local pvt lock. - Don't hold the channel lock when executing the timing function, as it can cause a deadlock when using chan_local. This actually changes the code back to be how it was before the change for issue ASTERISK-10339. But, I added some other locking that I think will prevent the problem reported there, as well. ........ ................ r100625 | qwell | 2008-01-28 11:24:40 -0700 (Mon, 28 Jan 2008) | 9 lines Merged revisions 100624 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r100624 | qwell | 2008-01-28 12:23:09 -0600 (Mon, 28 Jan 2008) | 1 line Correct a comment which made little/no sense. ........ ................ r100627 | russell | 2008-01-28 11:27:08 -0700 (Mon, 28 Jan 2008) | 15 lines Merged revisions 100626 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r100626 | russell | 2008-01-28 12:26:31 -0600 (Mon, 28 Jan 2008) | 7 lines Fix a crash in ast_masq_park_call() (issue ASTERISK-10856) Reported by: DEA Patches: res_features-park.txt uploaded by DEA (license 3) ........ ................ r100628 | tilghman | 2008-01-28 11:27:29 -0700 (Mon, 28 Jan 2008) | 3 lines Normalize the detection for execinfo, so that Linux (glibc) and other platforms with libexecinfo will generate inline stack backtraces correctly. ................ r100630 | russell | 2008-01-28 11:38:56 -0700 (Mon, 28 Jan 2008) | 13 lines Merged revisions 100629 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r100629 | russell | 2008-01-28 12:34:20 -0600 (Mon, 28 Jan 2008) | 5 lines For some reason, the use of this strdupa() is leading to memory corruption on freebsd sparc64. This trivial workaround fixes it. (closes issue ASTERISK-9956, closes issue ASTERISK-11316, reported by mattias04 and Home-of-the-Brave) ........ ................ r100631 | russell | 2008-01-28 11:41:23 -0700 (Mon, 28 Jan 2008) | 3 lines Merge rev 100626 from Asterisk 1.4. The svnmerge of this commit was a NoOp, since res_features doesn't exist in trunk. Thanks to qwell for pointing it out! ................ r100632 | file | 2008-01-28 12:04:53 -0700 (Mon, 28 Jan 2008) | 2 lines Fix up two scheduling issues. In one instance a scheduled item was not deleted when it should have been and in the other it was scheduled again when it shouldn't have been. ................ r100671 | file | 2008-01-28 13:40:08 -0700 (Mon, 28 Jan 2008) | 6 lines Fix up some T38 state change issues. (closes issue ASTERISK-11106) Reported by: dimas Patches: v2-sip-t38state.patch uploaded by dimas (license 88) ................ r100674 | mmichelson | 2008-01-28 13:58:12 -0700 (Mon, 28 Jan 2008) | 10 lines Blocked revisions 100673 via svnmerge ........ r100673 | mmichelson | 2008-01-28 14:55:56 -0600 (Mon, 28 Jan 2008) | 3 lines Undoing the deprecation of chan_vpb. It is alive and well. ........ ................ r100676 | qwell | 2008-01-28 14:02:11 -0700 (Mon, 28 Jan 2008) | 16 lines Merged revisions 100672 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 (closes issue ASTERISK-11263) ........ r100672 | qwell | 2008-01-28 14:42:43 -0600 (Mon, 28 Jan 2008) | 7 lines When using ODBC_STORAGE, make sure we put greeting files into the database like we do with the others. Issue ASTERISK-11263 Reported by: dimas Patches: vmgreet.patch uploaded by dimas (license 88) ........ ................ r100677 | tilghman | 2008-01-28 14:05:29 -0700 (Mon, 28 Jan 2008) | 10 lines Merged revisions 100675 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r100675 | tilghman | 2008-01-28 15:02:02 -0600 (Mon, 28 Jan 2008) | 2 lines WaitExten didn't handle AbsoluteTimeout properly (went to 't' instead of 'T') ........ ................ r100678 | mmichelson | 2008-01-28 14:07:18 -0700 (Mon, 28 Jan 2008) | 3 lines Re-inserting chan_vpb into trunk. ................ r100679 | qwell | 2008-01-28 14:11:24 -0700 (Mon, 28 Jan 2008) | 1 line Reintroduce more chan_vpb stuff that was removed in r100421 and r100422 ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=100881 By: Michiel van Baak (mvanbaak) 2008-04-23 12:40:51 @Dan: Can you test this with the latest -trunk ? Now that we have multiparking merged in there a lot has changed. I wonder if it works there. By: dea (dea) 2008-04-23 13:21:07 My patch to fix the segfault in res_features.c (now features.c) was merged, but the chan_skinny patch to impliment call park was not. I will look to see how the multiparking changes mesh with the patch. By: Michiel van Baak (mvanbaak) 2008-06-13 04:39:18 Here's an updated patch that actually applies and compiles. Have not tested it yet, just made the patch compatible with latest trunk. By: Michiel van Baak (mvanbaak) 2008-06-13 05:03:36 tested the patch. It seems to work great so far. SIP -> Skinny(7960) Skinny(7905) -> Skinny(7960) Skinny(7960) -> SIP Ready for commit ? By: Digium Subversion (svnbot) 2008-06-13 06:14:02 Repository: asterisk Revision: 122493 U trunk/channels/chan_skinny.c ------------------------------------------------------------------------ r122493 | mvanbaak | 2008-06-13 06:13:53 -0500 (Fri, 13 Jun 2008) | 9 lines Implement call parking in chan_skinny. (closes issue ASTERISK-10856) Reported by: DEA Patches: chan_skinny-park.txt uploaded by DEA (license 3) chan_skinny-park-v2.diff.txt uploaded by mvanbaak (license 7) Tested by: DEA, mvanbaak ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=122493 By: Digium Subversion (svnbot) 2008-06-13 06:15:20 Repository: asterisk Revision: 122494 _U branches/1.6.0/ ------------------------------------------------------------------------ r122494 | mvanbaak | 2008-06-13 06:15:16 -0500 (Fri, 13 Jun 2008) | 16 lines Blocked revisions 122493 via svnmerge ........ r122493 | mvanbaak | 2008-06-13 13:20:47 +0200 (Fri, 13 Jun 2008) | 9 lines Implement call parking in chan_skinny. (closes issue ASTERISK-10856) Reported by: DEA Patches: chan_skinny-park.txt uploaded by DEA (license 3) chan_skinny-park-v2.diff.txt uploaded by mvanbaak (license 7) Tested by: DEA, mvanbaak ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=122494 |