
Alexandru
20.06.2017
10:38:06
он если кодеки не согласовывает его выкидывает
легко проверить

ros
20.06.2017
10:39:51
ну если там совсем никак то да, но только из-за CN врядли
смотреть не a=, а m= нужно

Denis 災 nobody
20.06.2017
11:31:52

Google

Denis 災 nobody
20.06.2017
11:32:13
с этим сталкивались лично
причём - /3 появляется при достаточно большом имени!
отловлено на addpac и eltex

ros
20.06.2017
11:32:45
можно игнорить это

Denis 災 nobody
20.06.2017
11:32:50
фс не умеет

ros
20.06.2017
11:35:24
<action application="set" data="proxy_media=true"/>
должен начать игнорить

Denis 災 nobody
20.06.2017
11:35:53
там свои баги будут

Konstantin
20.06.2017
11:36:06
Это так получится, если не требуется обработки медийки.
Захотите запись или подмену КПВ - банан.

Denis 災 nobody
20.06.2017
11:36:45
с прокси запись должна быть
вот всякие дтмф, приветствия и факсы - не факт

ros
20.06.2017
11:43:14
для начала проверить работает или нет, а потом можно почекать наличие PCMA/8000/3 в SDP и только для таких включать

Google

Denis 災 nobody
20.06.2017
11:43:46

ros
20.06.2017
11:43:49
жертвовать записью, но не звонком

Denis 災 nobody
20.06.2017
11:44:15
пытался проверить, но что-то вызов через sipp на внешнем сервере режет..

ros
20.06.2017
11:44:58
у 183 вообще есть SDP?

Denis 災 nobody
20.06.2017
11:45:20
может быть

ros
20.06.2017
11:45:40
sip_ignore_183nosdp

Denis 災 nobody
20.06.2017
11:45:53
именно в том случае есть
а в том звонке - на инвайт прислан 180 с SDP без CN, и фс шлет в ответ CANCEL
с инкомпатом

ros
20.06.2017
11:47:38
ну не анонсировать CN на ту сторону в INVITE
<param name="suppress-cng" value="false"/>
и прочая тяжелая артиллерия https://freeswitch.org/confluence/display/FREESWITCH/VAD+and+CNG

Denis 災 nobody
20.06.2017
11:55:15
а это интереснее, спс
таки не в CN похоже дело
в А летит такое
v=0
o=AudiocodesGW 1659825263 1659825261 IN IP4 18.9.17.42
s=Phone-Call
c=IN IP4 18.9.17.42
t=0 0
m=audio 6050 RTP/AVP 8 0 18 96
a=ptime:20
a=sendrecv
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:96 telephone-event/8000
a=fmtp:96 0-15
m=image 6052 udptl t38
a=sendrecv
a=T38FaxVersion:0
a=T38MaxBitRate:14400
a=T38FaxMaxBuffer:1024
a=T38FaxMaxDatagram:238
a=T38FaxRateManagement:transferredTCF
a=T38FaxUdpEC:t38UDPRedundancy
в 1.4 фс это ест ок, 1.6 - incompat
хз почему именно по 180 в Б
диалпланы одинаковые

Konstantin
20.06.2017
13:06:00
А telephone event с payload 96?

Google

Denis 災 nobody
20.06.2017
13:06:10
1.4 ест
так-то 96 допустим, насколько помню

Konstantin
20.06.2017
13:06:32
А настройки профиля идентичные?
Допустим, если вторая сторона о нём знает.

Denis 災 nobody
20.06.2017
13:06:56
да

Konstantin
20.06.2017
13:07:38
А есть фрагмент лога, где сопоставление вариантов идёт?

Denis 災 nobody
20.06.2017
13:07:40
перекинули на ноду с 1.4 и всё заработало
нет
там 932378 session(s) since startup за 4 дня

Konstantin
20.06.2017
13:08:41
Т.е. логов нет в принципе, ибо завалят.
А без логов это гадание на кофейной гуще.
Нужно сделать без нагрузки такую ноду и с логами смотреть.

ros
20.06.2017
13:11:03
+

Konstantin
20.06.2017
13:13:07
Ещё вариант: выложить pcap одного вызова, настррйки пррфиля и если кому не лень, то с помощью sipp воспроизведут ситуацию.

Denis 災 nobody
20.06.2017
15:48:33
а сталкивался кто, что если в пришедшем sdp сразу audio+image, 1.6 дропает звонок?

Yuriy
20.06.2017
17:52:24
Всем доброго времени суток
подскажите пожалуйста как ресетнуть
execute_on_answer
к примеру я повесил этот флаг, а звонок у меня не прошел, на следующий звонок ( в файловер ) я не хочу вешать этот флаг
Execute_on_answer использую перед bridge

Konstantin
20.06.2017
18:04:31
Можно поместить это в [], тогда этот параметр будет установлен только для определённого URI, а не глобально.

Serge
20.06.2017
18:06:39
а какой-нить _undef_ не сработает?

Konstantin
20.06.2017
18:07:04
Зачем unделать, если можно не делать, где это ненужно?

Yuriy
20.06.2017
18:13:58
Я правильно понимаю что я должен вызвать session:execute("bridge","[execute_on_answer=lua myscript.lua ${myvar1} ${myvar2}]/mygateway/number")
?

Google

Konstantin
20.06.2017
18:14:34
sofia/mygateway/number
А так всё верно на первый взгляд.

Yuriy
20.06.2017
18:14:51
Ну это понятно. Оке. Попроую спасибо
Еще один вопрос
если извлекать контекст в Execute_on_answer
как передать переменные сесссии туда?
почему спрашиваю:
В асетирске есть такая штука как опция U у команды Dial. она по сути вызывает goSub и в нее можно передать переменные из инициирующего канала

Konstantin
20.06.2017
19:06:04
Нужно в b-leg передать что-то из a-leg?
2 пути:
1. <action application="export" data="some_var=some_value"/>
2. {some_var=${some_var_from_aleg}}sofia/gateway/......

Yuriy
20.06.2017
19:07:11
Ну типа того... в идеале конечно вообще вызвать lua функцию через execute_on_answer
типа execute_on_answer = myfuction(myvalues)

Konstantin
20.06.2017
19:09:12
В FS принято выставлять канальные переменные до вызова приложения.

Yuriy
20.06.2017
19:10:27
Я понял. Проще тогда отдельный скрипт запускать
lua myluahandler.lua ${var1} ${var2} и так далее
Спасибо

Admin
ERROR: S client not available

Denis 災 nobody
20.06.2017
19:34:41

Yuriy
20.06.2017
19:36:37
И последний вопрос
Если вызываю bridge в котором вызывается несколкьо юзеров сразу
Ну например
session:execute("bridge","sofia/gateway/num1,sofia/gateway/num2") и так далее
Я могу забиндить execute_on_answer для каждого вызова?
типа
session:execute("bridge","[execute_on_answer=lua myhandler.lua param1 param2 para3]sofia/gateway/num1,[execute_on_answer=lua myhandler.lua param4 param5]sofia/gateway/num2")
или exeute_on_answer это параметр применяемый к bridge а не к гейтам?

Konstantin
20.06.2017
19:39:29
execute_on_answer это просто канальная переменная, в указанной нотации она будет передана в b-leg канал при его создании. В приведённом примере, в каждый канал своя.

Yuriy
20.06.2017
19:40:33
Отлично. Спасибо за ответы.
я просто еще в примерах в гугле вижу что он обарачивается в {} а не в []

Konstantin
20.06.2017
19:40:35
Я знаю, что в определённой версии стало можно выставлять переменные пользователям в XML Directory. Т.е. для URL вида user/id@domain
Вот, только эти переменные выставляются на канал, когда пользователь a-leg. Тоже самое касается и gateway сущностей.
А разница между {} и [] в том, что {} глобально для всех участвующих endpoint, а [] для конкретного endpoint.

Yuriy
20.06.2017
19:45:22
Спасибо огромное. Очень помогли. Привык к работе с Асетирском. Ту тпо новой синтаксис учить приходится.

Google

Alexandru
20.06.2017
19:46:18
Зато потом астериск будет казаться неповоротливым и медленным

Yuriy
20.06.2017
19:48:16
ну я бы не был так категоричен.
Я и FS и Asterisk использую как медиа сервер в 99% проектов. Так что медлительности я не замечу. Но вот с конференциями во FS погибче, хотя сам код (на астериске тоже на lua пишу) на asterisk получается аккуратнее и менее костыльным что-ли...

Konstantin
20.06.2017
19:48:16
https://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_bridge#Usage
Тут хорошо разъясняют про передачу переменных.
Костыли от отсутствия опыта - как с любым НОВЫМ набором инструментов.

Yuriy
20.06.2017
19:51:11
Возможно. но на анный момент получается постоянное смешение строчных параметров session:execute и lua переменных. И это не очень нравится.
Хотя сейчас присмотревшись поближе я понимаю что в общем то те же hangup handlers на asterisk и на FS примерно одинаково вызываются ,как и execute_on_answer. Хотя на астеирске нельзя привязать к каждому ендпоинту по обработчику.

Konstantin
20.06.2017
19:52:03
Setting Variables for the B-leg with enterprise originate for multiple threads:
bridge <variable_scope=super-global>{variable_scope=thread1}[variable_scope=leg1a]<target_endpoint>[,[variable_scope=leg1b]<target_endpoint>][|<target_endpoint>]
:_:{variable_scope=thread2}[variable_scope=leg2a]<target_endpoint>[,[variable_scope=leg2b]<target_endpoint>][|<target_endpoint>]

Alexandru
20.06.2017
19:52:14

Yuriy
20.06.2017
19:52:37
Для таких вещей есть kamailio

Alexandru
20.06.2017
19:53:02
Камаилио это хорошо, но не всегда можно отделить кц трафик от обычного

Konstantin
20.06.2017
19:53:08
Да, если медийка не нужна, то kam мощь.

Alexandru
20.06.2017
19:53:27
Без камы вообще смысла нет, я не спорю
Но дело не токо в сигналке

Konstantin
20.06.2017
19:53:43
А для этого и создают "системы", в которых есть и SIP proxy и B2BUA

Yuriy
20.06.2017
19:54:19
ну вот я выстраиваю свои проекты таким образом что у меня FS/* за кам всегда
Кам как registrar И как uac для транков. FS/* как медиа. То ест ьочереди и тд и тп там

Konstantin
20.06.2017
19:54:46
Присмотритесь к архитектуре таких проектов как sipXcom и Kazoo, где как компонент используется FreeSwitch.

Alexandru
20.06.2017
19:56:03
Астер начинает чихать

Konstantin
20.06.2017
19:56:39
А в чём именно отличие?

Alexandru
20.06.2017
19:57:07
Много коротких звонков
По 3-7 секунд

Yuriy
20.06.2017
19:57:27
А что именно не получается у астериска обработать в них?

Alexandru
20.06.2017
19:57:31
И куча эрли медии

Konstantin
20.06.2017
19:57:38
Понятно. Возросло нарастание/убывание.