Програмулька
Писал для себя. Может, кому тоже полезна будет.
Предыстория:
Мне было нужно мониторить события происходящие внутри * в 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 "" =>
;alias =>
alias start => calldate
;alias clid =>
;alias src =>
;alias dst =>
;alias dcontext =>
;alias channel =>
;alias dstchannel =>
;alias lastapp =>
;alias lastdata =>
;alias duration =>
;alias billsec =>
;alias disposition =>
;alias amaflags =>
;alias accountcode =>
;alias userfield =>
;alias 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)
Java, тем более 7, никто на одной машине с * запускать не будут. Так что похоже утилитка останется для Вас одного.
_________________
Slackware 13.37 - Asterisk 1.8
_________________
Slackware 13.37 - Asterisk 1.8
сама прога на яве написана!!! нужна JVM по любе. А по поводи управления, пока инструментария нет, но есть идеи и возможности явы.
Added after 51 minutes:
переписал под 6ю аву
Park (парковка вызова)
Unpark (принудительно соединить запаркованного канала)
Chanspy (Прослушивание вызовов)
Monitor (запись розговора в файл)
В архиве смотрите видео.