Asterisk Database

advertisement
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:
Family1
Key1 => value
Key2 => value
:
:
Keyn => value
Family2
Key1 => value
Key2 => value
Asterisk Database’s Applications
Applications:
DBput
DBget
DBdel
DBdeltree
Dbput
Stores value in the database
Dbput(family/key=${foo})
Set(DB(family/key)=${foo})
CLI Command
CLI*>database put family key
(deprecated)
(new syntax)
Asterisk Database’s Applications
Dbget
Retrieve a value from the database
Dbget(foo=family/key)
Set(foo=${DB(family/key)})
CLI Command
CLI*>database get family key
Dbdel
Delete a key from the database
Dbdel(family/key)
CLI Command
CLI*>database del
(deprecated)
Asterisk Database’s Applications
Dbdeltree
Delete a family or key tree from the database
Dbdeltree(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()
Example
While spying
Dialing # cycles the volume
Dialing * will stop spying and look for another channel to spy on
Call Monitoring
ZapBarge()
Listens in on a conversation on a zap channel. If a channel is not
specified, it will prompt for one
Example
Exten => 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 Monitoring
ExtenSpy()
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 Monitoring
Add the following lines in extensions.conf
exten => *898,1,Answer
exten => *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 Transfer
Transfer a call-in-progress to another destination. There are two types of
transfers:
 Supervised Call Transfer
 Blind Call Transfer
Features.conf settings:
blindxfer => #1
disconnect => *0
atxfer => *2
Call Parking
Places a call on-hold onto a specific parking location so that it can be
picked up by another extension
Features.conf
Parkext => 700
Parkpos => 701-720
Context => parkedcall
Parkingtime => 45
Route by Caller ID
exten => 123/100,1,Answer()
exten => 123/100,2,Playback(tt-weasels)
exten => 123/100,3,Voicemail(123)
exten => 123/100,4,Hangup()
Download