@ru_freeswitch

Страница 144 из 430
Ihor
21.09.2017
13:21:15
Оборудование конечное тоже стоит проверить

В смысле телефоны, гарнитуры и прочее

Ну а запись обычно на сервере. Думаю, если было бы что-то иное, об этом бы упомянули

The
21.09.2017
13:23:13
Ну а запись обычно на сервере. Думаю, если было бы что-то иное, об этом бы упомянули
если на сервере, а клиенты жалуются, то такого не может быть.

Google
The
21.09.2017
13:23:34
т.е. валидно пишутся оба плеча, установлено что в аплинке есть проблемы, а на записи их нет.

так не бывает.

Konstantin
21.09.2017
13:23:40
А между собой? Внутренние вызовы?

При звонке через аплинк кто плохо слышит? Внутренний абонент или внешний или оба?

Ihor
21.09.2017
13:24:49
так не бывает.
Бывает. Может быть фиговым канал на загрузку, а на отдачу - прекрасным. Опять же у клиента могут быть телефоны с динамиками фиговыми

Konstantin
21.09.2017
13:25:28
"Оператор"=внутренний абонент?

Ihor
21.09.2017
13:25:37
Ну и да, бывают крики вида "а-а-а-а-а, ничего не работает"

а по факту - подвис телефон у менеджера Пети

The
21.09.2017
13:26:09
"Оператор"=внутренний абонент?
видимо. тогда ставлю на загрузку проца при dsp. такое бывает, когда переключаются между окнами и т.д.

Konstantin
21.09.2017
13:26:33
Рабочие станции мониторятся?

Ihor
21.09.2017
13:26:37
это хреновый канал на загрузку будет виден в дампе.
Смотря где дамп снимать. У клиента обычно не получается. Поэтому на сервере и снимаем. И как понять, что часть RTP пакетов просто не дошла?

Google
Konstantin
21.09.2017
13:27:03
В общем: снять дампы на сервере и проблемной рабочей станции.

Konstantin
21.09.2017
13:27:44
Попробовать вместо браузера softphone, а лучше настольный ip-телефон.

И козырный вопрос: "оператор" в локальной сети с сервером или через ВПН по внешнему каналу?

Fedor
21.09.2017
13:30:21
вы пускаете телефонный трафик по пакетным сетям... используете костыли к браузерам.. у вас происходят проблемы, и виновато всё, кроме этих сетей и этих устройств, на которых работают эти браузеры



Konstantin
21.09.2017
13:31:37
Я что-то обвинений не видел. Видел попытку найти и устранить проблему.

Fedor
21.09.2017
13:32:07
не придирайся)

скорее всего сеть

либо комп

твой совет самый дельный, между прочим

Konstantin
21.09.2017
13:36:37
?

Ivan
21.09.2017
13:40:46
браузер это не продакшн решение
уже несколько лет работает и проблем нет, есть возможность юзать софтфон. нужны только исходящие, поэтому нормально работает

интересно, как осуществляется запись.
стандартными средствами fs

Fedor
21.09.2017
13:41:25
браузер - это браузер+костыли, а не софтфон

The
21.09.2017
13:42:06
стандартными средствами fs
а звуковые карты у операторов интегрированные?

Ivan
21.09.2017
13:43:33
к сожадению не знаю, звонят из разных точек России, причем заметил, что проблемные звонки только на telphin`e встречаются, хотя телфин говорит у них все хорошо ищете проблему у себя. Пробовал через winmtr смотреть пакеты от компьютера оператора, получается вот такая картина



Google
The
21.09.2017
13:45:26
средняя дельта ок, потерь нет.

правда это icmp, а не udp 1400 байт

Denis 災 nobody
21.09.2017
16:00:19
на что в луа можно заменить питоновский in? Только на ... or ... or ... ?

Alexey
21.09.2017
16:01:51
можно написать функцию и использовать как if is_in(a,{1,2,3}) then

можно определит таблицу как VALS={v1=true, v2=true} и далее if VALS[v] then

есть еще несколько вариантов :)

Denis 災 nobody
21.09.2017
16:07:58
if state in ('CS_CONSUME_MEDIA', 'CS_EXCHANGE_MEDIA') and callstate in ('RINGING', 'EARLY') then

вот такое

Alexey
21.09.2017
16:13:19
local function is_in(v, c, ...) if v == c then return true end if select('#', ...) == 0 then return false end return is_in(v, ...) end if is_in(state, 'CS_CONSUME_MEDIA', 'CS_EXCHANGE_MEDIA') and is_in(callstate, 'RINGING', 'EARLY') then end

local function SET(a) local r = {} for _, v in ipairs(a) do r[v] = true end return r end local STATES = SET{'CS_CONSUME_MEDIA', 'CS_EXCHANGE_MEDIA'} local CSTATES = SET{'RINGING', 'EARLY'} if STATES[state] and CSTATES[callstate] then

Второй вариант должен быть быстрее

Denis 災 nobody
21.09.2017
16:18:15
спс )

Alexey
21.09.2017
16:20:13
https://stackoverflow.com/questions/656199/search-for-an-item-in-a-lua-list

Denis 災 nobody
21.09.2017
16:21:47
а почему ругается на for chan in chans_json['rows']:

Alexey
21.09.2017
16:22:30
для таблицы нужно испрользовать итератор pairs

for chan in pairs(chans_json['rows']) do .. end chan в этом случае ключб если нужно значение можно for _, chan in pairs(chans_json['rows']) do .. end

Denis 災 nobody
21.09.2017
16:30:00
спасибо )

Dmitry
21.09.2017
18:28:37
Вечер добрый!

Какие есть мнения о 3сх?

Konstantin
21.09.2017
18:29:31
Телефон годный.

Google
Dmitry
21.09.2017
18:31:48
Сеньк

Пардон если не туда)

Думаю потестить что ле, как аваезаменитель..

Konstantin
21.09.2017
18:33:22
Сервер?

Прр сервер ничего не скажу.

А sipXcom?

Dmitry
21.09.2017
18:35:01
Ну воще, я думаю, не там сабж поднимаю) хком погляжу, спасибо.

Alexey
21.09.2017
19:46:13
Sipxcom на чем построен?

Konstantin
22.09.2017
09:44:36
Sip proxy C++ приложение от аффтаров. Media FreeSwitch. IM на openFire. БД postges + mongo. WEB-UI tapestry/springs/hibernate.

Denis 災 nobody
22.09.2017
16:19:56
@kvishnivetsky я могу как-то объединить 4 sendmsg в один?

Konstantin
22.09.2017
16:20:31
Слегка не понял вопроса.

Denis 災 nobody
22.09.2017
16:20:34
а то на некотором cps (хз каком, но думаю 100+) получаем траблы, обрабатываются они секунд по 30

надо вешать бинды после answer, sched_broadcast дает щелчок, с uuid_broadcast тоже вроде щелчок и вообще в 2 канала может быть повисшие в парке каналы, решаем через ESL sendmsg через sendRecv

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

Konstantin
22.09.2017
16:25:19
Perl/C пробовали?

Вообще, если речь идёт про "прямой интерфейс", т.е. писанину в TCP сокет, то можно не закрывая соединение хоть 10 команд туда послать подряд.

Главное, чтобы они были отделены друг от друга по синтаксису ESL.

Denis 災 nobody
22.09.2017
16:27:47
Perl/C пробовали?
б-г миловал, без перла обойдемся

то есть просто открыть сокет через луа и хреначить? )

надо попробовать

Google
Konstantin
22.09.2017
16:28:19
И, естественно, т.к. сам по себе TCP сокет умеет асинхронный режим, вы читать ответы(events) тоже сможете параллельно с отсыланием команд

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

Alexey
22.09.2017
16:36:03
Не пробовали через EventConsumer? Там вообще нет сети

Можно попробовать сделать более оптимальный биндинг чем текущий через swig

Denis 災 nobody
22.09.2017
16:36:05
но я так понимаю, ESL запаролен.. так что надо писать авторизацию

Alexey
22.09.2017
16:36:41
Та от авторизации одно доброе слово :)

В смысле просто посылаете пароль и все

Konstantin
22.09.2017
16:38:03
Авторизаци это тоже "команда"

Action: auth Secret: cluecon Events: on

Если я не забыл ничего, конечно. ;-)

Alexey
22.09.2017
16:39:54
https://freeswitch.org/confluence/display/FREESWITCH/Lua+API+Reference#LuaAPIReference-freeswitch.EventConsumer Мой пример использования с небольшой оберткой https://github.com/fusionpbx/fusionpbx/blob/master/resources/install/scripts/blf_subscribe.lua#L163

Если я не забыл ничего, конечно. ;-)
FS посылает auth response при подключении и надо ответить событием с паролем в открытом виде

Alexey
22.09.2017
16:45:45
Простейшая реализация на php https://github.com/fusionpbx/fusionpbx/blob/master/resources/classes/event_socket.php#L121

Может ради интереса погоняете мою реализацию? https://github.com/moteus/lua-lluv-esl Но у меня очень маленькие инсталяции. Максимум 50-60. Внутренних номеров и не более 10-12 одновременных соединений

Alexey
22.09.2017
16:56:07
Denis 災 nobody
22.09.2017
16:57:07
ну, респект за помощь в ирке и вообще сделанное )

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