Asterisk Monitor звонки не пишуться.
Скажу сразу это не рекламный бот. Это для тестирования направлений.
Есть задача. По originate надо отправить звонок с астера на другой свич и записать голос в обе стороны.
originate Local/9090#37496552258@cmr extension 12@cmr
[cmr]
exten => 12,1,Answer()
exten => 12,n,PlayBack(demo-congrats)
exten => 12,n,Busy()
exten => _9090#X.,1,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _9090#X.,2,Noop(${fname})
exten => _9090#X.,3,Monitor(wav,/var/lib/asterisk/sounds/ourtest/${fname},b)
exten => _9090#X.,4,Dial(SIP/9090${EXTEN:5}@mvts2_live,90,Ttr)
Звонок успешно идет как надо. НО! есть проблема. Голос не пишется. Создается 2 файла in.wav и out.wav но оба не содержат голоса.
Вот что выдает CLI:
utils*CLI> originate Local/9090#37496552258@cmr extension 12@cmr
utils*CLI>
-- Executing [9090#37496552258@cmr:1] Set("Local/9090#37496552258@cmr-ae93;2", "fname=201108140937--9090#37496552258") in new stack
-- Executing [9090#37496552258@cmr:2] NoOp("Local/9090#37496552258@cmr-ae93;2", "201108140937--9090#37496552258") in new stack
-- Executing [9090#37496552258@cmr:3] Monitor("Local/9090#37496552258@cmr-ae93;2", "wav,/var/lib/asterisk/sounds/ourtest/201108140937--9090#37496552258,b") in new stack
-- Executing [9090#37496552258@cmr:4] Dial("Local/9090#37496552258@cmr-ae93;2", "SIP/909037496552258@mvts2_live,90,Ttr") in new stack
== Using SIP RTP CoS mark 5
== Using UDPTL CoS mark 5
-- Called 909037496552258@mvts2_live
-- SIP/mvts2_live-21a82be0 is ringing
[Aug 14 09:37:59] NOTICE[14006]: rtp.c:1129 process_rfc3389: Comfort noise support incomplete in Asterisk (RFC 3389). Please turn off on client if possible. Client IP: 0.0.0.0
-- SIP/mvts2_live-21a82be0 answered Local/9090#37496552258@cmr-ae93;2
-- Executing [12@cmr:1] Answer("Local/9090#37496552258@cmr-ae93;1", "") in new stack
-- Executing [12@cmr:2] Playback("Local/9090#37496552258@cmr-ae93;1", "demo-congrats") in new stack
-- Playing 'demo-congrats.gsm' (language 'en')
== Spawn extension (cmr, 9090#37496552258, 4) exited non-zero on 'Local/9090#37496552258@cmr-ae93;2'
-- Executing [12@cmr:3] Busy("SIP/mvts2_live-21a82be0", "") in new stack
Версия астера: Asterisk 1.6.2.0~rc2-0ubuntu1.2
Вопрос второй.
Как после звонка узнать был ли КПВ на звонке (медиа КПВ) ?
Так попробуй, и убедись что астер имеет права записи в папку...
Added after 9 minutes:
Запись есть, но как я понял MixMonitor пишет оба канала в один файл.
Права на запись и чтение в этой директории у пользователя asterisk есть.
Почему Monitor не работает? В другом контексте Monitor нормально работает.
Added after 3 hours 59 minutes:
Дополнительная информация!
Все записи с использованием проложения Monitor имеют размер 364 байт.
Попробовал даже так.
[cmr]
exten => 12,1,Answer()
exten => 12,n,PlayBack(demo-congrats)
exten => 12,n,Wait(6000)
exten => 12,n,Hangup
include => recdial
[recdial]
exten => _9090#X.,1,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _9090#X.,2,Monitor(wav,/var/lib/asterisk/sounds/ourtest/${fname},b)
exten => _9090#X.,3,Dial(SIP/9090${EXTEN:5}@mvts2_live,90,Ttr)
Тоже нет аудио. Файлы весят 364 байт.
Нашел решение. Буду записывать Mixmonitor без PlayBack. Получится то что хочу.
[cmr]
exten => 12,1,Answer()
exten => 12,2,Wait(60)
exten => 12,3,Hangup
include => recdial
[recdial]
exten => _9090#X.,1,Set(CALLERID(all)=${RAND(111111111,99999999)})
exten => _9090#X.,2,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(num)}-${EXTEN})
exten => _9090#X.,3,MixMonitor(/var/lib/asterisk/sounds/ourtest/${fname}.wav,W(2))
exten => _9090#X.,4,Dial(SIP/9090${EXTEN:5}@mvts2_live,90,Ttr)
Но так и не понял почему Monitor не писал.
Остается один вопрос.
Как узнать был ли КПВ при звонке?
Заранее благодарен.
КВП должен быть в записи пока вызываемая сторона не взяла трубку.
utils*CLI> originate Local/9090#37499552258@cmr extension 12@cmr
[2011-08-16 09:44:05] -- Executing [9090#37499552258@cmr:1] Set("Local/9090#37499552258@cmr-71a2;2", "CALLERID(all)=102175495") in new stack
[2011-08-16 09:44:05] -- Executing [9090#37499552258@cmr:2] Set("Local/9090#37499552258@cmr-71a2;2", "fname=201108160944-102175495-9090#37499552258") in new stack
[2011-08-16 09:44:05] -- Executing [9090#37499552258@cmr:3] MixMonitor("Local/9090#37499552258@cmr-71a2;2", "/var/lib/asterisk/sounds/ourtest/201108160944-102175495-9090#37499552258.wav,W(2)") in new stack
[2011-08-16 09:44:05] -- Executing [9090#37499552258@cmr:4] Dial("Local/9090#37499552258@cmr-71a2;2", "SIP/909037499552258@mvts2_live,90,Tt") in new stack
[2011-08-16 09:44:05] == Begin MixMonitor Recording Local/9090#37499552258@cmr-71a2;2
[2011-08-16 09:44:25] -- SIP/mvts2_live-b70d9e38 answered Local/9090#37499552258@cmr-71a2;2
[2011-08-16 09:44:25] -- Executing [12@cmr:1] Answer("Local/9090#37499552258@cmr-71a2;1", "") in new stack
[2011-08-16 09:44:25] -- Executing [12@cmr:2] Wait("Local/9090#37499552258@cmr-71a2;1", "60") in new stack
[2011-08-16 09:44:25] == Spawn extension (cmr, 9090#37499552258, 4) exited non-zero on 'Local/9090#37499552258@cmr-71a2;2'
[2011-08-16 09:44:41] == Spawn extension (cmr, 12, 2) exited non-zero on 'SIP/mvts2_live-b70d9e38'
[2011-08-16 09:44:41] == MixMonitor close filestream
[2011-08-16 09:44:41] == End MixMonitor Recording Local/9090#37499552258@cmr-71a2;2
Added after 1 minutes:
Вот как я оригинирую звонок (пока из CLI) originate Local/9090#37499552258@cmr extension 12@cmr
В остальном слишком извратная схема, протестируйте тупо звонок на телефон любой сначала без параметра r. Если кпв будет, то логичто что надо разбираться пошагово, но тут вам уже никто не поможет, сами...