====== 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