freeswitchforum.com

Форум поддержки FreeSWITCH

FreeSWITCH is a registered trademark of Anthony Minessale. Official FreeSWITCH site.

Текущее время: 29 апр 2024 00:41

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 14 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Групповые звонки
СообщениеДобавлено: 02 апр 2015 16:12 

Зарегистрирован: 01 апр 2015 12:57
Сообщения: 7
Доброго времени суток!
Подскажите пожалуйста, какие параметры нужны, для того, что б при звонке на группу можно было добавиться всем. Типа конференции.
В данный момент при звонке на группу соединение происходит с абонентом, который первый нажал на ответ.

Код:
 <extension name="group_dial_test">
      <condition field="destination_number" expression="^2001$">
   <action application="set" data="hangup_after_bridge=true"/>
         <action application="set" data="continue_on_fail=true"/>
         <action application="set" data="originate_continue_on_timeout=true"/>
         <action application="set" data="call_timeout=30"/>
   <action application="set" data="uuid_bridge_continue_on_cancel=true"/>
   <action application="bridge" data="${group_call(test@${domain_name}+A)}"/>   
   <action application="hangup"/>
      </condition>
    </extension>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповые звонки
СообщениеДобавлено: 02 апр 2015 16:56 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
так сделайте конференцию

_________________
ЛС: @rostel
Сообщество: @ru_freeswitch


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповые звонки
СообщениеДобавлено: 02 апр 2015 17:06 

Зарегистрирован: 01 апр 2015 12:57
Сообщения: 7
в конференцию нужно пользователям входить. а хочется сделать звонок на нужных пользователей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповые звонки
СообщениеДобавлено: 02 апр 2015 17:17 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
можно OutboundConference

более того, можно приглашать в конференцию донабором нужного номера
всё это в доке описано

_________________
ЛС: @rostel
Сообщество: @ru_freeswitch


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповые звонки
СообщениеДобавлено: 02 апр 2015 18:42 

Зарегистрирован: 01 апр 2015 12:57
Сообщения: 7
Благодарю.
воспользовался этим https://freeswitch.org/confluence/display/FREESWITCH/mod_conference#mod_conference-OutboundConference

с мануального конфига конференцию создает, сейчас буду курить как сделать динамику и как туда добавить/удалить клиента. нужно делать скриптами по событиям.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповые звонки
СообщениеДобавлено: 03 апр 2015 12:50 

Зарегистрирован: 23 авг 2014 11:49
Сообщения: 368
Откуда: Казань
не легче пользователям раздать sip-phone с одной единственной клавишей "any key"

это все к тому что все варианты исхода входящего звонка не просчитать в плане универсальности, и все будет как в зоопарке "либо так, либо никак"

бедные пользователи которые попадут в моховик репрессий зоопарка

_________________
Пути IP-пакета неисповедимы


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповые звонки
СообщениеДобавлено: 03 апр 2015 19:22 

Зарегистрирован: 01 апр 2015 12:57
Сообщения: 7
Подскажите пожалуйста, какой action нужно вызывать, что б скрипт lua выплюнул сформированный xml?


кусок из скрипта луа

Код:
if (action == "sip_auth") then
   
local xml =
   [[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   <document type="freeswitch/xml">
  <section name="dialplan">
    <context name="mycontext">
     <extension name="auto-conference">
     <condition field="destination_number" expression="^(2005)$">
    <action application="set" data="conference_auto_outcall_timeout=5"/>
    <action application="set" data="conference_auto_outcall_caller_id_name=$${effective_caller_id_name}"/>
    <action application="set" data="conference_auto_outcall_caller_id_number=$${effective_caller_id_number}"/>
    <action application="set" data="conference_auto_outcall_profile=default"/>
    <action application="set" data="conference_auto_outcall_prefix={sip_auto_answer=true,execute_on_answer='bind_meta_app 2 a s1 transfer::intercept:${uuid} inline'}"/>
    <action application="set" data="conference_auto_outcall_timeout=60"/>
    <action application="conference_set_auto_outcall" data="sofia/internal/00003304%x.x.x.x"/>
    <action application="conference_set_auto_outcall" data="sofia/internal/00003305%x.x.x.x"/>
    <action application="conference_set_auto_outcall" data="sofia/internal/00003301%x.x.x.x"/>
    <action application="conference" data="$1@default"/>
             </condition>
      </extension>
    </context>
  </section>
</document>]]
   
freeswitch.consoleLog("notice", xml);

end;
XML_STRING = xml;

в консоль лог выдает, но хавать не хочет(
сам экстеншен работает если его прописать в диалплане




З.Ы. исходя из задачи телефонами и не пахнет(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповые звонки
СообщениеДобавлено: 04 апр 2015 08:32 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
это не в диалплане делается
править нужно conf/autoload_configs/lua.conf.xml с <param name="xml-handler-bindings" value="dialplan"/>
будет дергаться при любом событии требующем обработку диалплана

Serving+Configuration+with+Lua

_________________
ЛС: @rostel
Сообщество: @ru_freeswitch


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповые звонки
СообщениеДобавлено: 06 апр 2015 10:28 

Зарегистрирован: 01 апр 2015 12:57
Сообщения: 7
этот кусок кода из файла gen_dir_user_xml.lua


в lua.conf.xml написано так
Код:
 <param name="xml-handler-script" value="gen_dir_user_xml.lua xml_handler"/>
 <param name="xml-handler-bindings" value="directory,dialplan"/>
 



вот полный код скрипта
[+] 
Код:
--freeswitch.consoleLog("notice",params:serialize("json"));

local action = params:getHeader("action");
local xml;
if (action == "sip_auth") then

   local id = params:getHeader("sip_auth_username");
   local dbh = freeswitch.Dbh("pgsql://hostaddr=127.0.0.1 dbname=freeswitch user=freeswitch password='freeswitch'")

   if dbh:connected() == false then
      freeswitch.consoleLog("notice", "gen_dir_user_xml.lua cannot connect to database" .. dbh .. "\n")
   return
   end

   local my_query = string.format("select * from users where id = '%s'",id)

   dbh:query(my_query, function(u)
   xml =
   [[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   <document type="freeswitch/xml">
   <section name="directory">
    <domain name="]] .. u.domain .. [[">
      <user id="]] .. u.id .. [[">
        <params>
          <param name="password" value="]] .. u.password .. [["/>
        </params>
      <variables>
          <variable name="user_context" value="]] .. u.user_context .. [["/>
        <variable name="callgroup" value="]] .. u.call_group .. [["/>
        </variables>
      </user>
    </domain>
   </section>
   </document>]]
   freeswitch.consoleLog("notice", xml);
   end);
end
if (action == "sip_auth") then
   
local xml =
   [[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   <document type="freeswitch/xml">
  <section name="dialplan">
    <context name="mycontext">
     <extension name="auto-conference">
     <condition field="destination_number" expression="^(2005)$">
    <action application="set" data="conference_auto_outcall_timeout=5"/>
    <action application="set" data="conference_auto_outcall_caller_id_name=$${effective_caller_id_name}"/>
    <action application="set" data="conference_auto_outcall_caller_id_number=$${effective_caller_id_number}"/>
    <action application="set" data="conference_auto_outcall_profile=default"/>
    <action application="set" data="conference_auto_outcall_prefix={sip_auto_answer=true,execute_on_answer='bind_meta_app 2 a s1 transfer::intercept:${uuid} inline'}"/>
    <action application="set" data="conference_auto_outcall_timeout=60"/>
    <action application="conference_set_auto_outcall" data="sofia/internal/00003304%x.x.x.x"/>
   <action application="conference_set_auto_outcall" data="sofia/internal/00003305%x.x.x.x"/>
    <action application="conference_set_auto_outcall" data="sofia/internal/00003301%x.x.x.x"/>
   
    <action application="conference" data="$1@default"/>
     
        </condition>
      </extension>
    </context>
  </section>
</document>]]
   
freeswitch.consoleLog("notice", xml);




end;

XML_STRING = xml;



тут генерятся 2 xml конфига. может нужно запихивать все в один? или я просто не могу правильно указать action для создания xml при звонке.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповые звонки
СообщениеДобавлено: 06 апр 2015 14:22 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
условия одинаковые
if (action == "sip_auth") then
...
if (action == "sip_auth") then

_________________
ЛС: @rostel
Сообщество: @ru_freeswitch


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 336


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB