IVR
при воспроизведении, начало приветствия сьедается
Откуда: RF
Сообщений: 76
|
IVR
Здравствуйте!
Глохнет начало приветствия, а именно:
В такой конфигурации я слышу "te,thank-you-for-calling" вместо "zdravstujte,thank-you-for-calling"
exten => s,n,Background(zdravstujte)
exten => s,n,Background(thank-you-for-calling)
и соответственно, в такой конф.:
exten => s,n,Background(thank-you-for-calling)
exten => s,n,Background(zdravstujte)
наоборот, я слышу "for-calling,zdravstujte" вместо "thank-you-for-calling,zdravstujte"
хелп?
к сожалению, но факсы аппаратные.
|
Откуда: Moscow
Сообщений: 139
|
Re: IVR
Попробуйте wait на несколько секунд вставить перед проигрыванием.
т.е. answer,wait(n),background
|
Откуда: RF
Сообщений: 76
|
Re: IVR
спасибо. помогло)
к сожалению, но факсы аппаратные.
|
Откуда: Зеленоград
Сообщений: 446
|
Re: IVR
А что делать, если паузу не хочется вставлять? В голосовом меню каждая секунда на счету.
|
Откуда: Moscow
Сообщений: 139
|
Re: IVR
Если не хочется - значит слушать так, как есть. Ведь каждая секунда на счету, а так фраза укорачивается -> время на прослушивание уменьшается, кпд увеличивается! ;)
|
Откуда: Нижний Новгород
Сообщений: 277
|
Re: IVR
Проблема вызвана разной скоростью передачи singalling'а и media потоков.
Проблема в том что когда приходит входящий звонок - астериск делает Answer и сразу после этого начинает проигрывать что-нибудь в канал - при answer на звонящую сторону по signalling'у уходит в случае SIP'а "200 OK c SDP" который идет через все хопы (прокси сервера и тд). Это занимает некоторое время. Также по получении удаленная сторона должна стартовать RTP сессию - это тоже отнимает некоторое время. Так как астериск начинает проигрывать media поток сразу после Answer а media как правило идет напрямую между конечными точками - то получается что media (RTP) доходит до звонящего быстрее чем 200 OK - то есть тогда когда звонящий еще не готов принимать медию - отсюда теряется начало фразы.
Чтобы решить проблему можно сделать задержку после Answer (как было предложено выше) но это вызовет увеличение оплачиваемого времени звонка (billed time).
Есть другой способ который решает проблему без увеличения billed time.
Нужно использовать early media:
exten => _XX.,1,Progress
exten => _XX.,n,PlayTones(ring)
exten => _XX.,n,Wait(3)
exten => _XX.,n,StopPlayTones
exten => _XX.,n,Answer
exten => _XX.,n,Playback(demo-thanks)
exten => _XX.,n,Hangup
Тут команда Progress инициирует early media (посылает 183 Session Progress c SDP по SIP'у), потом PlayTones начинает проигрывать ringback тоны звонящему через RTP посредством установленной early media сессии. Кстати PlayTones использует tone list "ring" который описан в indications.conf для каждой страны свой - то есть зависит от установленной в indications.conf "country".
В общем эта схема дает возможность удаленной стороне установить RTP сессию до того как придет CONNECT (200 OK в случае SIP'а) и проблема с проглатыванием начала IVR файла решается.
В некоторых случаях (для некоторых провайдеров) достаточно вместо 183 Session Progress (early media) послать 180 Ringing (alerting) который часто где-то в середине пути (например на гэйтвее при заходе в PSTN) также преобразуется в ISDN ALERT c Progress IE. То есть сделать что-то типа:
exten => _XX.,1,Ringing
exten => _XX.,n,Wait(3)
exten => _XX.,n,Answer
exten => _XX.,n,Playback(demo-thanks)
exten => _XX.,n,Hangup
|
Откуда: Зеленоград
Сообщений: 446
|
Re: IVR
zgen, согласись, что обрез полуслова в начале IVR выглядит (вернее, слышится) ужасно некрасиво и небрежно.
simax, спасибо!
|
Откуда: Москва
Сообщений: 3421
|
Re: IVR
Да, simax, хорошо придумал!
|
Сообщений: 51
|
Re: IVR
simax: Проблема вызвана разной скоростью передачи singalling'а и media потоков.
Но у топикстартера проблема вызвана отсутствием Answer, я думаю.
|
|