<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7036.0">
<TITLE>How to invoke an external C program and output an integer to the program?</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">Hi,</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">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.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">What I have done is:</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><B><FONT SIZE=2 FACE="&#23435;&#20307;">/etc/extensions.conf</FONT><FONT SIZE=2 FACE="&#23435;&#20307;">:</FONT></B></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">exten =&gt; 88888,1,system(/usr/local/src/parallel/fire 1)</FONT></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">exten =&gt; 88888,</FONT></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">n</FONT></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">,</FONT></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="&#23435;&#20307;">Dial(</FONT></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">SIP/</FONT></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">88888)</FONT></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">exten =&gt; 88888,</FONT></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">n,Hangup</FONT></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">t</FONT><FONT SIZE=2 FACE="&#23435;&#20307;">he C program under</FONT><FONT SIZE=2 FACE="&#23435;&#20307;"></FONT> <FONT SIZE=2 FACE="&#23435;&#20307;">/usr/local/src/parallel/fi</FONT><FONT SIZE=2 FACE="&#23435;&#20307;">r</FONT><FONT SIZE=2 FACE="&#23435;&#20307;">e</FONT></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;"> will wait for the input, if it's 1 external LED light will be on</FONT><FONT SIZE=2 FACE="&#23435;&#20307;">, if it's 0 LED light will be off.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">I have changed the file ownership and group since my asterisk user is asterisk</FONT></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;"> (</FONT><FONT SIZE=2 FACE="&#23435;&#20307;">with freepbx</FONT><FONT SIZE=2 FACE="&#23435;&#20307;">)</FONT></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">:</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><B><FONT SIZE=2 FACE="&#23435;&#20307;">[root@Fire-Station parallel]# ls -l fire*</FONT></B></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">-rwxrwxrwx&nbsp; 1 asterisk asterisk 5882 Oct 16 09:18 fire</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">-rw-r</FONT><FONT SIZE=2 FACE="&#23435;&#20307;">w-rw-&nbsp; 1 asterisk asterisk 2793 Oct 15 22:25 fire.c</FONT></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><B><FONT SIZE=2 FACE="&#23435;&#20307;">If I run the program separately everything is fine:</FONT></B></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">[root@Fire-Station parallel]# /usr/local/src/parallel/fire 1</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">buffer is 1</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">input1 value is 1</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">open port successfully</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">Input1 is high, Pin 17 set to high</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">Input1 is 1</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">[root@Fire-Station parallel]# /usr/local/src/parallel/fire 0</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">buffer is 0</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">input1 value is 0</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">open port successfully</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">Input1 is low, Pin 17 set to low</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">Input1 is 0</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">[root@Fire-Station parallel</FONT><FONT SIZE=2 FACE="&#23435;&#20307;">]#</FONT></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">However if I call to 88888 I can see it execute the system command but it doesn't output an integer</FONT></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;"> 1 to my</FONT> <FONT SIZE=2 FACE="&#23435;&#20307;">'</FONT><FONT SIZE=2 FACE="&#23435;&#20307;">fire</FONT><FONT SIZE=2 FACE="&#23435;&#20307;">'</FONT><FONT SIZE=2 FACE="&#23435;&#20307;"> program</FONT><FONT SIZE=2 FACE="&#23435;&#20307;">.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><B><FONT SIZE=2 FACE="&#23435;&#20307;">CLI:</FONT></B></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">-- Executing System(&quot;SIP/10-09a63138&quot;, &quot;/usr/local/src/parallel/fire 1&quot;) in</FONT></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;"></FONT></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="&#23435;&#20307;">new stack</FONT></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">Any ideas on this or I shouldn't use System() at all?</FONT></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">Thanks &amp; Best Regards,</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2>&nbsp;</FONT></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="&#23435;&#20307;">Johnny Xing</FONT></SPAN><SPAN LANG="en-us"></SPAN></P>

</BODY>
</HTML>