ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Playback для нескольких файлов.

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Playback для нескольких файлов.

Сообщение Олег » 25 июл 2020, 20:22

Здравствуйте.
Есть желание переключать язык сообщений.
Звуковые файлы лежат в каталоге /var/lib/asterisk/sounds соответственно в подкаталогах en и ua.
Все файлы в нужном формате, проверены - астериск успешно воспроизводит каждый.
Набор номеров начинется здесь:
Код: выделить все
[gsm-test]
exten => _0[9][678]XXXXXXX,1,Noop(KS-067-8)
same => n,Set(CHANNEL(language)=${var2})
same => n,Dial(SIP/GoIP208-1/1${EXTEN})
same => n,HangUp()

Потом сюда:
Код: выделить все
[answer_user]
exten => saysmsint,1,NoOp(1 version)
same => n,Set(CHANNEL(language)=${var2})
same => n,Answer()
same => n,Playback(${var1})
same => n,HangUp()


Звонок инициирует web-сервер командой Originate с опцией Variable: var1=sp&2,var2=en
Asterisk 1.8.32.3
Переменная var2 может принимать значение или ua или en.
В Asterisk по умолчанию ua.

Если в переменной var1 только один файл (var1=sp) - то все отлично, пользователю звучит файл в той language, которую астериску передал web-сервер.
Если в переменной var1 несколько файлов через амперсанд (var1=sp&2) - то если пользователь выбрал ua - тоже все отлично, но если пользователь выбрал en, то только первый файл играет с каталога en, все остальные - с каталога ua.
Вот выхлов в консоли в момент звонка:
Код: выделить все
-- <Local/0976118441@gsm-out-000089a0;1> Playing 'sp.slin' (language 'ua')
    -- Executing [0989999999@gsm-test:1] NoOp("Local/0989999999@gsm-test-000089a1;2", "KS-067-8") in new stack
    -- Executing [0989999999@gsm-test:2] Set("Local/0989999999@gsm-test-000089a1;2", "CHANNEL(language)=en") in new stack
    -- Executing [0989999999@gsm-test:3] Dial("Local/0989999999@gsm-test-000089a1;2", "SIP/GoIP208-1/10989999999") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/GoIP208-1/10989999999
    -- SIP/GoIP208-1-00010e90 is making progress passing it to Local/0989999999@gsm-test-000089a1;2
    -- SIP/GoIP208-1-00010e90 answered Local/0989999999@gsm-test-000089a1;2
       > Channel Local/0989999999@gsm-test-000089a1;1 was answered.
    -- Executing [saysmsint@answer-user:1] NoOp("Local/0989999999@gsm-test-000089a1;1", "1 version") in new stack
    -- Executing [saysmsint@answer-user:2] Answer("Local/0989999999@gsm-test-000089a1;1", "") in new stack
    -- Executing [saysmsint@answer-user:3] Set("Local/0989999999@gsm-test-000089a1;1", "CHANNEL(language)=en") in new stack
    -- Executing [saysmsint@answer-user:4] Playback("Local/0989999999@gsm-test-000089a1;1", "sp&2") in new stack
    -- <Local/0989999999@gsm-test-000089a1;1> Playing 'sp.slin' (language 'en')
  == Spawn extension (gsm-test, 0989999999, 3) exited non-zero on 'Local/0989999999@gsm-test-000089a1;2'
    -- <SIP/GoIP208-1-00010e90> Playing '2.slin' (language 'ua')
    -- Executing [saysmsint@answer-user:5] Hangup("SIP/GoIP208-1-00010e90", "") in new stack
  == Spawn extension (answer-user, saysmsint, 5) exited non-zero on 'SIP/GoIP208-1-00010e90'


Первый файл вижу что Playing 'sp.slin' (language 'en'), а второй уже Playing '2.slin' (language 'ua').
Знаю, что еще много не дочитал, но подскажите в какую сторону копать ?)
Олег
 
Сообщений: 1
Зарегистрирован: 25 июл 2020, 19:45

Re: Playback для нескольких файлов.

Сообщение ded » 26 июл 2020, 13:59

Потому что после
-- <Local/0989999999@gsm-test-000089a1;1> Playing 'sp.slin' (language 'en')
у вас выполнение диал-плана вываливается из цепочки:
== Spawn extension (gsm-test, 0989999999, 3) exited non-zero on 'Local/0989999999@gsm-test-000089a1;2'
вот на этом 3-м шаге -
same => n,Dial(SIP/GoIP208-1/1${EXTEN})
после чего переключается на дефолтный language ua.
А вот почему вываливается - включайте SIP дебаг и смотрите.
ded
 
Сообщений: 15817
Зарегистрирован: 26 авг 2010, 19:00


Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH