Инструкция по полному сбросу Asus Nexus 7

На тесте сделаю полный сброс на Asus Nexus 7.
И так, выполним по пунктам:

1) Выключим устройство, зажмем вместе клавишу питания и уменьшения громкости, отпустим их после появления надписи Start.

2) Клавишей уменьшения громкости выберем «recovery mode«, а клавишей питания подтвердим выбор.

3) Когда появится «лежащий Андроид» нажмем кнопку питания и не отпуская клацнем кнопкой увеличения громкости, после чего должно появится меню.

4) Клавишами увеличения/уменьшения громкости выберем «wipe data / factory reset» и подтвердим выбор клавишей питания, далее аналогично выберем «Yes — delete all user data«, после чего начнется очистка пользовательских данных и сброс настроек.

5) В конце отобразится то же самое меню, в котором выберем «reboot system now» для перезагрузки устройства.

Все.

Как убрать надпись «Сайт работает на WordPress»

Чтобы убрать надпись «Сайт работает на WordPress», которая обычно отображается внизу каждой страницы, необходимо отредактировать файл footer.php активной темы.

А именно очистить содержимое между следующими тегами:

<div class="site-info">
...очистить то что здесь...
</div><!-- .site-info -->

Все.

Настройка FSK в Asterisk для определения номеров

Чтобы определялся номер, с аналоговых линий, нужно в контексте для транка каждого канала Dahdi указать:

usecallerid = yes
hidecallerid=no
cidstart = ring
cidsignalling = bell
callerid = asreceived

asreceived — означает что номер нужно передавать в виде, в каком он есть.
Я использовал китайскую плату TDM410P.
Также необходимо подать заявку оператору телефонной связи чтобы они включили не старый АОН, а CallerID, то есть FSK (Bellcore).
Я написал сообщение в техническую поддержку на сайта Укртелеком, и на следующий день на стационарный телефон перезвонил местный инженер.
Мы были подключены к АТС SI 3000, спустя еще день с нескольких попыток нам все же включили FSK и номера начали определяться еще до снятия трубки, мобильные, стационарные и т.д., хотя иногда бывали случаи что номер был не определен.

Если у провайдера телефонной связи не включен FSK, то в консоли Asterisk при звонках можно увидеть ошибки:

WARNING[21790][C-00000000]: chan_dahdi.c:1842 my_get_callerid: Failed to decode CallerID
ERROR[21790][C-00000000]: callerid.c:566 callerid_feed: No start bit found in fsk data.

Записать для анализа звук с канала телефонной линии можно командой:

dahdi_monitor 1 -v -r streamrx.wav

Также можно включить(on)/отключить(off) режим отладки звонков открыв консоль Asterisk и набрав команду:

sudo asterisk -rvvvvvv
sip set debug on
sip set debug off

Сгенерированный /etc/asterisk/dahdi-channels.conf я оставил без изменений (на всякий случай приведу его содержимое):

; Span 1: WCTDM/0 "Wildcard TDM410P" (MASTER)
;;; line="1 WCTDM/0/0 FXSKS"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 1
callerid=
group=
context=default

;;; line="2 WCTDM/0/1 FXSKS"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 2
callerid=
group=
context=default

;;; line="3 WCTDM/0/2 FXSKS"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 3
callerid=
group=
context=default

;;; line="4 WCTDM/0/3 FXSKS"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 4
callerid=
group=
context=default

Увеличение громкости звонков в Asterisk

Чтобы увеличить громкость разговора при звонках, необходимо в файле /etc/asterisk/extensions.conf, в начале каждого диалплана добавить пару строк (на которых нужно увеличить громкость):

exten => X.,1,Set(VOLUME(TX)=5)
exten => X.,n,Set(VOLUME(RX)=5)

Минимальное значение 0, а максимальное 10.

Если используется Dahdi, то можно усилить громкость на плате прописав в /etc/asterisk/chan_dahdi.conf или в контексте нужного транка:

rxgain=2.0
txgain=2.0

Тут стандартное значение 0.0, а максимальное 6.0, где rx (receive) — входящая громкость, tx (transmit) — исходящая от Asterisk.

Общая телефонная книга на TFTP для IP-телефонов

Понадобилось как-то сделать общую телефонную книгу для большого количества IP-телефонов Grandstream.

Имя файла должно быть phonebook.xml

Приведу пример содержимого (можно уместить все в одну строку как например я указал второй контакт):

<?xml version="1.0" encoding="UTF-8"?>
<AddressBook>
            <Contact>
                        <FirstName>Ivan</FirstName>
                        <LastName>Ivanov</LastName>
                        <Phone>
                                   <phonenumber>6000</phonenumber>
                                   <accountindex>1</accountindex>
                                   <downloaded>1</downloaded>
                        </Phone>
                        <Groups>
                                   <groupid>2</groupid>
                        </Groups>
            </Contact>
<Contact> <LastName/> <FirstName>ЛЮДА</FirstName> <Phone> <phonenumber>202</phonenumber> <accountindex>1</accountindex> <downloaded>1</downloaded> </Phone> <Groups> <groupid>2</groupid> </Groups> </Contact>
</AddressBook>

Поместим этот файл phonebook.xml на tftp сервер и в настройках IP-телефонов укажем IP адрес tftp, период времени через которое IP-телефон должен сверять информацию и прочие параметры, после чего перезагрузим телефон для ускорения процесса, после запуска обычно загружается телефонная книга. Можно также вручную импортировать файл phonebook.xml в IP-телефон через его web-панель и убедится появились ли контакты в телефонной книге.
Все, теперь если отредактировать файл телефонной книги на tftp сервере — потом он автоматически загрузится во все IP-телефоны.

Как запустить TFTP сервер смотрите в этих статьях:
Установка и настройка TFTP сервера в Ubuntu
Запуск TFTP сервера на Windows

Скрипт быстрой настройки IPTables

Иногда нужно например удалить все правила IPTables и прописать только нужное, так вот для удобства можно указать их в скрипте, после чего выполнить его.

Переключимся на root пользователя, в Ubuntu это можно сделать так:

sudo -i

Сначала посмотрим существующие правила (возможно некоторые будут нужны и их можно будет скопировать в скрипт):

iptables -nvL

И собственно ниже приведу пример скрипта с набросанными правилами IPTables:

#!/bin/sh
# Пример очистки и удаления всех существующие правил и цепочек
iptables -t filter -F
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -t filter -X
iptables -t nat -X
iptables -t mangle -X
iptables -X
# Запретим все входящие и проходящие соединения, разрешим все исходящие от сервера
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Разрешим локальный интерфейс
iptables -A INPUT -i lo -j ACCEPT
# Не трогаем уже установленные соединения
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Откроем порты SSH, HTTP для всех если нужно
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# При необходимости можно разрешить все входящие соединения конкретному IP-адресу
iptables -A INPUT -s 192.168.10.101 -j ACCEPT
# Пример разрешения PING
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
# и т.д.

Сделаем файл скрипт исполняемым:

chmod  rules.sh

Выполним его:

./rules.sh

Для удобного сохранения правил в Ubuntu, чтобы они не сбросились после перезапуска системы, можно установить iptables-persistent:

apt-get install iptables-persistent

После чего сохранять правила командой:

service iptables-persistent save

Можно такте сохранить текущие активные правила командами:

iptables-save >/etc/firewall.conf
ip6tables-save >/etc/firewall6.conf

Создать файл например через редактор nano (Ctrl+X для выхода из редактор, y/n и Enter для сохранения или отмены изменений):

nano -w /etc/network/if-up.d/00-iptables

Добавить в него содержимое:

#!/bin/sh
iptables-restore < /etc/firewall.conf
ip6tables-restore < /etc/firewall6.conf

И сделать файл выполняемым:

chmod 744 /etc/network/if-up.d/00-iptables

Смотрите также:
Настройка IPTables

Маршрутизация звонков по времени в Asterisk

Приведу пример маршрутизации звонков по времени в Asterisk.
Допустим в файле /etc/asterisk/extensions.conf есть настроенный контекст для транка со следующими параметрами:

[Trunk_2]
exten => s,1,DIAL(SIP/6004&SIP/6003,19)
exten => s,2,Hangup()

И чтобы разрулить звонки по времени на разные телефоны укажем для контекста этого транка только вложенные контексты:

[Trunk_2]
include => daytime,8:00-18:00,mon-sat,*,*
include => nighttime,18:00-8:00,mon-sun,*,*
include => sunday,8:00-22:00,sun,*,*

По сути daytime, nighttime, sunday это только названия контекстов, для которых прописано время в контексте [Trunk_2], их можно называть как угодно.

И потом в этих отдельных контекстах уже пропишем нужные екстеншены.
То есть, днем:

[daytime]
exten => s,1,DIAL(SIP/6004&SIP/6003,19)
exten => s,2,Hangup()

Ночью:

[nighttime]
exten => s,1,DIAL(SIP/6002,19)
exten => s,2,Hangup()

И в воскресенье:

[sunday]
exten => s,1,DIAL(SIP/6002,19)
exten => s,2,Hangup()

Можно также например создать контекст holiday с праздничными днями:

include => holiday,*,*,1,jan
include => holiday,*,*,8,mar

и т.д.

Для тех кто хочет расписать подробнее по дням, приведу список дней на английском:
mon — Monday — Понедельник
tue — Tuesday — Вторник
wed — Wednesday — Среда
thu — Thursday — Четверг
fri — Friday — Пятница
sat — Saturday — Суббота
sun — Sunday — Воскресенье

Аналогично сокращаются до трех букв и названия месяцев.