Here is a patch file for my change to 1.4.23.1 code *** app_chanspy.c.orig Fri Dec 19 07:03:02 2008 --- app_chanspy.c Thu Feb 5 09:53:32 2009 *************** *** 76,81 **** --- 76,82 ---- " 'Agent/1234'.\n" " Options:\n" " b - Only spy on channels involved in a bridged call.\n" + " e - Exit when no channels to spy on.\n" " g(grp) - Match only channels where their ${SPYGROUP} variable is set to\n" " contain 'grp' in an optional : delimited list.\n" " q - Don't play a beep when beginning to spy on a channel, or speak the\n" *************** *** 104,109 **** --- 105,111 ---- " - Dialing * will stop spying and look for another channel to spy on.\n" " Options:\n" " b - Only spy on channels involved in a bridged call.\n" + " e - Exit when no channels to spy on.\n" " g(grp) - Match only channels where their ${SPYGROUP} variable is set to\n" " contain 'grp' in an optional : delimited list.\n" " q - Don't play a beep when beginning to spy on a channel, or speak the\n" *************** *** 128,133 **** --- 130,136 ---- OPTION_RECORD = (1 << 4), OPTION_WHISPER = (1 << 5), OPTION_PRIVATE = (1 << 6), /* Private Whisper mode */ + OPTION_EXIT = (1 << 7), /* Exit when nothing to do */ } chanspy_opt_flags; enum { *************** *** 140,145 **** --- 143,149 ---- AST_APP_OPTIONS(spy_opts, { AST_APP_OPTION('q', OPTION_QUIET), AST_APP_OPTION('b', OPTION_BRIDGED), + AST_APP_OPTION('e', OPTION_EXIT), AST_APP_OPTION('w', OPTION_WHISPER), AST_APP_OPTION('W', OPTION_PRIVATE), AST_APP_OPTION_ARG('v', OPTION_VOLUME, OPT_ARG_VOLUME), *************** *** 672,677 **** --- 676,685 ---- } if (res == -1 || ast_check_hangup(chan)) break; + if (ast_test_flag(flags, OPTION_EXIT)) { + if (! peer_chanspy_ds) + break; + } } ast_clear_flag(chan, AST_FLAG_SPYING);
-- Jim Dickenson mailto:dicken...@cfmc.com CfMC http://www.cfmc.com/ > From: Anthony Francis <antho...@rockynet.com> > Reply-To: Asterisk Users Mailing List - Non-Commercial Discussion > <asterisk-users@lists.digium.com> > Date: Wed, 04 Feb 2009 16:55:25 -0700 > To: Asterisk Users Mailing List - Non-Commercial Discussion > <asterisk-users@lists.digium.com> > Subject: Re: [asterisk-users] Stopping chanspy followup > > > Jim Dickenson wrote: >> I am still trying to figure out a reasonable way to exit the chanspy >> application in a dialplan. >> >> For the most part I understand how things are working and there is one >> change I would like to propose. >> >> The way the 1.4.23.1 code seems to work is that if there are no channels >> that match the chanprefix argument the chanspy code stays in a loop waiting >> for a new channel to come into being that matches chanprefix and spying will >> start. >> >> I would like it if there are no channels to spy on that the chanspy >> application exit. >> >> This can be done by changing line 673 of chanspy.c in the following way >> >> Old: >> if (res == -1 || ast_check_hangup(chan)) >> >> >> New: >> if (res == -1 || ast_check_hangup(chan) || !peer_chanspy_ds) >> >> Otherwise, as best I can tell, unless there is some error chanspy never >> exits unless the channel running the chanspy application hangs up, which I >> do not particularly want to do. >> >> > In the interim I would recommend you make chat change and recompile. > > -- > Thank you and have any kind of day you want, > > Anthony Francis > > > > _______________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users
_______________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users