Добрый день! Задача стоит достаточно неоднозначная (по крайней мере гугл мне ничего полезного не рассказал)
1. Построить голосовое меню на астериске (но это как раз не проблема)
2. Используя это голосовое меню нужно отдавать данные из этого меню на com порт
Вот как раз со вторым пунктом и есть самая большая загвоздка. Может кто чего посоветует в решении этой проблемы?
Буду очень признателен.
> 2. Используя это голосовое меню нужно отдавать данные из этого меню на
> com порта подробнее ?
>> 2. Используя это голосовое меню нужно отдавать данные из этого меню на
>> com порт
> а подробнее ?Поясняю. Голосовое меню будет поставляться только для одного телефона. Когда с этого телефона данные уходят на голосовое меню нужно нужно чтоб скрипт обрабатывал их и в зависимости от полученных данных генерировал тот или иной сигнал на ком порте
>>> 2. Используя это голосовое меню нужно отдавать данные из этого меню на
>>> com порт
>> а подробнее ?
> Поясняю. Голосовое меню будет поставляться только для одного телефона. Когда с
> этого телефона данные уходят на голосовое меню нужно нужно чтоб скрипт
> обрабатывал их и в зависимости от полученных данных генерировал тот или
> иной сигнал на ком портеВ общем, не важно, как вы описали ваши подробности :-)
Я бы реализовал так:*) Пишем приложение, которое будет подключаться к * через AMI
*) В диалплане голосового меню в нужных местах вызываем UserEvent()
*) В приложении ловим Event: UserEvent и делаем нужные действия хоть с ком-портом, хоть с чем угодно.
>[оверквотинг удален]
>> Поясняю. Голосовое меню будет поставляться только для одного телефона. Когда с
>> этого телефона данные уходят на голосовое меню нужно нужно чтоб скрипт
>> обрабатывал их и в зависимости от полученных данных генерировал тот или
>> иной сигнал на ком порте
> В общем, не важно, как вы описали ваши подробности :-)
> Я бы реализовал так:
> *) Пишем приложение, которое будет подключаться к * через AMI
> *) В диалплане голосового меню в нужных местах вызываем UserEvent()
> *) В приложении ловим Event: UserEvent и делаем нужные действия хоть с
> ком-портом, хоть с чем угодно.Вот мне второй способ предложили, он простой достаточно, и мануалов по нему найдется немало, а можно еще про первый подробнее пояснить? Если со ссылками и исходниками то вообще будет хорошо
>[оверквотинг удален]
>>> иной сигнал на ком порте
>> В общем, не важно, как вы описали ваши подробности :-)
>> Я бы реализовал так:
>> *) Пишем приложение, которое будет подключаться к * через AMI
>> *) В диалплане голосового меню в нужных местах вызываем UserEvent()
>> *) В приложении ловим Event: UserEvent и делаем нужные действия хоть с
>> ком-портом, хоть с чем угодно.
> Вот мне второй способ предложили, он простой достаточно, и мануалов по нему
> найдется немало, а можно еще про первый подробнее пояснить? Если со
> ссылками и исходниками то вообще будет хорошоастериск предоставляет управляющий интерфейс, AMI - asterisk management interface.
Он простой, текстовый протокол, поля и значения разделены двоеточие-пробел. Подключаетесь к порту, авторизуетесь, отправляете-принимаете данные. Пример где-то на http://www.voip-info.org/ или в гугле.
Мой исходник:
1) на perl
1.1) использует перепиленный для работы в неблокирующем режиме Asterisk::Manager
2) с личной инфо, которую надо чистить перед публикацией
3) содержит наслоения эволюционного развития, т.к. изначально это вообще было не для asterisk, а специализированный веб-сервер, а еще раньше - вообще чужим проектом, а только потом стало /другим/ сервисом asterisk и еще "потом" стало "еще одним" сервисом asterisk - т.е для академического изучения не пригодно.
Я бы сделал следующим образом:
Подготовил скрипты для обращения к com порту, затем в * добавил строки примерно такого содержания exten => _первый_номер_голосового_меню,1, system(/bin/script1)
> Я бы сделал следующим образом:
> Подготовил скрипты для обращения к com порту, затем в * добавил строки
> примерно такого содержания exten => _первый_номер_голосового_меню,1, system(/bin/script1)хм, а такой простой способ я уже и забыл ))))
ну, у меня просто наработка есть, вот ей и пользуюсь)
> Я бы сделал следующим образом:
> Подготовил скрипты для обращения к com порту, затем в * добавил строки
> примерно такого содержания exten => _первый_номер_голосового_меню,1, system(/bin/script1)а примеров не найдется для новичка? гугл оказался нет так информативен как ожидалось или просто не туда копал
Что то мне с трудом вериться что гугл вам ничем помочь не смог...
Первые ссылки по запросу в гугле- asterisk system():
http://www.voip-info.org/wiki/view/Asterisk+cmd+System
и даже на русском
http://asterisk.ru/knowledgebase/Asterisk+cmd+System
> Что то мне с трудом вериться что гугл вам ничем помочь не
> смог...
> Первые ссылки по запросу в гугле- asterisk system():
> http://www.voip-info.org/wiki/view/Asterisk+cmd+System
> и даже на русском
> http://asterisk.ru/knowledgebase/Asterisk+cmd+SystemЗа это спасибо, уже нашел про вызов скриптов (в том числе не без помощи товарищей отписавшихся выше) Теперь все-таки интересует отправка данных на com порт и, если есть такая возможность постройка пакетов этих данных
>Теперь все-таки интересует отправка данных на
> com порт и, если есть такая возможность постройка пакетов этих данных#!/bin/sh
echo 'Данные 1, 2, 3' >/dev/ttyS1