freeswitchforum.com
https://freeswitchforum.com/

Вопрос по диалплану
https://freeswitchforum.com/viewtopic.php?f=6&t=974
Страница 1 из 1

Автор:  cr1t1cal [ 21 ноя 2019 11:22 ]
Заголовок сообщения:  Вопрос по диалплану

Добрый день, Коллеги! Подскажите, как можно реализовать выборку по CID NUM, тоесть, есть несколько пулов номеров С которых будут проходить звонки через FS по разным гейтвеям, как мне разделить допустим 20 определённых номеров уйдут в один гейтвей, 20 в другой, 20 в третий? Я понимаю, что можно запихнуть все 20 номеров в регулярку в condition, но это совсем не удобно, есть ли какой либо метод сортировать звонки по CALLER ID NUMBER допустим выборкой из базы или ещё откуда либо ?

Автор:  Vlad1983 [ 21 ноя 2019 12:04 ]
Заголовок сообщения:  Re: Вопрос по диалплану

можно из БД с помощью mod_odbc_query
можно скрипт дернуть, который выдаст шлюз

Автор:  cr1t1cal [ 21 ноя 2019 12:11 ]
Заголовок сообщения:  Re: Вопрос по диалплану

Vlad1983 писал(а):
можно из БД с помощью mod_odbc_query
можно скрипт дернуть, который выдаст шлюз


Интересно, попробую, спасибо!

Автор:  cr1t1cal [ 29 ноя 2019 10:50 ]
Заголовок сообщения:  Re: Вопрос по диалплану

Vlad1983 писал(а):
можно из БД с помощью mod_odbc_query
можно скрипт дернуть, который выдаст шлюз


Извини за глупый вопрос, а где скачать мне этот мод ?( Они на гитхаб переехали не могу во первых реп найти freeswitch-contrib.git нет такого, и вообще нигде не написано как собрать этот мод.

Автор:  Vlad1983 [ 29 ноя 2019 11:06 ]
Заголовок сообщения:  Re: Вопрос по диалплану

можно попробовать mod_cidlookup он в штатной поставке

Автор:  cr1t1cal [ 03 дек 2019 15:15 ]
Заголовок сообщения:  Re: Вопрос по диалплану

Vlad1983 писал(а):
можно попробовать mod_cidlookup он в штатной поставке


Добрый день! Установил таки модуль odbc_query настроил его и научился дёргать из базы номера. Подскажите пожалуйста, как мне теперь реализовать сравнение результата вывода из базы с тем что пришло ? Я так понял, при запросе вида:
Код:
<query name="map_cid_users" value="SELECT caller_id_number AS cid FROM fs_numbers WHERE cid='${caller_id_number}';"/>


Всё убирается в переменную ${cid}. После выполнения этого запроса у меня получилось вывести в лог значение этой переменной и она соответствует номеру звонящего. Если же номера в базе нет, то в логе просто пустые скобки. Из этого я делаю вывод, что двигаюсь в правильном направлении. И теперь при попытке в condition упаковать переменную ${cid} в логе ясно видно, что условие не раскрывает значение переменной, а так и шлёт в таком виде, как она есть. (${cid}). Подскажите пожалуйста как можно это решить ?

Пытался сделать подобным образом:
Код:
<extension name="test_odbc_connector_cid">
        <condition>     
        <action application="odbc_query" data="map_cid_users"/>
        <action application="set" data="effective_caller_id_number=${cid}"/>
        <condition field="${cid}" expression="$\d+"/>
        </condition>
  </extension>

Автор:  Vlad1983 [ 04 дек 2019 08:52 ]
Заголовок сообщения:  Re: Вопрос по диалплану

все условия в диалплане проверяются при входе к контекст (если нет спец. указаний)
топором можно так приостановить для получения переменной чтоб учитывать в дальнейших условиях
Код:
<action application="set" data="effective_caller_id_number=${cid}" inline="true"/>

но лучше сделать transfer или execute_extension

Автор:  cr1t1cal [ 06 дек 2019 16:07 ]
Заголовок сообщения:  Re: Вопрос по диалплану

Vlad1983 писал(а):
все условия в диалплане проверяются при входе к контекст (если нет спец. указаний)
топором можно так приостановить для получения переменной чтоб учитывать в дальнейших условиях
Код:
<action application="set" data="effective_caller_id_number=${cid}" inline="true"/>

но лучше сделать transfer или execute_extension


Спасибо огромное !!! Всё получилось, только решил сделать по мануалу с wiki роутинг в определённый гейтвей.

А также настроил easyroute для роутинга по dest номеру (задача была в том числе и по dest).

Страница 1 из 1 Часовой пояс: UTC + 4 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/