AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Asterisk Monitor звонки не пишуться.

Newbies/FAQ Forum 12 сообщений 14.08.2011 10:41 - 16.08.2011 12:50
#1 14.08.2011 10:41

Asterisk Monitor звонки не пишуться.


Всем хай, вот сейчас будет пост с описанием праблы.
#2 14.08.2011 10:55

Добрый день всем!

Скажу сразу это не рекламный бот. Это для тестирования направлений.

Есть задача. По 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

Вопрос второй.

Как после звонка узнать был ли КПВ на звонке (медиа КПВ) ?
#3 15.08.2011 12:16

exten => _9090#X.,3,MixMonitor(/var/lib/asterisk/sounds/ourtest/${fname}.wav,W(2))
Так попробуй, и убедись что астер имеет права записи в папку...
#4 15.08.2011 18:25

Спасибо Smile. Сейчас проверю и скажу результат.

Added after 9 minutes:

Запись есть, но как я понял MixMonitor пишет оба канала в один файл.
Права на запись и чтение в этой директории у пользователя asterisk есть.
Почему Monitor не работает? В другом контексте Monitor нормально работает.

Added after 3 hours 59 minutes:

Дополнительная информация!

Все записи с использованием проложения Monitor имеют размер 364 байт.
#5 16.08.2011 08:26

Помогите пожалуйста.
Попробовал даже так.
[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 байт.
#6 16.08.2011 08:58

Не понимаю, для чего писать отдельно по каналам?!
#7 16.08.2011 09:27

Как я уже говорил это для тестирования роутов и необходимо запись входа.
Нашел решение. Буду записывать 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 не писал.

Остается один вопрос.
Как узнать был ли КПВ при звонке?

Заранее благодарен.
#8 16.08.2011 10:46

не нужно в Dial указывать параметр r
КВП должен быть в записи пока вызываемая сторона не взяла трубку.
#9 16.08.2011 10:58

Убрал r. КПВ не записывается.

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
#10 16.08.2011 11:16

Во первых, непонятно зачем такое адское название файла. Во вторых, я так понимаю звонок сам на себя происходит? Вижу Ansver... Опиши схему звонка...
#11 16.08.2011 12:12

Идея такова. Из PHP скрипта через GUI будут генерироватся звонки на 10-20 номеров паралельно. Номера будут избиратся из базы данных. Звонки пойдут на наш софтсвич а от туда на маршруты партнеров для теста качества направлений (емкость, качество голоса и конечно на предмет наличия ложной тарификации). Имя записанного файла должен быть уникальным чтоб из GUI можно было найти нужный файл (конкретный тестовый звонок), прослушать его и при необходимости отправить партнеру.

Added after 1 minutes:

Вот как я оригинирую звонок (пока из CLI) originate Local/9090#37499552258@cmr extension 12@cmr
#12 16.08.2011 12:50

Для уникальность есть unique переменная. Почитайте мануал.
В остальном слишком извратная схема, протестируйте тупо звонок на телефон любой сначала без параметра r. Если кпв будет, то логичто что надо разбираться пошагово, но тут вам уже никто не поможет, сами...