freeswitchforum.com

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

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

Текущее время: 27 апр 2024 22:54

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




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 13 фев 2015 14:08 

Зарегистрирован: 15 дек 2014 03:41
Сообщения: 23
Есть Freeswitch 1.5.8b+git-20140212...~32bit на Linux.
Есть "внутренние" номера, например 100, 101, 102 и так далее.
Есть несколько SIP транков, от нескольких операторов.

"Разнес" контексты:
- local - для звонков "внутри" АТС;
- отдельно incoming и отдельно outgoing для каждого транка.

Возможно ли задать, например "пользователю" 100 несколько контекстов, например local, trunk1_incoming, trunk1_outgoing, trunk2_incoming ?

И/или как лучше/оптимальнее реализовать следующую "схему" :
- "пользователь" 110 может звонить только локальным абонентам, получать от них звонки;
- "пользователь" 105 может звонить локальным абонентам, получать от них звонки и получать звонки только через trunk1, звонить через внешние транки он не может;
- "пользователь" 102 может звонить локальным абонентам, получать от них звонки, получать звонки только через trunk1 и звонить только через trunk1;
- "пользователь" 101 может звонить локальным абонентам, получать от них звонки, получать звонки только через trunk1 и trunk2, звонить только через trunk1;
- "пользователь" 100 может звонить локальным абонентам, получать от них звонки, получать звонки через trunk1 и trunk2, звонить через trunk1 и trunk2 ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 фев 2015 19:36 

Зарегистрирован: 23 авг 2014 11:49
Сообщения: 368
Откуда: Казань
создайте несколько контекстов и каждый контекст привяжите пользователю
далее в "исходящий набор" каждому контексту создайте направления вызовов в PSTN через транки и так же и на локальных пользователей

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 фев 2015 19:57 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
можно задать пользователю переменную
и маршрутизировать по ней в пределах одного контекста

смотрите в ванильном конфиге
Код:
<include>
  <user id="1001">
    <params>
      <param name="password" value="$${default_password}"/>
      <param name="vm-password" value="1001"/>
    </params>
    <variables>
      <variable name="toll_allow" value="domestic,international,local"/>
      <variable name="accountcode" value="1001"/>
      <variable name="user_context" value="default"/>
      <variable name="effective_caller_id_name" value="Extension 1001"/>
      <variable name="effective_caller_id_number" value="1001"/>
      <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
      <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
      <variable name="callgroup" value="techsupport"/>
    </variables>
  </user>
</include>
здесь
Код:
<variable name="toll_allow" value="domestic,international,local"/>
как раз для маршрутизации

Код:
<extension name="local.example.com">
  <condition field="${toll_allow}" expression="local"/>
  <condition field="destination_number" expression="^(\d{7})$">
    <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/>
    <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/>
    <action application="bridge" data="sofia/gateway/${default_gateway}/1${default_areacode}$1"/>
  </condition>
</extension>
здесь
Код:
<condition field="${toll_allow}" expression="local"/>
как раз проверка на присутствие local в переменной toll_allow

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 фев 2015 23:23 

Зарегистрирован: 15 дек 2014 03:41
Сообщения: 23
То есть переменная <variable name="user_context" value="default"/> так и будет default ?
То есть <variable name="user_context" value="local, trunk1_incoming, trunk1_outgoing, trunk2_incoming"/> не верно ?
Она в данном случае не влияет принадлежность пользователя к контексту при маршрутизации звонка ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 фев 2015 00:38 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
контекст пользователя как и sofia-профиля всегда один

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 фев 2015 14:55 

Зарегистрирован: 15 дек 2014 03:41
Сообщения: 23
Vlad1983 писал(а):
контекст пользователя как и sofia-профиля всегда один


Получается параметр <variable name="user_context" ни на что не влияет, "сам по себе" ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 фев 2015 15:00 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
он определяет в какой контекст попадает вызов от пользователя

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 фев 2015 01:51 

Зарегистрирован: 15 дек 2014 03:41
Сообщения: 23
Vlad1983 писал(а):
он определяет в какой контекст попадает вызов от пользователя


Теперь начал понимать, что в Freeswitch как для локальных вызовов, так и для "глобальных" - через транки (не важно, город/межгород) , но только для исходящих - контекст "Default" , для входящих транковых - контекст "Public" .
По крайней мере из примера Vanilla.
Изначально предполагал, что для, сугубо внутренних вызовов - один контекст, для исходящих транковых - другой, для входящих транковых - третий, а default (спец. назначения, например, когда вызов не попал ни в один) - четвертый.

Насчет <variable name="toll_allow" value="domestic,international,local"/> почти получилось, но только если для "обработчика" внутренних вызовов есть <variable name="toll_allow" value="internal"/> не работает перевод звонка на внутренний номер после его донабора при входящем звонке на транк, то есть (все из примера vanilla) :
вставляется в default.xml в обработчик внутренних звонков строку
<condition field="${toll_allow}" expression="internal"/>

"Обработчик" внешнего вызова:
Код:
<include>
  <extension name="trunk4952422222_did">
    <condition field="destination_number" expression="^(4952422222)$">
      <action application="answer"/>
      <action application="sleep" data="2000"/>
      <action application="ivr" data="demo_ivr"/>
    </condition>
  </extension>
</include>


Ну а demo_ivr не изменен.

Звонок "во внутрь" не уходит.
Если строку
<condition field="${toll_allow}" expression="internal"/> убрать, то все ок.
Чем она мешает ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 фев 2015 02:24 

Зарегистрирован: 15 дек 2014 03:41
Сообщения: 23
Или toll_allow не работает для user/${dialed_extension}@${domain_name} , а только для sofia/gateway/trunk/$1 ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 фев 2015 09:40 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
всему мешает каша в вашей голове

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

все кастомные переменные определенные в профиле пользователя применяются только относительно входящих на FS от него, т.е. при исходящих если смотреть со стороны пользователя

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


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

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


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

Сейчас этот форум просматривают: Bing [Bot] и гости: 247


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

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