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

Про VoiceMail

Newbies/FAQ Forum 20 сообщений -
#1

Нужно чтоб пользователи смогли извнвне звонили на определенный номер и могли читат' свои VM.
Как организовать это.
Заранее благодарю.
#3

Smile
#4

Решил новую тему не создавать, написать сдесь.
Такая проблема с voicemail: воспроизводятся лишние звуки. Вот лог:

-- Playing 'vm-password' (language 'ru')
-- Playing 'vm-youhave' (language 'ru')
-- Playing 'digits/minus' (language 'ru')
-- Playing 'digits/3' (language 'ru')

-- Playing 'digits/3' (language 'ru')
-- Playing 'vm-staryh' (language 'ru')
-- Playing 'vm-soobsheniya' (language 'ru')

Такая ошибка присутствует только тогда, когда все сообщения прочитаны. Как можно исправить?
#5

Пропатчить код VoiceMail. Больше никак. Баг известный.
#6

Патч из этой темы? Если нет - по возможности дайте ссылку.
Смотрел в сорцах 1.4.6 файл app_voicemail.c - там код "static vm_intro_ru" включен. Только немножко изменен в сравнении с патчем из этой темы.
#7

Да, именно он.
Паша впопыхах делал, до конца работу не довел, не дотестил.
#8

Romik, спасибо за ответ.
Этот патч для версии asterisk 1.2.4, а у меня 1.4.6. Можешь выложить сдесь свой пропатченый app_voicemail.c для asterisk 1.4.
#9

Полезнее будет сразу выложить патч на bugs.digium.com Smile
Если баг присутствует в самом астериске, то могу сделать патч, только придется недельку подождать, пока вернусь с отдыха..

_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
#10

Этот же бажный патч перешел из 1.2 в 1.4.....
#11

Я знаю что он перешел в 1.4, но остался баг с произношением лишних строк, тех что я выделил красным. Вот о лекарстве от него я и спрашивал.
#12

Вот поправил баг.
Было в app_voicemail.c :

Код:
if (!res && vms->oldmessages) {
lastnum = get_lastdigits(vms->oldmessages);
dcnum = vms->newmessages - lastnum;
if (dcnum)
res = say_and_wait(chan, dcnum, chan->language);
if (!res && lastnum) {
if (lastnum == 1)
res = ast_play_and_wait(chan, "digits/ru/odno");
else
res = say_and_wait(chan, lastnum, chan->language);
}


Должно быть:
Код:
if (!res && vms->oldmessages) {
lastnum = get_lastdigits(vms->oldmessages);
dcnum = vms->oldmessages - lastnum;
if (dcnum)
res = say_and_wait(chan, dcnum, chan->language);
if (!res && lastnum) {
if (lastnum == 1)
res = ast_play_and_wait(chan, "digits/ru/odno");
else
res = say_and_wait(chan, lastnum, chan->language);
}


Может кому пригодится.
#13

Самый правильный вариант, но патча нема Smile
А я ленив и занимаюсь соооовсем другими делами сейчас... Сорри.
http://romik-g.livejournal.com/22084.html
#15

Oleh писал(а):
Баг уже поправлен. Вот ссылка: http://bugs.digium.com/view.php?id=10458

Т.е. в 1.4.10.1 уже все ок?
#16

Нет. Просто делал патч на основе 1.4.10. Надеюсь в следующей версии он будет включен.