Size: a a a

2021 March 12

AM

Alexey Mishagin in ru_freeswitch
попробую
в целом насколько я адекватно к делу подошел?
может быть правильнее делать как то иначе, делить по диалпланам, делать все внутри lua скрипта?
Мое желание понятно, но если это экзотика, я откажусь есть кактус, пойду по наторенному пути
источник

АХ

Алексей Хабуляк... in ru_freeswitch
Alexey Mishagin
попробую
в целом насколько я адекватно к делу подошел?
может быть правильнее делать как то иначе, делить по диалпланам, делать все внутри lua скрипта?
Мое желание понятно, но если это экзотика, я откажусь есть кактус, пойду по наторенному пути
я не очень люблю inline использовать.
можно все внутри lua сделать.
ну или если без inline: установить переменную в самом луа скрипте через setVariable и потом сделать трансфер в другой контекст. правда запустится по сути еще один роутинг.
источник

KV

Konstantin Vishnivet... in ru_freeswitch
Alexey Mishagin
как можно в рамках одного диалплана получить переменную и использовать ее же?
если делаю
     <extension name="ext1" continue="true">
         <condition field="destination_number" expression="^(\d+)$">
          <action application="answer"/>
          <action application="set" data="foo=${lua(PG_routing.lua ${destination_number})}"/>
        </condition>
    </extension>
...

    <extension name="ext2"continue="true">
         <condition field="foo" expression="^smg(\d+)$">
          <action application="info"/>
          <action application="hangup"/>
        </condition>
    </extension>
ext2 не работает, что в общем то логично, учитывая, что условия проверяются до выполнения скрипта. Можно сделать transfer, но хочется в одном диалплане все выполнить
А чего тебе не получать через API ${} сразу в том месте, где использовать будешь, зачем через переменную это гонять?
источник

AM

Alexey Mishagin in ru_freeswitch
Konstantin Vishnivetsky
А чего тебе не получать через API ${} сразу в том месте, где использовать будешь, зачем через переменную это гонять?
сейчас я пойму, про что ты сказал, потом прочитаю про это, потом постараюсь ответить)
источник

KV

Konstantin Vishnivet... in ru_freeswitch
Я ж правильно понимаю, что ты хочешь делать балансировку ?
источник

AM

Alexey Mishagin in ru_freeswitch
Konstantin Vishnivetsky
Я ж правильно понимаю, что ты хочешь делать балансировку ?
не совсем.
мне надо на основании возвращаемого значения отправить вызов в одну или другую сторону.
1) если foo=^X(\d+) то отправляю на $1@IP1
2) если foo=^Y(\d+) то отправляю на $1@IP2
источник

KV

Konstantin Vishnivet... in ru_freeswitch
<action application="bridge" data="sofia/outbound/${lua(PG_routing.lua ${destination_number})}"/>
источник

KV

Konstantin Vishnivet... in ru_freeswitch
И никаких гвоздей
источник

AM

Alexey Mishagin in ru_freeswitch
не подойдет.
в некоторых значениях там всякая экзотика при бридже будет, в некоторых просто бридж.
можно всю логику в луа вынести, но я не настолько хорош.
но спасибо за предложение
источник

В

Владимир in ru_freeswitch
<extension name="inbound_set_infinity_dst_number_routing_pg_service_calls" continue="true">
         <condition field="destination_number" expression="^(\d+)$">
          <action application="answer"/>
          <action application="set" data="infinity_dst_number=${lua(PG_routing.lua ${destination_number})}"  inline="true"/>
        </condition>
        <condition field="${infinity_dst_number}" expression="^inf(\d+)$">
          <action application="info"/>
        </condition>
   </extension>
источник

AM

Alexey Mishagin in ru_freeswitch
разобрался.
у меня в lua условие if (session:ready()) не работало.
источник

АХ

Алексей Хабуляк... in ru_freeswitch
Alexey Mishagin
разобрался.
у меня в lua условие if (session:ready()) не работало.
не удивительно тогда)
попробуйте сделать все в lua)
источник

AM

Alexey Mishagin in ru_freeswitch
Алексей Хабуляк
не удивительно тогда)
попробуйте сделать все в lua)
у меня ступор.
присвоил переменную, сделал трансфер в другой диалплан.
в консоли (в логе) вижу, что в переменной лежит то, что надо, но при роутинге — FAIL.
https://pastebin.com/0uXccH2J
в чудеса не верю, но понять, что происходит не могу
Dialplan: sofia/internal/9172350855@172.19.252.40 Regex (FAIL) [bridge_inf10] foo() =~ /^inf102215804$/ break=on-false
источник

AM

Alexey Mishagin in ru_freeswitch
https://pastebin.com/V5X0uTUe
пасту перевыложил
в предыдущей не совсем показательно было.
источник
2021 March 13

BB

Borik Bobrujskov in ru_freeswitch
Alexey Mishagin
попробую
в целом насколько я адекватно к делу подошел?
может быть правильнее делать как то иначе, делить по диалпланам, делать все внутри lua скрипта?
Мое желание понятно, но если это экзотика, я откажусь есть кактус, пойду по наторенному пути
Совсем правильно это делать в два экстеншена: в первом выставлять все нужные переменные, в конце делать трансфер во второй экстеншн, во втором роутить куда положено по значению переменной
источник

BB

Borik Bobrujskov in ru_freeswitch
Можно даже без трансфера обойтись, а в первом экстеншене установить continue=true
источник

BB

Borik Bobrujskov in ru_freeswitch
Borik Bobrujskov
Можно даже без трансфера обойтись, а в первом экстеншене установить continue=true
Не, нельзя, трансфер обязательно надо сделать, ступил, сорри. Поздно...
источник

AK

Andrey Kryukov in ru_freeswitch
можно через execute extension
источник

J

John Roe in ru_freeswitch
источник

Я

Я in ru_freeswitch
Добрый подскажите на сколько важен порт проброс для шлюза? На ip:81 взламывают каждый час, поможет ли если закину на порт допустим 40001? (За нат ставил, прошивку обновлял, все равно ломают)
источник