Зацикливание в dialplan'е
Откуда: Тольятти
Сообщений: 31
|
Зацикливание в dialplan'е
Насколько asterisk устойчив в работе _с_железом_ (платами телефонии всунутых в комп на котором крутиться asterisk) при возникновении косяков в dialplan'е, например, зацикливания:
(loop),NoOp(test)
Goto(loop)
или, например, если запускается какой-нибудь долгий запрос к базе данных на другом компе?
|
Сообщений: 866
|
Re: Зацикливание в dialplan'е
там каждый звонок в своем треде будет. т.е. один зациклится, но другие работу продолжат. т.е. все не умрет насмерть.
но можно предположить что ничего хорошего не случится. А зачем вам зацикливать так ужасно?
а с долгими запросами в базу все вообще Ок. Другие звонки не аффектит и никакого ужаса.
|
Откуда: Тольятти
Сообщений: 31
|
Re: Зацикливание в dialplan'е
dimas: А зачем вам зацикливать так ужасно?
Специально зацикливать, конечно, не буду. Мне просто интересно, как там это сделано и оказывают ли подобные ошибки в диалплане на стабильность работы asterisk'а.
|
Откуда: SPb
Сообщений: 1307
|
Re: Зацикливание в dialplan'е
таким макаром можно что угодно положить. лишь бы руки покривее.
|
Откуда: Тольятти
Сообщений: 31
|
Re: Зацикливание в dialplan'е
zzuz: таким макаром можно что угодно положить. лишь бы руки покривее.
Аксиома: В любой программе есть хотя бы одна ошибка. :) И убогий язык dialplan'а c командой goto потенциально может приводить к таким проблемам. А то что asterisk этим можно положить (по вашим словам) - это плохо.
|
Откуда: Уфа
Сообщений: 5856
|
Re: Зацикливание в dialplan'е
я бы не сказал что убогий
он просто специализированный и для своих целей более чем подходит
|
Сообщений: 6521
|
Re: Зацикливание в dialplan'е
Вообще-то во многих языках есть команда goto (:
И рекурсивно положить можно даже 4 x quad core.
|
Откуда: Тольятти
Сообщений: 31
|
Re: Зацикливание в dialplan'е
switch: я бы не сказал что убогий он просто специализированный и для своих целей более чем подходит
Почему-то не срабатывает конструкция с ARRAY, коментарю ее, присваиваю переменные явно:
[my-custom]
exten => 304, 1, Answer()
exten => 304, n, Wait(2)
exten => 304, n, NoOp(CCCC &{CALLERID(number)})
exten => 304, n, Set(IsOk=0)
exten => 304, n, Set(ClientPhone=${CALLERID(name)})
exten => 304, n, Set(BalYear=${CALLERID(name)})
exten => 304, n, Set(ClientPhone=9270000000)
exten => 304, n, Set(IsOk=1)
exten => 304, n, Set(BalMoney=123)
exten => 304, n, Set(BalDay=1)
exten => 304, n, Set(BalMon=1)
exten => 304, n, Set(BalYear=2010)
;exten => 304, n, Set(ARRAY(IsOk,BalMoney,BalDay,BalMon,BalYear)=&{MY_CLIENT_BALANCE('${ClientPhone}')})
exten => 304, n, NoOp(BALAN ${ClientPhone} &{IsOk} &{BalMoney} &{BalDay} &{BalMon} &{BalYear})
...
Как думаете, что будет последнего NoOp?
В логе выводиться:
BALAN 9270000000 &{IsOk} &{BalMoney} &{BalDay} &{BalMon} &{BalYear}
А почему нет, значений переменных кроме ClientPhone?
|
Сообщений: 866
|
Re: Зацикливание в dialplan'е
я так понимаю вас диалплан чем-то обидел и вы его в убогие записали?
я также понимаю вы владеете большим количеством других языков и можете назвать хотябы пять которые так зациклить нельзяя. да?
а поп поводу вашего ARRAY и NoOp - я не очень понимаю чего выхотели добится и главное зачем вы туда амреосандов напихали.
|
Откуда: Уфа
Сообщений: 5856
|
Re: Зацикливание в dialplan'е
а почему у вас знаки амперсанда, вместо доллара?
|
|