Страница 2 из 2
Re: Переадрессация и таймер
Добавлено: 02 июл 2013, 11:01
SVoy
Troi писал(а):Работник уходит на n времени с места и набирает *n. Теперь все звонки которые направлены к нему в течении n времени переадрессуются на заранее предустановленное рабочее место.
а почему не использовать стандартные телефонные функции переадресации? что будет в вашем офисе если работник задержится где-нить?
Re: Переадрессация и таймер
Добавлено: 02 июл 2013, 12:10
Troi
Vlad1983
благодарю вас за столь быструю и квалитативную помощь!с меня пиво!
SVoy
Вы можете пояснить о чем конкретно идет речь?
Re: Переадрессация и таймер
Добавлено: 02 июл 2013, 12:30
SVoy
есть стандартные телефонные функции "Безусловная переадресация", "Переадресация по занятости\неответу\недоступности"
и другие для рабочего места. Эти функции могут реализовываться либо АТС, либо непосредственно телефоном.
В первом случае пользователь один раз задает куда переадресовывать звонки по различным критериям, в случае с безусловным переходом, уходя с рабочего места просто активирует этот режим, через определенную комбинацию, например *72..
Re: Переадрессация и таймер
Добавлено: 02 июл 2013, 13:00
Troi
интерессно..Есть ли источники где можно поближе с этим ознакомиться?
Re: Переадрессация и таймер
Добавлено: 02 июл 2013, 13:14
SVoy
1} я дал ссылку на свою статью, где попытался обобщить стандартные телефонные сервисы
2) если вы посмотрите стандартные конфиги фрисвича, то вы должны там найти примеры для этих сервисов или на
FS-wiki
зы оказывается я даже угадал с номером активации )
Re: Переадрессация и таймер
Добавлено: 03 июл 2013, 13:23
Troi
Подумал над расширением функционала.Кроме времени отсутствия указывать и номер куда переводить звонок.Кроме того возмодность длительного перенаправления.
Код: Выделить всё
<extension name="set_time_away_and_number">
<condition field="destination_number" expression="^\*(\d+)$"> <!--option:GET number for forwarding for example *5*1001-->
<action application="db" data="insert/away/${sip_auth_username}/${expr(${strepoch()} + 60*$1)}"/>
<action application="db" data="insert/forwarding/${sip_auth_username}/______1001____)}"/> <!--SET number for forwarding forwarding from dbf orwarding from db-->
</condition>
</extension>
<extension name="set_undefined_away">
<condition field="destination_number" expression="^\*12"> <!--option:GET number for forwarding for example *5*1001-->
<action application="db" data="insert/undifined_away/${sip_auth_username}/1"/> <!--SET 1 for undefinded away-->
<!--<action application="db" data="insert/forwarding/${sip_auth_username}/______1001_____)}"/>--> <!--SET number for forwarding from db-->
</condition>
</extension>
<extension name="call_user_away">
<condition field="destination_number" expression="^(\d+)$"/>
<condition field="${cond(${db(select/away/$1)} <= ${strepoch()} ? YES : NO)}" expression="^YES$">
<condition field="${cond(${db(select/undifined_away/$1)} == 1} ? YES : NO)}" expression="^YES$"> <!--test if 1 seted for undefined-->
<action application="set" data="hangup_after_bridge=true"/>
<action application="set" data="continue_on_fail=true"/>
<action application="bridge" data="{originate_timeout=20}user/1003"/> <!--<action application="bridge" data="{originate_timeout=20}user/___1001___"/> option:SET number for forwarding forwarding from db-->
<action application="bridge" data="user/$1"/>
</condition>
</extension>
Возможно в FS разбить вводимый номер по группам, из *5*1001 получить 5 и 1001?
Re: Переадрессация и таймер
Добавлено: 03 июл 2013, 13:33
Vlad1983
вы вообще собираетесь читать доку?
Код: Выделить всё
<condition field="destination_number" expression="^\*(\d+)\*$(\d+)$"> <!--option:GET number for forwarding for example *5*1001-->
после совпадения в переменных $1 и $2 будут лежать соответствующие значения
Re: Переадрессация и таймер
Добавлено: 03 июл 2013, 14:14
Troi
извиняюсь, тут на самом деле вcе было просто...
<extension name="set_time_away_and_number">
<condition field="destination_number" expression="^\*(\d+)\*$(\d+)$">
<action application="db" data="insert/away/${sip_auth_username}/${expr(${strepoch()} + 60*$1)}"/>
<action application="db" data="insert/forwarding/${sip_auth_username}/$2}"/>
</condition>
</extension>
Код: Выделить всё
extension name="call_user">
<condition field="destination_number" expression="^(\d+)$"/>
<condition field="${cond(${db(select/away/$1)} <= ${strepoch()} ? YES : NO)}" expression="^YES$">
<condition field="${cond(${db(select/undifined_away/$1)} == 1} ? YES : NO)}" expression="^YES$">
<action application="set" data="hangup_after_bridge=true"/>
<action application="set" data="continue_on_fail=true"/>
<action application="bridge" data="{originate_timeout=20}user/${db(select/forwarding/$2)"/>
<action application="bridge" data="user/$1"/>
</condition>
</extension>
правильно тут я вызываю $2 из "set_time_away_and_number"?
Re: Переадрессация и таймер
Добавлено: 03 июл 2013, 14:57
Vlad1983
такое громодьё скорей всего не сработает уже на проверке condition
пытаться проверить так или нет желания нет
если и сработает, то спотыкнется здесь
<action application="bridge" data="{originate_timeout=20}user/${db(select/forwarding/$2)"/>
по идее должно быть
<action application="bridge" data="{originate_timeout=20}user/${db(select/forwarding/$1)"/>