Страница 2 из 2

Re: callback с mysql

Добавлено: 29 дек 2015, 03:01
_Pavel_
Смотрим в этот контекст:

Код: Выделить всё

[ivr-pass]
exten => s,1,GoToIf($["${callback}" != "0"]?callback,s,1)
exten => s,n,Background(/var/lib/asterisk/sounds/ru/dir-welcome) ;
exten => s,n,WaitExten(10)
exten => _XXXX,1,GoToIf($["${EXTEN}" = "${pin}"]?ivr,s,1)
exten => _XXXX,n,Hangup

Откуда мы тут получаем переменную pin ? Откуда * знает что в ней должен содержаться значение поля pin из базы SQL ?

Re: callback с mysql

Добавлено: 29 дек 2015, 04:47
vitas
Откуда мы тут получаем переменную pin ? Откуда * знает что в ней должен содержаться значение поля pin из базы SQL ?
вроде переменная pin запрашивается из таблицы SQL

Код: Выделить всё

    -- Executing [s@fromgorod:3] MYSQL("SIP/call-inband-outband-0000005d", "Connect connid localhost asterisk passwordMysqlasterisk") in new stack
    -- Executing [s@fromgorod:4] MYSQL("SIP/call-inband-outband-0000005d", "Query resultid 1 select pin, callback from callback where phone=06XXXXXXXX") in new stack
    -- Executing [s@fromgorod:5] MYSQL("SIP/call-inband-outband-0000005d", "Fetch fetchid 2 pin callback") in new stack
    -- Executing [s@fromgorod:6] NoOp("SIP/call-inband-outband-0000005d", "pin -> 3212 callback# -> 06XXXXXXXX") in new stack
дело в том что без callback в ivr-pass, с прежней конфигурацией SQL и без выполнения скрипта .call то есть с такой конфигурацией:


Код: Выделить всё

mysql> SELECT * FROM callback WHERE 1;
+------------+------+----------+-------+
| phone      | pin  | callback | user  |
+------------+------+----------+-------+
| 06XXXXXXXX | 3212 |        0 | Vitas |
+------------+------+----------+-------+

Код: Выделить всё

[ivr-pass]
exten => s,1,Background(/var/lib/asterisk/sounds/ru/dir-welcome)
exten => s,n,WaitExten(10)
exten => _XXXX,1,GoToIf($["${EXTEN}" = "${pin}"]?ivr,s,1)
exten => _XXXX,n,Hangup
exten => t,1,Hangup
exten => i,1,Hangup
extension.conf
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:

Код: Выделить всё

[ivr]
exten => s,1,Set(inum=0)
exten => s,n,Set(tnum=0)
exten => s,n,Background(/var/lib/asterisk/sounds/ru/dir-welcome)
exten => s,n,WaitExten(10)
exten => 1,1,GoTo(ivr-out,s,1)
exten => 2,1,GoTo(ivr-ch-pin,s,1)
exten => i,1,Playback(pbx-invalid)
exten => i,n,Set(inum=$[${inum} + 1])
exten => i,n,GotoIf($["${inum}" < "3"]?s,1)
exten => i,n,Hangup()
exten => t,1,Set(tnum=$[${tnum} + 1])
exten => t,n,GotoIf($["${tnum}" < "3"]?s,1)
exten => t,n,Hangup()
[ivr-out]
exten => s,1,Set(inum=0)
exten => s,n,Set(tnum=0)
exten => s,n,Background(beep)
exten => s,n,WaitExten(10)
exten => _0[1-6]XXXXXXXX,1,Dial(SIP/call-inband-outband/${EXTEN})
exten => _01XXXXXXXX,n,Hangup
;exten => 01XXXXXXXX,1,Dial(SIP/bla2/${EXTEN}
;exten => 01XXXXXXXX ,n,Hangup
;exten => 8[2-8]XXXXXXXXX,1,Dial(SIP/blabla3/${EXTEN}
;exten => 8[2-8]XXXXXXXXX ,n,Hangup
exten => i,1,Playback(pbx-invalid)
exten => i,n,Set(inum=$[${inum} + 1])
exten => i,n,GotoIf($["${inum}" < "3"]?s,1)
exten => i,n,Hangup()
exten => t,1,Set(tnum=$[${tnum} + 1])
exten => t,n,GotoIf($["${tnum}" < "3"]?s,1)
exten => t,n,Hangup()

работает. > звоню на SIP, * отвечает и проигрывает /var/lib/asterisk/sounds/ru/dir-welcome, я ввожу свой pin опять воспроизводится /var/lib/asterisk/sounds/ru/dir-welcome жму на 1, появляется гудок и набираю номер из контекста ivr-out > разговариваю...

CLI>

Код: Выделить всё

  == Using SIP RTP CoS mark 5
    -- Executing [s@fromgorod:1] NoOp("SIP/call-inband-outband-00000060", " "06XXXXXXXXX" <06XXXXXXXXX>") in new stack
    -- Executing [s@fromgorod:2] NoOp("SIP/call-inband-outband-00000060", "29.12.2015-01:17:42") in new stack
    -- Executing [s@fromgorod:3] MYSQL("SIP/call-inband-outband-00000060", "Connect connid localhost asterisk passwordMysql asterisk") in new stack
    -- Executing [s@fromgorod:4] MYSQL("SIP/call-inband-outband-00000060", "Query resultid 1 select pin, callback from callback where phone=06XXXXXXXXX") in new stack
    -- Executing [s@fromgorod:5] MYSQL("SIP/call-inband-outband-00000060", "Fetch fetchid 2 pin callback") in new stack
    -- Executing [s@fromgorod:6] NoOp("SIP/call-inband-outband-00000060", "pin -> 3212 callback# -> 0") in new stack
    -- Executing [s@fromgorod:7] MYSQL("SIP/call-inband-outband-00000060", "Clear 2") in new stack
    -- Executing [s@fromgorod:8] MYSQL("SIP/call-inband-outband-00000060", "Disconnect 1") in new stack
    -- Executing [s@fromgorod:9] GotoIf("SIP/call-inband-outband-00000060", "1?ivr-pass,s,1") in new stack
    -- Goto (ivr-pass,s,1)
    -- Executing [s@ivr-pass:1] GotoIf("SIP/call-inband-outband-00000060", "0?callback,s,1") in new stack
    -- Executing [s@ivr-pass:2] BackGround("SIP/call-inband-outband-00000060", "/var/lib/asterisk/sounds/ru/dir-welcome") in new stack
    -- <SIP/call-inband-outband-00000060> Playing '/var/lib/asterisk/sounds/ru/dir-welcome.alaw' (language 'en')
    -- Executing [s@ivr-pass:3] WaitExten("SIP/call-inband-outband-00000060", "10") in new stack
  == CDR updated on SIP/call-inband-outband-00000060
    -- Executing [3212@ivr-pass:1] GotoIf("SIP/call-inband-outband-00000060", "1?ivr,s,1") in new stack
    -- Goto (ivr,s,1)
    -- Executing [s@ivr:1] Set("SIP/call-inband-outband-00000060", "inum=0") in new stack
    -- Executing [s@ivr:2] Set("SIP/call-inband-outband-00000060", "tnum=0") in new stack
    -- Executing [s@ivr:3] BackGround("SIP/call-inband-outband-00000060", "/var/lib/asterisk/sounds/ru/dir-welcome") in new stack
    -- <SIP/call-inband-outband-00000060> Playing '/var/lib/asterisk/sounds/ru/dir-welcome.alaw' (language 'en')
    -- Executing [s@ivr:4] WaitExten("SIP/call-inband-outband-00000060", "10") in new stack
  == CDR updated on SIP/call-inband-outband-00000060
    -- Executing [1@ivr:1] Goto("SIP/call-inband-outband-00000060", "ivr-out,s,1") in new stack
    -- Goto (ivr-out,s,1)
    -- Executing [s@ivr-out:1] Set("SIP/call-inband-outband-00000060", "inum=0") in new stack
    -- Executing [s@ivr-out:2] Set("SIP/call-inband-outband-00000060", "tnum=0") in new stack
    -- Executing [s@ivr-out:3] BackGround("SIP/call-inband-outband-00000060", "beep") in new stack
    -- <SIP/call-inband-outband-00000060> Playing 'beep.gsm' (language 'en')
    -- Executing [s@ivr-out:4] WaitExten("SIP/call-inband-outband-00000060", "10") in new stack
  == CDR updated on SIP/call-inband-outband-00000060
    -- Executing [01XXXXXXXX@ivr-out:1] Dial("SIP/call-inband-outband-00000060", "SIP/call-inband-outband/01XXXXXXXX") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/call-inband-outband/01XXXXXXXX
    -- SIP/call-inband-outband-00000061 is ringing
    -- SIP/call-inband-outband-00000061 is making progress passing it to SIP/call-inband-outband-00000060
    -- SIP/call-inband-outband-00000061 answered SIP/call-inband-outband-00000060
    -- Remotely bridging SIP/call-inband-outband-00000060 and SIP/call-inband-outband-00000061
  == Spawn extension (ivr-out, 01XXXXXXXX, 1) exited non-zero on 'SIP/call-inband-outband-00000060

получается с изменением таблицы SQL и включением callback > callaback работает а перехода в контекст ivr нет и как только ввожу pin > * срывает линию

конфигурация с изменением в SQL
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:

Код: Выделить всё

mysql> SELECT * FROM callback WHERE 1;
+------------+------+------------+-------+
| phone      | pin  | callback   | user  |
+------------+------+------------+-------+
| 06XXXXXXXX| 3212 | 06XXXXXXXX | Vitas |
+------------+------+------------+-------+

Код: Выделить всё

[ivr-pass]
exten => s,1,GoToIf($["${callback}" != "0"]?callback,s,1)
exten => s,n,Background(/var/lib/asterisk/sounds/ru/dir-welcome) ;
exten => s,n,WaitExten(10)
exten => _XXXX,1,GoToIf($["${EXTEN}" = "${pin}"]?ivr,s,1)
exten => _XXXX,n,Hangup
exten => t,1,Hangup
exten => i,1,Hangup

Код: Выделить всё

  == Using SIP RTP CoS mark 5
    -- Executing [s@fromgorod:1] NoOp("SIP/call-inband-outband-00000046", " "06XXXXXXXXX" <06XXXXXXXXX>") in new stack
    -- Executing [s@fromgorod:2] NoOp("SIP/call-inband-outband-00000046", "28.12.2015-23:19:43") in new stack
    -- Executing [s@fromgorod:3] MYSQL("SIP/call-inband-outband-00000046", "Connect connid localhost asterisk passwordMysql asterisk") in new stack
    -- Executing [s@fromgorod:4] MYSQL("SIP/call-inband-outband-00000046", "Query resultid 1 select pin, callback from callback where phone=06XXXXXXXXX") in new stack
    -- Executing [s@fromgorod:5] MYSQL("SIP/call-inband-outband-00000046", "Fetch fetchid 2 pin callback") in new stack
    -- Executing [s@fromgorod:6] NoOp("SIP/call-inband-outband-00000046", "pin -> 3212 callback# -> 06XXXXXXXXX") in new stack
    -- Executing [s@fromgorod:7] MYSQL("SIP/call-inband-outband-00000046", "Clear 2") in new stack
    -- Executing [s@fromgorod:8] MYSQL("SIP/call-inband-outband-00000046", "Disconnect 1") in new stack
    -- Executing [s@fromgorod:9] GotoIf("SIP/call-inband-outband-00000046", "1?ivr-pass,s,1") in new stack
    -- Goto (ivr-pass,s,1)
    -- Executing [s@ivr-pass:1] GotoIf("SIP/call-inband-outband-00000046", "1?callback,s,1") in new stack
    -- Goto (callback,s,1)
    -- Executing [s@callback:1] AGI("SIP/call-inband-outband-00000046", "/usr/share/asterisk/agi-bin/callback.agi,06XXXXXXXXX,1451344783.146") in new stack
    -- Launched AGI Script /usr/share/asterisk/agi-bin/callback.agi
    -- Attempting call on Dongle/dongle0/06XXXXXXXXX for s@ivr-pass:2 (Retry 1)
    -- <SIP/call-inband-outband-00000046>AGI Script /usr/share/asterisk/agi-bin/callback.agi completed, returning 0
    -- Executing [s@callback:2] Hangup("SIP/call-inband-outband-00000046", "") in new stack
  == Spawn extension (callback, s, 2) exited non-zero on 'SIP/call-inband-outband-00000046'
    -- Executing [s@ivr-pass:2] BackGround("Dongle/dongle0-010000004c", "/var/lib/asterisk/sounds/ru/dir-welcome") in new stack
    -- <Dongle/dongle0-010000004c> Playing '/var/lib/asterisk/sounds/ru/dir-welcome.alaw' (language 'en')
    -- Executing [s@ivr-pass:3] WaitExten("Dongle/dongle0-010000004c", "10") in new stack
  == CDR updated on Dongle/dongle0-010000004c
    -- Executing [3212@ivr-pass:1] GotoIf("Dongle/dongle0-010000004c", "0?ivr,s,1") in new stack
    -- Executing [3212@ivr-pass:2] Hangup("Dongle/dongle0-010000004c", "") in new stack
  == Spawn extension (ivr-pass, 3212, 2) exited non-zero on 'Dongle/dongle0-010000004c'
[Dec 28 23:20:02] NOTICE[4199]: pbx_spool.c:402 attempt_thread: Call completed to Dongle/dongle0/06XXXXXXXXX
В чем же тут может быть проблема никак не пойму ... :?:

приметил что при переходе с ivr-pass в ivr, вижу такую строку

Код: Выделить всё

    -- Executing [3212@ivr-pass:1] GotoIf("SIP/call-inband-outband-00000060", "1?ivr,s,1") in new stack
    -- Goto (ivr,s,1)
    -- Executing [s@ivr:1] Set("SIP/call-inband-outband-00000060", "inum=0") in new stack
    -- Executing [s@ivr:2] Set("SIP/call-inband-outband-00000060", "tnum=0") in new stack
    -- Executing [s@ivr:3] BackGround("SIP/call-inband-outband-00000060", "/var/lib/asterisk/sounds/ru/dir-welcome") in new stack
а вот когда перехода нет

Код: Выделить всё

    -- Executing [3212@ivr-pass:1] GotoIf("Dongle/dongle0-010000004c", "0?ivr,s,1") in new stack
    -- Executing [3212@ivr-pass:2] Hangup("Dongle/dongle0-010000004c", "") in new stack
  == Spawn extension (ivr-pass, 3212, 2) exited non-zero on 'Dongle/dongle0-010000004c'
[Dec 28 23:20:02] NOTICE[4199]: pbx_spool.c:402 attempt_thread: Call completed to Dongle/dongle0/06XXXXXXXX
перед ?ivr стоит или 1 или 0 при каких обстоятельствах эти значения меняются :?:

Re: callback с mysql

Добавлено: 29 дек 2015, 05:07
_Pavel_
У нас новый вызов создается через call-file и сразу кидается в контекст ivr-pass.
Если мы в этом контексте не определили что перемененная pin = чему-то, то что должно произойти?
В переменной гипотетически должно быть значение NULL. Откуда в этой переменной взяться твоему пинкоду который лежит в SQL таблице?
Переменная в твоем случае между разными вызовами не передается.
Отсюда вывод: либо передавать, либо запросить ее снова из SQL.

Программирование не занимался?
перед ?ivr стоит или 1 или 0 при каких обстоятельствах эти значения меняются :?:
Истина/Ложь

Re: callback с mysql

Добавлено: 29 дек 2015, 22:27
vitas
Павел, спасибо, ты прав! callback когда перезванивал он не в курсе pin кода и где его искать, я попробовал 2-ой вариант - запрос пина из SQL в контексте ivr-pass и заработало cf. лог CLI>

CLI>
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:

Код: Выделить всё

 == Using SIP RTP CoS mark 5
    -- Executing [s@fromgorod:1] NoOp("SIP/call-inband-outband-0000000a", " "06XXXXXXXX" <06XXXXXXXX>") in new stack
    -- Executing [s@fromgorod:2] NoOp("SIP/call-inband-outband-0000000a", "29.12.2015-18:42:04") in new stack
    -- Executing [s@fromgorod:3] MYSQL("SIP/call-inband-outband-0000000a", "Connect connid localhost asterisk passwordMysql asterisk") in new stack
    -- Executing [s@fromgorod:4] MYSQL("SIP/call-inband-outband-0000000a", "Query resultid 1 select pin, callback from callback where phone=06XXXXXXXX") in new stack
    -- Executing [s@fromgorod:5] MYSQL("SIP/call-inband-outband-0000000a", "Fetch fetchid 2 pin callback") in new stack
    -- Executing [s@fromgorod:6] NoOp("SIP/call-inband-outband-0000000a", "pin -> 3212 callback# -> 06XXXXXXXX") in new stack
    -- Executing [s@fromgorod:7] MYSQL("SIP/call-inband-outband-0000000a", "Clear 2") in new stack
    -- Executing [s@fromgorod:8] MYSQL("SIP/call-inband-outband-0000000a", "Disconnect 1") in new stack
    -- Executing [s@fromgorod:9] GotoIf("SIP/call-inband-outband-0000000a", "1?ivr-pass,s,1") in new stack
    -- Goto (ivr-pass,s,1)
    -- Executing [s@ivr-pass:1] GotoIf("SIP/call-inband-outband-0000000a", "1?callback,s,1") in new stack
    -- Goto (callback,s,1)
    -- Executing [s@callback:1] AGI("SIP/call-inband-outband-0000000a", "/usr/share/asterisk/agi-bin/callback.agi,06XXXXXXXX,1451414524.15") in new stack
    -- Launched AGI Script /usr/share/asterisk/agi-bin/callback.agi
    -- Attempting call on Dongle/dongle0/06XXXXXXXX for s@ivr-pass:2 (Retry 1)
    -- <SIP/call-inband-outband-0000000a>AGI Script /usr/share/asterisk/agi-bin/callback.agi completed, returning 0
    -- Executing [s@callback:2] Hangup("SIP/call-inband-outband-0000000a", "") in new stack
  == Spawn extension (callback, s, 2) exited non-zero on 'SIP/call-inband-outband-0000000a'
    -- Executing [s@ivr-pass:2] MYSQL("Dongle/dongle0-0100000005", "Connect connid localhost asterisk passwordMysql asterisk") in new stack
    -- Executing [s@ivr-pass:3] MYSQL("Dongle/dongle0-0100000005", "Query resultid 1 select pin from callback") in new stack
    -- Executing [s@ivr-pass:4] MYSQL("Dongle/dongle0-0100000005", "Fetch fetchid 2 pin") in new stack
    -- Executing [s@ivr-pass:5] NoOp("Dongle/dongle0-0100000005", "pin -> 3212") in new stack
    -- Executing [s@ivr-pass:6] MYSQL("Dongle/dongle0-0100000005", "Clear 2") in new stack
    -- Executing [s@ivr-pass:7] MYSQL("Dongle/dongle0-0100000005", "Disconnect 1") in new stack
    -- Executing [s@ivr-pass:8] BackGround("Dongle/dongle0-0100000005", "/var/lib/asterisk/sounds/ru/dir-welcome") in new stack
    -- <Dongle/dongle0-0100000005> Playing '/var/lib/asterisk/sounds/ru/dir-welcome.alaw' (language 'en')
    -- Executing [s@ivr-pass:9] WaitExten("Dongle/dongle0-0100000005", "10") in new stack
  == CDR updated on Dongle/dongle0-0100000005
    -- Executing [3212@ivr-pass:1] GotoIf("Dongle/dongle0-0100000005", "1?ivr,s,1") in new stack
    -- Goto (ivr,s,1)
    -- Executing [s@ivr:1] Set("Dongle/dongle0-0100000005", "inum=0") in new stack
    -- Executing [s@ivr:2] Set("Dongle/dongle0-0100000005", "tnum=0") in new stack
    -- Executing [s@ivr:3] BackGround("Dongle/dongle0-0100000005", "/var/lib/asterisk/sounds/ru/dir-welcome") in new stack
    -- <Dongle/dongle0-0100000005> Playing '/var/lib/asterisk/sounds/ru/dir-welcome.alaw' (language 'en')
    -- Executing [s@ivr:4] WaitExten("Dongle/dongle0-0100000005", "10") in new stack
  == CDR updated on Dongle/dongle0-0100000005
    -- Executing [1@ivr:1] Goto("Dongle/dongle0-0100000005", "ivr-out,s,1") in new stack
    -- Goto (ivr-out,s,1)
    -- Executing [s@ivr-out:1] Set("Dongle/dongle0-0100000005", "inum=0") in new stack
    -- Executing [s@ivr-out:2] Set("Dongle/dongle0-0100000005", "tnum=0") in new stack
    -- Executing [s@ivr-out:3] BackGround("Dongle/dongle0-0100000005", "beep") in new stack
    -- <Dongle/dongle0-0100000005> Playing 'beep.gsm' (language 'en')
    -- Executing [s@ivr-out:4] WaitExten("Dongle/dongle0-0100000005", "10") in new stack
  == CDR updated on Dongle/dongle0-0100000005
    -- Executing [01XXXXXXXX@ivr-out:1] Dial("Dongle/dongle0-0100000005", "SIP/call-inband-outband/01XXXXXXXX") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/call-inband-outband/01XXXXXXXX
[Dec 29 18:42:32] WARNING[5357][C-0000000e]: channel.c:1002 channel_indicate: [Dongle/dongle0-0100000005] Don't know how to indicate condition 33
[Dec 29 18:42:32] WARNING[5357][C-0000000e]: channel.c:1002 channel_indicate: [Dongle/dongle0-0100000005] Don't know how to indicate condition 33
[Dec 29 18:42:32] WARNING[5357][C-0000000e]: channel.c:1002 channel_indicate: [Dongle/dongle0-0100000005] Don't know how to indicate condition 33
[Dec 29 18:42:38] WARNING[5357][C-0000000e]: channel.c:1002 channel_indicate: [Dongle/dongle0-0100000005] Don't know how to indicate condition 33
    -- SIP/call-inband-outband-0000000b is ringing
    -- SIP/call-inband-outband-0000000b is making progress passing it to Dongle/dongle0-0100000005
[Dec 29 18:42:47] WARNING[5357][C-0000000e]: channel.c:1002 channel_indicate: [Dongle/dongle0-0100000005] Don't know how to indicate condition 33
    -- SIP/call-inband-outband-0000000b answered Dongle/dongle0-0100000005
  == Spawn extension (ivr-out, 01XXXXXXXX, 1) exited non-zero on 'Dongle/dongle0-0100000005'
[Dec 29 18:42:50] NOTICE[5357]: pbx_spool.c:402 attempt_thread: Call completed to Dongle/dongle0/06XXXXXXXX
программированием в принципе не занимался,... так самый минимум, больше по сетевым технологиям...

вот [ivr-pass] с запросом SQL pin кода...не знаю на сколько правильно вставил - но работает :)

Код: Выделить всё

[ivr-pass]
exten => s,1,GoToIf($["${callback}" != "0"]?callback,s,1)

exten => s,n,MYSQL(Connect connid localhost asterisk passwordMysql asterisk)
exten => s,n,MYSQL(Query resultid ${connid} select pin from callback)
exten => s,n,MYSQL(Fetch fetchid ${resultid} pin)
exten => s,n,NoOp(pin -> ${pin})
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})

exten => s,n,Background(/var/lib/asterisk/sounds/ru/dir-welcome)
exten => s,n,WaitExten(10)
exten => _XXXX,1,GoToIf($["${EXTEN}" = "${pin}"]?ivr,s,1)
exten => _XXXX,n,Hangup
exten => t,1,Hangup
exten => i,1,Hangup
не знаю если строка в CLI, контекста ivr-pass должна выглядеть вот так: :?:

Код: Выделить всё

    -- Executing [s@fromgorod:6] NoOp("SIP/call-inband-outband-0000000c", "pin -> 3212 callback# -> 06XXXXXXXX") in new stack
или вот так: :?:

Код: Выделить всё

    -- Executing [s@ivr-pass:5] NoOp("Dongle/dongle0-0100000006", "pin -> 3212") in new stack
сталкиваюсь еще вот с такой проблемой: когда звоню на SIP (слышу пол гудка и уже тороплюсь ставить трубку) так как гудки продолжаются и в контексте callback вроде как Hangup не срабатывает. и тут на * на столько быстро приходит .call файл в outgoing и мне перезванивает, что мой сотовый не звонит (видимо линия сотового не успевает освободится) и устройство dongle0 попадает на мой автоответчик. Можно где задать параметр, типа перед тем как набрать номер callback подожадать 5-10 сек. ?

Код: Выделить всё

[callback]
exten => s,1,AGI(/usr/share/asterisk/agi-bin/callback.agi,${callback},${UNIQUEID})
exten => s,n,Hangup
вроде прописано правильно ?

Re: callback с mysql

Добавлено: 30 дек 2015, 08:07
virus_net
vitas писал(а):, типа перед тем как набрать номер callback подожадать 5-10 сек.
Asterisk auto-dial out
How to schedule a Call in the Future
Files with a modified date in the future are ignored until that time arrives. Create the file in /var/spool/asterisk/tmp, modify the mtime using "touch", and then move it...

Код: Выделить всё

$ date
Mon Mar 19 13:52:30 EDT 2007
$ touch -d 20080101 /var/spool/asterisk/tmp/blah
$ mv /var/spool/asterisk/tmp/blah .
$ ls -l blah
-rw-r--r-- 1 andrew users 0 Jan 1 00:00 blah

Re: callback с mysql

Добавлено: 02 янв 2016, 02:45
vitas
спасибо, помогло!

файл теперь выглядит так:

Код: Выделить всё

cat /usr/share/asterisk/agi-bin/callback.agi

#!/bin/bash
echo Channel: Dongle/dongle0/$1 > /var/tmp/$2.call
echo MaxRetries: 2 >> /var/tmp/$2.call
echo RetryTime: 15 >> /var/tmp/$2.call
echo WaitTime: 20 >> /var/tmp/$2.call
echo Context: ivr-pass >> /var/tmp/$2.call
echo Extension: s >> /var/tmp/$2.call
echo Priority: 2 >> /var/tmp/$2.call
echo Archive: Yes >> /var/tmp/$2.call
chown asterisk:asterisk /var/tmp/$2.call
chmod 777 /var/tmp/$2.call
NOW=`date +%s`
let NOW=$NOW+15
TOUCH_TMSP=`date -d "1970-01-01 $NOW sec GMT" +%Y%m%d%H%M.%S`
touch -t $TOUCH_TMSP /var/tmp/$2.call
mv /var/tmp/$2.call /var/spool/asterisk/outgoing

Re: callback с mysql

Добавлено: 02 янв 2016, 08:38
virus_net
Пожалуйста. Чтение документации всегда помогает.