Задача такая, вызов с любого свободного виртуального одноканального номера.
Проблема такая, в 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)"/>
|