freeswitchforum.com

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

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

Текущее время: 26 апр 2024 00:57

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




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

Зарегистрирован: 04 окт 2013 13:19
Сообщения: 17
Поставлена такая задача: с городской линии приходящие звонки перенаправляются на определенную трубку, где менеджер их обрабатывает. При необходимости, менеджер может набрать номер внутренней линии и перевести звонок на конкретного специалиста. Начал пробовать таким образом, но он не заработал (по понятным причинам). Точнее начинает работать, когда оператор кладет трубку, и тогда звонившему предоставляется возможность.
[+] 
Код:
<!-- Connect to manager -->
    <extension name="101 manager">
        <condition field="destination_number" expression="101$">
            <action application="set" data="ringback=${ru-ring}"/>
            <action application="bridge" data="freetdm/1/1"/>
            <action application="read" data="3 3 'tone_stream://%(1000,0,425)' digits 600000 #"/>
            <action application="transfer" data="${digits} XML default"/>
            <action application="hangup"/>
        </condition>
    </extension>

Нечто похожее есть здесь http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_bind_meta_app, но там только одну цифру разрешается нажать (если, конечно, я правильно перевел и понял: You are limited to a single digit in the range 0-9 while * or # will be translated to 0.).


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

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
http://wiki.freeswitch.org/wiki/Misc._D ... s_att_xfer

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ручное перенаправление вызова
СообщениеДобавлено: 22 окт 2013 15:27 

Зарегистрирован: 04 окт 2013 13:19
Сообщения: 17
но опять же используется bind_meta_app. Хотел сделать через http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_bind_digit_action,но там, как я понял, не воспринимаются клавиши: Note that you cannot "capture" digits in bind_digit_action.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ручное перенаправление вызова
СообщениеДобавлено: 22 окт 2013 15:55 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
"как я понял, не воспринимаются клавиши"
как это расшифровать?

bind_digit_action полностью заменяет функционал bind_meta_app
эти приложения созданы для формирования событий по определенному DTMF, а не для их полной обработки под вашу логику

отлавливаете сочетание, бросаете на нужное место диалплана, там уже творите что нужно

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ручное перенаправление вызова
СообщениеДобавлено: 23 окт 2013 10:54 

Зарегистрирован: 04 окт 2013 13:19
Сообщения: 17
Хорошо. Еще вопрос. В bind_digit_action можно каким либо образом узнать, какие цифры были набраны? Знаю, что есть last_matching_digit, но интересует возможность узнать только последние 1-2 цифры (если, например, был набран 4-хзначный номер).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ручное перенаправление вызова
СообщениеДобавлено: 23 окт 2013 11:13 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
Код:
<extension name="Bind a regex">
    <condition field="dialed_number" expression="^(9921)$">
      <action application="bind_digit_action" data="my_digits,~^\d\d\d\d$,exec:execute_extension,LOG_DIGITS XML default"/>
      <action application="digit_action_set_realm" data="my_digits"/>
    </condition>
  </extension>

  <extension name="Display digits dialed">
    <condition field="dialed_number" expression="^LOG_DIGITS$"/>
    <condition field="${last_matching_digits}" expression="^\d\d(\d\d)$">
      <action application="log" data="INFO last two digit [$1]"/>
    </condition>
  </extension>

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ручное перенаправление вызова
СообщениеДобавлено: 23 окт 2013 16:01 

Зарегистрирован: 04 окт 2013 13:19
Сообщения: 17
А вот пользователи в conf/directory они только модулем sofia используются, или же их можно использовать с другими?


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

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
и с другими тоже
с mod_rtmp лично проверял все пашет

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ручное перенаправление вызова
СообщениеДобавлено: 24 окт 2013 09:54 

Зарегистрирован: 04 окт 2013 13:19
Сообщения: 17
Хм. Создал пользователей для аналоговых телефонов
[+] conf/directory/local.xml
Код:
<include>
    <domain name="$${domain}">
   <groups>
       <group name="analog lines">
      <users>
          <!--
          X-PRE-PROCESS cmd="include" data="local/*.xml"/
          -->
          <user id="101">
         <params>
             <param name="dial-string" value="FreeTDM/1:1"/>
         </params>
         <variables>
             <variable name="user_context" value="default"/>
         </variables>
          </user>
          <user id="102">
         <params>
             <param name="dial-string" value="FreeTDM/1/2"/>
         </params>
         <variables>
             <variable name="user_context" value="default"/>
         </variables>
          </user>
          <user id="103">
         <params>
             <param name="dial-string" value="FreeTDM/1/3"/>
         </params>
         <variables>
             <variable name="user_context" value="default"/>
         </variables>
          </user>
          <!--
          <user id="104">
         <params>
             <param name="dial-string" value="FreeTDM/1/4"/>
         </params>
         <variables>
             <variable name="effective_caller_id_number" value="105"/>
             <variable name="user_context" value="default"/>
         </variables>
          </user>
          -->
          <user id="105">
         <params>
             <param name="password" value=""/>
             <param name="allow-empty-password" value=""/>
             <param name="dial-string" value="FreeTDM/1/5"/>
         </params>
         <variables>
             <variable name="effective_caller_id_number" value="105"/>
             <variable name="user_context" value="default"/>
         </variables>
          </user>
      </users>
       </group>
   </groups>
    </domain>
</include>
[+] conf/dialplan/defaul/00_analog.xml
Код:
<include>
    <extension name="101 manager">
        <condition field="destination_number" expression="101$">
           <action application="bind_digit_action" data="my_digits,~10[2-5],exec:execute_extension,int_analog XML default,both,self"/>
           <action application="digit_action_set_realm" data="my_digits"/>
            <action application="set" data="ringback=${ru-ring}"/>
            <action application="set" data="hangup_after_bridge=true"/>
            <action application="bridge" data="user/101@$${domain}"/>
            <action application="clear_digit_action" data="all"/>
        </condition>
    </extension>
    <extension name="102-105 numbers">
        <condition field="destination_number" expression="10([2-5])$">
            <action application="set" data="ringback=${ru-ring}"/>
            <action application="set" data="hangup_after_bridge=true"/>
            <action application="set" data="call_timeout=60"/>
            <action application="bridge" data="user/10$1@${domain_name}"/>
        </condition>
    </extension>
    <extension name="internal analog">
   <condition field="destination_number" expression="int_analog$"/>
   <condition field="${last_matching_digits}" expression="\d\d(\d)$">
       <!--
       <action application="log" data="INFO last number is ${last_matching_digits}"/>
       <action application="log" data="INFO last key is $1"/>
       -->
       <action application="set" data="origination_cancel_key=#"/>
       <action application="set" data="ringback=${ru-ring}"/>
       <action application="set" data="hangup_after_bridge=true"/>
       <!--
       <action application="att_xfer" data="freetdm/1/$1"/>
       -->
       <action application="att_xfer" data="user/${last_matching_digits}@$${domain}"/>
   </condition>
    </extension>
</include>
и когда пытаюсь дозвониться хоть до одного, то получаю следующие сообщения:
[+] Пользователь не зарегистрирован
EXECUTE sofia/internal/1001@192.168.11.17 bridge(user/101@192.168.11.17)
2013-10-24 09:48:00.487505 [ALERT] switch_core_session.c:2781 sofia/internal/1001@192.168.11.17 receive message [APPLICATION_EXEC]
2013-10-24 09:48:00.487505 [DEBUG] switch_ivr_originate.c:2060 Parsing global variables
2013-10-24 09:48:00.487505 [DEBUG] switch_ivr_originate.c:2060 Parsing global variables
2013-10-24 09:48:00.487505 [DEBUG] switch_event.c:1654 Parsing variable [sip_invite_domain]=[192.168.11.17]
2013-10-24 09:48:00.487505 [DEBUG] switch_event.c:1654 Parsing variable [presence_id]=[101@192.168.11.17]
2013-10-24 09:48:00.487505 [NOTICE] switch_ivr_originate.c:2661 Cannot create outgoing channel of type [error] cause: [USER_NOT_REGISTERED]
2013-10-24 09:48:00.487505 [DEBUG] switch_ivr_originate.c:3632 Originate Resulted in Error Cause: 606 [USER_NOT_REGISTERED]
2013-10-24 09:48:00.487505 [NOTICE] switch_ivr_originate.c:2661 Cannot create outgoing channel of type [user] cause: [USER_NOT_REGISTERED]
2013-10-24 09:48:00.487505 [DEBUG] switch_ivr_originate.c:3632 Originate Resulted in Error Cause: 606 [USER_NOT_REGISTERED]
2013-10-24 09:48:00.487505 [INFO] mod_dptools.c:3194 Originate Failed. Cause: USER_NOT_REGISTERED
2013-10-24 09:48:00.487505 [NOTICE] switch_channel.c:4594 Hangup sofia/internal/1001@192.168.11.17 [CS_EXECUTE] [USER_NOT_REGISTERED]

В чем может быть проблема?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ручное перенаправление вызова
СообщениеДобавлено: 24 окт 2013 11:50 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
посмотрите здесь http://wiki.freeswitch.org/wiki/XML_Use ... ide#Groups

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


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

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


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

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


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

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