[asterisk-users] [AGI 1.4] C sample?
Vincent
vincent.delporte at bigfoot.com
Sun Jan 27 00:57:01 CST 2008
Hello
I'm pretty much a newbie when it comes to C, but I have to use
this language to write a couple of AGI proggies because I need them to
be statically compiled.
Strangely enough, Google didn't return much when looking for the
"Hello, world!" of AGI in C.
The following doesn't work: The file never gets written:
===========
//check_cid.c
#include <stdio.h>
#include <stdlib.h>
#include <syslog.h>
#include <string.h>
int main(int argc, char *argv[])
{
char line[80];
int i;
setlinebuf(stdout);
setlinebuf(stderr);
FILE *file;
file = fopen("file.txt","a+");
while (1) {
fgets(line,80,stdin);
fprintf(file,"%s",line);
if (strlen(line) <= 1) break;
}
fclose(file);
return(EXIT_SUCCESS);
}
===========
This is how it's called in extensions.conf:
===========
[inside]
exten => 9999,1,Verbose(Yes!)
exten => 9999,n,AGI(check_cid.exe|123)
===========
And this is the output of "agi debug" in CLI:
===========
*CLI> -- Executing [9999 at inside:1] Verbose("SIP/2000-0904bee0",
"Yes!") in new stack
Yes!
-- Executing [9999 at inside:2] AGI("SIP/2000-0904bee0",
"check_cid.exe|123") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/check_cid.exe
AGI Tx >> agi_request: check_cid.exe
AGI Tx >> agi_channel: SIP/2000-0904bee0
AGI Tx >> agi_language: en
AGI Tx >> agi_type: SIP
AGI Tx >> agi_uniqueid: 1201412176.3
AGI Tx >> agi_callerid: 2000
AGI Tx >> agi_calleridname: Fred
AGI Tx >> agi_callingpres: 0
AGI Tx >> agi_callingani2: 0
AGI Tx >> agi_callington: 0
AGI Tx >> agi_callingtns: 0
AGI Tx >> agi_dnid: 9999
AGI Tx >> agi_rdnis: unknown
AGI Tx >> agi_context: inside
AGI Tx >> agi_extension: 9999
AGI Tx >> agi_priority: 2
AGI Tx >> agi_enhanced: 0.0
AGI Tx >> agi_accountcode:
AGI Tx >>
-- AGI Script check_cid.exe completed, returning 0
== Auto fallthrough, channel 'SIP/2000-0904bee0' status is 'UNKNOWN'
===========
If someone has a very basic example in C that shows how to read the
CID #, and rewrite the CID name, I'm interested.
Thank you.
More information about the asterisk-users
mailing list