freeswitchforum.com

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

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

Текущее время: 28 мар 2024 18:45

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




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

Зарегистрирован: 02 май 2019 01:39
Сообщения: 14
Начинающий в изучении Freeswitch.
Хочу переходить с Asterisk на Freeswitch.
Сейчас в Asterisk "заведены" внутренние пользователи (порт 5060) и несколько trunk' ов внешних операторов (все порт 5060) и есть несколько контекстов: - для исходящих звонков:
"внутренние" - только "внутренние" звонки - на 3 значные номера;
"город" - включает "внутренние" + звонки на "прямые городские" номера (без префикса) ;
"местные" - включает "город" + звонки на 10 значные "местные" сотовые;
"межгород" - включает "местные" + междугородние звонки в пределах РФ.
- для входящих звонков:
для каждого trunk' a свой DID, и, соответственно, свой контекст.
- для исходящих/входящих звонков:
default - контекст для звонков, не попавших в вышеперечисленные контексты, в котором все "рубится" .

Так, как все внутренние пользователи и все внешние trunk' и работают на 5060 порту, в Freswitch создан один Sip профиль.
И в его конфигурационном файле указан контекст. Он один.

Как в Freeswitch реализовать разделение по контекстам, указанным выше (как сделано в Asterisk) , с учетом одного порта ?
Или возможно создать несколько Sip профилей с отдельным контекстом для каждого ?
Или в любом случае для Freeswitch, один Sip профиль - один контекст, и такая ситуация "разруливается"
<variable name="toll_allow" value="domestic,international,local"/> при исходящих в параметрах пользователя ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 май 2019 07:54 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
в профилях пользователей с авторизацией
Код:
    <variables>
...
      <variable name="user_context" value="internal"/>
...
    </variables>
остальные будут валиться в дефолтный контекст sofia-профиля

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 май 2019 01:10 

Зарегистрирован: 02 май 2019 01:39
Сообщения: 14
В папке dialplan, в дополнение к уже существующему "Софьиному" , создал файл internal.xml:
Код:
<include>
  <context name="internal">
   <extension name="unloop">
     <condition field="${unroll_loops}" expression="^true$"/>
     <condition field="${sip_looped_call}" expression="^true$">
            <action application="deflect" data="${destination_number}"/>
     </condition>
   </extension>
   <X-PRE-PROCESS cmd="include" data="internal/*.xml"/>
  </context>
</include>

Соотвественно, в папке dialplan/internal
есть файл 01internal.xml
Код:
<include>
  <extension name="Local_Sip_Both">
    <condition field="destination_number" expression="^(1[01279][0-8])$">
        <action application="set" data="effective_caller_id_name=${user_data(${caller_id_number}@${domain} var effective_caller_id_name)}"/>
        <action application="set" data="effective_caller_id_number=${user_data(${caller_id_number}@${domain} var effective_caller_id_number)}"/>
        <action application="set" data="continue_on_fail=true"/>
        <action application="bridge" data="user/$1@${domain}"/>
        <action application="hangup"/>
    </condition>
  </extension>

  <extension name="Talking Clock Date and Time" ><!--e.g. March 8, 2011 10:56pm-->
    <condition field="destination_number" expression="^(199)">
        <action application="say" data="en CURRENT_DATE_TIME pronounced ${strepoch()}"/>
        <action application="hangup"/>
    </condition>
  </extension>
</include>


В "Директории" для пользователей изменил контекст на internal, например:
Код:
<include>
  <user id="100">
    <params>
      <param name="password" value="xxxxxxxxxx"/>
    </params>
    <variables>
      <variable name="user_context" value="internal"/>
      <variable name="effective_caller_id_name" value="Test100"/>
    </variables>
  </user>
</include>


Для "Софьи" указан другой контекст, в нем строки <action application="bridge" data="user/$1@${domain}"/> нет !!
Так, как он планируется как тот, на который будет "приходить" все, что раньше "не ушло" куда-то.
Поэтому, там, максимум планируется что-то вроде
Код:
    <action application="playback" data="sounds/что_то_очень_не_приличное.wav"/> -->
    <action application="hangup"/>


При звонке с тестового пользователя на 199, все нормально, другим пользователям (локальным) , включая самого себя, звонок не проходит.
Судя по всему не отрабатывается bridge. Ошибка 480.
Код:
SIP/2.0 480 Temporarily Unavailable
   Via: SIP/2.0/UDP 192.168.0.70:61524;branch=z9hG4bK-d8754z-e61b5e26d027995c-1---d8754z-;rport=61524
   Max-Forwards: 70
   From: "102"<sip:102@192.168.0.254:5060>;tag=d51db06c
   To: <sip:100@192.168.0.254:5060>;tag=QUD3e21X4tjtp
   Call-ID: YmVmOTYzM2U3ODE4NzUxZmFkYzdkYTcwZThhMzUxZmQ.
   CSeq: 1 INVITE
   User-Agent: May be Super PBX
   Accept: application/sdp
   Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, PRACK, NOTIFY, PUBLISH, SUBSCRIBE
   Supported: precondition, 100rel, path, replaces
   Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer
   Reason: Q.850;cause=16;text="NORMAL_CLEARING"
   Content-Length: 0
   Remote-Party-ID: "100" <sip:100@192.168.0.254>;party=calling;privacy=off;screen=no


Что понял не так ?


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

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
смотреть что бегает в сигналке, если нет 407 после первого INVITE виноват acl на профиле

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 май 2019 13:28 

Зарегистрирован: 02 май 2019 01:39
Сообщения: 14
Отключил все acl вообще, везде. Включил sip трассировку.
"Софа" отрабатывает так: [DEBUG] mod_sofia.c:589 Responding to INVITE with: 480

При звонке 102-> 100, трассировка:
Код:
 первый Invite
   ------------------------------------------------------------------------
   INVITE sip:100@192.168.0.254:5060 SIP/2.0
   Via: SIP/2.0/UDP 192.168.0.70:58481;branch=z9hG4bK-d8754z-8d653c561a7aa918-1---d8754z-;rport
   Max-Forwards: 70
   Contact: <sip:102@192.168.0.70:58481;rinstance=fc0dd4845089bf3d>
   To: <sip:100@192.168.0.254:5060>
   From: "102"<sip:102@192.168.0.254:5060>;tag=b27c5472
   Call-ID: ZWQzN2U4ZDFmYmQ4MWNmNDVjOTAzNWE1NWZkMjAxNGU.
   CSeq: 1 INVITE
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REGISTER, SUBSCRIBE, NOTIFY, REFER, INFO, MESSAGE
   Content-Type: application/sdp
   Supported: replaces
   User-Agent: 3CXPhone 6.0.26523.0
   Content-Length: 398

   v=0
   o=3cxVCE 356214975 358325970 IN IP4 192.168.0.70
   s=3cxVCE Audio Call
   c=IN IP4 192.168.0.70
   t=0 0
   m=audio 10006 RTP/AVP 0 3 8 101
   a=rtpmap:0 PCMU/8000
   a=rtpmap:3 GSM/8000
   a=rtpmap:8 PCMA/8000
   a=rtpmap:101 telephone-event/8000
   a=fmtp:101 0-15
   a=ptime:20
   a=sendrecv
   m=video 10004 RTP/AVP 34
   c=IN IP4 192.168.0.70
   a=rtpmap:34 H263/90000
   a=fmtp:34 QCIF=1;CIF=1;SQCIF=1;CIF4=1
   a=sendrecv
   ------------------------------------------------------------------------

после него идет
Код:
 ------------------------------------------------------------------------
   SIP/2.0 100 Trying
   Via: SIP/2.0/UDP 192.168.0.70:58481;branch=z9hG4bK-d8754z-8d653c561a7aa918-1---d8754z-;rport=58481
   From: "102"<sip:102@192.168.0.254:5060>;tag=b27c5472
   To: <sip:100@192.168.0.254:5060>
   Call-ID: ZWQzN2U4ZDFmYmQ4MWNmNDVjOTAzNWE1NWZkMjAxNGU.
   CSeq: 1 INVITE
   User-Agent: Super PBX
   Content-Length: 0
   ------------------------------------------------------------------------

затем
Код:
------------------------------------------------------------------------
   SIP/2.0 480 Temporarily Unavailable
   Via: SIP/2.0/UDP 192.168.0.70:58481;branch=z9hG4bK-d8754z-8d653c561a7aa918-1---d8754z-;rport=58481
   Max-Forwards: 70
   From: "102"<sip:102@192.168.0.254:5060>;tag=b27c5472
   To: <sip:100@192.168.0.254:5060>;tag=Fr70QeFQm0rmH
   Call-ID: ZWQzN2U4ZDFmYmQ4MWNmNDVjOTAzNWE1NWZkMjAxNGU.
   CSeq: 1 INVITE
   User-Agent: Super PBX
   Accept: application/sdp
   Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, PRACK, NOTIFY, PUBLISH, SUBSCRIBE
   Supported: precondition, 100rel, path, replaces
   Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer
941de751-a3e5-4149-89bd-f099bc64f487 2019-05-06 11:56:06.911593 [DEBUG] switch_core_state_machine.c:584 (sofia/my/102@192.168.0.254:5060) Running State Change CS_REPORTING (Cur 1 Tot 1)
   Reason: Q.850;cause=16;text="NORMAL_CLEARING"
   Content-Length: 0
   Remote-Party-ID: "100" <sip:100@192.168.0.254>;party=calling;privacy=off;screen=no
   ------------------------------------------------------------------------


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 май 2019 14:03 
FreeSWITCH_GuRu

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

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


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

Зарегистрирован: 02 май 2019 01:39
Сообщения: 14
В профиле "Софы" или пользователя ?
Посмотрел еще tcpdump' ом (на сервере) , по IP клиента, куда идет звонок.
Пакеты туда вообще не отправляются и с него не приходят (во время звонка) .


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 май 2019 14:57 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
софии
и не будет отправляться, до бриджа дело не доходит

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


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

Зарегистрирован: 02 май 2019 01:39
Сообщения: 14
Да, туда и посмотрел.
Почему-то все "уперлось" в параметр auth-calls.
Он был выставлен в "true" , но не срабатывало.
Поменял на "false" , потом на "true" . Сработало.
Спасибо.
Предлагаю добавить в FAQ.

И, у пользователя в FS может же быть несколько контекстов, например:
в 100.xml:
<variable name="user_context" value="internal, city"/> - внутренние и городские
в 101.xml:
<variable name="user_context" value="internal, city, longdistance"/> - внутренние, городские меж. город
в 102.xml:
<variable name="user_context" value="internal, city, longdistance"/> только город и меж. город, без внутренних
а в 103.xml
<variable name="user_context" value="internal"/> только внутренние

Соответственно, в каждом из internal, city и longdistance только по одной маске:
в файле internal, только, например:
<extension name="Internal">
<condition field="destination_number" expression="^(1[0129][0-4])$">
в файле city, только, например:
<extension name="City_Trunk">
<condition field="destination_number" expression="^\9([2-9]\d{5})$">
и так далее ?


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

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
Oooo800 писал(а):
у пользователя в FS может же быть несколько контекстов
сомнительное утверждение

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


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

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


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

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


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

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