Програмулька

Разработка и отладка Asterisk и его приложений.

Модераторы: Admins, Модераторы

Ответить
vallico
Сообщения: 14
Зарегистрирован: 19 окт 2009, 22:19

Програмулька

Сообщение vallico » 11 ноя 2011, 16:41

Здравствуйте
Писал для себя. Может, кому тоже полезна будет.
Предыстория:
Мне было нужно мониторить события происходящие внутри * в online,
А именно события такого типа:
Создание канала
Канал на удержании
Каналы в бридже
Удаление каналов

Поскольку имею некий опыт с java, решил написать java desktop application.
Взаимодействие:
asterisk manager interface-->Asterisk-Java framework-->моя прога

Короткая инструкция по установке (нужна java 7) переписал на 6ю см ниже :
Качаем архив, разархивируем.
Делаем настройки *, редактируем файл manager.conf:
[general]
enabled = yes ; включаем службу
port = 5038

[mark] ; юзер
secret = mysecret ; пароль

; Даем права
read = all
write = all

Далее перегружаем модуль, в консоли manager reload

Запускаем прогу. AsteriskAdminJ.jar, пробуем кляцать.

По желании можно настроить CDR, дамп базы в архиве.
Редактируем cdr_mysql.conf.
[global]
hostname=127.0.0.1
dbname=asteriskcdr
table=cdr
password= ваш пароль
user=root
port=3306
sock=/tmp/mysql.sock

[columns]
;static "<value>" => <column>
;alias <cdrvar> => <column>
alias start => calldate
;alias clid => <a_field_not_named_clid>
;alias src => <a_field_not_named_src>
;alias dst => <a_field_not_named_dst>
;alias dcontext => <a_field_not_named_dcontext>
;alias channel => <a_field_not_named_channel>
;alias dstchannel => <a_field_not_named_dstchannel>
;alias lastapp => <a_field_not_named_lastapp>
;alias lastdata => <a_field_not_named_lastdata>
;alias duration => <a_field_not_named_duration>
;alias billsec => <a_field_not_named_billsec>
;alias disposition => <a_field_not_named_disposition>
;alias amaflags => <a_field_not_named_amaflags>
;alias accountcode => <a_field_not_named_accountcode>
;alias userfield => <a_field_not_named_userfield>
;alias uniqueid => <a_field_not_named_uniqueid>
alias useragent => useragent
alias blindtransfer => blindtransfer

в план набора:
exten => h,1,noop("extended CDR")
exten => h,n,set(CDR(hangupcause)=${HANGUPCAUSE}) ; hangupcause
exten => h,n,set(CDR(peerip)=${CHANNEL(peerip)}) ; like 10.0.0.5 if behind nat
exten => h,n,set(CDR(recvip)=${CHANNEL(recvip)}) ; like 194.79.52.192 - public ip
exten => h,n,set(CDR(from)=${CHANNEL(from)}) ; like sip:1111@sip.proxy.cz
exten => h,n,set(CDR(uri)=${CHANNEL(uri)}) ; like sip:1111@10.0.0.5
exten => h,n,set(CDR(useragent)=${CHANNEL(useragent)}) ; useragent like Aastra_57i
exten => h,n,set(CDR(blindtransfer)=${BLINDTRANSFER})
exten => h,n,set(CDR(codec1)=${CHANNEL(audioreadformat)}) ; codec *
exten => h,n,set(CDR(codec2)=${CHANNEL(audiowriteformat)}) ;
exten => h,n,set(CDR(llp)=${CHANNEL(rtpqos,audio,local_lostpackets)}) ; lost packets by local end **
exten => h,n,set(CDR(rlp)=${CHANNEL(rtpqos,audio,remote_lostpackets)}) ; lost packets by remote end
exten => h,n,set(CDR(ljitt)=${CHANNEL(rtpqos,audio,local_jitter)}) ; the same for jitter
exten => h,n,set(CDR(rjitt)=${CHANNEL(rtpqos,audio,remote_jitter)})

вродь все.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось vallico 11 ноя 2011, 22:45, всего редактировалось 2 раза.

Аватара пользователя
FeyFre
Сообщения: 183
Зарегистрирован: 17 сен 2010, 15:08
Откуда: Ukraine, Vinnitsa

Сообщение FeyFre » 11 ноя 2011, 16:53

Вставлю свое имхо:
Java, тем более 7, никто на одной машине с * запускать не будут. Так что похоже утилитка останется для Вас одного.
Slackware 13.37 - Asterisk 1.8

vallico
Сообщения: 14
Зарегистрирован: 19 окт 2009, 22:19

Сообщение vallico » 11 ноя 2011, 17:04

* в своей песочнице живет, прога в своей, хоть на другой планете, лиш бы TCP/IP между ними бегал.

Аватара пользователя
anest
Модератор
Сообщения: 5630
Зарегистрирован: 28 ноя 2004, 10:04

Сообщение anest » 11 ноя 2011, 19:21

я понимаю конечно что лень было писать описание что за прога и что конкретно она делает. но хотябы её скриншот можно были приаттачить?

Аватара пользователя
FeyFre
Сообщения: 183
Зарегистрирован: 17 сен 2010, 15:08
Откуда: Ukraine, Vinnitsa

Сообщение FeyFre » 11 ноя 2011, 21:19

anest, как оказалось, там *внутри* есть демо-видео. По-сути программа монитор. Смотрит в MySQL базу CDR. Слушает события * через AMI(показывает состояния каналов), также показывает состояния зарегистрированных SIP и IAX пиров. Какого-нибудь управления или настроек на видео не заметил. Запускать пробовал, но как упоминал автор, нужно Java 7(нафига?), которую ставить от нечего делать я не собирался.
Slackware 13.37 - Asterisk 1.8

vallico
Сообщения: 14
Зарегистрирован: 19 окт 2009, 22:19

Сообщение vallico » 11 ноя 2011, 22:37

7-я ява нужна потому что библиотеку BSAF использую.
сама прога на яве написана!!! нужна JVM по любе. А по поводи управления, пока инструментария нет, но есть идеи и возможности явы.

Added after 51 minutes:

переписал под 6ю аву
У вас нет необходимых прав для просмотра вложений в этом сообщении.

vallico
Сообщения: 14
Зарегистрирован: 19 окт 2009, 22:19

Сообщение vallico » 15 ноя 2011, 18:26

Добавил пару фич:

Park (парковка вызова)
Unpark (принудительно соединить запаркованного канала)
Chanspy (Прослушивание вызовов)
Monitor (запись розговора в файл)

В архиве смотрите видео.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Ответить