All pastes #741551 Raw Edit

Mine

public text v1 · immutable
·published 2007-10-18 20:12 UTC
rendered paste body
logic 
if no active call for context, make call
else if active call on context is same as number dialed hang it up
else hangup any other active calls on context and call the number dialed

[100]
exten => 456,1,Set(CURRENTNUMBER=9999)
exten => 456,n,Set(CURRENTNUMBER=${DB(100/NUMBER)})
exten => 456,n,GotoIf($[${CURRENTNUMBER} = 9999]?MAKECALL:CHECKNUMBER) 
exten => 456,n(CHECKNUMBER),GotoIf($[${CURRENTNUMBER}=456]?HANGUP:MAKECALL)
exten => 456,n(MAKECALL),HangUp()
exten => 456,n,Set(DB(100/NUMBER)=456)
exten => 456,n,DIAL(SIP/456,20,gWW)
exten => 456,n(HANGUP),HangUP();
exten => 456,n,DBDelete(100/NUMBER)

exten => 123,1,Set(CURRENTNUMBER=9999)
exten => 123,n,Set(CURRENTNUMBER=${DB(100/NUMBER)})
exten => 123,n,GotoIf($[${CURRENTNUMBER} = 9999]?MAKECALL:CHECKNUMBER) 
exten => 123,n(CHECKNUMBER),GotoIf($[${CURRENTNUMBER}=123]?HANGUP:MAKECALL)
exten => 123,n(MAKECALL),HangUp()
exten => 123,n,Set(DB(100/NUMBER)=123)
exten => 123,n,DIAL(SIP/123,20,gWW)
exten => 123,n(HANGUP),HangUP();
exten => 123,n,DBDelete(100/NUMBER)

[200]
exten => 456,1,Set(CURRENTNUMBER=9999)
exten => 456,n,Set(CURRENTNUMBER=${DB(200/NUMBER)})
exten => 456,n,GotoIf($[${CURRENTNUMBER} = 9999]?MAKECALL:CHECKNUMBER) 
exten => 456,n(CHECKNUMBER),GotoIf($[${CURRENTNUMBER}=456]?HANGUP:MAKECALL)
exten => 456,n(MAKECALL),HangUp()
exten => 456,n,Set(DB(200/NUMBER)=456)
exten => 456,n,DIAL(SIP/456,20,gWW)
exten => 456,n(HANGUP),HangUP();
exten => 456,n,DBDelete(200/NUMBER)

exten => 123,1,Set(CURRENTNUMBER=9999)
exten => 123,n,Set(CURRENTNUMBER=${DB(200/NUMBER)})
exten => 123,n,GotoIf($[${CURRENTNUMBER} = 9999]?MAKECALL:CHECKNUMBER) 
exten => 123,n(CHECKNUMBER),GotoIf($[${CURRENTNUMBER}=123]?HANGUP:MAKECALL)
exten => 123,n(MAKECALL),HangUp()
exten => 123,n,Set(DB(200/NUMBER)=123)
exten => 123,n,DIAL(SIP/123,20,gWW)
exten => 123,n(HANGUP),HangUP();
exten => 123,n,DBDelete(200/NUMBER)