Pull to refresh

Comments 9

Зачем вы используете Background/Playback/Waitexten?
Есть же отличный 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

я запись включаю так:
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).
Это происходит непосредственно перед соединением. то есть когда поднимается трубка (прилетает 200 ответ если это SIP)? перед тем как обработать событие астериск начинает работу gosub. То есть непосредственно перед событием поднятия трубки.

В gosub можно сделать все что угодно вашей душе.
Sign up to leave a comment.

Articles