What I do is run virtual interfaces on one box, and run multiple instances of atftpd inside xinetd, each one bound to a different IP and a different root directory.  Thus, my file structure looks like this - <br><br>/home/phones/<br>
/home/phones/cisco/<br>/home/phones/cisco/7960 (root directory for one of the atftpd instances)<br>/home/phones/cisco/7961 (root directory for another atftpd instance)<br><br>Then, with a little dhcpd.conf magic, you can easily point different sets of phones to different tftp servers, using pools that match on key Product ID (I think) strings.<br>
<br>--Warren Selby<br><br><div class="gmail_quote">On Fri, Oct 23, 2009 at 8:54 AM, Steve Edwards <span dir="ltr">&lt;<a href="http://asterisk.org">asterisk.org</a>@<a href="http://sedwards.com">sedwards.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">&gt; Steve Edwards &lt;<a href="http://asterisk.org" target="_blank">asterisk.org</a>@<a href="http://sedwards.com" target="_blank">sedwards.com</a>&gt; writes:<br>

&gt;<br>
&gt;&gt; atftpd can do PCRE substitutions to transform a requested file name<br>
&gt;&gt; into something else. I&#39;ve not used this facility, but I&#39;m guessing you<br>
&gt;&gt; could transform:<br>
&gt;&gt;<br>
&gt;&gt;      SIPDefault.cnf -&gt; cisco/SIPDefault.cnf<br>
&gt;&gt;      sip.cfg -&gt; polycom/sip.cfg<br>
&gt;&gt;      spa841.cfg -&gt; sipura/spa841.cfg<br>
&gt;<br>
</div><div class="im">On Fri, 23 Oct 2009, Benny Amorsen wrote:<br>
<br>
&gt; Cute, but all that accomplishes is renaming. I want to run a script<br>
&gt; which returns a different configuration based on the file name (and<br>
&gt; possibly the client IP address). Unfortunately there is also no<br>
&gt; UserAgent-header in TFTP...<br>
<br>
</div>So, break out your H&amp;S or your wallet :)<br>
<br>
How about adding an option to atftpd to enable &quot;check the execute bit&quot; on<br>
the requested file. If the file has the execute bit, set the MAC, IP<br>
Address, etc. as environment variables, exec the file, and return the<br>
output to the requester?<br>
<br>
Then, you could write (for example) spa841.cfg as a shell script which<br>
have access to the MAC, etc. and could run sed/replace/preprocessor/m4 and<br>
create the &quot;file&quot; on the fly.<br>
<div class="im"><br>
--<br>
Thanks in advance,<br>
-------------------------------------------------------------------------<br>
Steve Edwards       <a href="mailto:sedwards@sedwards.com">sedwards@sedwards.com</a>      Voice: +1-760-468-3867 PST<br>
Newline                                              Fax: +1-760-731-3000<br>
<br>
_______________________________________________<br>
</div><div><div></div><div class="h5">-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank">http://www.api-digital.com</a> --<br>
<br>
asterisk-users mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-users</a><br>
</div></div></blockquote></div><br>