@ru_freeswitch

Страница 106 из 430
Konstantin
20.06.2017
19:58:22
Много ресурсов уходит на изменение состояний вызова, выделение/освобождение памяти и прочее. Знакомая история.

Alexandru
20.06.2017
19:58:33
Ну это раз

Второе - дп на луа это хорошо

Но мне нужно централизованное хранилище

Google
Alexandru
20.06.2017
19:59:06
Астерик риалтайм это говно

Ну вот сразу с порога говорю

Konstantin
20.06.2017
19:59:19
mongo и сценарии доступа

Alexandru
20.06.2017
19:59:26
Ari ami порой избыточно

Yuriy
20.06.2017
19:59:31
Я вообще не использую BD на проектах напрямую с астериском

чрез API

Вертятся микросервисы

туда запросами уходят данные по http

да и с FS такая же петрушка

Konstantin
20.06.2017
20:00:37
В Kazoo эти задачи решены, там на MQ вся синхронизация и распределённые БД.

Alexandru
20.06.2017
20:01:11
Казу отдельная история

Yuriy
20.06.2017
20:01:12
ну да. А тут что на FS что на *надо писать сво реализацию

Konstantin
20.06.2017
20:02:58
Что касается большого кол-ва коротких вызовов, то можно сделать "финт ушами" и просто не посылать их сразу на FS/Aster, а использовать 3pcc и перетаскивать в определённый момент эти вызовы на media-сервер.

Google
Konstantin
20.06.2017
20:04:17
Одни парни так делали для PDS(упреждающий набор), писали специальный скрипт, который только "отвеченные" вызовы направлял на Aster, а до ответа они на "заглушке" вертелись.

Получается такая статистика: делается 100 вызовов, из которых реально будут отвечены только 1-5. Соответственно 99-95% нагрузки идёт на заглушку и только 1-5% на Aster(в их случае)

Yuriy
20.06.2017
20:06:17
ну вообще на астере можно драйвер поменять. На pjsip. тогда проблема уйдет тоже. pjsip многопоточен

Alexandru
20.06.2017
20:33:12
Может стоит и потрогать астер... Не имел с ним дел очень давно, уж точно до нормального pjsip

Yuriy
20.06.2017
20:34:19
Лично мое мнение - надо работать с тем, с чем удобно. Я перешел на FS только из за того что один из проектов в ТЗ требовал FS А не Asterisk

Сейчас у меня очень двояое впечатление и от первого и от второго))

made
21.06.2017
07:16:59
Господа, доброго дня. Подскажите, пожалуйста, возможно ли реализовать такую схему: Есть 3 бокса freeswitch. На каждом организуется своя видеоконференция. В какой-то момент времени нужно объеденить эти конференции в одну, так, чтобы это выглядело, как одна общая конфа.

Alexandru
21.06.2017
07:34:21
хм

а настройки конфы какие

made
21.06.2017
07:37:12
стандартная конфа из комплекта freeswitch-meta-all, та что по 3500. <extension name="cdquality_stereo_conferences"> <condition field="destination_number" expression="^(35\d{2}).*?-screen$"> <action application="answer"/> <action application="send_display" data="FreeSWITCH Conference|$1"/> <action application="set" data="conference_member_flags=join-vid-floor"/> <action application="conference" data="$1-${domain_name}@video-mcu-stereo"/> </condition> </extension>

Yuriy
21.06.2017
07:39:18
можно из какой либо конференции через донабор например или ESL послать originate через bgapi на другой сервер и зацепиться вызываемом сервере за конференцию

Konstantin
21.06.2017
07:39:57
Интересно, а чем "вызвон" из этой конфы в сторону другой конфы будет принципиально отличаться от присоединения ко второй конфе ещё одного пользователя?

Yuriy
21.06.2017
07:40:34
ни чем. Поэтому так и написал

Konstantin
21.06.2017
07:40:41
И уточняющий вопрос: FreeSwitch в конфе видео смешивает?

Я помню, что были попытки "пробрасывать" видео-потоки, не смешивая их, но не помню, к чему это пришло в итоге.

made
21.06.2017
07:41:52
смешивает. и канал между фрисвитчами очень узкий (1мбит), потому нельзя просто пользователей одного перенаправлять на другого.

хотя, если без этого никак - прщай кач-во видео)

Konstantin
21.06.2017
07:42:19
Если смешивает, то как и обсуждается - делается мост.

Пробросить управление конференцией, пожалуй, не получится, т.к. для второй конференции все участники первой это один участник.

Yuriy
21.06.2017
07:44:44
если нужно управление - то через transfer просто переподключить участников к новой

Google
Konstantin
21.06.2017
07:45:26
Тут весь смысл в распределениии, как я понял. Так-что transfer не вариант.

made
21.06.2017
07:46:30
да, смысл в распределении, экономия канале меж боксов и автономность в случае отказа на своих абонентах. и в случае bridge и в случае transfer объем траффика между боксами будет равный?

Konstantin
21.06.2017
07:47:04
transfer - это внутренняя операция, вопрос некорректный

made
21.06.2017
07:47:12
или bridge будет гонять "микшированый" поток?

Konstantin
21.06.2017
07:47:26
мост будет микшированные потоки гонять

made
21.06.2017
07:47:36
уже неплохо

Konstantin
21.06.2017
07:48:27
Управление останется раздельным. В части слышимости/видимости будет всё работать.

А допилить "проксирование управления" - интересная идея, кстати.

made
21.06.2017
07:52:26
и еще вопрос, если не надоел. есть ли стандартный способ на клиенте получить список зарегистрированых пользователей? клиент - JsSIP со своим интерфейсом, в распоряжении соединение с FS по веб-сокету и весь арсенал http/ajax и т.п.

грубо говоря список подключеных со статусами, чтоб ткнуть и позвонить.

Konstantin
21.06.2017
07:53:29
именно зарегистрированных по SIP или состояние регистраций/вызовов по некому списку?

Есть такая штука как PRESENCE - как раз решает задачу слежения за списком контактов.

Konstantin
21.06.2017
07:55:40
Но сам список контактов никак "стандартно" не получается - это произвольно.

made
21.06.2017
07:55:52
список - это все, что есть в directory.xml, плюс их статусы (онлайн/офлайн). можно ли средствами FS эту инфу раздать клиентам.

Konstantin
21.06.2017
07:56:55
http://www.voiceoperatorpanel.com/

made
21.06.2017
07:56:57
т.е. парсить directory.xml, смотреть на presence и все это раздавать своим tcp сервером?

Konstantin
21.06.2017
07:56:59
Это хочется?

made
21.06.2017
07:57:59
конечно хочется) но это оверкилл. достаточно скайп-подобного списка контактов)

Konstantin
21.06.2017
07:58:31
Как правило, "список" получают любым удобным для себя методом, а слежение организуется стандартным PRESENCE

made
21.06.2017
07:58:48
понял. спасибо огромное!

Google
Yuriy
21.06.2017
08:01:59
Завернул все в бд храню там комнаты, пользователей, настройки конфы) через websocket клиентом подписываюсь на обновления списка участников - получаю реалтайм

made
21.06.2017
08:03:00
да, я просто хотел обезопаситься от велостроения лишнего.

Dmitriy
21.06.2017
08:05:54
добрый день. кто нибудь использовал в практике оповещение на почту когда сип транк отваливался?

Konstantin
21.06.2017
08:06:30
И на почту и по СМС через систему мониторинга, в частности Zabbix

Dmitriy
21.06.2017
08:08:35
в Zabbix - е есть имено чтобы сип транк когда отваливался или он сервер только мониторит?

скриптами можно сделать но я думал что то есть родное на фс

? Stan
21.06.2017
08:17:19
Вроде ФС через СНМП отдает в т.ч. статус реги

Admin
ERROR: S client not available

Konstantin
21.06.2017
09:16:35
Да. Делали "вещание". Было дело.

Клиенты на rpi и gstreamer и sipp, конечно.

made
21.06.2017
09:17:25
https://habrahabr.ru/post/268773/
да, эта статья и стала отправной точкой. но там видимо, не все показано. иначе зачем столько JS

ros
21.06.2017
09:18:18
на блюдечке никто не выложит даже если и выложит работать не будет

Konstantin
21.06.2017
09:18:50
Как правило, статьи "по памяти" прсле проекта пишут уже.

К ним стоит относиться по принципу: "помню, что примерно так делал"

LLC INTERCOMTEL
21.06.2017
13:15:01
Приветствую! Господа,подскажите как правильно сделать донабор dtmf при исходящем вызове. Т.е. при наборе через шлюз на определенный номер отвечает disa, в ней нужно донабрать комбинацию, а затем вызываемый номер. Заранее спасибо за ответы

LLC INTERCOMTEL
21.06.2017
13:20:45
Нужно после ответа сгенерировать звуки тонового набора.

inband получается

Alexandru
21.06.2017
13:22:34
execute_on_answer spandsp_send_dtmf

Google
Alexandru
21.06.2017
13:23:35
просто send_dtmf*

и dtmf_type не забыть

но по сути все вертится вокруг execute_on_answer

Yuriy
21.06.2017
13:39:28
никто не пробовал переписать hangup_cause переменную после поднятия трубки? Задача такая: после поднятия трубки на отвечающем плече должны донабрать 1 скажем - это будет говорить о том тчто трукбу взял действительно человек. Есл же нет, то положить трукбу и звонок считать неотвеченным В общем и целомя могу конечно сделать специальную переменную и отдать ее куда хочу, но как по мне, было бы здорово управлять этим через hangup_cause попробовал переписать переменную через session:setVariable("bridge_hangup_cause"," CALL_REJECTED") Результат нулевой

Yuriy
21.06.2017
13:47:47
то что нужно

Работает

LLC INTERCOMTEL
21.06.2017
14:04:00
execute_on_answer spandsp_send_dtmf
Подскажите что не так

Alexandru
21.06.2017
14:04:17
все не так

LLC INTERCOMTEL
21.06.2017
14:04:18
<condition field="destination_number" expression="^([45]\d{2})$"> <action application="set" data="dtmf_type=inband"/> <action application="set" data="execute_on_answer="send_dtmf *4719110852@500"/> <action application="bridge" data="sofia/external/1144@192.168.11.1:35060"/> <action application="answer" />

?

Alexandru
21.06.2017
14:04:42
answer зачем

или это я натупил... вроде там send_dtmf_generate нужно

хотя не факт

Yuriy
21.06.2017
14:07:29
атака продолжается session:setVariable("continue_on_fail","true") session:setVariable("hangup_after_bridge","false") session:execute("bridge",processingData.dialString) session:consoleLog("notice",session:getVariable("bridge_hangup_cause")) — тут пусто... Звонок отбиваю сам на вызываемой стороне

Yuriy
21.06.2017
14:10:33
При поднятии трубки вижу норм А если например не поднимаю а просто отбиваю (USER_BUSY) То ничего переменная пустая Хотя в логах вот так Hangup sofia/external/92Av96hW50q9 [CS_CONSUME_MEDIA] [USER_BUSY]

Страница 106 из 430