[Asterisk-Users] Agents / ackcall

Greg Boehnlein damin at nacs.net
Sat Feb 21 14:02:31 MST 2004


On Sat, 21 Feb 2004, Greg Boehnlein wrote:

> On Sat, 21 Feb 2004, Matthew B Marlowe wrote:
> 
> > I wish I knew how to code, but I don't.  If you ever get this working
> > I'm highly interested.  You can probably send a patch to
> > http://bugs.digium.com I'd assume.
> 
> 1. Record an "agent-preack-announce.gsm" file and slap it into 
> /var/lib/asterisk/sounds/
> 2. Apply this patch to chan_agent.c

Ohh.. I forgot to change the "all-your-base" to "agent-preack-announce" so 
do that in the Patch file, or else your agents will be like "WTF? All your 
base what?"
 
> --- asterisk/channels/chan_agent.c.gjb	2004-02-21 13:55:35.000000000 -0500
> +++ asterisk/channels/chan_agent.c	2004-02-21 13:52:59.000000000 -0500
> @@ -281,7 +281,8 @@
>  }
>  static struct ast_frame  *agent_read(struct ast_channel *ast)
>  {
> -	struct agent_pvt *p = ast->pvt->pvt;
> +        int res = -1;
> +        struct agent_pvt *p = ast->pvt->pvt;
>  	struct ast_frame *f = NULL;
>  	static struct ast_frame null_frame = { AST_FRAME_NULL, };
>  	static struct ast_frame answer_frame = { AST_FRAME_CONTROL, AST_CONTROL_ANSWER };
> @@ -308,9 +309,22 @@
>  		}
>  	}
>  	if (f && (f->frametype == AST_FRAME_CONTROL) && (f->subclass == AST_CONTROL_ANSWER)) {
> +	
>  /* TC */
>  		if (p->ackcall) {
> -			if (option_verbose > 2)
> +		   ast_stopstream(p->chan);                                                                                        
> +		   res = ast_streamfile(p->chan, "all-your-base", p->chan->language);                                                             
> +		   if (!res)                                                                                                    
> +		     res = ast_waitstream(p->chan, "");                                                                      
> +		   else 
> +		     {
> +			
> +			ast_verbose(VERBOSE_PREFIX_3 "ast_streamfile failed on %s\n", p->chan->name);              
> +			res = 0;                                                                                             
> +		     }
> +		   ast_stopstream(p->chan);                                                                                        
> +		   
> +		   if (option_verbose > 2)
>  				ast_verbose(VERBOSE_PREFIX_3 "%s answered, waiting for '#' to acknowledge\n", p->chan->name);
>  			/* Don't pass answer along */
>  			ast_frfree(f);
> 
> _______________________________________________
> Asterisk-Users mailing list
> Asterisk-Users at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-users
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
> 

-- 
    Vice President of N2Net, a New Age Consulting Service, Inc. Company
         http://www.n2net.net Where everything clicks into place!
                             KP-216-121-ST






More information about the asterisk-users mailing list