Страница 1 из 2
Нужно настроить проверку прохождения звонков через asterisk
Добавлено: 03 фев 2015, 13:54
loooongcat
Я с астером знаком не очень, не жду готовое решение, надеюсь, мне зададут верное направление и немножко ссылок.
Есть сервер zabbix, есть сервер с asterisk, работоспособность asterisk мониторится так: проверяется есть ли среди запущенных процессов астер.
Бывает, что астер зависает и звонки не идут.
Поставили задачу: проверять прохождение звонков через астер консольным sip софтфоном, который должен запускаться скриптом, выдавать данные взяли ли трубку и выключаться.
На серверах debian 7, пробовал с twinkle, linphonec, но может есть какие-то способы по-проще.
Подскажите, пожалуйста, подходящий софтфон или какой другой способ.
Re: Нужно настроить проверку прохождения звонков через aster
Добавлено: 03 фев 2015, 17:18
gosha
sipp
рядом стоящий отдельный астериск
etc
Re: Нужно настроить проверку прохождения звонков через aster
Добавлено: 04 фев 2015, 08:11
virus_net
There are two ways to use this command. A call can be originated between a
channel and a specific application, or between a channel and an extension in
the dialplan. This is similar to call files or the manager originate action.
Calls originated with this command are given a timeout of 30 seconds.
Usage1: channel originate <tech/data> application <appname> [appdata]
This will originate a call between the specified channel tech/data and the
given application. Arguments to the application are optional. If the given
arguments to the application include spaces, all of the arguments to the
application need to be placed in quotation marks.
Usage2: channel originate <tech/data> extension [exten@][context]
This will originate a call between the specified channel tech/data and the
given extension. If no context is specified, the 'default' context will be
used. If no extension is given, the 's' extension will be used.
+
Local channel
+ звонок на точное время
= решение задачи и не надо никаких консольных сип клиентов
Re: Нужно настроить проверку прохождения звонков через aster
Добавлено: 04 фев 2015, 08:30
Ferrum
А не проще ли проверить почему Астериск зависает, у меня их очень много и не один не зависает.
Re: Нужно настроить проверку прохождения звонков через aster
Добавлено: 04 фев 2015, 10:18
loooongcat
спасибо за помощь, буду пробовать
Re: Нужно настроить проверку прохождения звонков через aster
Добавлено: 25 фев 2015, 13:46
loooongcat
virus_net писал(а):
There are two ways to use this command. A call can be originated between a
channel and a specific application, or between a channel and an extension in
the dialplan. This is similar to call files or the manager originate action.
Calls originated with this command are given a timeout of 30 seconds.
Usage1: channel originate <tech/data> application <appname> [appdata]
This will originate a call between the specified channel tech/data and the
given application. Arguments to the application are optional. If the given
arguments to the application include spaces, all of the arguments to the
application need to be placed in quotation marks.
Usage2: channel originate <tech/data> extension [exten@][context]
This will originate a call between the specified channel tech/data and the
given extension. If no context is specified, the 'default' context will be
used. If no extension is given, the 's' extension will be used.
+
Local channel
+ звонок на точное время
= решение задачи и не надо никаких консольных сип клиентов
извините, если не по адресу вопрос
сделал скрипт на питоне для обзвона, сделал соответствующий контекст
звонил через py-asterisk
https://github.com/mouseratti/py-asterisk
через вот такую штуку
Код: Выделить всё
try:
pbx = Manager((server['address'], server['port']), server['login'], server['password'])
pbx.Originate(a, 'context', '1111', '1')
except Exception as e:
в итоге e присваивались ошибка, но всегда одна что-то вроде "originate call error" независимо от причины ошибки
я вычитал ,что originate может отдавать номер ошибки
http://www.voip-info.org/wiki/view/Aste ... l+channels
а вот каким образом в питоновый скрипт забрать этот номер ошибки не знаю
если знаете чем можно эту ошибку забрать или где такой вопрос задать, подскажите, пожалуйста
Re: Нужно настроить проверку прохождения звонков через aster
Добавлено: 26 фев 2015, 08:41
virus_net
я никогда не кодил на питоне и не знаю этого языка
не вижу где вы это там вычитали и мне о подобном функционале originate неизвестно, по крайней мере в Asterisk 1.8
Originate выставляет переменную ${ORIGINATE_STATUS}:
At that point, this application will exit with
the status variable set and dialplan processing will continue.
This application sets the following channel variable before exiting:
${ORIGINATE_STATUS}: This indicates the result of the call origination.
FAILED
SUCCESS
BUSY
CONGESTION
HANGUP
RINGING
UNKNOWN: In practice, you should never see this value. Please report
it to the issue tracker if you ever see it.
но тут нет ничего про номер ошибки.
loooongcat писал(а):или где такой вопрос задать
Для начала сами посмотрите что отдается в AMI при возникновении ошибки, и если у вас там ест что-то на это тему, то собственно ваш вопрос стоит задать на форуме, где есть люди разбирающиеся в питоне
Re: Нужно настроить проверку прохождения звонков через aster
Добавлено: 05 мар 2015, 11:09
loooongcat
В общем, для будущих поколений выкладываю порядок действий, как реализовано у меня.
Библиотека для питона
Код: Выделить всё
git clone https://github.com/mouseratti/py-asterisk.git
внутри папки py-asterisk выполнить
скрипт запускается хоть чем, но у меня заббиксом
Код: Выделить всё
#!/usr/bin/python
from Asterisk.Manager import Manager
from time import sleep
server = {
'address':'127.0.0.1',
'port':5038,
'login':'yourlogin',
'password':'yourpassword',
}
a = 'LOCAL/777@your_context'
try:
pbx = Manager((server['address'], server['port']), server['login'], server['password'])
c = pbx.Originate(a, 'your_context', '778', '1')
result = c['Response']
except Exception as e:
result = 'Fail'
#sleep(10)
if result == 'Success':
print(0)
exit()
создаём учётку для AMI в manager.conf
Код: Выделить всё
[your_login]
secret=your_password
read=system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
write=system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
ну и соответствующий контекст делаем в диалплане
Код: Выделить всё
[your_context]
exten = 777,1,Answer()
same = n,Playback(demo-congrats)
same = n,Hangup()
exten = 778,1,Answer()
same = n,Echo()
same = n,Hangup()
Re: Нужно настроить проверку прохождения звонков через aster
Добавлено: 05 мар 2015, 18:12
SolarW
И что в результате этого получает заббикс на вход после выполнения этого скрипта?
А то не будучи ни капли программером не могу понять, обычно такие скрипты во внешних проверках заббиха нолик или единичку возвращают.
Re: Нужно настроить проверку прохождения звонков через aster
Добавлено: 05 мар 2015, 19:52
zzuz
Так написано же
if result == 'Success':
print(0)
exit()