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

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

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

спросил 2014-01-22 15:56:58 +0400

Diana92 Gravatar Diana92

диалплан биллинг

Пытаюсь написать диалплан, что-то вроде биллинга Ставит лимит на определенные исходящие звонки, в данном примерена все номера, но я потом поменяю

exten => _X.,1,MYSQL(Connect connid localhost asterisk_user Some_Pass_Aster01 asterisk)
exten => _X.,n,MYSQL(Query resultid ${connid}SELECT\SUM(billsec)\FROM\cdr\WHERE\src=${CALLERID(num)})
exten => _X.,n,MYSQL(Fetch fetchid ${resultid} billing)
exten => _X.,n,MYSQL(Clear ${resultid})
exten => _X.,n,GotoIf($["${fetchid}"="1"]?true:false)
exten => _X.,n,GotoIf($["${billing}" < "1"]?call:end)
exten => _X.,n(call),Dial(SIP/300)
exten => _X.,n,MYSQL(Clear ${resultid})
exten => _X.,n,Hangup()
exten => _X.,n(false),Playback(goodbye)
exten => _X.,n,Hangup()

есть у меня база, создала я там табличку cdr, он данные о звонках берет и записывает, все работает нормально

только вот проблема в диалплане, делаю звонок он мне говорит goodbye, значит дело в запросе, fetchid возвращает 0 Но почему?

И да на всякий случай лог

== Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Executing [300@from-internal:1] MYSQL("SIP/301-00000002", "Connect connid localhost asterisk_user Some_Pass_Aster01 asterisk") in new stack
    -- Executing [300@from-internal:2] MYSQL("SIP/301-00000002", "Query resultid 3SELECT\SUM(billsec)\FROM\cdr\WHERE\src=301") in new stack
    -- Executing [300@from-internal:3] MYSQL("SIP/301-00000002", "Fetch found  billing") in new stack
    -- Executing [300@from-internal:4] MYSQL("SIP/301-00000002", "Clear ") in new stack
    -- Executing [300@from-internal:5] GotoIf("SIP/301-00000002", "0?true:false") in new stack
    -- Goto (from-internal,300,10)
    -- Executing [300@from-internal:10] Playback("SIP/301-00000002", "goodbye") in new stack
    -- <SIP/301-00000002> Playing 'goodbye.gsm' (language 'RU')
    -- Executing [300@from-internal:11] Hangup("SIP/301-00000002", "") in new stack
  == Spawn extension (from-internal, 300, 11) exited non-zero on 'SIP/301-00000002'
    -- Executing [h@from-internal:1] Macro("SIP/301-00000002", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("SIP/301-00000002", "1?endmixmoncheck") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s@macro-hangupcall:9] NoOp("SIP/301-00000002", "End of MIXMON check") in new stack
    -- Executing [s@macro-hangupcall:10] GotoIf("SIP/301-00000002", "1?nomeetmemon") in new stack
    -- Goto (macro-hangupcall,s,28)
    -- Executing [s@macro-hangupcall:28] NoOp("SIP/301-00000002", "End of MEETME check") in new stack
    -- Executing [s@macro-hangupcall:29] GotoIf("SIP/301-00000002", "1?noautomon") in new stack
    -- Goto (macro-hangupcall,s,34)
    -- Executing [s@macro-hangupcall:34] NoOp("SIP/301-00000002", "TOUCH_MONITOR_OUTPUT=") in new stack
    -- Executing [s@macro-hangupcall:35] GotoIf("SIP/301-00000002", "1?noautomon2") in new stack
    -- Goto (macro-hangupcall,s,41)
    -- Executing [s@macro-hangupcall:41] NoOp("SIP/301-00000002", "MONITOR_FILENAME=") in new stack
    -- Executing [s@macro-hangupcall:42] GotoIf("SIP/301-00000002", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,45)
    -- Executing [s@macro-hangupcall:45] GotoIf("SIP/301-00000002", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,48)
    -- Executing [s@macro-hangupcall:48] GotoIf("SIP/301-00000002", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,50)
    -- Executing [s@macro-hangupcall:50] AGI("SIP/301-00000002", "hangup.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/hangup.agi
    -- <SIP/301-00000002>AGI Script hangup.agi completed, returning 0
    -- Executing [s@macro-hangupcall:51] Hangup("SIP/301-00000002", "") in new stack
  == Spawn extension (macro-hangupcall, s, 51) exited non-zero on 'SIP/301-00000002' in macro 'hangupcall'
  == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/301-00000002'

Поправьте меня или укажитена ошибку, я в этом новичок, возможно кое что не так делаю?

диалплан биллинг

Пытаюсь написать диалплан, что-то вроде биллинга Ставит лимит на определенные исходящие звонки, в данном примерена примере на все номера, но я потом поменяю

exten => _X.,1,MYSQL(Connect connid localhost asterisk_user Some_Pass_Aster01 asterisk)
exten => _X.,n,MYSQL(Query resultid ${connid}SELECT\SUM(billsec)\FROM\cdr\WHERE\src=${CALLERID(num)})
exten => _X.,n,MYSQL(Fetch fetchid ${resultid} billing)
exten => _X.,n,MYSQL(Clear ${resultid})
exten => _X.,n,GotoIf($["${fetchid}"="1"]?true:false)
exten => _X.,n,GotoIf($["${billing}" < "1"]?call:end)
exten => _X.,n(call),Dial(SIP/300)
exten => _X.,n,MYSQL(Clear ${resultid})
exten => _X.,n,Hangup()
exten => _X.,n(false),Playback(goodbye)
exten => _X.,n,Hangup()

есть у меня база, создала я там табличку cdr, он данные о звонках берет и записывает, все работает нормально

только вот проблема в диалплане, делаю звонок он мне говорит goodbye, значит дело в запросе, fetchid возвращает 0 Но почему?

И да на всякий случай лог

== Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Executing [300@from-internal:1] MYSQL("SIP/301-00000002", "Connect connid localhost asterisk_user Some_Pass_Aster01 asterisk") in new stack
    -- Executing [300@from-internal:2] MYSQL("SIP/301-00000002", "Query resultid 3SELECT\SUM(billsec)\FROM\cdr\WHERE\src=301") in new stack
    -- Executing [300@from-internal:3] MYSQL("SIP/301-00000002", "Fetch found  billing") in new stack
    -- Executing [300@from-internal:4] MYSQL("SIP/301-00000002", "Clear ") in new stack
    -- Executing [300@from-internal:5] GotoIf("SIP/301-00000002", "0?true:false") in new stack
    -- Goto (from-internal,300,10)
    -- Executing [300@from-internal:10] Playback("SIP/301-00000002", "goodbye") in new stack
    -- <SIP/301-00000002> Playing 'goodbye.gsm' (language 'RU')
    -- Executing [300@from-internal:11] Hangup("SIP/301-00000002", "") in new stack
  == Spawn extension (from-internal, 300, 11) exited non-zero on 'SIP/301-00000002'
    -- Executing [h@from-internal:1] Macro("SIP/301-00000002", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("SIP/301-00000002", "1?endmixmoncheck") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s@macro-hangupcall:9] NoOp("SIP/301-00000002", "End of MIXMON check") in new stack
    -- Executing [s@macro-hangupcall:10] GotoIf("SIP/301-00000002", "1?nomeetmemon") in new stack
    -- Goto (macro-hangupcall,s,28)
    -- Executing [s@macro-hangupcall:28] NoOp("SIP/301-00000002", "End of MEETME check") in new stack
    -- Executing [s@macro-hangupcall:29] GotoIf("SIP/301-00000002", "1?noautomon") in new stack
    -- Goto (macro-hangupcall,s,34)
    -- Executing [s@macro-hangupcall:34] NoOp("SIP/301-00000002", "TOUCH_MONITOR_OUTPUT=") in new stack
    -- Executing [s@macro-hangupcall:35] GotoIf("SIP/301-00000002", "1?noautomon2") in new stack
    -- Goto (macro-hangupcall,s,41)
    -- Executing [s@macro-hangupcall:41] NoOp("SIP/301-00000002", "MONITOR_FILENAME=") in new stack
    -- Executing [s@macro-hangupcall:42] GotoIf("SIP/301-00000002", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,45)
    -- Executing [s@macro-hangupcall:45] GotoIf("SIP/301-00000002", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,48)
    -- Executing [s@macro-hangupcall:48] GotoIf("SIP/301-00000002", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,50)
    -- Executing [s@macro-hangupcall:50] AGI("SIP/301-00000002", "hangup.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/hangup.agi
    -- <SIP/301-00000002>AGI Script hangup.agi completed, returning 0
    -- Executing [s@macro-hangupcall:51] Hangup("SIP/301-00000002", "") in new stack
  == Spawn extension (macro-hangupcall, s, 51) exited non-zero on 'SIP/301-00000002' in macro 'hangupcall'
  == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/301-00000002'

Поправьте меня или укажитена укажите на ошибку, я в этом новичок, возможно кое что не так делаю?

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