freeswitchforum.com

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

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

Текущее время: 27 апр 2024 20:07

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




Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 21 май 2015 17:50 

Зарегистрирован: 09 апр 2015 17:14
Сообщения: 14
Привет всемогущий ALL.
Проблема собственно в недоступности телефонов.

Сделал мультидоменность по wiki. Создал два домена home.org и ktorg.org. Телефоны настроил. Софиа показывает что пользователи зарегистрированы. Но при попытке позвонить зарегистрированному в ответ получаю что абонент не доступен оставьте сообщение.
Подскажите в какую сторону копать? Все юзеры в локалке. То есть стоит freeswitch с двумя сетевыми, локальные пользователи регистрируются правильно именно из локалки. Второй интерфейс в мир смотрит. На нем гейт к провайдеру. Гейт работает. Если убрать мультидоменность то все работает как надо. Не могу понять где грабли. Скажите в какую сторону копать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 май 2015 17:53 
Site Admin

Зарегистрирован: 29 июн 2012 11:19
Сообщения: 224
Конфиги?

_________________
Если вы нашли решение, опишите его, пожалуйста, на форуме


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 май 2015 18:12 

Зарегистрирован: 09 апр 2015 17:14
Сообщения: 14
joohny писал(а):
Конфиги?

в conf/directory создал
home.org и ktorg.org
так же создал home.org.xml и ktorg.org.xml
home.org.xml
Код:
<include>
  <domain name="home.org">
    <params>
        <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
    </params>

    <variables>
      <variable name="record_stereo" value="true"/>
      <variable name="default_gateway" value="$${default_provider}"/>
      <variable name="default_areacode" value="$${default_areacode}"/>
      <variable name="transfer_fallback_extension" value="operator"/>
      <variable name="user_context" value="home.org"/>
    </variables>

    <groups>
      <group name="home.org">
        <users>
          <X-PRE-PROCESS cmd="include" data="home.org/*.xml"/>
        </users>
      </group>
    </groups>

  </domain>
</include>



ktorg.org.xml
Код:
<include>
  <domain name="ktorg.org">
    <params>
        <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
    </params>

    <variables>
      <variable name="record_stereo" value="true"/>
      <variable name="default_gateway" value="$${default_provider}"/>
      <variable name="default_areacode" value="$${default_areacode}"/>
      <variable name="transfer_fallback_extension" value="operator"/>
      <variable name="user_context" value="ktorg.org"/>
    </variables>

    <groups>
      <group name="ktorg.org">
        <users>
          <X-PRE-PROCESS cmd="include" data="ktorg.org/*.xml"/>
        </users>
      </group>
    </groups>

  </domain>
</include>


в директории положил конфиги пользователей
1000.xml из home.org
Код:
<include>
  <user id="1000">
    <params>
      <param name="password" value="$${default_password}"/>
      <param name="vm-password" value="1000"/>
    </params>
    <variables>
      <variable name="toll_allow" value="domestic,international,local"/>
      <variable name="accountcode" value="1000"/>
      <variable name="user_context" value="home.org"/>
      <variable name="effective_caller_id_name" value="Extension 1000"/>
      <variable name="effective_caller_id_number" value="1000"/>
      <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
      <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
    </variables>
  </user>
</include>


по такому же принципу и пользователь из директории ktorg.org
так же создал два dialplan home.org.xml & ktorg.org.xml
home.org.xml
Код:
<!--
    NOTICE:

    This context is usually accessed via the external sip profile listening on port 5080.

    It is recommended to have separate inbound and outbound contexts.  Not only for security
    but clearing up why you would need to do such a thing.  You don't want outside un-authenticated
    callers hitting your default context which allows dialing calls thru your providers and results
    in Toll Fraud.
-->

<!-- http://wiki.freeswitch.org/wiki/Dialplan_XML -->
<include>
  <context name="home.org">

    <extension name="unloop">
      <condition field="${unroll_loops}" expression="^true$"/>
      <condition field="${sip_looped_call}" expression="^true$">
        <action application="deflect" data="${destination_number}"/>
      </condition>
    </extension>
    <!--
        Tag anything pass thru here as an outside_call so you can make sure not
        to create any routing loops based on the conditions that it came from
        the outside of the switch.
    -->
    <extension name="outside_call" continue="true">
      <condition>
        <action application="set" data="outside_call=true"/>
        <action application="export" data="RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)}"/>
      </condition>
    </extension>

    <extension name="call_debug" continue="true">
      <condition field="${call_debug}" expression="^true$" break="never">
        <action application="info"/>
      </condition>
    </extension>

<!--
    <extension name="public_extensions">
      <condition field="destination_number" expression="^(10[01][0-9])$">
        <action application="transfer" data="$1 XML default"/>
      </condition>
    </extension>
-->
    <!--
        You can place files in the public directory to get included.
    -->
    <X-PRE-PROCESS cmd="include" data="default/*.xml"/>
    <!--
        If you have made it this far lets challenge the caller and if they authenticate
        lets try what they dialed in the default context. (commented out by default)
    -->
    <!--
    <extension name="check_auth" continue="true">
      <condition field="${sip_authorized}" expression="^true$" break="never">
        <anti-action application="respond" data="407"/>
      </condition>
    </extension>

    <extension name="transfer_to_default">
      <condition>
        <action application="transfer" data="${destination_number} XML default"/>
      </condition>
    </extension>
    -->
  </context>
</include>


По такому же принципу и ktorg.org.xml
Так же создал два конфига home.xml & ktorg.xml и положил их в default
там прописал пул номеров с примеру home.xml
Код:
    <extension name="Local_Extension">
      <condition field="destination_number" expression="^(10[0-9][0-9])$">
        <action application="export" data="dialed_extension=$1"/>
        <action application="bind_meta_app" data="1 b s execute_extension::dx XML features"/>
        <action application="bind_meta_app" data="2 b s record_session::$${recordings_dir}/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
        <action application="bind_meta_app" data="3 b s execute_extension::cf XML features"/>
        <action application="bind_meta_app" data="4 b s execute_extension::att_xfer XML features"/>
        <action application="set" data="ringback=${us-ring}"/>
        <action application="set" data="transfer_ringback=$${hold_music}"/>
        <action application="set" data="call_timeout=30"/>
        <action application="set" data="hangup_after_bridge=true"/>
        <action application="set" data="continue_on_fail=true"/>
        <action application="hash" data="insert/${domain_name}-call_return/${dialed_extension}/${caller_id_number}"/>
        <action application="hash" data="insert/${domain_name}-last_dial_ext/${dialed_extension}/${uuid}"/>
        <action application="set" data="called_party_callgroup=${user_data(${dialed_extension}@${domain_name} var callgroup)}"/>
        <action application="hash" data="insert/${domain_name}-last_dial_ext/${called_party_callgroup}/${uuid}"/>
        <action application="hash" data="insert/${domain_name}-last_dial_ext/global/${uuid}"/>
        <action application="hash" data="insert/${domain_name}-last_dial/${called_party_callgroup}/${uuid}"/>
        <action application="bridge" data="user/${dialed_extension}@${domain_name}"/>
        <action application="answer"/>
        <action application="sleep" data="1000"/>
        <action application="bridge" data="loopback/app=voicemail:default ${domain_name} ${dialed_extension}"/>
        <action application="record_session" data="$${base_dir}/recordings/${strftime(%Y%m%d_%H%M%S)}_${caller_id_number}_${destination_number}.wav"/>
      </condition>
    </extension>


в ktorg.xml аналогично


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 май 2015 18:56 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
Код:
<action application="bridge" data="user/${dialed_extension}@${domain_name}"/>

смотреть в дебаге значение ${domain_name}

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


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

Зарегистрирован: 09 апр 2015 17:14
Сообщения: 14
Vlad1983 писал(а):
Код:
<action application="bridge" data="user/${dialed_extension}@${domain_name}"/>

смотреть в дебаге значение ${domain_name}

Сейчас заметил
кусок привожу...
[+] 
2015-05-21 18:11:18.799954 [DEBUG] mod_dptools.c:1445 sofia/internal/2004@ktorg.org SET [called_party_callgroup]=[UNDEF]
EXECUTE sofia/internal/2004@ktorg.org hash(insert/-last_dial_ext//a1ebf214-ffcb-11e4-af94-ab65e1107601)
EXECUTE sofia/internal/2004@ktorg.org hash(insert/-last_dial_ext/global/a1ebf214-ffcb-11e4-af94-ab65e1107601)
EXECUTE sofia/internal/2004@ktorg.org hash(insert/-last_dial//a1ebf214-ffcb-11e4-af94-ab65e1107601)
EXECUTE sofia/internal/2004@ktorg.org bridge(user/2003@)
2015-05-21 18:11:18.799954 [DEBUG] switch_channel.c:1201 sofia/internal/2004@ktorg.org EXPORTING[export_vars] [dialed_extension]=[2003] to event
2015-05-21 18:11:18.799954 [DEBUG] switch_ivr_originate.c:2100 Parsing global variables
2015-05-21 18:11:18.799954 [WARNING] mod_dptools.c:3989 Can't find user [2003@]
2015-05-21 18:11:18.799954 [NOTICE] switch_ivr_originate.c:2732 Cannot create outgoing channel of type [user] cause: [SUBSCRIBER_ABSENT]
2015-05-21 18:11:18.799954 [DEBUG] switch_ivr_originate.c:3720 Originate Resulted in Error Cause: 20 [SUBSCRIBER_ABSENT]
2015-05-21 18:11:18.799954 [INFO] mod_dptools.c:3244 Originate Failed. Cause: SUBSCRIBER_ABSENT
EXECUTE sofia/internal/2004@ktorg.org answer()
2015-05-21 18:11:18.799954 [DEBUG] switch_core_media.c:3632 Audio Codec Compare [GSM:3:8000:20:13200:1]/[PCMU:0:8000:20:64000:1]
2015-05-21 18:11:18.799954 [DEBUG] switch_core_media.c:3632 Audio Codec Compare [GSM:3:8000:20:13200:1]/[PCMA:8:8000:20:64000:1]

не сожет найти юзера поскольку он без домена и естественно не может создать канал ...


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

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
при входящих из вне домен нужно задать самостоятельно, т.к. его взять неоткуда
Multi-tenant_inbound

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


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

Зарегистрирован: 09 апр 2015 17:14
Сообщения: 14
Vlad1983 писал(а):
при входящих из вне домен нужно задать самостоятельно, т.к. его взять неоткуда
Multi-tenant_inbound

Так это не входящий из вне. Это юзверы из одного домена.
То есть юзверы не могут позвонить друг другу. к примеру с 1001 не может позвонить никому из своих к примеру на 1002


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

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
тогда попробовать
Код:
<action application="bridge" data="user/${dialed_extension}@${caller_domain}"/>
если не получится задать в каждом контексте свои домены как по ссылке выше

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


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

Зарегистрирован: 09 апр 2015 17:14
Сообщения: 14
Vlad1983 писал(а):
тогда попробовать
Код:
<action application="bridge" data="user/${dialed_extension}@${caller_domain}"/>
если не получится задать в каждом контексте свои домены как по ссылке выше

Поковырялся чуток.
В vars.xml есть строчки
Код:
  <X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/>
  <X-PRE-PROCESS cmd="set" data="domain_name=$${domain}"/>

Когда был один домен там вместо $${local_ip_v4} был прописан IP (192.168.1.70)
Сейчас вернул строку с $${local_ip_v4} и Freeswitch мне начал говорить ДОСВИДАНИЯ.
В консоле есть вывод
[+] 
EXECUTE sofia/internal/2004@ktorg.org bridge(user/2003@192.168.1.70)
2015-05-21 18:40:22.859964 [DEBUG] switch_channel.c:1201 sofia/internal/2004@ktorg.org EXPORTING[export_vars] [dialed_extension]=[2003] to event
2015-05-21 18:40:22.859964 [DEBUG] switch_ivr_originate.c:2100 Parsing global variables
2015-05-21 18:40:22.859964 [WARNING] mod_dptools.c:3989 Can't find user [2003@192.168.1.70]
2015-05-21 18:40:22.859964 [NOTICE] switch_ivr_originate.c:2732 Cannot create outgoing channel of type [user] cause: [SUBSCRIBER_ABSENT]
2015-05-21 18:40:22.859964 [DEBUG] switch_ivr_originate.c:3720 Originate Resulted in Error Cause: 20 [SUBSCRIBER_ABSENT]
2015-05-21 18:40:22.859964 [INFO] mod_dptools.c:3244 Originate Failed. Cause: SUBSCRIBER_ABSENT
EXECUTE sofia/internal/2004@ktorg.org answer()
2015-05-21 18:40:22.859964 [DEBUG] switch_core_media.c:3632 Audio Codec Compare [GSM:3:8000:20:13200:1]/[PCMU:0:8000:20:64000:1]
2015-05-21 18:40:22.859964 [DEBUG] switch_core_media.c:3632 Audio Codec Compare [GSM:3:8000:20:13200:1]/[PCMA:8:8000:20:64000:1]

как видно Freeswitch подставляет IP. Как заставить его с доменом работать ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 май 2015 20:31 

Зарегистрирован: 09 апр 2015 17:14
Сообщения: 14
Спасибо всем кто участвовал. Сделал. Теперь все работает. Кому интересно описываю.
В новом dialplan специально созданным для этого домена надо просто добавить строку
Сделал так
Код:
<?xml version="1.0" encoding="utf-8"?>
<include>
  <context name="ktorg.org">
    <extension name="unloop">
      <condition field="${unroll_loops}" expression="^true$"/>
      <condition field="${sip_looped_call}" expression="^true$">
        <action application="deflect" data="${destination_number}@$${domain}"/>
      </condition>
    </extension>
[b]    <X-PRE-PROCESS cmd="set" data="domain_name=ktorg.org"/>[/b]
    <X-PRE-PROCESS cmd="include" data="default/*.xml"/>
  </context>
</include>

Жирным выделил строку которую добавил. Сейчас звонки внутри сети ходят. Локальные абоненты могу наконец то друг другу позвонить


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

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


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

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


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

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