Create an Incoming Line in Lines -> Incoming Lines, use Custom Script as the destination and select this script name.
To add a new user, type the following command from Asterisk CLI:
database put disa PHONENUMBER/home PASSWORD
database put disa PHONENUMBER/out OUTGOING_CALLERID
database put disa PHONENUMBER/cos CLASS_OF_SERVICE; (ex. all-default)
exten => s,1,Answer()
exten => s,2,DigitTimeout(2)
exten => s,3,ResponseTimeout(3)
exten => s,4,DBget(pass=disa/${CALLERIDNUM}/home) ; Incoming CallerID
exten => s,105,Congestion ; If caller is not in the database
exten => s,5,DBget(clid=disa/${CALLERIDNUM}/out) ; Outgoing CallerID
exten => s,6,Wait(1)
exten => s,7,NoOp(Authenticate)
exten => s,8,Authenticate(${pass}) ; Authentication
exten => s,109,Congestion
exten => s,9,DigitTimeout(5)
exten => s,10,ResponseTimeout(10)
exten => s,11,DBget(cos=disa/${CALLERIDNUM}/cos) ; Class Of Service
exten => s,12,DISA(no-password|${cos}|${clid})
exten => s,1,Authenticate(PASSWORD)
exten => s,2,Dial(Local/${MACRO_EXTEN:1}@CLASS_OF_SERVICE)
; (ex. all-outgoing)exten => s,1,SetVar(CODE_CLIENT=${MACRO_EXTEN:0:4})
exten => s,2,SetVar(CODE_PROJECT=${MACRO_EXTEN:3:4})
exten => s,3,SetVar(DIAL_NUMBER={MACRO_EXTEN:-8})
exten => s,4,NoOp(CLIENT.... : ${CODE_CLIENT})
exten => s,5,NoOp(PROJECT... : ${CODE_PROJECT})
exten => s,6,SetCDRUserField(${CODE_CLIENT}-${CODE_PROJECT})
exten => s,7,Dial(Local/${DIAL_NUMBER}@all-outgoing)
exten => s,8,Congestionexten => s,1,Answer
exten => s,2,Set(AGENTINFO=${AGENTBYCALLERID_${CALLERID(number)}})
exten => s,3,GotoIf($["X${AGENTINFO}" = "X"]?100:4)
exten => s,4,Set(AGENTSTATUS=${AGENT(${AGENTINFO})})
exten => s,5,GotoIf($["${AGENTSTATUS}" = "LOGGEDOUT"]?100:6)
exten => s,6,GotoIf($["${AGENTSTATUS}" = "NOTFOUND"]?100:7)
exten => s,7,PauseQueueMember(|Agent/${AGENTINFO})
exten => s,8,Set(DB(default/Agent/${AGENTINFO})=${PQMSTATUS})
exten => s,9,Playback(scopserv/agent-paused)
exten => s,10,Goto(playmoh,1)
exten => s,100,Playback(scopserv/agent-notconnected)
exten => s,101,Hangup
exten => h,1,Goto(unpause,1)
exten => playmoh,1,MusicOnHold(default)
exten => unpause,1,Set(AGENTSTATUS=${AGENT(${AGENTINFO})})
exten => unpause,2,UnpauseQueueMember(|Agent/${AGENTINFO})
exten => unpause,3,Set(DB(default/Agent/${AGENTINFO})=${PQMSTATUS})
; You must create one or multiple Page Application. ; If you create Page application '100' on tenant 'default', you must ; dial Local/100@default-application ; exten => s,1,Dial(Local/exten@company1-application&Local/exten@lab-application[&...])