Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

[Решено] Выдать сигнал занято, если один из каналов занят.

0

Есть в диалплане функция Dial:

exten => _XXXXX,1,Dial(SIP/${EXTEN}&SIP/${EXTEN}l1,,Ttfg)

Это сделано для случая доступности с мобильного устройства. То есть номер XXXXXl1 всегда подключен. А вот номер XXXXX только с мобильного устройства в любой момент времени. При ситуации, что мобильный номер не зарегистрирован, а стационарный свободен - слышны длинные гудки, так как стационарный отвечает, что начал дозвон. И это нормально. А вот при ситуации, что мобильный номер не зарегестрирован, а стационарный занят, то абсолютная тишина. В косноли видно, что стационарный отбился с busy, а с мобильным есть попытка соединения, но отваливается вызов в итоге по таймауту.

ВОПРОС: Как отбивать в линию сигнал занято, если один из каналов занят?

UPD: Все отлично стало работать. Огромное спасибо octopas за подсказанный хак. Итоговое решение выглядит так:

exten => _XXXXX,1,Set(__ORIGINALCHANNEL=${CHANNEL})
exten => _XXXXX,n,Dial(Local/${EXTEN}@bridgepeer&Local/${EXTEN}l1@bridgepeer,,Ttfg)

[bridgepeer]
exten => _[0-9]!,1,Dial(SIP/${EXTEN})
exten => _[0-9]!,n,ExecIf($["${DIALSTATUS}"=="BUSY"]?AGI(busy.pl,${ORIGINALCHANNEL}))

В busy.pl отправляю в канал Hangup.

# cat busy.pl

#!/usr/bin/perl
$|++;
use Asterisk::AGI;
$agi=new Asterisk::AGI;
$agi->hangup($ARGV[0]);
1;
удалить закрыть спам изменить тег редактировать

спросил 2014-01-20 12:57:47 +0400

sattellite Gravatar sattellite
75 7 8
http://bks.tv/

обновил 2014-01-29 17:51:58 +0400

1 Ответ

1

Теоретически должно сработать:

exten => _XXXXX,1,Set(__ORIGINALCHANNEL,${CHANNEL})
exten => _XXXXX,n,Dial(Local/${EXTEN}@bridgepeer&Local/${EXTEN}l1@bridgepeer,,Ttfg)

[bridgepeer]
exten => _[*#0-9]!,1,Dial(SIP/{$EXTEN})
exten => _[*#0-9]!,n,ExecIf(${DIALSTATUS}=="BUSY"?${SHELL(/usr/bin/myamiscript.pl  ${ORIGINALCHANNEL})})

в AMI скрипте Hangup на аргумент

ссылка удалить спам редактировать

ответил 2014-01-20 13:47:52 +0400

octopas Gravatar octopas
111 5 1 3

Comments

Спасибо, сработало. Только внес небольшие изменения.

sattellite ( 2014-01-29 17:42:53 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2014-01-20 12:57:47 +0400

Просмотрен: 1,530 раз

Обновлен: Jan 29 '14

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.