Comments 9
Зачем вы используете Background/Playback/Waitexten?
Есть же отличный Read и конструкцию if else. Гораздо гибче. Попробуйте.
Есть же отличный Read и конструкцию if else. Гораздо гибче. Попробуйте.
Playback тут для проигрывания. Read же не умеет в линию музыку выдавать, верно, а Playback умеет. А про waitexten, тут вы правы. Но тут главное же показать для начала более простые вариации, для тех кто не знает или плохо знает.
За подсказку спасибо.
За подсказку спасибо.
почитайте документацию прежде чем отвечать на вопрос…
«Ближе к телу». Read никогда не пользовался, в документацию по неё смотрел только мельком. Waitexten и playback используются по назначению. Что не так?
Playback тут для проигрывания. Read же не умеет в линию музыку выдавать, верно, а Playback умеет
Не так- что Вы написали о функции не зная возможностей функции. Не более. Я не критиковал использование функций вами, я критиковал то, что вы пред ответом не удосужились документацию прочитать… Да что там документацию- 2 сточки…
я с Read() пока не работал, по вашей наводке пробежался мельком. Но это не самое главное. мне больше интересно узнать. как можно перехватить в диалплане событие поднятия трубки. т.е. сделали dial(), абонент ответил и вот тут мне надо это событие определять.
Вам надо какие то действия в диалплане выполнить?
Я это делаю через флаг U для Dial()
К примеру вот хак когда для миксмонитора не работает опция b:
app.Dial(SIP/DEVICE,TIMEOUT,TtU(mixmonitor^FILEPATH/CALLFILENAME^monopt))
У меня есть контекст где обрабатывается mixmonior только после поднятия трубки.
Более подробно:
core show application Dial
Я это делаю через флаг U для Dial()
К примеру вот хак когда для миксмонитора не работает опция b:
app.Dial(SIP/DEVICE,TIMEOUT,TtU(mixmonitor^FILEPATH/CALLFILENAME^monopt))
У меня есть контекст где обрабатывается mixmonior только после поднятия трубки.
Более подробно:
core show application Dial
я запись включаю так:
надо пронаблюдать про опцию b… но мне там не запись нужно, я хочу при поднятии трубки (с точки зрения ami
это будет событие bridge) сам сгенерить некоторое событие, в том числе на http отправить. проблема именно с выдёргиванием этого события. Флаг U описан как, execute via gosub the routine for the called channel before connecting. Т.е. перед соединением. мне нужно после (after connecting).
function record(v1)
local monopt
local fname = string.format("%s-%s%s%s", v1, date.day, date.month, date.year)
WAV = "/var/log/asterisk/wav/"
MP3 = string.format("/records/%s/%s/%s/", date.year, date.month, date.day)
monopt = string.format("/bin/nice -n 19 /usr/bin/lame -b 16 --silent %s%s.wav %s%s.mp3 && rm -f %s%s.wav",WAV,fname,MP3,fname,WAV,fname)
app.mixmonitor(string.format("%s%s.wav,b v(3) V(3) W(3),%s",WAV,fname,monopt))
channel["CDR(recordingfile)"]:set(fname..".mp3")
end
надо пронаблюдать про опцию b… но мне там не запись нужно, я хочу при поднятии трубки (с точки зрения ami
это будет событие bridge) сам сгенерить некоторое событие, в том числе на http отправить. проблема именно с выдёргиванием этого события. Флаг U описан как, execute via gosub the routine for the called channel before connecting. Т.е. перед соединением. мне нужно после (after connecting).
Sign up to leave a comment.
Asterisk+Lua — IVR и некоторые другие моменты