AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Результат обработки shell-скрипта в диалплан. Возможно ли?

Newbies/FAQ Forum 32 сообщений -
#1

главный вопрос: если в консоли астериска показывается, что определённые номера с определённых айпи зарегились, значит ли это, что по ним и с них уже можно звонить?

второй вопрос: как сделать хотлайн( т.е. на одной уатс набираешь номер и попадаешь на вторую уатс/) какие правила для звонка надо написать?
#2

ilyamaltian писал(а):
главный вопрос: если в консоли астериска показывается, что определённые номера с определённых айпи зарегились, значит ли это, что по ним и с них уже можно звонить?


Звонить можно и без регистрации (как туда, так и обратно). Она нужна только для того, если ip адрес и порт устройства заранее неизвестен (например, динамический).

ilyamaltian писал(а):

второй вопрос: как сделать хотлайн( т.е. на одной уатс набираешь номер и попадаешь на вторую уатс/) какие правила для звонка надо написать?


Надо написать план набора (dialplan) в extension.conf, и принятый вызов в определенном контексте направить (Dial() ) на нужное направелние.

_________________
ys
http://voip.rus.net/
#3

а какой командой в консоли мониторить то, что происходит на сервере( звонки там и попытки регистрации..)
#4

ilyamaltian писал(а):
а какой командой в консоли мониторить то, что происходит на сервере( звонки там и попытки регистрации..)


set verbose

Usage: set verbose
Sets level of verbose messages to be displayed. 0 means
no messages should be displayed. Equivalent to -v[v[v...]]
on startup

_________________
ys
http://voip.rus.net/
#5

ys писал(а):
ilyamaltian писал(а):
а какой командой в консоли мониторить то, что происходит на сервере( звонки там и попытки регистрации..)


set verbose

Usage: set verbose
Sets level of verbose messages to be displayed. 0 means
no messages should be displayed. Equivalent to -v[v[v...]]
on startup

да это понятно, только он что-то не показывает ничего..
только на сип дебаге показывает


а поповоду диал, можно примерчик?
#7

спасибо, туплю
#9

вот такой вопрос, почемуто при звонке на стандартные номера ну типа 3 и т.п. выдаёт вот что

[Jul 4 11:25:44] WARNING[95009]: file.c:621 ast_readaudio_callback: Failed to write frame
== Spawn extension (office, s, 6) exited non-zero on 'SIP/101-08459000'
и тишина хотя звонок делает вид что идёт
#10

Кодеки не согласовали по-человечески.
#11

Romik писал(а):
Кодеки не согласовали по-человечески.


какие кодеки и где надо между собой согласовывать по человечески?

ещё он например пишет
[Jul 5 17:21:01] NOTICE[95009]: rtp.c:783 process_rfc3389: Comfort noise support incomplete in Asterisk (RFC 3389). Please turn off on client if possible. Client IP:

что такое комфорт нойз? клиент в данном случае железяк, на котором можно только настроить очерёдность кодеков и размеры пакетов

вообще ситуация такая, все до всех дозваниваются, но полная
тишина
#12

Это правильно, так и должно быть.
#13

что значит так и должно быть???????????
#14

ilyamaltian писал(а):

ещё он например пишет
[Jul 5 17:21:01] NOTICE[95009]: rtp.c:783 process_rfc3389: Comfort noise support incomplete in Asterisk (RFC 3389). Please turn off on client if possible. Client IP:

"так и должно быть" это про вот эти сообщения в логе астериска

_________________
SuSE 10.1 / Asterisk-trunk / Celeron 1000 / chan_misdn (HFC)
Linksys PAP2T / SPA941 / SPA3102 / SPA2102
#15

а почему звука то нет, ????????
-- Called 100
-- SIP/100-0845b000 is ringing
-- Call on SIP/100-0845b000 left from hold
-- SIP/100-0845b000 answered SIP/103-0844e000
-- Packet2Packet bridging SIP/103-0844e000 and SIP/100-0845b000
== Spawn extension (macro-stdexten, s, 1) exited non-zero on 'SIP/103-0844e000' in macro 'stdexten'
== Spawn extension (macro-stdexten, s, 1) exited non-zero on 'SIP/103-0844e000'
#16

Приветствую Smile

Вопрос такой: Допустим, из астериска передаётся информация, которая обрабатывается shell-скриптом. Можно ли результат этой обработки засунуть обратно в диалплан?
#17

RealTime? запросто
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#18

Я пока слабоват в терминологии, в стадии освоения и ньюбизма Smile А можно про это подробненько где-то почитать?
#19

Инструкция: Book
открываем любимый браузер, впечатываем voip-info.org (через чёрточку!)
слева в меню чуть ниже видим встроенный гугловский поиск по сайту Wink
вписываем туда заветное слово. результат как правило бывает первой строчкой на странице результатов. Тренируемся, на второй-третий раз доводим эти действия до автоматизма Laughing

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#20

Я постоянно посещаю voip-info.org, полезный ресурс Smile Но ответ на мой вопрос я там не нашёл (возможно не так искал, вот и обращаюсь за помощью, может на том же voip-info.org смогу найти, но по каким словам запрашивать?).

Сформулирую вопрос иначе: Хочу на Астериске создать интерактивное меню, выполнять написанные мною системные скрипты при звонке на определённый номер, используя данные, полученные из астериска. На этом этапе всё хорошо и понятно. Далее интересует, как возвратить полученные из скрипта данные в Астериск (т.е. узнать результат выполнения команды и занести его в диалплан)? Прочитал уже много информации по AGI, но ничего конкретного, только поверхностная инфа. Может где-то есть что более конкретное? Возможно, примеры какие-то...

P.S. - я не ленюсь читать документацию, но иногда утомляет долгий безрезультатный поиск.
#21

есть такая технология - называется RealTime. она есть двух типов - для хранения в базе конфигов и для хранения диалплана. если использовать второй то будет наверное несложно манипулировать любыми данными в базе прямо в real-time режиме из скрипта или даже из самого диалплана... чтобы реализовать - потребуется наличае фантазии и знание любого языка программирования (шел,перл, php, etc) для AGI.
в поиск по сайту именно это слово и вставляй - я думал ты сразу догадаешься это сделать.

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#22

Как вариант, написать AGI, который будет выполнять и обработку информации, и динамически строить диалплан.
Это гораздо проще, чем использовать RealTime с БД.
#23

Romik писал(а):
Это гораздо проще, чем использовать RealTime с БД.

довольно спорный момент. где agi будет хранить диалплан? в "плоском" файле? мне кажется изменить запись в базе (или сделать выборку) куда проще чем писать с нуля целый движок для работы с "плоским" файлом.

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#24

динамический диалплан храню в виде sub'ов прямо в perl'овых скриптах
#25

ну например - имеем простой диалплан:

exten => s,1,Answer
exten => s,2,NoOp
exten => s,3,Dial(SIP/1234,180,rt)
exten => s,4,Hangup

в случае если этот план хранится в базе (с использованием RealTime) то - если нам нужно изменить строку
exten => s,3,Dial(SIP/1234,180,rt)
на
exten => s,3,Dial(SIP/5555,180,rt)
то это делается всего одной командой из диалплана DBPut() или чтото типа того (не суть важно). а как это будет в случае с AGI? сотня строк кода как минимум должна будет отработать чтобы открыть файл на чтение, найти нужную строку, заменить её, сбросить все это в физический файл. неужели этот вариант "гораздо проще"? как в реализации так и в работе.

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#26

anest, я не храню диалплан в текстовике и не меняю ни в чем строки.

У меня нет статичного диалплана. Он динамически генерируется в зависимости от различных условий прямо во время выполнения AGI скрипта, путем вызова $AGI->exec($app, $options).
Относительные "минусы" - у меня достаточно много sub'ов (подпрограмм), и много условий (if ... then ... else). Дерево голосового меню и условий достигает глубины в десятки уровней.
#27

понятно. я не спорю, просто сам пытался понять что лучше и почему.
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#28

Вообщем замучил гугль, нашёл нужные примеры и на их основе врубился как и что. Написал php-скрипт, проблема решена.
#29

а какой вариант ты использовал? RealTime?
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#30

anest писал(а):
а какой вариант ты использовал? RealTime?

AGI. Про RealTime прочитал много интересного, но в моём простом домашнем решении не нужно никаких изысков Smile