Created this function on one of my machines today, thought others might find it useful:<div><br></div><div><div>freesip() {</div><div>comm -2 &lt;(seq $2 $3) &lt;(cat $1 | grep ^\\[ | sort | uniq | tr -d \[ | tr -d \]) | grep ^[[:digit:]]</div>
<div>}</div><div><br></div><div>On RedHat/CentOS based systems you can create the following file to have the function available on login:</div><div><br></div><div>/etc/profile.d/freesip.sh</div><div># Free SIP extensions</div>
<div><div>freesip() {</div><div>  comm -2 &lt;(seq $2 $3) &lt;(cat $1 | grep ^\\[ | sort | uniq | tr -d \[ | tr -d \]) | grep ^[[:digit:]]</div><div>}</div></div><div><br></div><div>Then if you have a large sip.conf and want to find a free extension between 200 and 299 you can login and do the following:</div>
<div><br></div><div>&lt;begin fake results&gt;</div><div><div>[host]$ freesip /etc/asterisk/sip.conf 200 299</div><div>200</div><div>201</div><div>233</div><div>245</div><div>[host]$ </div></div><div>&lt;end fake results&gt;</div>
<div><br></div><div><br></div>-- <br>Kyle Sexton<br>
</div>