1 | изначальная версия редактировать | |
Пытаюсь написать диалплан, что-то вроде биллинга Ставит лимит на определенные исходящие звонки, в данном примерена все номера, но я потом поменяю
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'
Поправьте меня или укажитена ошибку, я в этом новичок, возможно кое что не так делаю?
2 | No.2 Revision редактировать |
Пытаюсь написать диалплан, что-то вроде биллинга
Ставит лимит на определенные исходящие звонки, в данном примерена примере на все номера, но я потом поменяю
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.