<div class="gmail_quote">2009/2/4 Gordon Henderson <span dir="ltr">&lt;<a href="mailto:gordon%2Basterisk@drogon.net">gordon+asterisk@drogon.net</a>&gt;</span><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="Ih2E3d">On Tue, 3 Feb 2009, Geoff Lane wrote:<br>
<br>
&gt; Hi All,<br>
&gt;<br>
&gt; Asterisk 1.4.12 on CentOS 5<br>
&gt;<br>
&gt; I&#39;d like to be able to look up each incoming CLI to retrieve an<br>
&gt; associated name, if available, and then pass that to the extensions so<br>
&gt; that they can see both the name and number of the caller. I&#39;m not<br>
&gt; after LDAP or anything else maintained externally, just a contact<br>
&gt; lookup for my system.<br>
&gt;<br>
&gt; I suspect that Astdb could be used for this, as could a relational<br>
&gt; database like MySQL or postgres (accessed via AGI?) Probably simpler<br>
&gt; would be to maintain a text configuration file since I&#39;m only<br>
&gt; concerned about less than a hundred entries initially.<br>
&gt;<br>
&gt; I&#39;d appreciate insight into which is the easiest way to do this, and<br>
&gt; also any pointers to tutorials etc.<br>
<br>
</div>AstDB:<br>
<br>
At it&#39;s very simplest:<br>
<br>
exten =&gt; s,n,Set(CALLERID(name)=Unknown)<br>
exten =&gt; s,n,Set(name=${DB(cid/${CALLERID(number)})})<br>
exten =&gt; s,n,GotoIf($[&quot;${name}&quot; = &quot;&quot;]?endCID)<br>
exten =&gt; s,n,Set(CALLERID(name)=${name})<br>
exten =&gt; s,n(endCID),Noop(fixCallerID - End of processing - returning ${CALLERID(all)})<br>
<br>
... somewhere in the incoming processing. (This is an extract from an<br>
overly complcated macro I use) Things to check for - a name already being<br>
present - eg. on an incoming SIP call. No name in the astDB - might want<br>
to substitute &quot;Unknown&quot; ..<br>
<br>
All you need to do now is populate the astDB - I use a web interface and<br>
some php to drive the manager interface...<br>
<br>
My biggest site has just under 300 lookup entries... (Which presents other<br>
issues with the web interface, but ...)<br>
<font color="#888888"><br>
</font></blockquote><div>I use a slight variant of this...<br><br>exten =&gt; s,n,Set(CALLERID(name)=${IF(${ISNULL(${DB(cidname/${CALLERID(num)})})}?&quot;Unknown&quot;:${DB(cidname/${CALLERID(num)})})})<br>exten =&gt; s,n,NoOp(&quot;Caller ID name mapped to ${CALLERID(name)}&quot;)<br>
<br>Basically the same as yours above (including substitution of Unknown when not found), but, all on one line... <br><br>I&#39;ve been looking into changing it recently such that where I don&#39;t have the name I can substitute something more useful than Unknown, such as the site, or for external calls, the country/province/state/city/type/telco/etc, though that won&#39;t be in astdb due to the current 100s of thousands of rows...<br>
</div></div><br>d<br>