freeswitchforum.com https://freeswitchforum.com/ |
|
Исходящий с любого свободного (шлюза/свободной линии/trunk)! https://freeswitchforum.com/viewtopic.php?f=6&t=917 |
Страница 1 из 1 |
Автор: | d.kuznecov [ 17 окт 2018 22:09 ] |
Заголовок сообщения: | Исходящий с любого свободного (шлюза/свободной линии/trunk)! |
Задача такая, вызов с любого свободного виртуального одноканального номера. Проблема такая, в 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)"/> |
Автор: | Vlad1983 [ 18 окт 2018 09:07 ] |
Заголовок сообщения: | Re: Исходящий с любого свободного (шлюза/свободной линии/tru |
можно использовать limit_execute |
Автор: | d.kuznecov [ 18 окт 2018 13:20 ] |
Заголовок сообщения: | Re: Исходящий с любого свободного (шлюза/свободной линии/tru |
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> |
Автор: | Vlad1983 [ 18 окт 2018 13:27 ] |
Заголовок сообщения: | Re: Исходящий с любого свободного (шлюза/свободной линии/tru |
не верю |
Автор: | d.kuznecov [ 18 окт 2018 13:57 ] |
Заголовок сообщения: | Re: Исходящий с любого свободного (шлюза/свободной линии/tru |
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> |
Автор: | d.kuznecov [ 18 окт 2018 14:14 ] |
Заголовок сообщения: | Re: Исходящий с любого свободного (шлюза/свободной линии/tru |
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 |
Автор: | Vlad1983 [ 18 окт 2018 14:15 ] |
Заголовок сообщения: | Re: Исходящий с любого свободного (шлюза/свободной линии/tru |
потому что не limit надо, а limit_execute |
Автор: | d.kuznecov [ 29 ноя 2018 12:30 ] |
Заголовок сообщения: | Re: Исходящий с любого свободного (шлюза/свободной линии/tru |
Спасибо за помощь! limit_execute работает! |
Страница 1 из 1 | Часовой пояс: UTC + 4 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |