Asterisk Database (AstDB) Database data are grouped in families and identified with a key that is...

Post on 27-Dec-2015

226 views 0 download

Transcript of Asterisk Database (AstDB) Database data are grouped in families and identified with a key that is...

Asterisk Database (AstDB)

Database data are grouped in families and identified with a key that is unique within the family. AstDB’s structure is similar to the following:

Family1Key1 => valueKey2 => value::Keyn => valueFamily2Key1 => valueKey2 => value

Asterisk Database’s Applications

Applications:DBputDBgetDBdelDBdeltree

DbputStores value in the databaseDbput(family/key=${foo}) (deprecated)Set(DB(family/key)=${foo}) (new syntax)CLI CommandCLI*>database put family key

Asterisk Database’s Applications

DbgetRetrieve a value from the databaseDbget(foo=family/key) (deprecated)Set(foo=${DB(family/key)})CLI CommandCLI*>database get family keyDbdelDelete a key from the databaseDbdel(family/key)CLI CommandCLI*>database del

Asterisk Database’s Applications

DbdeltreeDelete a family or key tree from the databaseDbdeltree(family/keytree)

Call Forwarding

Forward the incoming call to some other number, or forward the incoming call to some other number in case of busy or unavailable

Two types of abbreviations are used:

Call Forward IMdiate (CFIM) Call Forward on BuSy (CFBS)

Fowarding[forward-test]

exten => *21*,1,PlayBack(thanks)exten => *21*,2,read(for)exten => *21*,3,Set(DB(CFIM/${CALLERID(num)})=${for})

exten => 801,1,Macro(callforward,${EXTEN})[macro-callforward]

exten => s,1,Set(temp=${DB(CFIM/${ARG1})})exten => s,n,GotoIf(${temp}?cfim:nocfim)exten => s,n(cfim),Dial(SIP/${temp})exten => s,n,hangup;Unconditional forward exten => s,n(nocfim),Dial(SIP/${ARG1})

Call Monitoring

Taps into a phone call between a caller and a callee. This is possible with:

ChanSpy()ZapBarge()ExtenSpy()

ChanSpy()ExampleWhile spying Dialing # cycles the volumeDialing * will stop spying and look for another channel to spy

on

Call MonitoringZapBarge()Listens in on a conversation on a zap channel. If a channel is

not specified, it will prompt for one

ExampleExten => 8159,1,ZapBarge()Exten => 8159,2,Hangup()

If you dial 8159, you are asked which line you want to listen on; for zap/1-1 you will press 1# and for zap/25-1 you will press 25#

Call MonitoringExtenSpy()Listen in on a channel, and also whisper into it if necessary

Example[snoop]

exten => _555/705,1,ExtenSpy(|v(4))

[705] exten => 705,1, dail(IAX2/trunk_3) include => snoop

Call MonitoringAdd the following lines in extensions.conf  exten => *898,1,Answerexten => *898,2,Wait(1)exten => *898,3,Goto(spy,s,1)exten => *898,4,Hangup [spy] exten => s,1,BackGround(please-enter-the)exten => s,n,BackGround(extension)exten => s,n,Set(TIMEOUT(digit)=5)exten => s,n,Set(TIMEOUT(response)=10)exten => s,n,WaitExten(10)exten => _XXXX,1,ChanSpy(SIP/${EXTEN}|q)

Call TransferTransfer a call-in-progress to another destination. There are

two types of transfers:

Supervised Call TransferBlind Call Transfer

Features.conf settings:

blindxfer => #1disconnect => *0atxfer => *2

Call ParkingPlaces a call on-hold onto a specific parking location so that it

can be picked up by another extension

Features.confParkext => 700Parkpos => 701-720Context => parkedcallParkingtime => 45

Route by Caller IDexten => 123/100,1,Answer()

   exten => 123/100,2,Playback(tt-weasels)    exten => 123/100,3,Voicemail(123)    exten => 123/100,4,Hangup()