Setting Callerid
Set(CALLERID...
Synopsis
Set(CALLERID(all|name|num|number|ANI|DNID|RDNIS)=_CALLER NAME_<_CALLER NUMBER_>)Asterisk 1.2 and later- For old usage please see Asterisk cmd SetCallerID
Description
Set Caller*ID on a call to a new value or read the current value.Options are:
- all: both caller's name and number like this: Joe Smith <2095551212>
- name: the caller's name
- num: the caller's number (without the brackets) * can be used as num or number
- ANI: Announced Number Identification - the billing number that made the call (this number is usually the same as num, but it can be different)
- DNID:
- RDNIS:
Example
exten => _1NXXNXXXXXX/2100,1,Set(CALLERID(all)=Joe Smith <2095551212>)
exten => _1NXXNXXXXXX/2101,1,Set(CALLERID(all)=Jane Smith <2095551213>)
exten => _1NXXNXXXXXX/2102,1,Set(CALLERID(number)=2095551214)
exten => _1NXXNXXXXXX,n,Dial(Zap/g1/${EXTEN})
This is a fragment of a context for routing outgoing calls. It sends NANP toll calls to Zap/g1 after first setting the outgoing caller ID depending on the calling internal extension number.

Comments
333
333How to use MySQL to update CallerID Name
In the dial plan, for 's' extension where incoming calls are coming, or where ever you want to update the CallerID, add:
exten => s,1,MYSQL(Connect connid dbhost dbuser dbpass dbname)
exten => s,n,MYSQL(Query resultid ${connid} SELECT\ name\ from\ directory\ where\ number=\'${CALLERID(num)}\')
exten => s,n,MYSQL(Fetch fetchid ${resultid} TEMP)
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,Set(CALLERID(name)=${TEMP})