
Alex
14.11.2017
09:14:50
еслиб на баше написал скриптик, а вот другие языки пока не понимаю

? Stan
14.11.2017
09:15:18
на баше тоже можно. Аналогично. Тока с баша наверное проще дёрнуть
fs_cli -x 'originate...
чем в ЕСЛ сходить

Konstantin
14.11.2017
09:15:47
#!/bin/bash
/usr/bin/fs_cli -x "originate {origination_caller_id_number=$1}sofia/gateway/YouR_TISP_GW/$2 &bridge({origination_caller_id_number=$1}sofia/gateway/YouR_TISP_GW/$3)"

Alex
14.11.2017
09:17:21
а в FS как вставить вызов?

Google

Konstantin
14.11.2017
09:17:36
Что значит "вставить"?

The
14.11.2017
09:18:05
fs_cli -x видимо

Konstantin
14.11.2017
09:18:10
То, что выше написано копируешь в файл, ставишь файлу chmod +x
Запускаешь файл с нужными парамтерами и всё.

Alex
14.11.2017
09:18:27
номер же приходит в FS, из него нужно вызвать скрипт

? Stan
14.11.2017
09:18:37
зачем вызывать скрипт из фс?

Konstantin
14.11.2017
09:18:57
Он хочет инициировать callback от входящего вызова

Alex
14.11.2017
09:19:07
бр... а как не пойму? мне не обзвон нужен

? Stan
14.11.2017
09:19:22
расскажи чего нужно)

Konstantin
14.11.2017
09:19:35
<action application="system" data="сценарий_сохранения_номеров_А_и_Б $caller_id_number $pagd_number"/>
<action application="hangup"/>

Alex
14.11.2017
09:20:53
вот, видимо то, что нужно. задача следущаяя... например, теща звонит со своей мобилы и чтобы деньги её не тратить FS сбрасывает и перезванивает

? Stan
14.11.2017
09:21:05
ах вон какой колбек
https://kovalyshyn.pp.ua/837.html

Google

Konstantin
14.11.2017
09:22:25
В скрипте ставится шедулер, который инициирует по сохранённой инфе вызов.

? Stan
14.11.2017
09:22:58
ну и там в комментах есть ссылка годная тоже

Alex
14.11.2017
09:24:29
что то там диалплан вырезан)
в комментах вроде подойдет, но как сделать проверку номера? там на всех звонивших будет перезванивать

Vitaly
14.11.2017
09:29:11
слетело форматирование в старых статьях, после обновления - подправил для этой записи.

Konstantin
14.11.2017
09:29:16
Тебе ж предложили "решение под ключ". ?

Alex
14.11.2017
09:30:34
да, спасибо. Класс. Но в этом случае отдельный номер нужно заводить

? Stan
14.11.2017
09:31:40

Konstantin
14.11.2017
09:32:05
Или скриптом, если в БД инфа.

Alex
14.11.2017
10:10:04
А где почитать про условия в диалплане? Не могу врубиться как "прыгать" по диалплану в зависимости от условий
Не могу поймать дзен после Астериска

? Stan
14.11.2017
10:11:33
Не могу поймать дзен после Астериска
вы все неправильно говорите
фрисвитч это такая штука, вот ты его поставил, вот ты материшься и не понимаешь как это юзать, вот ты его настроил и после этого внезапно понимаешь что больше видеть астериск не хочешь

Konstantin
14.11.2017
10:11:41
Условия это не GotoIf, это фильтры - выполнять или нет action или antication внутри condition.
Условия бывают с остановом дальнейшей проверки или без и в зависимости от того, выполняется условие или нет.
Условия могут быть комбинаторными.

Alex
14.11.2017
10:13:05
Жаль, что инфы на русском мало

? Stan
14.11.2017
10:22:01
мне в своё время помогло вдумчиво прочитать https://freeswitch.org/confluence/display/FREESWITCH/XML+Dialplan

Konstantin
14.11.2017
10:22:13

Google

? Stan
14.11.2017
10:22:14
там на примерах всё хорошо

Alex
14.11.2017
11:59:04
Парни, а для выполнения js скриптов какие пакеты нужно установить в Debian?
Борюсь все с тем же callback. Вылезает ошибка
2017-11-14 15:02:17.859630 [DEBUG] switch_core_state_machine.c:783 Hangup Command with no Session jsrun(callback.js 7ХХХХХХХХХ8 1002):
INVALID COMMAND!

Denis 災 nobody
14.11.2017
12:04:59
у фс транскодинг частенько дает "металлический голос" и подобное
при переводах например
что есть плохо

Alex
14.11.2017
12:05:59
какой нужен?
mod_java?

Denis 災 nobody
14.11.2017
12:09:34
freeswitch-v8.x86_64 : JavaScript support for the FreeSWITCH open source telephony platform, using Google V8 JavaScript engine
mod_java?
какое отношение java вообще к js имеет?

Alex
14.11.2017
12:10:26
поэтому и спрашиваю какой модуль

Denis 災 nobody
14.11.2017
12:10:34
v8
а дальше - вероятнее load js
там табом посмотри

енот
14.11.2017
12:11:49
Да сделай ты колбек по тупому, через диалплан, нафиг тебе скрипты? Кондишен на cid, дальше хэнгап и бридж на cid

Alex
14.11.2017
12:13:26
это лучше. а бридже как прописать?

енот
14.11.2017
12:16:25
Гуглануть freeswertch bridge, channel variables
Я с телефона, а это базовые понятия, без них ловить нечего

Alex
14.11.2017
12:17:31
Не спорю. Только разбираюсь с FS

Google

енот
14.11.2017
12:17:42
Теья интересует caller_id

Alex
14.11.2017
13:13:51
А как выполнить бридж после хангап? На хангапе все останавливается

енот
14.11.2017
13:14:21
fail_after_hangup или как-то так

Igor
14.11.2017
13:14:37
api_hangup_hook
но насчет бриджа чот не уверен
есть еще set_zombie_exec

енот
14.11.2017
13:15:38
hangup_after_bridge
continue_on_fail
Вот эти две опции тебе помогут

Denis 災 nobody
14.11.2017
13:16:01

енот
14.11.2017
13:16:08
falste
))


Alex
14.11.2017
13:16:35
пошел читать)
Чет не срабатывает все равно... где накосячил?
<extension name="public_did_mult">
<condition field="destination_number" expression="^\+?7?8?(9xxxxxxx72)$"/>
<condition field="caller_id_number" expression="^\+?7?8?(90xxxxxxx8)$">
<action application="pre_answer"/>
<action application="read" data="3 12 'tone_stream://%(10000,0,350,440)' digits 20000 #"/>
<action application="set" data="hangup_after_bridge=false"/>
<action application="set" data="continue_on_fail=CALL_REJECTED"/>
<action application="hangup" data="CALL_REJECTED"/>
<action application="bridge" data="[origination_caller_id_number=$1]sofia/gateway/multifon/$1,[origination_caller_id_number=${digits}]sofia/geteway/multifon/${digits}"/>
<!— <action application="set" data="api_hangup_hook=jsrun callback.js ${caller_id_number} ${digits}"/> —>
<anti-action application="set" data="recordingfile=${strftime(%Y-%m-%d-%H:%M)}_${destination_number}_${caller_id_number}.wav"/>
<anti-action application="record_session" data="$${rec_dir_custom}/${recordingfile}"/>
<anti-action application="set" data="domain_name=$${domain}"/>
<anti-action application="transfer" data="1003 XML default"/>
</condition>
</extension>


Denis 災 nobody
14.11.2017
13:44:09
<action application="hangup" data="CALL_REJECTED"/> вот тут?

Alex
14.11.2017
13:51:54
заменил на <action application="hangup"/> - не работает

енот
14.11.2017
13:57:27
сделай ансвер, потом хэнгап

Denis 災 nobody
14.11.2017
14:04:57
а не по второй ноге, хэнгап которой мы игнорим
так что делай бридж, где второй ногой sipp с нужным хэнгапом

Google

Alex
14.11.2017
14:14:47
а есть рабочий пример?

Denis 災 nobody
14.11.2017
14:28:38
под рукой нет, попозже

Alex
14.11.2017
14:29:14
хорошо, подожду
Парни, а такой вопрос... не вызывается bash скрипт. Отдельно из терминала выполняется, права 777, а из диалплана не хочет.
<extension name="public_did_mult">
<condition field="destination_number" expression="^\+?7?8?(9хххххххх2)$"/>
<condition field="caller_id_number" expression="^\+?7?8?(9хххххххххх8)$">
<action application="system" data="callback.sh 1002 ${caller_id_number}"/>
<action application="hangup"/>
</condition>
</extension>

? Stan
14.11.2017
20:00:38
SELinux?
Что в логах?

Alex
14.11.2017
20:01:05
а вот сейчас проверю
в логах тишина

? Stan
14.11.2017
20:01:33
Ну он пишет что пытается?

Alex
14.11.2017
20:01:46
2017-11-14 22:52:10.477376 [NOTICE] mod_dptools.c:2120 Executing command: callback.sh 1002 7ххххххх
это единственное, что выводит
после этого хэнгап
и тишина
не, SELinux по умолчанию выключен
в Debian

? Stan
14.11.2017
20:10:05
А он точно в нужной парке? Укажи абсолютный путь

Alex
14.11.2017
20:10:42
да вроде в нужной... для скриптов то общая папка?
хм... с абсолютным путем выполняется... что за чертовщина

? Stan
14.11.2017
20:14:37
да вроде да, но ты попробуй с абсолютным
о