
Alexey
31.08.2017
11:35:00
частота дескретизации?
кодек который поддерживает только passthru

Ivan
31.08.2017
11:37:05
кодирую в моно, 8000 Hz 8bit, wav

Konstantin
31.08.2017
11:41:32
А ответ был до playback?

Google

Alexey
31.08.2017
11:41:48
а голос точно проходит?

Konstantin
31.08.2017
11:42:01
Многие операторы не пропускают 183 Progress от абонентов.

Alexey
31.08.2017
11:42:08
может вы не даете callstart

Konstantin
31.08.2017
11:42:52
И если не ответить, то локально всё будет хорошо, а оператор голосовой трафик не пропустит.

Ivan
31.08.2017
11:43:32

Konstantin
31.08.2017
11:44:07
Да.

Ivan
31.08.2017
11:44:58
так работает, спасибо большое за помошь.

Konstantin
31.08.2017
11:45:35
?

here1am
31.08.2017
11:57:33
чуваки, кароч есть один фрисвитч и там делается fs_cli -x 'originate blahblah'. иногда это дело перестаёт отдавать UUID звонка и отраёт -ERR RECOVERY_ON_TIMER_EXPIRE` или -ERR NORMAL_TEMPORARY_FAILURE, хотя по факту вызов делается, в списке звонков он есть. что происходит, куда копать?

Konstantin
31.08.2017
11:58:05
Самосбор?

Alexey
31.08.2017
11:58:48
originate завершается когда FS получает ответ от удаленной стороны

Konstantin
31.08.2017
11:58:57
По событиям можно посмотреть, что происходит.

Alexey
31.08.2017
11:59:20
не уверен на счет 100 Trying

Google

Konstantin
31.08.2017
11:59:21
А также, завершается, когда тайм-ауты наступают.
События и tcpdump
А также, включить в логгировании запись uuid для звонков и смотреть, что в логах относительно этих "странных" звонков.

here1am
31.08.2017
12:01:11
ога, уже включил, спасибо

Konstantin
31.08.2017
12:01:28
Сравнить хорошие с плохими и понять разницу.
Из пакетов или make && make install ?
В пакетах стабильная версия, а в самосборе то, что вычекнули из git.

here1am
31.08.2017
12:02:54
а, туплю. сам собирал в пакет не очень свежую версию

Konstantin
31.08.2017
12:03:19
Тогда может быть очень разное.

The
31.08.2017
12:20:48
у fs_cli есть параметр -t можно с ним поиграться.
или T большое

Alexey
31.08.2017
12:23:34
может originate_timeout

here1am
31.08.2017
12:29:43
я не понимаю, что это за таймаут если вызов по факту совершается

The
31.08.2017
12:30:03

here1am
31.08.2017
12:30:13
а, ок. спасибо

The
31.08.2017
12:31:21
вроде у меня такое было. я оригинировал вызов через api, и вываливался обратно в командную строку, якобы с необработанным вызовом, хотя по факту просто не дожидался респонза апи.


Mykyta
31.08.2017
15:36:25
Привет всем. У меня тут набор очень странных проблем и я понятия не имею, как понять почему такое происходит. В общем. Есть сервер на диджитал оушене, у него есть плавающий айпишник и на этот плавающий айпишник зароучен траффик. Дальше на этом сервере стоит прокси - камаилио, который балансирует между двумя фрисвитчами. И я столкнулся с такими проблемами:
1. Звонки обрываются на 32 секунде с сип-ошибкой ACK Timeout. Обрыв не происходит, если я в sip_profiles/inbound.xml
меняю значение <param name="timer-T1X64" value="32000" /> с 32000 на что-то гораздо большее.
2. Не работают никакие хенгапы. Если звонить с обычного телефона - хенгап до терминирующего сервера не доходит. Если хенгапить через команды фрисвитча - тоже до терминатора не доходит, что звонок оборван. Когда траффик был зароучен напрямую к фрисвитчу без камаилио, все работало.
3. И самое странное. Ребят, чей я траффик терминирую, вообще вынуждены были меня забанить. Суть в том, что с моего сервера им приходит МИЛЛИОНЫ сообщений sip 200 ok, причем с айдишниками звонков, которые давно закончены. Причем это все счастье камаилио успешно логирован и в один день у меня сервер отвалился, потому, что логи камаилио сожрали все 30 гб на сервере.
Эти три вещи как-то связаны между собой и моих знаний в voip не хватает, как это все связать вместе. Честно говоря, я в отчаянии. Понятия не имею, куда копать дальше.


Borik
31.08.2017
15:37:08
копайте в сторону NAT, если он у вас есть

Google

Mykyta
31.08.2017
15:37:44
Думаю есть, раз я использую плавающий айпишник диджитал оушена.


Borik
31.08.2017
15:41:09
ноги всех трех проблем растут из одного и того же места.
1. До вас не доходит ACK пакет. По стандарту, после установления сессии (отправки 200 ОК) вторая сторона должна Вам отправить ACK пакет. Только приняв его сессия считается полностью установленной, но звук начинает работать в обе стороны раньше. Таймаут получения этого пакета по стандарту должен составлять 30 секунд. Во фрисвиче это значение установлено в 32 000 миллисекунд. Если вы его меняете на другое, то у вас все якобы работает (на самом деле, нет, работает неправильно)
По той же причине невозможно положить трубку: к Вам не доходит BYE пакет.
И по той же самой причине вас и забанили. Ваш фрисвич отправляет 200 ОК, в ответ ему сервера отправляют АСК пакет. Но поскольку эти пакеты не добираются до васшего сервера, фрисвич делает ретрансмит. Вот и миллионы ваших пакетов 200 ОК. Правда, не очень понятно, почему продолжаются ретрансмиты для давно умерших сессий, там таймаут тоже маленький, вроде как. С другой тсороны, может Ваше изменение <param name="timer-T1X64" value="32000" /> увеличило и эти таймауты тоже.
рекомендую заставить фрисвич ходить наружу через тот же прокси (камаилио), через который он получает запросы обратно
обратно = снаружи
с большой вероятностью все полечится


Mykyta
31.08.2017
15:45:51
Вот я смотрю на содержимое сип-сообщений.
К примеру, пусть плавающий айпишник моего сервера 138.0.0.0, айпишник самого сервера 165.0.0.0
К примеру, такое есть на терминирующем сервере.
Via: SIP/2.0/UDP 165.0.0.0:5060;branch=z9hG4bKa027.959bc313df869f55fcdb103c4356aea8.0;received=138.0.0.0
Значит ли это, что он получая пакет от камаилио от плавающего айпи, пытается отправить его обратно по серверу фактическому айпи?

Borik
31.08.2017
15:46:11
он обязан так сделать в соответствии со стандартом
...если ему не сказать что-то другое.
На стадии установления сессии пакеты идут через прокси, но после её установления оба B2BUA общаются друг с другом в соответствии с содержимым поля contact
ща попробую картинку найти....

Mykyta
31.08.2017
15:53:39
Честно, просто знаний не хватает, как это фиксить? Какие параметры в конфигах смотреть?
https://wiki.freeswitch.org/wiki/NAT_Traversal - копать с эту сторону?

Borik
31.08.2017
16:04:49
Укажите исходящий прокси фрисвичу для начала
Параметр не помню, если честно

Mykyta
31.08.2017
16:05:42
Ну это я найду, мне главное направление, спасибо)

Borik
31.08.2017
16:06:29
А если не поможет, тогда да, tcpdump, Wireshark и указанная ссылка вам в помощь

Mykyta
31.08.2017
16:09:34
А еще такой вопрос. У меня в диджитал оушене между серверами есть приватная сеть и траффик в ней бесплатен. Не хотелось бы гнать воип траффик через весь интернет, когда есть приватная сеть. В начале я игрался, пробывал камаилио в мод-диспатчере подсовывать приватные айпишники, но траффик до терминаторов даже не доходил, я бросил пробывать на тот момент. Что надо настроить, чтобы камаилио и фрисвитчи между собой гнали траффик через приватную сеть, какие примерно параметры?

Borik
31.08.2017
16:11:26
Для начала, стоит осилить что-нибудь по теории TCP/IP Например, Олифера и Олифера. Правда, это очень поможет Вам

Google

Borik
31.08.2017
16:12:46
Не обязательно оставить всю книгу, но разделы по маршрутизацию, уровни модели OSI и принципы функционирования протоколов очень рекомендую

The
31.08.2017
16:58:03
Кек

Victor
01.09.2017
06:55:57
@stent0r , да ладно...

Stentor
01.09.2017
06:56:26

Victor
01.09.2017
06:57:08
Ты уже в Испании?

Stentor
01.09.2017
06:57:45
Ты уже в Испании?
Я в Доминикану собирался ;) Пока в России, в Доминикане последний раз в апреле был.
Ничего, что мы тут оффтопим?

? Stan
01.09.2017
06:57:57
#мажорывчате

Borik
01.09.2017
06:58:38
#ниразуниатвлёкси

Denis 災 nobody
01.09.2017
07:42:38

Stentor
01.09.2017
07:44:37
какой?
freeswitch-ru@googlegroups.com

Bakhodur K
01.09.2017
09:47:30
ребят кто может подсказать disconnecti time log

Konstantin
01.09.2017
09:48:08
Иначе сформулируй вопрос, пожалуйста.

Bakhodur K
01.09.2017
09:48:20
мне нужно в лог вывести connect/disconnecti time

Konstantin
01.09.2017
09:48:44
В Master.csv это итак есть уже.
Для какого плеча нужно, если это вообще играет роль?

Bakhodur K
01.09.2017
09:49:55
точно, спасибо)

Alexey
01.09.2017
09:50:02
app info после завершения звонка.
найти нужный и использоать его

Denis 災 nobody
01.09.2017
10:50:10

here1am
01.09.2017
11:20:31
таймаут api
дефолт - 60 секунд, как я понял, а ошибку выдаёт другую:
$ fs_cli -t 1 -x 'show calls'
Request timed out.
$ fs_cli -T 1 -x 'show calls'
[ERROR] fs_cli.c:1610 main() Error Connecting [Connection Error]

Google

The
01.09.2017
11:32:00
ну так ты и выставь побольше, чтобы он повисел чутка и дождался исполнения оригинации
для теста воткни 5000

Konstantin
01.09.2017
11:32:48
А лучше bgapi, тогда ждать не нужно будет.

here1am
01.09.2017
11:39:09

Konstantin
01.09.2017
11:39:31
Да bg = background

Borik
01.09.2017
11:39:43
ну, оно асинхронное, но только в одну сторону.
что оно ответило вы никогда не узнаете
или я ошибаюсь?

Konstantin
01.09.2017
11:40:06
Job uuid отдаёт

Borik
01.09.2017
11:40:19
да, но это не uuid созданного звонка

Alexey
01.09.2017
11:40:44
Ждать ответа для этого задания

Borik
01.09.2017
11:41:04
ответ можно получить в событии?
а тип события?

Konstantin
01.09.2017
11:41:28
Можно получить ответ.

Alexey
01.09.2017
11:41:49
Да BACKGROUND_JOB

Konstantin
01.09.2017
11:41:51
На самом деле лучше через esl делать

Borik
01.09.2017
11:42:23
так а там та же история, fs_cli по сути почти чистый esl
а вот про BACKGROUND_JOB буду знать, спасиб

Mykyta
01.09.2017
13:51:32
ну, оно асинхронное, но только в одну сторону.
Можно узнавать, но тут надо чуток изловчиться.
При оригинации надо задавать значение переменной origination_uuid
bgapi originate {origination_uuid=<UUID>}sofia/gateway/<gateway>/<number> &echo()
И тогда в заголовках в событиях будет Caller-Unique-Id, который и примет это значение. Причем звонком можно управлять через команды uuid_*

Borik
01.09.2017
13:57:52
а если я не звонок там инициировал? а выполнение некоего скрипта и хочу его результат получить?