Есть непонятки
Set и Monitor, как это не банально. астер 1.4
Сообщений: 124
|
Есть непонятки
я некрасиво поступаю - имена файлов факсов и записей разговоров записываю в поле userfield CDR (на мускуле).
Возникло 2 проблемы, одна вытекает из другой.
Monitor , по идее, начинает запись, когда открыт канал. Когда стартует канал? как только астер сделает answer и начнет чесать голосовое меню? или когда кто-либо возьмет трубку уже после чёса? Не прерывается ли запись, если звонок будет ходить по абонентам?
Set ругается, когда переменной, которой уже что-то присвоено я пытаюсь присвоить еще раз значение (читаю userfield в переменную, потом записываю в userfield данные с добавками). Кто как разруливал? макросы, AGI в помощь, или не поможет?
|
Откуда: SPb
Сообщений: 1307
|
Re: Есть непонятки
"Set ругается, когда переменной, которой уже что-то присвоено я пытаюсь присвоить еще раз значение" быть не может.
и monitor и mixmonitor пишутся , когда происходит Answer()
|
Сообщений: 124
|
Re: Есть непонятки
спасибо за ответ, но очень странно, ибо у меня до сегодняшнего дня monitor находится в нескольких местах диалплана и запись сохранялась под именем приведенном в последнем monitor.
про set
фрагмент менюшки
exten => _x.,n,set(usertemp=${CDR(userfield)})
exten => _x.,n,set(CDR(userfield)="${usertemp}|recordfile=${monitoruserfile}|")
В нее возвращается звонок при переводе, нет ответа и т.п. За "_x." просьба не пинать, вызывающие контексты все фильтруют.
Вот, что пишет астериск
-- Executing [204@local4global:5] Set("SIP/192.168.4.99-081ba800", "usertemp=|recordfile=_to_288__2010-12-21__16-09-37|") in new stack
[Dec 21 16:10:01] WARNING[20987]: pbx.c:5916 pbx_builtin_setvar: Setting multiple variables at once within Set is deprecated. Please separate each name/value pair into its own line.
Или это реакция на вертикальную палку "|"? она же в строчной переменной?
|
Сообщений: 124
|
Re: Есть непонятки
Точно, в Set была проблема в том, что я для разделения использовал "|", а астериск ругался на это.
|
Откуда: SPb
Сообщений: 1307
|
Re: Есть непонятки
символы в таких строках подлежат экранированию.
|
Сообщений: 124
|
Re: Есть непонятки
Для monitor наставил проверок, чтобы функция срабатывала только 1 раз (если вызовов monitor несколько - будет изменяться лишь имя итогового файла),
но, запись начинается всеравно как только кто-то из "живых" поднимет трубку.
у меня стоит answer, после него monitor, потом голосовое меню через nvbackgrounddetect.
Аналоговые линии заведены на * через адпак.
В общем, голосовое меню не пишется в файл, пока юзер не снимит трубку.
Интересно что они там говорят роботу ;) как исправлять?
|
Сообщений: 124
|
Re: Есть непонятки
Продолжается приколы
exten => _x.,n,set(CDR(userfield)="${usertemp}|recordfile=${monitoruserfile}|")
заменил на exten => _x.,n,set(CDR(userfield)="${usertemp}<recordfile=${monitoruserfile}>")
глюк ушел. Но, если использовать Set в лоб Set(AAA="|abc||def||fgh") - глюков никаких нет. Странно, но в мануалах порылся, про изоляцию и чт если использовать переменные - про операторы типа "|" ни слова.
Сейчас еще помучал астер, ну не понимаю я откуда в том случае (выше) ворнинг.
|
Сообщений: 124
|
Re: Есть непонятки
мде, :7: мне, интерпретатор не добавляет к стрингу кавычки, вот и получилась строчка с ворнингом... :(
|
Сообщений: 156
|
Re: Есть непонятки
jr:
В общем, голосовое меню не пишется в файл, пока юзер не снимит трубку.
Интересно что они там говорят роботу ;) как исправлять?
Я пишу через MixMonitor с опцией "b",
b - Only save audio to the file while the channel is bridged. *does not include conferences*,
не пробовал, но думаю, что если "b" убрать, то будет писаться начиная с Answer. Попробуйте.
|
Сообщений: 124
|
Re: Есть непонятки
спасибо, кажется в этом было дело.
|
|