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
так не бывает.
Бывает. Может быть фиговым канал на загрузку, а на отдачу - прекрасным. Опять же у клиента могут быть телефоны с динамиками фиговыми
The
21.09.2017
13:24:51
"оператор"
Konstantin
21.09.2017
13:25:28
"Оператор"=внутренний абонент?
Ihor
21.09.2017
13:25:37
Ну и да, бывают крики вида "а-а-а-а-а, ничего не работает"
а по факту - подвис телефон у менеджера Пети
The
21.09.2017
13:26:09
Konstantin
21.09.2017
13:26:33
Рабочие станции мониторятся?
Ihor
21.09.2017
13:26:37
Google
Konstantin
21.09.2017
13:27:03
В общем: снять дампы на сервере и проблемной рабочей станции.
The
21.09.2017
13:27:26
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
браузер это не продакшн решение
уже несколько лет работает и проблем нет, есть возможность юзать софтфон. нужны только исходящие, поэтому нормально работает
Fedor
21.09.2017
13:41:25
браузер - это браузер+костыли, а не софтфон
The
21.09.2017
13:42:06
Ivan
21.09.2017
13:43:33
к сожадению не знаю, звонят из разных точек России, причем заметил, что проблемные звонки только на telphin`e встречаются, хотя телфин говорит у них все хорошо ищете проблему у себя.
Пробовал через winmtr смотреть пакеты от компьютера оператора, получается вот такая картина
Denis 災 nobody
21.09.2017
13:44:47
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
то есть просто открыть сокет через луа и хреначить? )
надо попробовать
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
Denis 災 nobody
22.09.2017
16:42:14
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 одновременных соединений
Denis 災 nobody
22.09.2017
16:53:14
смотрел буквально пол часа назад, но смутило uv
мотеус русский? )
Alexey
22.09.2017
16:56:07
Denis 災 nobody
22.09.2017
16:57:07
ну, респект за помощь в ирке и вообще сделанное )