Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Запись нажатий клавиш

1

День добрый. Есть провайдер телефонии по тон картам. Типа набираешь городской номер, там набираешь номер вызываемого абонента и звонишь дешевле по определенному направлению. Вот хотелось бы перехватывать нажатия клавиш в меню этого провайдера. Как сие можно реализовать и желательно с записью в файл (предпочтительнее в csv).

удалить закрыть спам изменить тег редактировать

спросил 2012-03-06 11:21:34 +0400

andy-none Gravatar andy-none
56 25 4 21

2 Ответа

2

На скорую руку сделал так:

cat /var/log/asterisk/dtmf | grep "DTMF begin passthrough" | awk -F"DTMF " '{print $2}' | awk -F" " '{print $3" "$5}' > /tmp/dtmf.txt

И скрипт на питоне:

#!/usr/bin/python
from itertools import groupby

def extract_data(filename):
    infile = open(filename, 'r')
    csvarray = []
    for line in infile:
        str = line.split()
        number = str[0]
        trunk = str[1]
        csvarray.append([number,trunk])
    infile.close()
    return csvarray

d = extract_data('/tmp/dtmf.txt')

for g in groupby( sorted(d,key=lambda x:x[1]) ,key=lambda x:x[1]):
    number=""
    for i in g[1]:
        number = number + i[0][1]
    print g[0]+": "+number

Из минусов - отсутствие даты.

ссылка удалить спам редактировать

ответил 2012-03-06 21:50:16 +0400

andySPB Gravatar andySPB
39 10 1 7

обновил 2012-03-06 21:51:56 +0400

Comments

Ну и кому надо сказать "спасибо"?

А вообще - сделайте через AMI. Будет проще, быстрее, и все нужные данные.

switch ( 2012-03-06 21:54:40 +0400 )редактировать

Не очень понял как тоже самое можно через AMI сделать. Какую команду использовать то?

andy-none ( 2012-03-07 15:22:26 +0400 )редактировать

Когда подключитесь к AMI то вам будет валиться весь поток событий, в т.ч. и событие DTMF. Команды вам не понадобятся, нужно только слушать нужное.

switch ( 2012-03-10 18:36:40 +0400 )редактировать

Гм. Допустим я скриптом подключаюсь по ami. Как мне перехватить нажатия dtmf? Опять парсить данные?

andy-none ( 2012-03-11 09:50:21 +0400 )редактировать
1

Ты попробуй подключиться телнетом и посмотреть что происходит. Для парсинга этого примитивного текстового формата много ресурсов не нужно. Фактически для всех языков есть библиотеки, в т.ч. для питона. Из плюсов - ты всегда будешь знать uniquid звонка. Точнее сказать не могу, т.к. не занимался конкретно этой задачей. Пробуй. И все получится.

switch ( 2012-03-11 10:51:22 +0400 )редактировать
2

На ум приходит лишь парсинг лога астериска. Можно в режиме реалтайм делать через named pipes. Либо модифицировать астериск. В любом случае это для астерискера не ниже 50-го уровня.

ссылка удалить спам редактировать

ответил 2012-03-06 12:06:24 +0400

switch Gravatar switch
8334 11 7 91
http://lynks.ru/

Comments

В логе * можно зафиксировать нажатия клавиш?

andy-none ( 2012-03-06 14:04:59 +0400 )редактировать

да. в logger.conf добавить dtmf. но потом будет парсинг логов. нетривиальный если болеее одного звонка.

meral ( 2012-03-06 14:46:37 +0400 )редактировать

Валенки мы все! В AMI валятся события DTMF. Эта фича еще в 2005 году реализована: https://issues.asterisk.org/view.php?id=6082

switch ( 2012-03-06 14:56:21 +0400 )редактировать

гы. ну так все равно парсер нужон то.токо для АМИ.

meral ( 2012-03-06 15:14:02 +0400 )редактировать
1

Ну зато это в 100500 раз проще! и номер канала будет в наличии и все остальное...

switch ( 2012-03-06 15:15:09 +0400 )редактировать

да одинаково. ну для меня во всяком случае )

meral ( 2012-03-06 19:47:00 +0400 )редактировать

Посмотрим что будет делать топикстартер...

switch ( 2012-03-06 19:51:02 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2012-03-06 11:21:34 +0400

Просмотрен: 419 раз

Обновлен: Mar 12 '12

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.