Страница 2 из 2
Re: Звонок с внутренного на внутренний и проигрывание записи
Добавлено: 12 сен 2013, 00:25
r@diO
Вот накидал небольшой пример для теста:
Код: Выделить всё
exten => s,1,Answer
exten => s,n,Playback(hello)
exten => s,n,Set(RECORD_FILE=/var/spool/asterisk/monitor/1.wav)
exten => s,n,Playback(beep)
exten => s,n,MixMonitor(${RECORD_FILE},b)
exten => s,n,Wait(3)
exten => s,n,StopMixMonitor()
exten => s,n,Playback(${RECORD_FILE})
exten => s,n,Hangup
Но файл не создается и соотв.:
Код: Выделить всё
-- Executing [s@sendorder2:3] Set("SIP/fortest-00007db5", "RECORD_FILE=/var/spool/asterisk/monitor/1.wav") in new stack
-- Executing [s@sendorder2:4] Playback("SIP/fortest-00007db5", "beep") in new stack
-- <SIP/fortest-00007db5> Playing 'beep.alaw' (language 'ru')
-- Executing [s@sendorder2:5] MixMonitor("SIP/fortest-00007db5", "/var/spool/asterisk/monitor/1.wav,b") in new stack
-- Executing [s@sendorder2:6] Wait("SIP/fortest-00007db5", "3") in new stack
== Begin MixMonitor Recording SIP/fortest-00007db5
-- Executing [s@sendorder2:7] StopMixMonitor("SIP/fortest-00007db5", "") in new stack
-- Executing [s@sendorder2:8] Playback("SIP/fortest-00007db5", "/var/spool/asterisk/monitor/1.wav") in new stack
[Sep 12 04:19:12] WARNING[16964]: file.c:663 ast_openstream_full: File /var/spool/asterisk/monitor/1.wav does not exist in any format
[Sep 12 04:19:12] WARNING[16964]: file.c:954 ast_streamfile: Unable to open /var/spool/asterisk/monitor/1.wav (format 0x8 (alaw)): No such file or directory
[Sep 12 04:19:12] WARNING[16964]: app_playback.c:475 playback_exec: ast_streamfile failed on SIP/fortest-00007db5 for /var/spool/asterisk/monitor/1.wav
-- Executing [s@sendorder2:9] Hangup("SIP/fortest-00007db5", "") in new stack
== Spawn extension (sendorder2, s 9) exited non-zero on 'SIP/fortest-00007db5'
== End MixMonitor Recording SIP/fortest-00007db5
В чем может быть проблема?
Re: Звонок с внутренного на внутренний и проигрывание записи
Добавлено: 12 сен 2013, 00:28
r@diO
Код: Выделить всё
[root@Elastix ~]# cd /var/spool/asterisk/monitor/
[root@Elastix monitor]# ls -l
итого 0
[root@Elastix monitor]# find -name "1.wav" -print
[root@Elastix monitor]#
Re: Звонок с внутренного на внутренний и проигрывание записи
Добавлено: 12 сен 2013, 00:39
ded
Может книжки почитаете по Астериску?
Re: Звонок с внутренного на внутренний и проигрывание записи
Добавлено: 12 сен 2013, 01:52
r@diO
ded писал(а):Может книжки почитаете по Астериску?
Я не питаю иллюзий, что Вы все сделаете за меня и прекрасно понимаю, что от медвежьей услуги пользы мало.
И литературу по мере "погружения" гуглю, читаю, пытаюсь разобраться.
Но со всем уважением, если Вы не хотите помочь, лучше уж и не пишите ничего:
зачем вообще тогда этот форум, если есть "книжки"?
З.Ы. Если убрать опцию b, то все будет работать.
Re: Звонок с внутренного на внутренний и проигрывание записи
Добавлено: 12 сен 2013, 01:53
r@diO
Re: Звонок с внутренного на внутренний и проигрывание записи
Добавлено: 12 сен 2013, 07:56
ded
r@diO писал(а):ded писал(а):Может книжки почитаете по Астериску?
Я не питаю иллюзий, что Вы все сделаете за меня и прекрасно понимаю, что от медвежьей услуги пользы мало..
А я питаю иллюзии! Например, что функция записи разговоров востребована и используется в Астериске уже больше 10 лет. И что разъяснять как она работает ещё раз не имеет смысла, это прописано в сотнях инструкций HOWTO и в тысячах диалогов на форумах по Астериск, с примерами и комментариями. Питаю иллюзии, что все разумные профессионалы различают шаблонные проблемы и нешаблонные, которые стоит осветить/вопросить, и т.п.
r@diO писал(а):И литературу по мере "погружения" гуглю, читаю, пытаюсь разобраться.
Но со всем уважением, если Вы не хотите помочь, лучше уж и не пишите ничего:
зачем вообще тогда этот форум, если есть "книжки"?.
Aven писал(а):Вот мы и пришли к этому вопросу.
Мне по ходу своей работы приходится часто помогать другим людям в написании программ. Именно помогать, а не писать за них. Помогая, я исхожу из того, что человек хочет разобраться. Я задаю наводящие вопросы, рекомендую место, в которое можно посмотреть, чтобы найти ответы на эти вопросы.
Когда я начинаю задавать вопросы и рекомендовать литературу, мне начинают говорить, что «мало времени на решение этой задачи, нужно быстрее!», «зачем Вы заставляете меня искать, когда могли бы просто дать ответ?». На это я обычно говорю, что у меня есть два варианта поведения.
Первый – простой для меня и для Вас. Он состоит в том, что я сейчас сажусь за компьютер и просто пишу эту программу за Вас. Этот способ экономит мое и Ваше время, но он Вам ничего не дает. Если сейчас Вы узнаете, как решать эту задачу со строками, то Вы не сможете решить любую другую задачу со строками. А умение состоит в том, что Вы можете решать любые задачи, не только со строками и не только в этом языке программирования.
Второй – сложный и для меня и для Вас. Я объясняю Вам, как искать ошибки в программах, где искать информацию, задаю Вам вопросы, ответы на которые помогут Вам решить Вашу задачу. Пользуясь этим вторым способом я трачу значительно больше своего времени, чем при первом способе. А мое время – бесценно. Но я согласен тратить его только потому, что для Вас нет другого способа чему-нибудь научиться.
Собственно, эта статья написана для того, чтобы Вы честно, не обманывая себя и других, дали ответ на вопрос: «В чем Ваша цель – научиться или получить готовое решение?». Если Ваша цель – научиться, то Вам нужно смириться с тем, что нельзя научиться, не потратив сил и времени. Если Ваша цель – получить готовое решение, то Вам нужно смириться с тем, что готовое решение дают только за деньги.
Форум предназначен для тех, у кого цель – научиться.
Зачем нужен форум?
r@diO писал(а):З.Ы. Если убрать опцию b, то все будет работать.
P.S. Никогда не ленюсь переключить лишний раз кодировку, чтобы не писать З.Ы. или Пы. Сы.
Wapo писал(а):Делать так:
Channel: Local/000@context-local
и направлять вызов в
Context: playfile
Exten: 1
Priority: s
ну а там
[playfile]
exten => s,1,Answer
exten => s,n,Playback....
Ошибка детектед. Имелось ввиду, конечно же
направлять вызов в
Context: playfile
Exten: s
Priority: 1
Re: Звонок с внутренного на внутренний и проигрывание записи
Добавлено: 12 сен 2013, 08:27
ded
По поводу опции b которую если убрать то всё работает. Я не понял - она Вам нужна или нет? Вот с этого надо было бы начать:
*CLI> core show application MixMonitor
-= Info about application 'MixMonitor' =-
[Synopsis]
Record a call and mix the audio during the recording. Use of StopMixMonitor
is required to guarantee the audio file is available for processing during
dialplan execution.
[Description]
Records the audio on the current channel to the specified file.
This application does not automatically answer and should be preceeded by
an application such as Answer or Progress().
${MIXMONITOR_FILENAME}: Will contain the filename used to record.
[Syntax]
MixMonitor(filename.extension[,options[,command]])
[Arguments]
filename
If <filename> is an absolute path, uses that path, otherwise creates
the file in the configured monitoring directory from "asterisk.conf."
options
a: Append to the file instead of overwriting it.
b: Only save audio to the file while the channel is bridged.
NOTE: Does not include conferences or sounds played to each bridged
party
NOTE: If you utilize this option inside a Local channel, you must
make sure the Local channel is not optimized away. To do this, be sure
to call your Local channel with the '/n' option. For example: Dial(Lo
cal/start@mycontext/n)
Re: Звонок с внутренного на внутренний и проигрывание записи
Добавлено: 12 сен 2013, 10:25
Wapo
2 ded:
Ошибка действительно была. Согласен. Но вот далее меня прикольнуло решение ТС:
Код: Выделить всё
[localout]
exten => 000,1,NoOp(LOCALOUT ${CALLERID(num)} ${PHONE_TO})
exten => 000,n,Dial(LOCAL/001)
exten => 000,n,Playback(/var/spool/asterisk/monitor/${RECORD_FILE})
Поразительный вызов в команде Dial.
Re: Звонок с внутренного на внутренний и проигрывание записи
Добавлено: 12 сен 2013, 11:29
ded
И это, и другое в примерах ТС выше - поэтому послал читать книжку.
А ведь даже в хелпе (выше) понятный пример:
Dial(Local/start@mycontext/n)