
ros
13.12.2017
15:50:20
вот там и менять
скрипты отсюда https://github.com/intralanman/fs_curl

e
13.12.2017
15:52:09
так, я походу понял
в таблице directory_global_params пусто

Google

Anton
13.12.2017
15:52:52
какой пиздец

e
13.12.2017
15:53:25
что именно?

Anton
13.12.2017
15:53:31
ппх

e
13.12.2017
15:54:37
я пока вкатываюсь, поэтому тут пофиг
спасибо за помощь

Anton
13.12.2017
15:56:49
тэкс
ты скрипты можешь редактировать?

e
13.12.2017
15:57:14
да

Anton
13.12.2017
15:57:32
https://github.com/intralanman/fs_curl/blob/master/fs_directory.php
нас интересует вот это
ты тут?

e
13.12.2017
16:05:30
да

Anton
13.12.2017
16:05:48
ты таблицу с доменами заполнял?

Google

e
13.12.2017
16:06:43
да, три таблицы заполнял: directory, directory_params, directory_domains

Anton
13.12.2017
16:07:11
directory_domains

e
13.12.2017
16:07:12
сейчас directory_global_params заполняю

Anton
13.12.2017
16:07:53
directory_global_params
напиши
param_name: dial-string
param_value:
{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}
это одна строчка без пробелов
и так для кадого домена
т.е.
[
домен, dial-string, {bla-bla-$bla},
домен, dial-string, {bla-bla-$bla},
домен, dial-string, {bla-bla-$bla}
]

e
13.12.2017
16:12:11
все работает, спасибо!
механизм понял


Anton
13.12.2017
16:12:40
$this->xmlw->startElement( 'param' );
$this->xmlw->writeAttribute( 'name', $res[$i]['param_name'] );
$this->xmlw->writeAttribute( 'value', $res[$i]['param_value'] );
$this->xmlw->endElement();
пиздец, бедные похапешники.
Вот кусок оригинатного конфига
<include>
<!--the domain or ip (the right hand side of the @ in the addr-->
<domain name="$${domain}">
<params>
<!-- These are required for Verto to function properly -->
<param name="jsonrpc-allowed-methods" value="verto"/>
<param name="jsonrpc-allowed-event-channels" value="demo,conference,presence"/>
</params>
<variables>
<variable name="record_stereo" value="true"/>
<variable name="default_gateway" value="$${default_provider}"/>
<variable name="default_areacode" value="$${default_areacode}"/>
<variable name="transfer_fallback_extension" value="operator"/>
</variables>
<groups>
<group name="default">
<users>
<X-PRE-PROCESS cmd="include" data="default/*.xml"/>
</users>
</group>
</groups>
</domain>
</include>
все что идет после <domain name="{name}"> и до groups это у тебя в таблицах глобал парамс и глобал вэриэблс
надо читать спеку, что значит кадый парметр
туда можно подоменно указать гейты, экстеншны, пермишны и еще кучу настроек

Google

Anton
13.12.2017
16:17:46
т.е. все кто лезет от этого домена будут под эттими настройками

e
13.12.2017
16:22:12
ага, ок

Anton
13.12.2017
16:23:23
https://freeswitch.org/confluence/display/FREESWITCH/XML+User+Directory
читай тут. желательно несколько раз. несколько дней.
до меня в свое время только через месяц дошло как эта херь устроена

e
13.12.2017
16:25:05
значит еще не все потеряно лол
у меня

Alexey
13.12.2017
17:00:50

Ihor
13.12.2017
17:07:31
Может FS не получил 200 OK на Invite
Собрал на коленке такую же схему на 1.6.18 - работает. На 1.6.19 (из оффрепов) - не хочет.
В общем случае получалась схема
IPPhone1 (NAT) - FS - Aster - IPPhone2 (NAT)
Если FS из пакетов 1.6.19 - не работает. Если 1.6.18 (просто нашел пакеты от старой версии) - работает
В общем, то ли лыжи, то ли я.

Anton
13.12.2017
17:33:02
собери 1.7

Ihor
13.12.2017
23:59:32
Это ппц, но вроде победил.
Суть следующая. У меня был установлен api_on_answer, он вызывал lua скрипт, который дергал curl через mod_curl.
Так вот если это все убрать, то все прекрасно работает.
Я переделал вызов curl на bgapi curl и все полетело.
Причем повторяется на версиях 1.6 начиная с 1.6.9 до 1.6.19

енот
14.12.2017
03:27:47
Здравствуйте, а напомните пожалуйста, вот через запятую это по очереди, а как одновременно? Что-то я туплю и не могу найти в доке.

Konstantin
14.12.2017
03:28:20
Через запятую это одновременно, а через | это по очереди.

енот
14.12.2017
03:29:10
хм, тогда почему у меня по очереди то тогда

Konstantin
14.12.2017
03:29:56
https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+bridge#mod_dptools:bridge-Callingmultipledestinations
Цитирую: "By using commas to separate the addresses, bridge will dial them simultaneously. Using pipes, it'll dial one at a time. Use :_: to separate multiple destinations to be dialled in a multi-threaded manner (this is referred to as "Enterprise Origination") - this gives more flexibility (and avoids the "Only calling the first element in the list in this mode" warning)"

енот
14.12.2017
03:30:59
а на dial_string group_call это как-то иначе действует?
ААА
всё, понял, сорри

Google

енот
14.12.2017
03:32:23

Ihor
14.12.2017
09:46:09
Добрый день.
Такой вопрос, почему FS может реагировать на REGISTER таким образом?
http://prntscr.com/hnc0q2
agressive-nat-detection и NDLB-force-rport включен

Сергей
14.12.2017
09:50:25
Какой порт в поле Contact?

Ihor
14.12.2017
09:51:46
5060
Но сам телефон за NAT

Alexandru
14.12.2017
09:52:48

Сергей
14.12.2017
09:52:51
Тоже такое было. Лечили на оконечке, чтобы не слал 5060 в контакте.

Ihor
14.12.2017
09:54:05
может sip alg?
Это вообще-то возможно. Но, насколько я знаю, SIP ALG меняет сам пакет. Тут ничего не поменяно

Сергей
14.12.2017
09:54:45
А 5060 в контакт тогда кто подставляет?

Ihor
14.12.2017
09:54:59
Телефон. Порт источника

Alexandru
14.12.2017
09:55:05
угу
а в самом register есть rport?

Ihor
14.12.2017
09:55:31
Нету
REGISTER sip:pbx.ХХХХХ SIP/2.0
From: "901"<sip:901@pbx.ХХХХХ>;tag=830640-ea01a8c0-13c4-50029-39-373dc425-39
To: "901"<sip:901@pbx.ХХХХХХХ>
Call-ID: 393031000-aabb-7d98f63e-b4edcbfedf-0-1cd1b88c
CSeq: 1 REGISTER
Via: SIP/2.0/UDP 192.168.1.234:5060;branch=z9hG4bK-39-e180-3274304a
Max-Forwards: 70
Supported: replaces
User-Agent: LG-Ericsson IP8802 v1.1.02spbx SN/B40EDCBFED0F
Expires: 0
Contact: <sip:901@192.168.1.234:5060;transport=UDP>;+sip.instance="<urn:uuid:39303100-AABB-0000-0000-B40EDCBFED0F>"
Content-Length: 0
попробовал поменять порт на оконечном устройстве - то же самое. Теперь FS отвечает на 5085, а не на порт-источник от роутера.
Я такое лечил переключением на TCP, но этот телефон TCP не умеет (

Alexey
14.12.2017
10:05:15

Ihor
14.12.2017
10:05:44
Почему?

Alexey
14.12.2017
10:05:48
они нужны только для тех клиентов, которые сломаны
agressive-nat-detection (режим "Asterisk") вообще стандарты нарушает

Google

Alexey
14.12.2017
10:06:49
nat acl должно быть достаточно
клиенты могут у себя включить rport?

Ihor
14.12.2017
10:09:08
Неа. Это настолько тупой телефон, что не умеет этого

Alexey
14.12.2017
10:13:28
а source порт могут менять?

Ihor
14.12.2017
10:14:10
Да, поменял. Но запросы все равно от роутера приходят от других портов. Например, я ставлю порт источника 5080, запрос приходит от 2035

Alexey
14.12.2017
10:14:53
а роутер какой?

Ihor
14.12.2017
10:26:36
Роутер какой-то ASUS. И у меня дичайшие подозрения на SIP ALG.
Но что интересно - с Asterisk все прекрасно работает

Alexey
14.12.2017
10:28:40

Ihor
14.12.2017
10:32:10
Нету SIP ALG…. Удивительное рядом

Alexey
14.12.2017
10:34:08
в регистрации nat задетекчен?

Ihor
14.12.2017
10:34:46
apply-nat-acl nat.auto
Так регистрация то и не проходит

Alexey
14.12.2017
10:35:07
ах да, точно
пробуйте по отдельности (если такое возможно) сначала новый профиль на другом порту, потом только NDLB (2 опции в профиле, 1 (кажется) в директории), потом только aggressive nat det

Ihor
14.12.2017
10:37:49
ок, спасибо

Ivan
14.12.2017
10:54:46
привет, уточните, fs где-то хранит сессии?
например, идет звонок через mod_verto, он сохраняет в local_storage сессию и передает fs, а fs где-то хранит ее?