freeswitchforum.com

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

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

Текущее время: 29 мар 2024 02:34

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




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: 17 окт 2018 22:09 

Зарегистрирован: 17 окт 2018 21:32
Сообщения: 21
Задача такая, вызов с любого свободного виртуального одноканального номера.

Проблема такая,
в sip_profiles зарегистрированы городские номера: trunk-1110001, trunk-1110002 и trunk-1110003
все зарегистрировано и отлично работает inbound/outbound если конкретно назначить по condition field="caller_id_number" кому куда бегать.
номера одноканальные

****
<include>
<gateway name "trunk-1110001">
<param name="username" value="0001"/>
<param name="password" value="0001"/>
<param name="from-user" value="0001"/>
<param name="proxy" value="1.1.1.1.1:5060"/>
<param name="from-domain" value="1.1.1.1"/>
<param name="realm" value="1.1.1.1.1"/>
<param name="register" value="true"/>
<param name="register-transport" value="udp"/>
<param name="expire-seconds" value="120"/>
<param name="retry-seconds" value="30"/>
<param name="context" value="inbound"/>
</gateway>
</include>
*****
Если я ставлю в <action application="set" data="hangup_after_bridge=true"/> , то
все бы ничего, вот только года я пытаюсь позвонить на город и первый транк уже занят, у провайдера (чей транк) срабатывает короткий ivr, после чего шлет мне отбой на линию.
если <action application="set" data="hangup_after_bridge=false"/>, то после короткого ivr freeswitch начинает отрабатывать следующий <action application="bridge" , и после разговора, когда абонент ложит трубку, переходит к next <action application="bridge" ))))
Получается когда hangup_after_bridge=true"/> срабатывает только первый транк, а hangup_after_bridge=false"/> кондишин шагает по диалплану вниз....


<condition field="destination_number" expression="^9(\d{7})$" break="never">
<action application="set" data="hangup_after_bridge=false"/>
<action application="set" data="continue_on_fail=false"/>
<action application="set" data="fail_on_single_reject=USER_BUSY,NO_ANSWER,NO_USER_RESPONSE,ORIGINATOR_CANCEL"/>

<action application="set" data="effective_caller_id_number=0001"/>
<action application="set" data="effective_caller_id_name=0001"/>
<action application="bridge" data="{absolute_codec_string=PCMU,PCMA,G722,G729,GSM}sofia/gateway/trunk-1110001/8017$1"/>

<action application="set" data="effective_caller_id_number=0002"/>
<action application="set" data="effective_caller_id_name=0002"/>
<action application="bridge" data="{absolute_codec_string=PCMU,PCMA,G722,G729,GSM}sofia/gateway/trunk-1110002/8017$1"/>

<action application="set" data="effective_caller_id_number=0003"/>
<action application="set" data="effective_caller_id_name=0003"/>
<action application="bridge" data="{absolute_codec_string=PCMU,PCMA,G722,G729,GSM}sofia/gateway/trunk-1110003/8017$1"/>
</condition>



Отрабатывал все возможные варианты с <action, результат сомнительный.
Как научить FS выбирать свободную линию/транк, не пытаясь с него позвонить, чтобы не слушать этот IVR, из-за которого как я понимаю и проблемы??????????????????????

<action application="set" data="continue_on_fail=true"/>
<action application="set" data="continue_on_fail=GATEWAY_DOWN,NORMAL_TEMPORARY_FAILURE,NO_ROUTE_DESTINATION,CALL_REJECTED,SERVICE_UNAVAILA$
<action application="sleep" data="1000"/>
<action application="set" data="hangup_after_bridge=true"/>
<action application="set" data="failure_causes=INCOMPATIBLE_DESTINATION"/>
<action application="set" data="transfer_on_fail=INCOMPATIBLE_DESTINATION"/>
<action application="set" data="transfer_on_fail=USER_BUSY,SUBSCRIBER_ABSENT,USER_NOT_REGISTERED BRIDGE_FAILED_EXTENSION" />
<action application="set" data="hangup_after_bridge=true" />
<action application="set" data="absolute_codec_string=PCMU,PCMA,G722,G729,GSM"/>
<action application="bridge" data="{absolute_codec_string=PCMU,PCMA,G729}sofia/gateway/gateway1/$1" />
<action application="set" data="continue_on_fail=NORMAL_TEMPORARY_FAILURE,NO_ROUTE_DESTINATION,CALL_REJECTED,RECOVERY_ON_TIMER_EXPIRE"/>
<action application="set" data="fail_on_single_reject=USER_BUSY,NO_ANSWER,NO_USER_RESPONSE,ORIGINATOR_CANCEL"/>
<action application="set" data="ringback=%(2000,4000,440.0,480.0)"/>


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

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
можно использовать limit_execute

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


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

Зарегистрирован: 17 окт 2018 21:32
Сообщения: 21
limit_execute пробовал, FS дропит по превышению лимита, но следующий по <action шлюз не выбирает.

Я начал копаться в mod_distributor, чтобы сгруппировать GW, но пр выполнении условия вызова мне необходимо указать effective_caller_id_number и effective_caller_id_name.

<action application="set" data="effective_caller_id_number=0001"/>
<action application="set" data="effective_caller_id_name=0001"/>

<action application="bridge" data="{absolute_codec_string=PCMU,PCMA,G722,G729,GSM}sofia/gateway/trunk-1110001/8017$1"/>

По мануалу в distributor.conf.xml вроде как не указывается сaller_id_number и aller_id_name

<list name="2gw" total-weight="2">
<node name="gateway1" weight="1"/>
<node name="gateway2" weight="1"/>
</list>

Then define a dialplan extension similar to this:

<extension name="3-way gateway distro">
<condition field="destination_number" expression="^(.*)$">
<action application="bridge" data="sofia/gateway/${distributor(2gw)}/$1"/>
</condition>
</extension>


Последний раз редактировалось d.kuznecov 18 окт 2018 13:28, всего редактировалось 1 раз.

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

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

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


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

Зарегистрирован: 17 окт 2018 21:32
Сообщения: 21
limit использоваться без дополнительных anti-action ?

<condition field="destination_number" expression="^9(\d{7})$" break="never">
<action application="set" data="hangup_after_bridge=true"/>
<action application="set" data="continue_on_fail=true"/>
<action application="set" data="fail_on_single_reject=USER_BUSY,NO_ANSWER,NO_USER_RESPONSE,ORIGINATOR_CANCEL"/>

<action application="limit" data="db outgoing trunk-1110001 1" />
<action application="limit" data="db outgoing trunk-1110002 1" />
<action application="limit" data="db outgoing trunk-1110003 1" />


<action application="set" data="effective_caller_id_number=0001"/>
<action application="set" data="effective_caller_id_name=0001"/>
<action application="bridge" data="{absolute_codec_string=PCMU,PCMA,G722,G729,GSM}sofia/gateway/trunk-1110001/8017$1"/>


<action application="set" data="effective_caller_id_number=0002"/>
<action application="set" data="effective_caller_id_name=0002"/>
<action application="bridge" data="{absolute_codec_string=PCMU,PCMA,G722,G729,GSM}sofia/gateway/trunk-1110002/8017$1"/>

<action application="set" data="effective_caller_id_number=0003"/>
<action application="set" data="effective_caller_id_name=0003"/>
<action application="bridge" data="{absolute_codec_string=PCMU,PCMA,G722,G729,GSM}sofia/gateway/trunk-1110003/8017$1"/>
</condition>


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

Зарегистрирован: 17 окт 2018 21:32
Сообщения: 21
LOG limit

EXECUTE sofia/internal/779@192.168.100.252:5060 limit(db outgoing Itrunk-1110001 1)
2018-10-18 13:10:15.504066 [DEBUG] switch_limit.c:126 incr called: outgoing_trunk-1110001 max:1, interval:0
2018-10-18 13:10:15.524131 [DEBUG] mod_db.c:194 Usage for outgoing_trunk-1110001 is now 2/1
2018-10-18 13:10:15.524131 [DEBUG] switch_ivr.c:2165 (sofia/internal/779@192.168.100.252:5060) State Change CS_EXECUTE -> CS_ROUTING
2018-10-18 13:10:15.524131 [NOTICE] switch_ivr.c:2172 Transfer sofia/internal/779@192.168.100.252:5060 to XML[limit_exceeded@outbound]
2018-10-18 13:10:15.524131 [DEBUG] switch_core_state_machine.c:650 (sofia/internal/779@192.168.100.252:5060) State EXECUTE going to sleep
2018-10-18 13:10:15.524131 [DEBUG] switch_core_state_machine.c:584 (sofia/internal/779@192.168.100.252:5060) Running State Change CS_ROUTING (Cur 3 Tot 250)
2018-10-18 13:10:15.524131 [DEBUG] switch_core_state_machine.c:643 (sofia/internal/779@192.168.100.252:5060) State ROUTING
2018-10-18 13:10:15.524131 [DEBUG] mod_sofia.c:143 sofia/internal/779@192.168.100.252:5060 SOFIA ROUTING
2018-10-18 13:10:15.524131 [DEBUG] switch_core_state_machine.c:236 sofia/internal/779@192.168.100.252:5060 Standard ROUTING
2018-10-18 13:10:15.524131 [INFO] mod_dialplan_xml.c:637 Processing 779 <779>->limit_exceeded in context outbound
Dialplan: sofia/internal/779@192.168.100.252:5060 parsing [outbound->test_bridging_conference] continue=false


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

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
потому что не limit надо, а limit_execute

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 ноя 2018 12:30 

Зарегистрирован: 17 окт 2018 21:32
Сообщения: 21
Спасибо за помощь! limit_execute работает!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

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


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

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


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

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