Norman Franke
2008-Oct-16 15:23 UTC
[asterisk-users] asterisk-users Digest, Vol 51, Issue 51
On Oct 16, 2008, at 2:36 AM, asterisk-users-request at lists.digium.com wrote:> 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: > ... > 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?I do something similar, e.g. exten => xxx,1,Answer() exten => xxx,2,System(/usr/local/bin/door 1000 ${EXTEN:3}) It works great for me using Asterisk 1.4.19. If your app relies on some elements of the user environment it may not find that. Try just a simple application that writes the input to a file, e.g. /tmp/output and see if that works. Maybe the asterisk process can't open your parallel port? I'm using a USB-based device for digital IO and that works great. Norman Franke Answering Service for Directors, Inc. www.myasd.com