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

Нужно настроить проверку прохождения звонков через asterisk

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

loooongcat
Сообщения: 6
Зарегистрирован: 03 фев 2015, 13:38

Нужно настроить проверку прохождения звонков через asterisk

Сообщение loooongcat »

Я с астером знаком не очень, не жду готовое решение, надеюсь, мне зададут верное направление и немножко ссылок.
Есть сервер zabbix, есть сервер с asterisk, работоспособность asterisk мониторится так: проверяется есть ли среди запущенных процессов астер.
Бывает, что астер зависает и звонки не идут.
Поставили задачу: проверять прохождение звонков через астер консольным sip софтфоном, который должен запускаться скриптом, выдавать данные взяли ли трубку и выключаться.
На серверах debian 7, пробовал с twinkle, linphonec, но может есть какие-то способы по-проще.
Подскажите, пожалуйста, подходящий софтфон или какой другой способ.
gosha
Сообщения: 375
Зарегистрирован: 06 сен 2010, 17:41
Контактная информация:

Re: Нужно настроить проверку прохождения звонков через aster

Сообщение gosha »

sipp

рядом стоящий отдельный астериск

etc
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Нужно настроить проверку прохождения звонков через aster

Сообщение virus_net »

Код: Выделить всё

CLI> core show help channel originate
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
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
+ звонок на точное время
= решение задачи и не надо никаких консольных сип клиентов
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Аватара пользователя
Ferrum
Сообщения: 338
Зарегистрирован: 25 ноя 2011, 15:16

Re: Нужно настроить проверку прохождения звонков через aster

Сообщение Ferrum »

А не проще ли проверить почему Астериск зависает, у меня их очень много и не один не зависает.
loooongcat
Сообщения: 6
Зарегистрирован: 03 фев 2015, 13:38

Re: Нужно настроить проверку прохождения звонков через aster

Сообщение loooongcat »

спасибо за помощь, буду пробовать
loooongcat
Сообщения: 6
Зарегистрирован: 03 фев 2015, 13:38

Re: Нужно настроить проверку прохождения звонков через aster

Сообщение loooongcat »

virus_net писал(а):

Код: Выделить всё

CLI> core show help channel originate
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
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
а вот каким образом в питоновый скрипт забрать этот номер ошибки не знаю
если знаете чем можно эту ошибку забрать или где такой вопрос задать, подскажите, пожалуйста
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Нужно настроить проверку прохождения звонков через aster

Сообщение virus_net »

я никогда не кодил на питоне и не знаю этого языка
loooongcat писал(а):я вычитал ,что originate может отдавать номер ошибки http://www.voip-info.org/wiki/view/Aste ... l+channels
не вижу где вы это там вычитали и мне о подобном функционале originate неизвестно, по крайней мере в Asterisk 1.8
Originate выставляет переменную ${ORIGINATE_STATUS}:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
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 при возникновении ошибки, и если у вас там ест что-то на это тему, то собственно ваш вопрос стоит задать на форуме, где есть люди разбирающиеся в питоне
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
loooongcat
Сообщения: 6
Зарегистрирован: 03 фев 2015, 13:38

Re: Нужно настроить проверку прохождения звонков через aster

Сообщение loooongcat »

В общем, для будущих поколений выкладываю порядок действий, как реализовано у меня.

Библиотека для питона

Код: Выделить всё

git clone https://github.com/mouseratti/py-asterisk.git

внутри папки py-asterisk выполнить

Код: Выделить всё

python setup.py install
скрипт запускается хоть чем, но у меня заббиксом

Код: Выделить всё

#!/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()
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

Re: Нужно настроить проверку прохождения звонков через aster

Сообщение SolarW »

И что в результате этого получает заббикс на вход после выполнения этого скрипта?
А то не будучи ни капли программером не могу понять, обычно такие скрипты во внешних проверках заббиха нолик или единичку возвращают.
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Нужно настроить проверку прохождения звонков через aster

Сообщение zzuz »

Так написано же

if result == 'Success':
print(0)
exit()
Линия24 - Системы Массового Телефонного Обслуживания
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH