Чат  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Confbridge DTMF dialplan

Проблемы и их решения Asterisk как такового

Модератор: april22

Confbridge DTMF dialplan

Сообщение olegsenin » 15 июн 2018, 17:11

Приветствую вас, коллеги.
Во время конференции нужно сделать возможность сигнализации диспетчеру о том что кто то хочет подать голос.
confbridge.conf:
Код: выделить все
[user_menu]                  ;Меню пользователя
type=menu
1=dialplan_exec(conferention-alert,,1)

extensions.conf
Код: выделить все
[conferention-alert]
exten => s,1,NoOp("Желает голос ${CHANNEL:6:4} канал ${CHANNEL}")
same => n,Set(DEVICE_STATE(Custom:conf${CHANNEL:6:4})=RINGING)
same => n,WaitExten(5)
same => n,Set(DEVICE_STATE(Custom:conf${CHANNEL:6:4})=BUSY)

Дак вот, пока выполняется этот код голос выключается.
Вопрос, что бы такое сделать чтобы это убрать?
Аватар пользователя
olegsenin
 
Сообщений: 75
Зарегистрирован: 30 мар 2015, 11:29

Re: Confbridge DTMF dialplan

Сообщение BorisTheBlade » 15 июн 2018, 17:35

Очевидно убрать WaitExten(5), по идее нужно в conferention-alert запускать скрипт например через system или через agi, который будет сигнализацию включать\выключать независимо от канала.
Либо форкать local-channel который и будет ждать в WaitExten
BorisTheBlade
 
Сообщений: 98
Зарегистрирован: 14 фев 2011, 15:24

Re: Confbridge DTMF dialplan

Сообщение olegsenin » 03 июл 2018, 13:48

BorisTheBlade писал(а):Очевидно убрать WaitExten(5), по идее нужно в conferention-alert запускать скрипт например через system или через agi, который будет сигнализацию включать\выключать независимо от канала.
Либо форкать local-channel который и будет ждать в WaitExten

Вот не поверишь, написал AGI скрипт:
Код: выделить все
$agi->exec('Set','DEVICE_STATE(Custom:conf'.$argv[1].')=RINGING');
$agi->exec('NoOp','Starting main module AGI script');
$agi->exec('WaitExten','(5)');
$agi->exec('Set','DEVICE_STATE(Custom:conf'.$argv[1].')=BUSY');

Но результат тот же!
Есть еще варианты?
Аватар пользователя
olegsenin
 
Сообщений: 75
Зарегистрирован: 30 мар 2015, 11:29

Re: Confbridge DTMF dialplan

Сообщение Kroteg » 03 июл 2018, 16:03

А почему именно WaitExten?
https://asterisk-pbx.ru/wiki/asterisk/app/waitexten писал(а):Приложение WaitExten в макро-контексте не работает, как требуется. Используйте приложение Read вместо WaitExten
Аватар пользователя
Kroteg
 
Сообщений: 112
Зарегистрирован: 11 янв 2018, 14:51
Откуда: Opck

Re: Confbridge DTMF dialplan

Сообщение olegsenin » 03 июл 2018, 16:22

Kroteg писал(а):А почему именно WaitExten?
https://asterisk-pbx.ru/wiki/asterisk/app/waitexten писал(а):Приложение WaitExten в макро-контексте не работает, как требуется. Используйте приложение Read вместо WaitExten

Ну по идее без разницы какое... Лишь бы 5 сек мигала лампочка...
Попробую сейчас это, а так думаю скриптом через System(asterisk -rx...
Аватар пользователя
olegsenin
 
Сообщений: 75
Зарегистрирован: 30 мар 2015, 11:29

Re: Confbridge DTMF dialplan

Сообщение BorisTheBlade » 03 июл 2018, 16:46

Kroteg, WaitExten тут вообще не причем, это просто пауза чтобы лампочка горела в течении Wait.

olegsenin, когда я говорил AGI, я не имел ввиду дословно на AGI переписать. Я говорил что не нужно Wait делать в том же канале который этот AGI запускает. По сути не важно как, но нужно форкнуть некий скрипт\канал\тред - назови как угодно, который будет не зависимо от канала его вызвавшего, ждать 5 сек, а потом выключит лампочку.
BorisTheBlade
 
Сообщений: 98
Зарегистрирован: 14 фев 2011, 15:24

Re: Confbridge DTMF dialplan

Сообщение virus_net » 04 июл 2018, 08:09

мой SIP URI sip:virus_net@asterisk.ru или sip:dn@postmet.com
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Аватар пользователя
virus_net
 
Сообщений: 2206
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Confbridge DTMF dialplan

Сообщение olegsenin » 04 июл 2018, 10:12

virus_net писал(а):https://forum.asterisk.ru/viewtopic.php?p=66544#p66544

Спасибо. Но сделал проще:
Код: выделить все
#!/bin/sh
echo $1
asterisk -rx "devstate change Custom:conf$1 RINGINUSE"
sleep 5;
asterisk -rx "devstate change Custom:conf$1 BUSY"

А вызов:
Код: выделить все
; ################################
; Подача голоса в конференции
; ################################
[conferention-alert]
exten => s,1,NoOp("Желает голос ${CHANNEL:6:4} канал ${CHANNEL}")
same => n,System(/var/lib/asterisk/sounds/vympel/golos2.sh "${CHANNEL:6:4}")
Аватар пользователя
olegsenin
 
Сообщений: 75
Зарегистрирован: 30 мар 2015, 11:29


Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

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

© 2008 — 2018 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH