пятница, 28 октября 2016 г.

Asterisk freepbx amocrm

Хорошие статьи:
http://igorg.ru/2013/12/17/integraciya-amocrm-i-asterisk-nyuansy/
http://asterisk-pbx.ru/wiki/soft/crm/amocrm
https://voxlink.ru/kb/asterisk-configuration/amocrm-asterisk/#qw2

Оригинал помощи:
http://support.amocrm.ru/hc/ru/articles/207831798-Asterisk

среда, 26 октября 2016 г.

Asterisk manager.conf rawman

http show status не показывает, что rawman есть

Добавить в конфиг:
manager.conf
webenabled=true
и потом сделать core restart now


Было:
pbx*CLI> http show status
HTTP Server Status:
Prefix: /asterisk
Server: Asterisk/13.12.0
Server Enabled and Bound to [::]:8088

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

Enabled Redirects:
  None.


Стало:
pbx*CLI> http show status
HTTP Server Status:
Prefix: /asterisk
Server: Asterisk/13.12.0
Server Enabled and Bound to [::]:8088

Enabled URI's:
/asterisk/httpstatus => Asterisk HTTP General Status
/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

Enabled Redirects:
  None.
pbx*CLI>


И после этого конечно же заработает:
http://192.168.0.1:8088/asterisk/rawman?action=login&username=логин&secret=Пароль

Русификация Linksys spa922 spa942

Хорошая и простая статья здесь:
http://www.icepartners.ru/stat-i/russifikaciya-telefonov-linksys-spa9xx.html

Взять прошивки для Linksys:
https://software.cisco.com/download/release.html?mdfid=282414121&softwareid=282463651&release=6.1.5a

Полученная строка для загрузки словаря:
serv=http://192.168.0.122/linksys/;d0=English;x0=enS_US_v615.xml;d1=Russian;x1=ruS_v615.xml;

пятница, 21 октября 2016 г.

четверг, 20 октября 2016 г.

суббота, 15 октября 2016 г.

Cisco amfenol

Описание плат для аналоговой телефонии. Описание разъемов типа Amfenol для подключения.

EVM-HD-8FXS/DID

Дочерние платы:
EM-HDA-8FXS
EM3-HDA-8FXS/DID
EM-HDA-3FXS/4FXO
EM-HDA-6FXO

http://www.cisco.com/c/en/us/td/docs/routers/access/interfaces/nm/hardware/installation/guide/exvoimod.html


NM-HDA-4FXS

Дочерние платы:
EM-HDA-8FXS
EM3-HDA-8FXS
EM-HDA-4FXO
EM2-HDA-4FXO

http://www.cisco.com/c/en/us/td/docs/routers/access/interfaces/nm/hardware/installation/guide/connhda.html
http://www.cisco.com/c/en/us/products/collateral/interfaces-modules/network-modules/prod_qas0900aecd8017014a.pdf

четверг, 13 октября 2016 г.

Cisco bridge

http://it.nppiris.ru/cisco/bridge-router-cisco/


Базовая настройка
http://www.cisco.com/cisco/web/support/RU/108/1089/1089854_basic-router-config-ccp-00.html
http://xgu.ru/wiki/Cisco_Router
http://www.cisco.com/c/dam/en/us/td/docs/routers/access/1800/1861/hardware/quick/guide/rsn1861qsg.pdf
http://network.xsp.ru/4_10.php


Команды
http://microsin.net/adminstuff/cisco/commands-reference.html

show ip interface brief 
show arp


ping 192.168.103.xxx source vlan10
show crypto session
show crypto isakmp sa
show crypto ipsec sa interface Vlan10

show crypto isakmp sa detail 


среда, 12 октября 2016 г.

Cisco Ipsec tunnel vpn

Cisco Ipsec tunnel vpn



IPSec - набор протоколов сетевого уровня, предназначенных
для шифрования и проверки подлинности IP-пакетов, а также для
безопасного обмена ключами аутентификации.

Установление защищенных соединений, или туннелей является функцией
протокола IKE (Internet key exchange) и выполняется в две фазы.

В первой фазе (IKE Phase 1) устанавливается защищенное соединение,
предназначенное для обмена параметрами, необходимыми для установления
фазы 2 туннеля. Аутентификация ответной стороны может осуществляться как
по  заранее заданному ключу (одинаковому на обеих сторонах - preshared
key), так и с использованием алгоритма RSA (rsa signature).  В настоящей
статье используется аутентификация методом  preshared key.

Существуют два ключевых протокола, связанных со второй фазой SA: AH
(Authentication header) и ESP (Encapsulating Security Payload). Первый
обеспечивает только проверку подлинности, но не шифрование данных;
второй выполняет обе указанные операции.  В настоящей статье
рассматривается протокол ESP.

IPSec может работать в одном из двух режимов: транспортном (transport)
или туннельном (tunnel). В первом случае шифруется и/или
аутентифицируется только содержимое (payload) IP-пакета, а заголовок
остается нетронутым. Во втором случае исходный IP-пакет шифруется и/или
аутентифицируется целиком, и к нему добавляется новый заголовок. В
настоящей статье рассматривается только туннельный режим IPSec.

В качестве методов шифрования могут быть использованы блочные алгоритмы
такие, как DES, 3DES, AES, blowfish и др.


http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/867-cisco-router-site-to-site-ipsec-vpn.html
https://www.opennet.ru/base/cisco/cisco_freebsd_ipsec.txt.html
http://xgu.ru/wiki/IPsec_%D0%B2_Cisco
https://blog.webernetz.net/2014/06/20/ipsec-site-to-site-vpn-palo-alto-cisco-router/
http://www.cisco.com/c/en/us/support/docs/routers/1700-series-modular-access-routers/71462-rtr-l2l-ipsec-split.html
https://habrahabr.ru/post/246281/
https://techprofi.com/network/nastraivaem-vpn-ipsec-cisco/

вторник, 11 октября 2016 г.

понедельник, 10 октября 2016 г.

Mikrotik Layer7 SIP


Mikrotik Layer7 SIP


Определить потоки ip телефонии и повысить приоритет для них

[admin@mikrotik] > ip firewall layer7-protocol add name=sip regexp="^(invite|register|cancel|message|subscribe|notify) sip[x09-x0d -~]*sip/[0-2].[0-9]"

[admin@mikrotik] > ip firewall mangle add layer7-protocol=sip action=mark-packet new-packet-mark=sip-mark passthrough=yes chain=forward
[admin@mikrotik] >

Первой строчкой определили выражение для SIP пакетов, вторая - пометили все проходящие через маршрутизатор SIP пакеты как SIP-MARK. Далее можно определить очереди или что-нибудь еще.

Здесь только лишь установили приоритет для сигнального трафика, а нужно быть еще RTP трафик промаркировать и повысить ему приоритет.

четверг, 6 октября 2016 г.

Linux и приоритеты


Процесс с большим значением nice — более вежлив к другим процессам, позволяя им использовать больше процессорного времени, поскольку он сам имеет меньший приоритет (и, следовательно, большее «значение вежливости» — niceness value).

Наибольший приоритет (и наименьшее значение nice) — "−20". 19, либо 20 — наименьший приоритет, но это, с другой стороны, самые вежливые процессы.

Чтобы посмотреть идентификатор и значение nice нужного процесса в системе, можно воспользоваться командой ps axl.



Пример использования команды nice — запуск ресурсоёмкой задачи в фоновом режиме, так, чтобы она выполнялась, но освобождала часть процессорного времени для других процессов, как только оно становятся им нужно. Таким образом можно, скажем, запустить кодирование OGG/MP3 с большим значением nice, чтобы оно происходило в фоновом режиме, используя не всё процессорное время, а то, что не используется другими процессами (с меньшим значением nice — то есть с большим приоритетом).

Чтобы запустить команду с определённым приоритетом, слева нужно добавить «nice -n значение_nice», либо «nice --adjustment значение_nice» (adjustment — настройка, регулировка).

То есть: nice -n значение_nice команда.

Если нужно изменить приоритет уже запущенного процесса, можно воспользоваться командой renice.

renice -n значение_nice id_процесса

Команда renice выводит старый и новый приоритет процесса.



Оригинал:
https://habrahabr.ru/post/106381/


  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
20590 libvirt-  30  10 1381m 1.0g 6100 R 146.9  3.1  78:57.07 kvm
14844 libvirt-   0 -20  911m 592m 6116 S  27.9  1.8   3597:25 kvm
---------------------------------------------------------------------------------------
29521 libvirt-  20   0 1441m 1.0g 6116 S  19.9  3.2 192:57.73 kvm
 1426 libvirt-  20   0 1451m 1.1g 6220 S  14.3  3.4   3317:51 kvm
31300 libvirt-  20   0 1372m 1.0g 6100 S   8.3  3.2  82:27.84 kvm
28612 libvirt-  20   0 1422m 1.0g 6108 S   6.6  3.2 108:16.36 kvm
32536 libvirt-  20   0 1421m 1.0g 6108 S   5.3  3.2  71:44.03 kvm
 1367 libvirt-  20   0 1347m 1.0g 6100 R   4.3  3.2 106:17.30 kvm
13695 libvirt-  20   0 1431m 1.0g 6104 S   2.0  3.3 357:02.13 kvm
 2306 libvirt-  20   0 1407m 1.0g 6116 S   1.7  3.2  42:43.75 kvm
27650 libvirt-  20   0 1389m 1.0g 6108 S   1.0  3.2 121:47.26 kvm
30402 libvirt-  20   0 1429m 1.0g 6116 S   1.0  3.2  59:33.36 kvm

Debian KVM основные команды



bash# virsh dominfo Sial6-06-MM-050716

Вкл-выкл автостарт:
virsh autostart freebsd10
virsh autostart --disable freebsd10


Определить, что грузить процесс в линуксе

Показать имя для PID 55977

# ps -p 55977 -o comm=

Выдать 10 процессов, потребляющих наибольшее количество памяти

# ps -auxf | sort -nr -k 4 | head -10

Выдать 10 процессов, потребляющих наибольший ресурс процессора

# ps -auxf | sort -nr -k 3 | head -10


Заметки по панасоникам

Модификация полученного номера по ISDN-линии TDA.
От оператора приходит 10 цифр определителя (90XXXXXXXX), надо впереди приписать "08":

debug isdn:
Type of Number= National Number, Numbering Plan= ISDN/Telephony, Number= 90XXXXXXXX

Решение:
Добавить 8 в п.3.1.3, третья вкладка, National


Если это ISDN, то для него используется закладка для CLIP в 3.1.3.
1я и 2я закладки это для аналоговых СО с фунцией Caller ID.
С 5-й версии прошивки TDA , кажется, есть возможность отослав DSYS инженерам поддержки Panasonic (но только авторизированным установщиком)
получить "хитрые" изменения в DSYS, которые позволяют пользоваться 1-й и 2-й закладкой в 3.1.3 и для ISDN.


Как панас разделяет входящие звонки на National и International ?
-Разделяет оператор во входных SETUP. Но там, скорее всего, для 6,7-значных номеров стоит unknown, а для 10- значных -national.


Прямые выборки из базы mysql - asteriskcdrdb

Asterisk CDR select


accountcode: Какой учетный код используется: account, (строка, 20 символов)
src: Номер Caller*ID (строка, 80 символов)
dst: Направление (строка, 80 символов)
dcontext: Контекст направления (строка, 80 символов)
clid: Caller*ID с текстом (80 символов)
channel: Используемый канал (80 символов)
dstchannel: Канал направления, если подходит (80 символов)
lastapp: Последнее приложение, если подходит (80 символов)
lastdata: Дата последнего приложения (аргументы) (80 символов)
start: Начало вызова (дата/время)
answer: Ответ вызова (дата/время)
end: Конец вызова (дата/время)
duration: Полное время в системе, в секундах (целое), от набора номера до отключения
billsec: Полное время вызова, в секундах (целое), от ответа до отключения
disposition: Что случилось с вызовом: ANSWERED, NO ANSWER, BUSY, FAILED (на некоторых CDR выходных драйверах, например ODBC, они могут быть числовыми; заметьте, что более детальная инфа может быть найдена в переменной диалплана $HANGUPCAUSE)
amaflags: Какой флаг используется: смотри amaflags: DOCUMENTATION, BILLING, IGNORE и т.д., указанного для каждого канала подобно accountcode.
user field: Пользовательское поле, максимум 255 символов


Выбрать поля из таблицы по звонкам за определенный период:
select calldate,did,src,dstchannel,duration,billsec,disposition from cdr where did='DID_number' and DATE(calldate) between '2016-09-01' and '2016-09-30';

Кол-во звонков на определенный DID_number:
select count(*) from cdr where did='DID_number' and DATE(calldate) between '2016-09-01' and '2016-09-30';

--
select distinct dst from cdr where DATE(calldate) between '2016-09-01' and '2016-09-30';

Выбрать уникальные DID_number:
select distinct did from cdr where DATE(calldate) between '2016-09-01' and '2016-09-30';

Выбрать все звонки на наш DID номер и исключить из списка наши же тестовые звонки:
select calldate,did,src,dstchannel,duration,billsec,disposition from cdr where did='DID_number' and DATE(calldate) between '2016-09-01' and '2016-09-30' and src not in (select number from numbers);


Выбрать все звонки, когда мы звонили клиентам, которые звонили на определенный DID_number:
select calldate,src,dst,duration,billsec,disposition,uniqueid,recordingfile from cdr where DATE(calldate) between '2016-09-01' and '2016-09-30' and dst in (select src from cdr where did='DID_number'  and src not in (select number from numbers));


Примеры выборок из базы asteriskcdrdb для решения мелких задач:


SELECT calldate AS  "Дата звонка", did AS  "Номер дозвона", src AS  "Кто звонил", dstchannel AS  "Куда дозвонился", duration AS  "Общее время дозвона", billsec AS  "Время разговора", disposition AS "Статус ответа"
FROM cdr
WHERE did =  'DID_number'
AND DATE( calldate )
BETWEEN  '2016-09-01'
AND  '2016-09-30'
AND src NOT
IN (
SELECT number
FROM numbers
)
LIMIT 0 , 30

SELECT calldate AS  "Дата звонка", did AS  "Номер дозвона", src AS  "Кто звонил", dstchannel AS  "Куда дозвонился", duration AS  "Общее время дозвона", billsec AS  "Время разговора", disposition AS "Статус ответа" from cdr where did='DID_number' and DATE(calldate) between '2016-08-01' and '2016-08-31' and src not in (select number from numbers);

select calldate,did,src,dstchannel,duration,billsec,disposition from cdr where dst=505 and DATE(calldate) between '2016-09-01' and '2016-09-30' and src not in (select number from numbers);


Узнать количество записей в SQL-выборке
SELECT COUNT(*) FROM `table` WHERE `field_1`='value_1'
После выполнения данного запроса будет возвращён result_set, в котором будет храниться массив, содержащий элемент COUNT(*) со значением количества записей в таблице "table", где поле "field_1" имеет значение "value_1".

Узнать просто количество записей. Тогда то же самое, но без WHERE:
SELECT COUNT(*) FROM `table`

Подсчитать количество уникальных записей в таблице:
SELECT COUNT(DISTINCT `field_1`) FROM `table`



Оригиналы:
http://irockasterisk.blogspot.ru/2012/03/handy-mysql-queries-for-asterisk-cdr.html

среда, 5 октября 2016 г.

Cisco router ssh access

Cisco router ssh access


enable
clock set 01:03:57 05 Oct 2016
conf t
ip domain name local
hostname r2
crypto key generate rsa
2048
service password-encryption
username admin privilege 15 secret admin
enable secret admin
aaa new-model
access-list 23 permit 192.168.0.0 0.0.255.255
line vty 0 4
transport input telnet ssh
logging synchronous
privilege level 15
exec-timeout 60 0
access-class 23 in
exit
exit
copy run start


http://www.dmosk.ru/instruktions.php?object=cisco-ssh#gen



1. Входим в привилегированный режим
2. Устанавливаем точное время для генерации ключа
3. Входим в режим конфигурирования
4. Указываем имя домена (необходимо для генерации ключа)
5. Генерируем RSA ключ (необходимо будет выбрать размер ключа)
6. Активируем шифрование паролей в конфигурационном файле
7. Заводим пользователя с именем user, паролем Pa$$w0rd и уровнем привилегий 15
8. Активируем протокол ААА. (до активации ААА в системе обязательно должен быть заведен хотя бы один пользователь)
9. Входим в режим конфигурирования терминальных линий с 0 по 4
10. Указываем средой доступа через сеть по умолчанию SSH
11. Активируем автоматическое поднятие строки после ответа системы на проделанные изменения
12. Указываем время таймаута до автоматического закрытия SSH сессии в 60 минут
13. Выходим из режима конфигурирования терминальных линий
14. Выходим из режима конфигурирования
15. Сохраняем конфигурационный файл в энергонезависимую память



Проверить ssh

r2#sh ip ssh
SSH Enabled - version 1.99
Authentication timeout: 120 secs; Authentication retries: 3

r2#


Cisco router reset password and make telnet access

Cisco reset and make telnet access

Telnet access :
Router>enable
Router#configure terminal
Router(config)#enable secret password
Router(config)#service password-encryption
Router(config)#line vty 0 4
Router(config-line)#password telnetpw
Router(config-line)#login



Вариант первый — он же самый простейший и используется всегда, когда нет проблем с доступом к консоли управления.
Итак, подключаемся консольным кабелем к маршрутизатору, входим в режим Enable и набираем команду:
Router#erase startup-config

Собственно теперь остаётся перезагрузить маршрутизатор командой Reload.
После перезагрузки конфигурация будет полностью чистой.

Вариант второй — подходит в том случае, если вы забыли пароль либо маршрутизатор по какой-либо причине не даёт вам доступа к своей конфигурации. Например, у меня была проблема с cisco 3745 — она не загружала сохраненную конфигурацию и не давала её исправить, выдавая authentication failed без запроса пароля при попытке войти даже через консоль.  Последовательность действий следующая: — шаг первый — подключаемся к консольному порту. — шаг второй — выключаем и включаем маршрутизатор. — шаг третий — ждем 60 секунд с момента включения питания и нажимаем Break или Ctrl-Break. На самом деле нажимать можно уже через 25-30 секунд. Так же хочу отметить, что если вы используете не стандартный гипертерминал Windows, а какой-либо иной терминальный клиент, то комбинация клавиш может быть иной. Например, в TerraTerm, через который я подключался,  это комбинация — Alt-b. — шаг четвёртый — мы вошли в режим ROMMON.

Набираем команду  confreg 0x2142.
Этой командой мы устанавливаем значение конфигурационного регистра 0х2142 — это позволит маршрутизатору игнорировать сохраненную конфигурацию. Нажимаем Enter. — шаг пятый — перезагружаем маршрутизатор Cisco командой reset. После перезагрузки конфигурация будет совершенно чистая и система выведет начальный запрос о диалоге конфигурации. Примечание: После настройки коммутатора — не забудьте вернуть назад значение регистра командой config-register 0x2102

Источник: http://nastroisam.ru/sbros-nastroek/


А также:
https://habrahabr.ru/post/122348/

вторник, 4 октября 2016 г.

Конвертация звуковых файлов для Asterisk

Конвертация файлов для Asterisk при помощи программы SoX

sox — консольная утилита, которая умеет конвертировать аудиофайлы. Список поддерживаемых форматов велик. Имеются порты на windows, unix, macos.
Рассмотрим sox применительно к asterisk. Очень часто приходится восстанавливать файлы в wav или кодировать в ulaw, alaw, gsm, поэтому ниже приведен список команд для этого.

Простая конвертация

узнать информацию об аудиофайле

sox -V file.wav -e stat

wav to gsm

sox start.wav -r 8000 -c 1 -s -w finish.gsm resample -ql

gsm to wav

sox start.gsm -r 44100 -a finish.wav
или
sox.exe start.gsm -t wav -e signed-integer finish.wav

wav to alaw

sox start.wav -A -t RAW -r 8000 -c 1 finish.alaw

alaw to wav

sox -A -t RAW -r 8000 -c 1 start.alaw finish.wav

Команды для конвертации всех файлов в каталоге (применяется в скриптах)

Wav to alaw

for i in *.wav; do sox ./$i -t RAW -A -r 8000 -c 1 -1 ./`echo $i| sed "s/wav/alaw/"`; done

Wav to ulaw

for a in *.wav; do sox "$a" -t raw -r 8000 -c 1 -b -U `echo $a|sed "s/.wav/.mulaw/"` ; done

Wav to alaw

for a in *.wav; do sox "$a" -t raw -r 8000 -c 1 -b -A `echo $a|sed "s/.wav/.alaw/"` ; done

Wav to gsm

for a in *.wav; do sox "$a" -r 8000 -c1 `echo $a|sed "s/.wav/.gsm/"` resample -ql; done

Alaw to wav

for a in *.alaw; do sox -A -t RAW -r 8000 -c 1 "$a" `echo $a|sed "s/.alaw/.wav/"` ; done

Работа с MP3

Для работы с MP3 необходимо загрузить дополнительно 2 библиотеки: liblame и libmad Под Windows эти библиотеки можно загрузить отсюдаlibmad-0.dll libmp3lame-0.dll Эти файлы необходимо положить в папку с sox.exe

MP3 в GSM

sox source.mp3 -r 8k -c 1 -e gsm-full-rate finish.gsm remix -

MP3 в WAV

sox source.mp3 -c 1 -t wav -r 8k finish.wav remix -

Воспроизведение

В папке с sox.exe необходимо выполнить команду
copy sox.exe play.exe
Затем использовать play.exe в качестве консольного проигрывателя


Оригинал:
http://wiki.yola.ru/sound:sox:ast_conv



Или:Сначала переводим mp3'шку в wav'ку:

lame --decode file.mp3

Получаем файл file.mp3.wav, который по своим характеристикам еще не подходит для *. Теперь перекодируем его в Asterisk-совместимую "вавку" (8000 Hz, 16 bit, mono WAV):

sox -v 0.5 file.mp3.wav -t wav -2 -r 8000 -c 1 file.wav

Все, полученный file.wav "скармливаем" астеру.

P.S.: lame --decode file.mp3 - | sox -v 0.5 -t wav - -t wav -2 -r 8000 -c 1 file.wav
Оригинал:
http://morfair.livejournal.com/6180.html

понедельник, 3 октября 2016 г.

Asterisk и направления

Как понять направление звонка для Asterisk:
User - входящие
Peer - исходящие
Friend - оба направления

Asterisk dialpeers with DID

Чтобы пир , на который приходит звонок , принимался с нужным DID номером , то нужно добавить этот номер в строку регистрации.
register=username:userpass@192.168.55.2/DID