====== Asterisk Startup Commands ======
Since Asterisk 1.6.0 there is a config file ''cli.conf'', where you can add CLI commands, which will be executed, when Asterisk starts.
With the ''originate'' command you can also trigger a "call" at startup. A call to a local dummy extension can trigger a context, where you can e.g. initialize custom lamp states (from a database) or something else.
//cli.conf//
;
; Asterisk CLI configuration
;
[startup_commands]
;
; Any commands listed in this section will get automatically executed
; when Asterisk starts as a daemon or foreground process (-c).
;
;sip set debug on = yes
;core set verbose 3 = yes
;core set debug 1 = yes
originate local/ast-startup extension s@asterisk-startup = yes
In this example "originate" calls the local (dummy) extension "ast-startup", it automatically answers and calls extension "s" in context "asterisk-startup" (don't forget the " = yes" at the end of the line :-)).
\\
//extensions.conf//
; Ast-Startup Dummy Extension
exten => ast-startup,1,Answer()
exten => ast-startup,n,Wait(3)
exten => ast-startup,n,Hangup()
[asterisk-startup]
; these commands will be executed, when Asterisk starts
exten => s,1,NoOp(Asterisk Startup Script)
exten => s,n,NoOp(Do whatever you want)
exten => s,n,Set(DEVICE_STATE(Custom:My-custom-lamp)=NOT_INUSE)
exten => s,n,Hangup()
\\
For IP-phones with custom lamps (hints) it can help a lot to reduce the "Subscription Timer" (for BLFs) to 120 sec, otherwise it can take a long time until the lamp states will be refreshed after an Asterisk restart.
**Update:** At least Asterisk 1.6.2 + 1.8.x already store the custom device-states in AstDB automatically!
database show CustomDevstate
/CustomDevstate/My-custom-lamp : NOT_INUSE
/CustomDevstate/mystate : NOT_INUSE