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

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

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

ответил 2014-03-11 08:40:33 +0400

eyt5297 Gravatar eyt5297

https://t.me/chan_asteris...

Вот пример подпрограммы для ограничения времени звонка через канал 60 минут в день, последний звонок по не лимитируется. Как запускать подпрограмму, передавать аргументы, и интегрировать в вашу систему предлагаю разобраться самостоятельно, или за вознаграждение.

[subDial_1]
    exten => s,1,NoOp()
     same => n,Set(CCHAN=${ARG1})
     same => n,Gotoif($[${DB(${CCHAN}/date)}  =  ${STRFTIME(${EPOCH},,%Y-%m-%d)}]?next)
       same => n,Set(DB(${CCHAN}/date)=${STRFTIME(${EPOCH},,%Y-%m-%d)})
       same => n,Set(DB(${CCHAN}/ans_time)=0)
     same => n(next),NoOp(${STRFTIME(${EPOCH},,%Y-%m-%d)})
     same => n,Gotoif($[ ${DB(${CCHAN}/ans_time)} >= 3599 ]?end)
       same => n,Dial(Dongle/${CCHAN}/+${ARG2})
     same => n(end),Return()

    exten => h,1,NoOp(${CCHAN}-${DIALSTATUS}-${ANSWEREDTIME})
    same => n,Gotoif($[${DIALSTATUS} != ANSWER ]?end)
      same => n,Set(DB(${CCHAN}/ans_time)=$[${DB(${CCHAN}/ans_time)} + ${ANSWEREDTIME}])
    same => n(end),NoOp()

Вот пример подпрограммы для ограничения времени звонка через канал 60 минут в день, последний звонок по не лимитируется. Как запускать подпрограмму, передавать аргументы, и интегрировать в вашу систему предлагаю разобраться самостоятельно, самостоятельно или за вознаграждение.

[subDial_1]
    exten => s,1,NoOp()
     same => n,Set(CCHAN=${ARG1})
     same => n,Gotoif($[${DB(${CCHAN}/date)}  =  ${STRFTIME(${EPOCH},,%Y-%m-%d)}]?next)
       same => n,Set(DB(${CCHAN}/date)=${STRFTIME(${EPOCH},,%Y-%m-%d)})
       same => n,Set(DB(${CCHAN}/ans_time)=0)
     same => n(next),NoOp(${STRFTIME(${EPOCH},,%Y-%m-%d)})
     same => n,Gotoif($[ ${DB(${CCHAN}/ans_time)} >= 3599 ]?end)
       same => n,Dial(Dongle/${CCHAN}/+${ARG2})
     same => n(end),Return()

    exten => h,1,NoOp(${CCHAN}-${DIALSTATUS}-${ANSWEREDTIME})
    same => n,Gotoif($[${DIALSTATUS} != ANSWER ]?end)
      same => n,Set(DB(${CCHAN}/ans_time)=$[${DB(${CCHAN}/ans_time)} + ${ANSWEREDTIME}])
    same => n(end),NoOp()

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.