1 | изначальная версия редактировать | |
тогда примерно так
;входящий контекст
[outbound-routes]
;запоминаем на какой номер кто звонил
exten => _XXXXXXXX.,1,Set(DB(lastcalls/trunk1/${EXTEN})=${CDR(src)})
;звоним в транк
exten => _XXXXXXXX.,n,Dial(SIP/trunk1/${EXTEN})
;входящий контекст, номер trunk1 это hotline|did со шлюза или от прова
[inbound]
;проверяем, есть ли номер в списке для этого транка
exten => trunk1,1,GotoIf($[foo${DB(lastcalls/trunk1/${CDR(src)})} = foo]?inbound:toext)
;если что-то имеется, то соединяем (переходим в контекст с локальными абонентами)
exten => trunk1,n(toext),GoTo(ext-local,${DB(lastcalls/trunk1/${CDR(src)})},1)
;если не имеется то как обычно, например в ИВР
exten => trunk1,n(inbound),GoTo(IVR,s,1)
Чтобы не забивать astdb можно ночью по расписанию делать так:
asterisk -rx "database del lastcalls"
2 | No.2 Revision редактировать |
тогда примерно так
;входящий ;исходящий контекст
[outbound-routes]
;запоминаем на какой номер кто звонил
exten => _XXXXXXXX.,1,Set(DB(lastcalls/trunk1/${EXTEN})=${CDR(src)})
;звоним в транк
exten => _XXXXXXXX.,n,Dial(SIP/trunk1/${EXTEN})
;входящий контекст, номер trunk1 это hotline|did со шлюза или от прова
[inbound]
;проверяем, есть ли номер в списке для этого транка
exten => trunk1,1,GotoIf($[foo${DB(lastcalls/trunk1/${CDR(src)})} = foo]?inbound:toext)
;если что-то имеется, то соединяем (переходим в контекст с локальными абонентами)
exten => trunk1,n(toext),GoTo(ext-local,${DB(lastcalls/trunk1/${CDR(src)})},1)
;если не имеется то как обычно, например в ИВР
exten => trunk1,n(inbound),GoTo(IVR,s,1)
Чтобы не забивать astdb можно ночью по расписанию делать так:
asterisk -rx "database del lastcalls"
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.