rendered paste bodylogic
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)