@ru_freeswitch

Страница 350 из 430
Borik
18.07.2018
13:49:03
в смысле нет ни одного параметра a=

но я уже нашел как поправить. если прислыать не UDP/TLS/RTP/SAVPF, а RTP/SAVP, то все работает

Алексей
18.07.2018
14:37:57
Вопрос по поводу шлюзов. Если шлюз с регистрацией, то fs добавляет в поле контакт gw+gwname. и при входящей связи, если видит это поле, матчит его со шлюзом и понимает с какого шлюза вызов. При звонке без регистрации такого нет. оно и понятно. я обычно делаю проверки в диалплане по ip. возможно как то ещё идентифицировать шлюз, как в случае с регистрацией?

просто в случае без регистрации freeswitch кинет вызов в контекст, указанный в sip_profile, а не в тот что указан в шлюзе

Google
Александр
18.07.2018
14:40:34
зависит от ситуации - можно и профили разные поднять если что

Алексей
18.07.2018
14:41:29
согласен. можно профайлы городить. просто сейчас, лучшее что я придумал, это extensions в public диалплане в котором проверяю по ip адресу/А-номерам и тд

и уже оттуда "пляшу"

Александр
18.07.2018
14:55:13
мммм - как бы стандартная схема гнать все входящие в паблик контекст а там обрабатывать по ектенам по дестинейшн намбер

Алексей
18.07.2018
15:01:17
ну это понятно. я просто думал есть способ "элегантнее"

Алексей
18.07.2018
15:23:24
ну это ясно. некоторые игнорирую поле контакт

некоторым не нравится когда ты в поле контакт присылаешь gw+

ros
18.07.2018
15:24:09
это правится на раз

Алексей
18.07.2018
15:24:17
знаю

extension in contact кажется

или как то так

ros
18.07.2018
15:25:14
угу

Google
Nikolay
18.07.2018
17:04:29
Full-stack developer | Startupsoft http://telegra.ph/Full-stack-developer-at-Startupsoft-07-18

Yuriy
18.07.2018
20:53:56
Всем доброго времени суток кто подскажет что в себе содержат read_codec и writ_codec в CDR ?

Алексей
18.07.2018
20:57:10
Первое это кодек согласованный с а легом

Второй с б легом

Yuriy
18.07.2018
20:57:55
Спасиб!

Алексей
18.07.2018
21:00:10
Точнее кодек inbound и outbound легов. Но при обычном звонке без всяких переводов и конференций а лег входящий, б лег исходящий

AbdulAziz
19.07.2018
06:25:06
Приветствую всех. FS 1.6.20 (актуальный) Проблема Служба такси, переодически появляется такая проблема. Входящий звонок (sip trunk, GSM шлюз без разницы) звонок отправляется в мод кол-центр, у которого операторы подгребаются из БД mysql через odbc коннектор. Сами операторы как endpoin пользуются через sipjs по средствам WebRTC (wss). Звонок приходит нормально, оператор отвечает, звонок завершается, все довольный. НО. переодически после звонка у оператора не меняется статус и он продолжает быть status: On Break state: Idle, пока вручную ему не сменить статус. Так же в это время звонок продолжает висеть пока его не убить. Т.е. решения 2, сменить статус и channel убьется либо убить channel и статус изменится. в чем нужна помощь Подсткажите может кто сталкивался с таким, или просто направьте что спрашивать у google. Как это лечится сейча, работает скрипт который тупо сравнивает время start_stamp и нынешним и если оно больше 15 минут то принудительно завершает вызов. uuid_kill 651e8535-4674-462e-be6f-bc4641015295

Алексей
19.07.2018
06:36:45
а cdr используются? у меня похожая проблема. вызовы в таблицу channels добавляются, но некоторые там зависают(правда при этом uuid exists говорит false). возможно, проблема в cdr, так как процесс записи cdr блокирует канал пока не положит в бд/файл данные cdr. из confluence fs: DO NOT write CDR scripts in the hangup hook of your dialplan or ESL script as this will delay the termination of the voice thread and will not scale to large systems

сами cdr постятся по событию channel_hangup_complete. пока процесс не завершится, не придёт сообщение channel_destroy

AbdulAziz
19.07.2018
06:52:13
cdr используется, но в бд ложит уже после того как записаловь с cdr. А как запись в cdr может блочить завершение channel разве cdr это не следствие после вызова?

Алексей
19.07.2018
06:54:23
ну вот пример из практики. я работал с одними разработчиками. они использовали json_cdr. постили на веб сервер. когда веб сервер обжирался, у них была задержка в закрытии каналов. channel_destroy приходил примерно через 10 секунд после того как положили трубку. всё это время канал светился в базе данных и во фрисвиче

тоесть, пока web сервер не ответит, или не пройдёт таймаут, канал не кладётся

вот такие пироги

AbdulAziz
19.07.2018
06:55:27
ок, а как можно воспроизвести эту проблему тогда? заблокировать файл Master.cdr на запись?

Алексей
19.07.2018
06:57:27
вы кладёте в csv файл? да. думаю можно попробовать запретить писать в файл. но тут тоже не так однозначно. ибо когда сервер из предыдущего сообщения падал, канал закрывался сразу. говорил ошибка 500 и сохранял json файл бекапный. проблема была именно когда были задержки.

я это к тому

что если просто закрыть файл на запись, fs сразу может дать ошибку permission deny

надо как то сэмитировать большую нагрузку по I/O

AbdulAziz
19.07.2018
06:59:02
надо как то сэмитировать большую нагрузку по I/O
с этим сложности. это прод и просто так мне это сделать не дадут

Google
Алексей
19.07.2018
06:59:34
понимаю. опять же, это всего лишь догадка. первое что в голову пришло. ибо сталкивался с этим

AbdulAziz
19.07.2018
06:59:52
Понял, хорошая идея. Спасибо большое

Алексей
19.07.2018
07:00:01
да незачто

Александр
19.07.2018
07:15:17
да у коллцентра всегда с базой проблемы были - еще мембер может тоже подвисать.

Алексей
19.07.2018
07:24:13
ещё я много слышал что odbc медленно работает. но сам не в курсе. не тестировал.

AbdulAziz
19.07.2018
07:31:41
а как канал связан с БД. возможно такое что в момент звонка зависла БД или перестала отвечать и он решил не прекрощать вызов ?

Алексей
19.07.2018
07:34:34
ну как это работает в call center я не совсем уверен. поэтому спрашивал куда у Вас пишутся cdr

возмжно изза большой нагрузки на БД подвисают каналы.

хорошей практикой считается cdr писать в текстовые файлы на RAM диск. оттуда сторонним процессом обрабатывать(класть в бд например)

Aklin
19.07.2018
07:40:58
помоему это костылями называется

Алексей
19.07.2018
07:43:02
хм. тогда поидее в этом не должно быть проблем

AbdulAziz
19.07.2018
07:43:03
но это для CDR

Алексей
19.07.2018
07:43:16
а нагрузка на БД большая вообще?

Alexey
19.07.2018
07:43:29
первым делом уходите от odbc+mysql

там дедлоки

AbdulAziz
19.07.2018
07:44:06
что посоветуете? манго?

Alexey
19.07.2018
07:44:18
postgres

поддержка нативная

Алексей
19.07.2018
07:44:51
да. postgresql хорош.

Google
Алексей
19.07.2018
07:44:59
+ нативная поддержка в fs

без всяких odbc

что посоветуете? манго?
кстати. с монго тоже "классная" хрень была =) на тестовом стенде смотрел как себя ведёт mongo cdr. и так как стенд тестовый, не особо мощный, у меня подвисла виртуалка с бд. фрисвитч не мог записать cdr в базу, и просто начали копиться каналы. добрался до 1000 штук и начал отбивать вызовы типа он занят)

тоесть он не разрывал те канала, для которых не смог записать cdr в монго

каналы*

AbdulAziz
19.07.2018
07:48:31
постгрес как вариант.

Александр
19.07.2018
08:03:56
всю жизнь на постгресе - и всегда были подвисания каналов, агентов, мемберов

редко но бывает

AbdulAziz
19.07.2018
08:10:50
+ в том что он без промеждутков работает типо odbc

Ba Anh
19.07.2018
12:15:06
у кого нибудь есть пример подключения gateway через mod_xml_curl?



Ihor
19.07.2018
12:34:33
<?xml version="1.0"?> <document type="freeswitch/xml"> <section name="directory"> <domain name=«mydomain.com»> <user id="gateways"> <gateways> <gateway name="birtan"> <params> <param name="username" value=«ХХХ»/> <param name="from-user" value=«ХХХ»/> <param name="password" value=«ХХХ»/> <param name="proxy" value=«ХХХ»/> <param name="register" value="true"/> <param name="caller-id-in-from" value="true"/> <param name="context" value="default"/> <param name="extension" value=«ХХХ»/> <param name="retry-seconds" value="10"/> <param name="expire-seconds" value="300"/> </params> </gateway> ... </gateways> </user> </domain> </section> </document>

Дмитрий
19.07.2018
12:50:27
Коллеги, есть ли команда которая может проверить конфигурацию на работоспособность?

Borik
19.07.2018
12:51:03
reloadxml :)

из консоли фрисвича.

Алексей
19.07.2018
12:51:50
F6

Дмитрий
19.07.2018
12:52:12
Все понял, спасибо

Сказал что не закрыты скобки, линия 39615 а где теперь их найти?

Borik
19.07.2018
13:02:40
в /var/log/freeswitch/freeswitch.xml.fsxml

...если фрисвич из пакета

Google
Алексей
19.07.2018
13:03:10
ну врятил там будет) если скобки не закрыты то он не скомпилит вместе все xml файлы

Borik
19.07.2018
13:03:11
...там найти, а править потом в исходниках

Алексей
19.07.2018
13:03:23
можно примерно оценить где

вспоминай что менял в последний раз)

или юзай какой нибудь xml валидатор

Borik
19.07.2018
13:03:50
там лежит прекомпилированный, так что думаю там найдется. но можно проверить :)

Дмитрий
19.07.2018
13:04:10
К сожалению не я один доступ к железе, кто-то мог "помочь"

Алексей
19.07.2018
13:04:37
для этого используйте контроль версий

например git

сделал изменения -> commit, push

енот
19.07.2018
13:16:51
а что вызывает сложности?

Дмитрий
19.07.2018
13:17:37
...там найти, а править потом в исходниках
В указанном файле в строке 39615 нет ни чего криминального

Borik
19.07.2018
13:18:49
значит прав был Алексей, он у вас даже не компилируется :( в этом фалике посмотрите, куда смотрит эта строка и ищите её же в обычных файлаъх конфигов

S
19.07.2018
13:29:59
В указанном файле в строке 39615 нет ни чего криминального
искать выше по тексту… ошибка там есть

чаще всего это незакрытый тег xml

Дмитрий
19.07.2018
16:56:06
Ошибку нашел, спасибо за помощь коллеги!

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