Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

ответил 2011-02-02 23:40:27 +0400

switch Gravatar switch

http://lynks.ru/

тогда примерно так

;входящий контекст
[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"

тогда примерно так

;входящий ;исходящий контекст
[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.