[asterisk-users] use dial plan passed arg value in C agi code

Arpit Mehta am2866 at columbia.edu
Tue Nov 6 16:02:01 CST 2007


Hi,

thanks for the replies although i am still confused.

my agi script is

exten => _.,1,AGI(simple_c_prgm|999);
exten => _.,2,NoOp(${MYAGIVAR});

Now i want to set the value of MYAGIVAR to 999 in my c program called
simple_c_prgm. This is what I am doing:

#include <stdio.h>
int main(int argc, char *argv[])
{

  char        line[80];
  int i;
  /* use line buffering */

  setlinebuf(stdout);
  setlinebuf(stderr);

  while (1) {
    /*gives me all the agi env var*/
    fgets(line,80,stdin);

  //prints the variables
    printf("--> %s",line);
    if (strlen(line) <= 1) break;

  }


*//according to me the passed variable should be available here but i am not
getting anything here
//nothing gets printed on the agi debug command

*  for(i=0 ;i<=argc ;i++)
    {
         printf("%s", argv[i]);
    }

  /* Send asterisk a command */
  printf("SET VARIABLE AGIVAR %s",argv[1] );

  /* Read response from Asterisk and show on console */
  fgets(line,80,stdin);
  fputs(line,stderr);


}


It would be great if someone could tell me what the problem is

Thanks

Arpit


On Nov 2, 2007 5:24 PM, Steve Edwards <asterisk.org at sedwards.com> wrote:

> On Fri, 2 Nov 2007, James FitzGibbon wrote:
>
> > I handle this (in Perl) using Getopt::Long, which knows nothing of AGI's
> > stdin/stdout mechanics:
>
> The AGI variables are passed via stdin (similar to an HTTP GET request)
> and can be observed using "agi debug" at the Asterisk prompt. It's a fixed
> list you get whether you want them or not. It's a common mistake for the
> beginning AGI programmer to not read them (thus emptying stdin) and then
> wonder why their AGI's don't work correctly.
>
> Arguments are passed to the AGI as elements of argv[] (for C, my native
> "tongue"). Thus, "Getopt:Long" (for Perl) or "getopt_long()" (for C) work
> as expected. Using a comma to separate the arguments is an "asteriskism."
>
> Passing multiple arguments this way has worked for as long as I've been
> using Asterisk -- several years.
>
> Thanks in advance,
> ------------------------------------------------------------------------
> Steve Edwards      sedwards at sedwards.com      Voice: +1-760-468-3867 PST
> Newline                                             Fax: +1-760-731-3000
>
> _______________________________________________
> --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
>



-- 
Arpit Mehta
Graduate Student
Department of Computer Science
Columbia University

Tel: 1-646-387-5998
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20071106/c6d29823/attachment.htm 


More information about the asterisk-users mailing list