johnny_xing
2008-Oct-16 03:22 UTC
[asterisk-users] How to invoke an external C program and output an integer to the program?
Hi, I want to call an extension like 88888 and invoke an external C program upon calling, pass an constant integer like 1 to the C program. What I have done is: /etc/extensions.conf: exten => 88888,1,system(/usr/local/src/parallel/fire 1) exten => 88888,n, Dial(SIP/88888) exten => 88888,n,Hangup the C program under /usr/local/src/parallel/fire will wait for the input, if it's 1 external LED light will be on, if it's 0 LED light will be off. I have changed the file ownership and group since my asterisk user is asterisk (with freepbx): [root at Fire-Station parallel]# ls -l fire* -rwxrwxrwx 1 asterisk asterisk 5882 Oct 16 09:18 fire -rw-rw-rw- 1 asterisk asterisk 2793 Oct 15 22:25 fire.c If I run the program separately everything is fine: [root at Fire-Station parallel]# /usr/local/src/parallel/fire 1 buffer is 1 input1 value is 1 open port successfully Input1 is high, Pin 17 set to high Input1 is 1 [root at Fire-Station parallel]# /usr/local/src/parallel/fire 0 buffer is 0 input1 value is 0 open port successfully Input1 is low, Pin 17 set to low Input1 is 0 [root at Fire-Station parallel]# However if I call to 88888 I can see it execute the system command but it doesn't output an integer 1 to my 'fire' program. CLI: -- Executing System("SIP/10-09a63138", "/usr/local/src/parallel/fire 1") in new stack Any ideas on this or I shouldn't use System() at all? Thanks & Best Regards, Johnny Xing -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20081016/7ec06625/attachment.htm