LINUX.ORG.RU

Сообщения petav

 

QUEUESTATUS

Форум — Admin

Контекст обрботки части звонка

[menu_dept]
exten=> s,1,Answer
exten=> s,n,WaitExten(2)
exten=> 1,1(dial),Queue(depsales,tTh,,,30)
exten=> 1,n,Dial(SIP/101)
exten=> 2,1,Queue(depagency,tTh,,,30)
exten=> 2,n,Queue(depsales,tTh,,,30)
exten=> 2,n,Dial(SIP/101)
exten=> 3,1,Queue(depbuh,tTh,,,30)
exten=> 3,n,Dial(SIP/101)
exten=> h,1,Verbose(2, QUEUESTATUS ${QUEUESTATUS})
exten=> h,n,Verbose(2, DIALSTATUS ${DIALSTATUS})
exten=> h,n,DumpChan(19)

Конф. очередей

[queue-default]!
queue-callswaiting => queue-callswaiting
periodic-announce-frequency => 0
announce-frequency => 10
announce-holdtime => no
announce-position => no
strategy => ringall
timeout => 120
setinterfacevar=yes
setqueuevar=yes

[depbuh](queue-default)
member => Local/105@queue-local,1
member => Local/106@queue-local,2

Звоню в очередь depbuh и бросаю трубку после 3 гудка. В результата в h вижу:

   -- Executing [h@menu_dept:1] Verbose("SIP/22446688-00000000", "2, QUEUESTATUS ") in new stack
  ==  QUEUESTATUS 
    -- Executing [h@menu_dept:2] Verbose("SIP/22446688-00000000", "2, DIALSTATUS ") in new stack
  ==  DIALSTATUS 

А нужно если контекст [menu_dept] завершился неотвеченным создавать задачу в CRM перезвонить на номер. Причем контекст может завершится и на Queue и на Dial.

 , queuestatus

petav
()

Экранирование ,

Форум — Admin
 -- Executing [89201112233@phones:3] Macro("SIP/199-00000000", "cdr2crm, ["UNIQ":1493904033.0\,"PHONE_LOCAL":199\,"PHONE":89201112233\,"DURATION":0\,"CALL_STATUS":BUSY\,"DIRECTION":out\,"
FILENAME":2017/05/04/out-2017-05-04-1620-199-89201112233-1493904033.0.wav]") in new stack
    -- Executing [s@macro-cdr2crm:1] NoOp("SIP/199-00000000", "Добавляю запись о звонке  ["UNIQ":1493904033.0\") in new stack
    -- Executing [s@macro-cdr2crm:2] Set("SIP/199-00000000", "result=

Проблема: Astersik натыкаясь на "," считает что все что полсе него это начинается следующий параметр

Как передать в

exten=>_X.,n,Macro(macroname, param)
param = ["UNIQ":1493904033.0\,"PHONE_LOCAL":199\,"PHONE":89201112233\,"DURATION":0\,"CALL_STATUS":BUSY\,"DIRECTION":out\,"
FILENAME":2017/05/04/out-2017-05-04-1620-199-89201112233-1493904033.0.wav]
?

 ,

petav
()

nat на tunX

Форум — Admin

Поднимается интерфейс tunX клиентом OVPN. Затем следует выполнить

iptables -t nat -A POSTROUTING -o tunX -j MASQUERADE
Что бы фаерволы машин за OVPN думали, что трафик локальной сети.

Как кошерней запустить правило при поднятии tunX (X может поменятся) интерфейса?

 , ,

petav
()

Mikrotik Capsman коллизия MAC

Форум — Admin

Точка Mikrotik CAP

bridge1 6C:3B:6B:9F:DB:80

роутер Mikrotik с включенным «Capsman». После провизии точки поднимается интерфейс:

cap17 	6C:3B:6B:9F:DB:80

И у нас получается два интерфейса имеют один и тот же MAC. На что лог Mikrotik Capsman справедливо возмущается при попытке получения адреса от DHCP с Wi-Fi устройства:

12:04:58 caps,info [::ffff:192.168.239.3:57934,Join,[6C:3B:6B:9F:DB:80]] joined, provides radio(s): 6C:3B:6B:9F:DB:80 
12:05:45 caps,info 84:00:D2:37:4D:D8@cap16 connected 
12:05:46 interface,warning ether2-master: bridge port received packet with own address as source address (6c:3b:6b:9f:db:80), probably loop 
12:05:51 interface,warning ether2-master: bridge port received packet with own address as source address (6c:3b:6b:9f:db:80), probably loop 
12:05:57 interface,warning ether2-master: bridge port received packet with own address as source address (6c:3b:6b:9f:db:80), probably loop 
12:06:06 interface,warning ether2-master: bridge port received packet with own address as source address (6c:3b:6b:9f:db:80), probably loop 
12:06:12 interface,warning ether2-master: bridge port received packet with own address as source address (6c:3b:6b:9f:db:80), probably loop

Как «это» обучить?

 capsman, ,

petav
()

OpenVPN MikroTik

Форум — Admin

Стоит ли пользоватся MikroTik OpenVPN для создания сервера OVPN.

  • Я не понял можно ли создать клиента с only certificate auth?
  • Можно ли использовать tun на windows client?
  • Как оно себя ведет вообще?
  • Работает ли port-share

 , ,

petav
()

raid 5 [UUUUU_]

Форум — Admin

не долго думая создал (в первый раз) рейд 5

mdadm --create --verbose /dev/md1 --level=5 --raid-devices=6 /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh
Смотрю на него
md1 : active raid5 sdh[6] sdg[4] sdf[3] sde[2] sdd[1] sdc[0]
      4883156480 blocks super 1.2 level 5, 512k chunk, algorithm 2 [6/5] [UUUUU_]
      [====>................]  recovery = 23.3% (227639680/976631296) finish=1363.9min speed=9152K/sec
      bitmap: 1/8 pages [4KB], 65536KB chunk
# mdadm --query --detail /dev/md1
/dev/md1:
        Version : 1.2
  Creation Time : Wed Apr  5 10:55:56 2017
     Raid Level : raid5
     Array Size : 4883156480 (4656.94 GiB 5000.35 GB)
  Used Dev Size : 976631296 (931.39 GiB 1000.07 GB)
   Raid Devices : 6
  Total Devices : 6
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Wed Apr  5 15:58:09 2017
          State : active, degraded, recovering 
 Active Devices : 5
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 23% complete

           Name : s1:1  (local to host s1)
           UUID : c59f91ba:1683a43c:9a0d81f2:f058dd2b
         Events : 40725

    Number   Major   Minor   RaidDevice State
       0       8       32        0      active sync   /dev/sdc
       1       8       48        1      active sync   /dev/sdd
       2       8       64        2      active sync   /dev/sde
       3       8       80        3      active sync   /dev/sdf
       4       8       96        4      active sync   /dev/sdg
       6       8      112        5      spare rebuilding   /dev/sdh
Оно UUUUU_ потом станет UUUUUU или скрипты мониторинга переписывать?

 ,

petav
()

Jabber SIP

Форум — Admin

Всплыла тема, что можно использовать jabber клиент с поддержкой голосовых звонков (вместо zoiper+psi), PSI+ к примеру и звонить. Не могу расковырять как это реализовать. Из ингредиентов ejabberd и asterisk. Звонить нужно не только ползователям jabber, но туда куда Asterisk может позвонить.

 ,

petav
()

КросЗапрос и Cookie

Форум — Web-development

Сначало надо послать запрос авторизации

var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://pbx.ru/asterisk/rawman?action=login&username=crm&secret=321', false, user, 123);
xhr.send();
Ответ:

Response: SuccessMessage: Authentication accepted

Set-Cookie:mansession_id=«e8923ca7»; Version=1; Max-Age=60

Потом можно рабочую команду

 xhr.open('GET', 'https://pbx.ru/asterisk/rawman?action=originate&channel=SIP/200&exten=89209999999&context=out&callerid=200&async=yes', false, user, 123);
Ответ:

Response: Error Message: Permission denied

Set-Cookie:mansession_id=«fafcb5e2»; Version=1; Max-Age=60

Надо узнать при первом запросе Cookie и соорудить второй с их использованием? Ткните в методичку.

 crossdomain,

petav
()

Apache mod_rewrite P

Форум — Admin

Apache2 не проксирует URI часть адреса «asterisk» на "http://127.0.0.1:8088/asterisk/"

/var/www/html/pbx# cat .htaccess
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^/asterisk/(.*)$ http://127.0.0.1:8088/asterisk/$1 [P]
</IfModule>
<Directory /var/www/html/pbx>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
</Directory>

 , , ,

petav
()

Ищу mail notifer

Форум — Desktop
$ uname -a
Linux petav-work 3.2.0-4-686-pae #1 SMP Debian 3.2.63-2+deb7u1 i686 GNU/Linux
$ awesome -v
awesome v3.4.13 (Octopus)
 • Build: Jul 16 2012 12:31:46 for i686 by gcc version 4.7.1 (buildd@biber)
 • D-Bus support: ✔
  • Несколько ящиков IMAP
  • Popup от кого тема, о чем первые строчки. Кнопка закрыть.
  • Если щелкнуть в popup открыть ссылку на http интерфейс к почте

 , notifer,

petav
()

Asterisk API

Форум — Admin

Необходимо используя javascript:

  • Оригинировать звонок
  • Прослушивать event и отслеживать событие входящего звонка

У меня есть

/asterisk/httpstatus => Asterisk HTTP General Status
/asterisk/phoneprov/... => Asterisk HTTP Phone Provisioning Tool
/asterisk/amanager => HTML Manager Event Interface w/Digest authentication
/asterisk/arawman => Raw HTTP Manager Event Interface w/Digest authentication
/asterisk/manager => HTML Manager Event Interface
/asterisk/rawman => Raw HTTP Manager Event Interface
/asterisk/static/... => Asterisk HTTP Static Delivery
/asterisk/amxml => XML Manager Event Interface w/Digest authentication
/asterisk/mxml => XML Manager Event Interface
/asterisk/ws => Asterisk HTTP WebSocket
из JavaScript седениялся с «/asterisk/ws», но я как понял это просто «транспортный уровень», такой как TCP или UDP и подключить можно к тому что в users.conf и оно не походит для моей задачи. (Вот если надо webfon сделать то да)?

Предпочтительно сокет (постоянное соединение, без эмуляции типа longrequest). Прошу подсказку!

 ,

petav
()

HTTPS WS Asterisk

Форум — Admin
# cat http.conf
[general]
enabled=yes
bindaddr=0.0.0.0
bindport=8088
prefix=asterisk
enablestatic=yes
tlsenable=yes         
tlsbindaddr=0.0.0.0:8089
tlscertfile=/etc/letsencrypt/live/example.ru/fullchain.pem
tlsprivatekey=/etc/letsencrypt/live/example/privkey.pem
# cat /etc/letsencrypt/live/example.ru/fullchain.pem |head -n 1
-----BEGIN CERTIFICATE-----
# cat /etc/letsencrypt/live/example.ru/privkey.pem |head -n 1
-----BEGIN PRIVATE KEY-----
# asterisk -rx "http show status"
HTTP Server Status:
Prefix: /asterisk
Server Enabled and Bound to 0.0.0.0:8088

Enabled URI's:
/asterisk/httpstatus => Asterisk HTTP General Status
/asterisk/phoneprov/... => Asterisk HTTP Phone Provisioning Tool
/asterisk/static/... => Asterisk HTTP Static Delivery
/asterisk/ws => Asterisk HTTP WebSocket

Enabled Redirects:
  None.
# netstat -an | grep 8088
tcp        0      0 0.0.0.0:8088            0.0.0.0:*               LISTEN  
p# wget --quiet -O - http://example.ru:8088/asterisk/httpstatus
<title>Asterisk HTTP Status</title>
<body bgcolor="#ffffff">
<table bgcolor="#f1f1f1" align="center"><tr><td bgcolor="#e0e0ff" colspan="2" width="500">
<h2>&nbsp;&nbsp;Asterisk&trade; HTTP Status</h2></td></tr>
<tr><td><i>Prefix</i></td><td><b>/asterisk</b></td></tr>
<tr><td><i>Bind Address</i></td><td><b>0.0.0.0</b></td></tr>
<tr><td><i>Bind Port</i></td><td><b>8088</b></td></tr>
<tr><td colspan="2"><hr></td></tr>
<tr><td colspan="2"><hr></td></tr>
</table><center><font size="-1"><i>Asterisk and Digium are registered trademarks of Digium, Inc.</i></font></center></body>

Не появляется раздел «HTTP Server Status».

# netstat -an | grep 8089
Asterisk 11.13.1

 , ws

petav
()

Mounting the volume NFS for all users

Форум — Admin

NFS сервер (192.168.206.32)

# ls -l /volume1 |grep voice
drwxr-xr-x  2 root     root     73728 2017-03-25 20:04 voicerecord
# cat /etc/exports |grep voice
/volume1/voicerecord/ 192.168.206.4(rw,async,no_subtree_check,fsid=0,no_root_squash)

NFS client (192.168.206.4)

# cat /etc/fstab |grep voice
192.168.206.32:/volume1/voicerecord /var/spool/asterisk/monitor nfs rw,async,auto
# mount |grep voice
192.168.206.32:/volume1/voicerecord on /var/spool/asterisk/monitor type nfs4 (rw,relatime,vers=4,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.206.4,minorversion=0,local_lock=none,addr=192.168.206.32)
Проблема
У Asterisk нет прав на запись
[Mar 25 19:02:58] WARNING[3197]: file.c:1160 ast_writefile: Unable to open file /var/spool/asterisk/monitor/1490457776.0.wav: Permission denied
У root эти права есть
NFS client
root@asterisk:# touch /var/spool/asterisk/monitor/1490457776.0.wav
root@asterisk:# ls -l /var/spool/asterisk/monitor |grep 1490457776.0.wav
-rw-r--r-- 1 nobody nogroup        0 Mar 25  2017 1490457776.0.wav
root@asterisk:# rm /var/spool/asterisk/monitor/1490457776.0.wav
NFS server
# ls -l voicerecord |grep 1490457776.0.wav
-rw-r--r-- 1 root root        0 2017-03-25 20:17 1490457776.0.wav
Прошу помощи. Необходимо дать возможность Asterisk писать в экспортированную директорию

 , ,

petav
()

Не поднимается сетевой интерфейс после апгрейда MB

Форум — Admin

Материнская плата: Z170-A
На борту встроенная сетевая карта: Intel® I219V А так же внешняя карта: RTL8169

 
Linux star 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=13.10
DISTRIB_CODENAME=saucy
DISTRIB_DESCRIPTION="Ubuntu 13.10"
# modinfo e1000e
filename:       /lib/modules/3.11.0-12-generic/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
version:        2.3.2-k
license:        GPL
description:    Intel(R) PRO/1000 Network Driver
author:         Intel Corporation, <linux.nics@intel.com>
srcversion:     09551C4F327BB43111B10FE

dmesg есть, как поискать в нем инфу по I219V...

 i219v

petav
()

D-Link DGE-560T

Форум — Admin

Здравствуйте, как я понял D-Link DGE-560T 10/100/1000Mbps PCI-Ex1 Adapter OEM на чипе r8169 и проблем быть не должно с определением:

# find / -name r8169
/sys/bus/pci/drivers/r8169
/sys/module/mii/holders/r8169
/sys/module/r8169

# uname -a
Linux star 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

 dge-560t,

petav
()

Queue CDR

Форум — Admin

Внутренний абонент 102 поговорил в очереди depsales с номером 0123123

exten=> 2,n,Queue(depsales,tTh,,,30)

В cdr это видно так

calldate|clid|src|dst|dcontext|channel|dstchannel|lastapp|lastdata|duration|billsec|disposition|amaflags|accountcode|uniqueid|userfield|peeraccount|linkedid|sequence|recordingfile 
2017-03-02 10:28:09 | 0123123 | 0123123 | 1 | menu_dept | SIP/123-00000029 | SIP/102-0000002c | Queue | depsales,tTh,,,30 | 89 | 89 | ANSWERED    | 3 | | 1488443289.41 | | | 1488443289.41 | 46 | in-2017-03-02-1028-0123123-299903-1488443289.41.wav

Стороннему приложени. это подается так:

{"calldate":"2017-03-02 10:28:09","src":"0123123","dst":"1","duration":89,"billsec":89,"uniqueid":"1488443289.41","recordingfile":"in-2017-03-02-1028-0123123-299903-1488443289.41.wav"}

Приложение обучено смотреть на «dst» и если там найдет номер сотрудника (100, 101 и т.п.) то забирать этот звонок в карточку клиента с номером 0123123.

Вопрос: Как в CDR(dst) можно поменять информацию по завершении разговора?

 , , dst,

petav
()

FollowMe без объявлений

Форум — Admin
exten=> _1XX,n,Dial(SIP/${EXTEN},40,rt)
exten=> _1XX,n,FollowMe(${EXTEN},s)

Есть ли какая магия options для FollowMe, которая бы заставила его не объявлять, не спрашивать у звонящего, а просто искать абонента и соединять.

Я из manual понял, что нет, но вдруг ошибся и есть методика?

 ,

petav
()

Лучшая практика хранения puppet environments в git

Форум — Admin

Использую окружения, хочется хранить окружения в git. Как лучше всего это организовать, по какой схеме? Кто, к чему пришел?

Git Workflow and Puppet Environments + 7.3 Настройка Git - Перехватчики в Git выглядит удобно.

 ,

petav
()

ChallengeSent Asterisk

Форум — Admin

На PBX в журнале вижу как 27@194.247.165.16 ломится, но авторизоватся не пытается:

[Feb 22 13:07:19] SECURITY[15571]: res_security_log.c:134 security_event_cb: SecurityEvent="ChallengeSent",EventTV="1487761639-552512",Severity="Informational",Service="SIP"
,EventVersion="1",AccountID="sip:27@194.247.165.165",SessionID="0x7f01a0004a78",LocalAddress="IPV4/UDP/192.227.145.125/5060",RemoteAddress="IPV4/UDP/62.138.14.136/5077",Challenge="28d79eb2
Поэтому я не вижу собятия неуспешной авторизации и не могу заблокировать 194.247.165.16.

Проблема в том, что любому соединению указанное выше событие предшествувет:

[Feb 22 13:13:12] SECURITY[15571]: res_security_log.c:134 security_event_cb: SecurityEvent="ChallengeSent",EventTV="1487761992-861024",Severity="Informational",Service="SIP" ,EventVersion="1",AccountID="100",SessionID="0x7f01a0004a78",LocalAddress="IPV4/UDP/192.227.145.125/5060",RemoteAddress="IPV4/UDP/195.196.110.5/5060",Challenge="6b650f6b"
    -- Registered SIP '100' at 195.196.110.5:5060
Поэтому заблокировать источник не могу.

В sip.conf

allowguest=no
alwaysauthreject = yes

Да! Порт 5060 и соответственно регистрацию спрятать в туннель.
Да! Сменить порт.
но может с этим еще можно поработать?

 ,

petav
()

Multi language

Форум — Admin

В главном меню на трех языках сообщается, что если вы говорите на английском нажмите 1, если на русском 2 и т.д. Соотвественно, создал директории в папке sounds:

# tree sounds
sounds
├── en_My
│   ├── departament.wav
│   └── queue-callswaiting.wav
├── md_My
│   ├── departament.wav
│   └── queue-callswaiting.wav
├── ru_My
│   ├── departament.wav
│   └── queue-callswaiting.wav
└── xx_My
    ├── welcome.gsm
    └── welcome.wav

4 directories, 8 files

и реализовал диалплан:

[menu_lang] ;; Меню
exten=> s,1(timeout),Answer
exten=> s,n,Set(CHANNEL(language)=xx_My)
exten=> s,n,Background(welcome);
exten=> s,n,Read(var,,1,,2)
exten=> s,n,GotoIf($["${var}" == ""]?timeout)
exten=> 1,1,Set(CHANNEL(language)="md_My")
exten=> 1,n,Goto(menu_dep,s,1)
exten=> 2,1,Set(CHANNEL(language)="en_My")
exten=> 2,n,Goto(menu_dep,s,1)
exten=> 3,1,Set(CHANNEL(language)="ru_My")
exten=> 3,n,Goto(menu_dep,s,1)

но он не работает.

 ,

petav
()

RSS подписка на новые темы