Рубрика: Asterisk
Как настроить телефон Grandstream BudgeTone 100 VoIP
Сначала настройте IP адрес прямо на телефоне
Нажать кнопку MENU
Выбрать IP Addr — Ввести IP адрес
Открыть на комьютере URL http://ip_адрес_телефона
имя пользователя по-умолчанию admin пароль 123
компьютер должен иметь тот же диапазон адресов IP что и телефонный
Через браузер пропишите свои настройки IP телефонии.
Они выглядят примерно так:
инструкции :
Как сменить IP адрес в Windows 7
от производителя телефона Grandstream BudgeTone 100
еще одна от производителя телефона Grandstream BudgeTone 100 в PDF
как в Linux вывести настройки IP адресов сетевых карт?
чтобы вывести настройки сетевой карты есть команда: ifconfig
чтобы вывести только ip адрес, маску и подсеть можно выбрать эти даные конвеером из несколькоих команд:
ifconfig eth1 | grep "inet addr:" | cut -f2,3
как получить все IP адреса из лога Asterisk?
чтобы получить все IP адреса из логов Asterisk нужно использовать несколько этапов обработки. Я объединил их в однин конвеер. В нем же считается сколько раз встречается IP адрес в логе. Затем все пересортировывается по возрастанию количества повторений адреса в логе.
ограничение и запрет соединений с сервером Asterisk снаружи
как только поставишь asterisk сервер к тебе начнут долбиться с попытками звонить за твой счет. Чтобы это предотвратить в параметрах sip.conf нужно указать:
deny=0.0.0.0/0.0.0.0 ;запретить все
permit=8.8.8.8/255.255.255.255 ;разрешить соединения только с этого IP
таких строк может быть не ограниченное количество (для подключения всех филиалов к центральному серверу asterisk или нескольких провайдеров)
и помните, что asterisk это последняя линия обороны. Ломануть могут и ваш сервер и чтобы это предотвратить нужно настроить firewall — сетевой экран, чтобы не пускать определенные типы запросов или же банить по странам.
Это делается через iptables.
Вот пример правил iptables для отклонения всех запросов на регистрацию на ваш Asterisk сервер.:
iptables -A INPUT -p udp —dport 5060 -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp —dport 5060 -m string —string «REGISTER sip:46.160.231.50» —algo bm -j ACCEPT
iptables -A INPUT -p udp —dport 5060 -m string —string «REGISTER sip:» —algo bm -j DROP
iptables -A INPUT -p udp —dport 5060 -m string —string «OPTIONS sip:» —algo bm -j DROP
iptables -A INPUT -p udp —dport 5060 -j ACCEPT
или вот это с сайта http://invoip.net:
*****начало цитаты*****
-A INPUT -p udp —dport 5060 -j SCAMBLOCK
-A INPUT -p udp —dport 5060 -m recent —set —name SIP
-A INPUT -p udp —dport 5060 -m recent —update —seconds 2 —hitcount 60 —name SIP \
-j LOG —log-prefix «SIP flood detected:»
Приведенное требование определет пакет с помощью цепочки SCАMBLOK. Именно внутри этой цепочки имеют место быть все заблокированные по разным причинам адреса IP. В случае выявления найденного хоть одного совпадения с одним из пакетов списка, пакет незамедлительно отбрасывается.
В случае не отбрасывания пакета используется второе правило, то есть пометка для учета, именуемого SIP. Что касается правила под номером три, то оно производит подсчеты, не состоялось ли превышение данного пакета.
В случае не превышения количества, правило тут же игнорируется, а если превышено, то незамедлительно выполняется конкретное действие. Системный лог в нашем с вами случае безнадежен. Прописывается пакетная детальная информация. Пакетная информация начинается с такой строки, как «SIP flood detected:». Время и количество пакетов для каждого источника отдельно рассчитываются. Из этого следует, что мы совершили ограничение по скорости приема пакетов SIP от каждого IР, которое не заблокировано, уровень составляет тридцать пакетов в секуду.
*****конец цитаты*****
кроме этого нужно обязательно использовать FailToBan.
переменные диалплана Asterisk
${CONTEXT} Текущий контекст. ${EXTEN} Текущий екстеншен. ${EXTEN:x} Текущий екстеншен с удалением первых цифр(где х кол-во удаляемых цифр) ${PRIORITY} Текущий приоритет ${CALLERID} Текущий CallerID (имя и номер) ${CALLERIDNUM} Текущий номер Caller ID ${CALLERIDNAME} Текущее имя Caller ID ${RDNIS} перенаправление DNIS шаблоны для экстеншенов: X – любая цифра от 0-9 N – любая цифра от 2-9 [14-6] – цифры 1,4, 5 и 6 . – любые возможные символы. получить из экстеншена символы: {EXTEN}:1 - получить символы, начиная со второго (9101) 9 - управляющая цифра - 101 набираемый номер {EXTEN}:1:5 - получить символы, начиная со второго по 5
формат exten в диалплане Asterisk
Экстеншен — это некоторая последовательность команд связанная с номером, который может быть набран с IP телефона или софтфона.
exten => номер, приоритет, команда(параметры)
команда exten состоит из следующих частей:
номер — номер этой последовательности команд.
приоритет — число или буква n для обозначения следующей по порядку команды (это порядок выполнения строк части диалплана)
команда — команда астериск которую нужно выполнить обрабатывая эту строку команд.
пример одного экстеншена:
exten => 100,1,Wait(5)
exten => 100,2,Answer
exten => 100,3,Playback(demo-congrats)
exten => 100,n,Hangup
Шаблоны в sip.conf Asterisk
Чтобы использовать шаблон кода в sip.conf нужно создать секцию кода шаблона [с именем кода шаблона в квадратных скобках] после скобок поставить восклицательный знак в круглых скобках (!) — это будет обозначение секции шаблона.
Если имя этой секции указать в круглых скобках после номера абонента (экстеншена) то код этой секции шаблона будет добавлен к этой секции или другими словами экстеншену.
Пример работы с шаблоном ниже:
type=friend
host=dynamic ;возможность цепляться откуда угодно
dtmfmode=rfc2833 ;способ передачи сигналов DTMF
nat=no ;клиент не может быть за NAT
canreinvite=no ;трафик проходит только через сервер
context=MyVOIP-provider ;контекст с таким именем должен существовать в dialplan’е (файл extensions.conf)
disallow=all ;сначала запрещаем все кодеки
allow=alaw ;разрешаем те что будем использовать
qualify=yes ;Asterisk будет проверять связь с этим номером раз в 2сек
;(если поставить число то интервал будет задаваться в милисекундах
[внутренний_номер_абонента](phone_number_template)
username=внутренний_номер_абонента ;имя пользователя
secret=внутренний_номер_абонента ;и пароль
callerid=»Описание абонента» <внутренний_номер_абонента> ;CallerID — идентификационная ;строка, отображается при звонках от данного пользователя (АОН) [внутренний_номер_абонента](phone_number_template)
username=внутренний_номер_абонента ;имя пользователя
secret=внутренний_номер_абонента ;и пароль
callerid=»Описание абонента» <внутренний_номер_абонента> ;CallerID — идентификационная ;строка, отображается при звонках от данного пользователя (АОН)
настройка (написание) строки регистрации в Asterisk
register => user [:secret[:authuser]] @host [:port] [/extension]
Пример:
Зарегистрировать 3216111 у sip провайдера, как номер 1234567 на Asterisk.
register => 3216111:userID:PASSWORD@sipppnet.ru/1234567
user — идентификатор пользователя, используемый для SIP сервера (например, 3216111)
authuser — не обязательное имя пользователя для авторизации на SIP сервере
secret — пароль пользователя
host — имя домена или хоста SIP сервера. Этот SIP сервер должен быть определен в своей секции файла sip.conf, где должны быть заданы его параметры (sipnet.ru).
port — на какой номер порта посылать запросы на регистрацию на сервере host. По умолчанию — 5060
/1234567 — номер екстеншена для приема вызовов в Вашем Asterisk. 1234567 — вставляется в SIP заголовок contact, SIP запроса на регистрацию. Этот екстеншен используется удаленным SIP сервером, когда ему необходимо совершить вызов в сторону Вашего Asterisk. Смотри примеры, приведенные ниже. По умолчанию, используется контекстный «s».
Вам необходимо регистрироваться, только если:
Если должна быть возможность позвонить к Вам.
Если одна из сторон имеет динамический IP адрес.
Наиболее используемые CLI команды для проверки:
описание групп в Linux
Группы в LINUX
Чаще всего на рабочих станциях и домашних компьютерах добавляют не-root пользователей в ниже указанные группы, чтобы дать доступ к оборудованию или функциям системного администрирования:
- audio
- floppy
- lp
- network
- optical
- power
- storage
- video
- wheel
Группа | Affected files | Назначение |
---|---|---|
adm |
/var/log/* |
доступ на чтение к log файлам. |
audio |
/dev/audio , /dev/snd/* , /dev/rtc0 |
Доступ к звуковому оборудованию. |
avahi | ||
bin |
/usr/bin/* |
Right to modify binaries only by root, but right to read or executed by anyone. (Please modify this for better understanding…) |
camera | доступ к цифровым камерам Digital Cameras. | |
clamav |
/var/lib/clamav/* , /var/log/clamav/* |
И Clam AntiVirus. |
daemon | ||
dbus |
/var/run/dbus/* |
|
disk |
/dev/sda[1-9] , /dev/sdb[1-9] |
Access to block devices not affected by other groups such as optical, floppy, and storage. |
floppy |
/dev/fd[0-9] |
Access to floppy drives. |
ftp |
/srv/ftp |
|
games |
/var/games |
Access to some game software. |
gdm | ||
hal |
/var/run/hald , /var/cache/hald |
|
http | ||
kmem |
/dev/port , /dev/mem , /dev/kmem |
|
locate |
/usr/bin/locate , /var/lib/locate , /var/lib/mlocate , /var/lib/slocate |
Right to use
updatedb command. |
log |
/var/log/* |
Access to log files in
/var/log , |
lp |
/etc/cups , /var/log/cups , /var/cache/cups , /var/spool/cups |
Access to printer hardware; enables the user to manage print jobs. |
mem | ||
/usr/bin/mail |
||
network | Right to change network settings such as when using NetworkManager. | |
networkmanager | Requirement for your user to connect wirelessly with NetworkManager. This group is not included with Arch by default so it must be added manually. | |
nobody | Unprivileged group. | |
ntp | ||
optical |
/dev/sr[0-9] , /dev/sg[0-9] |
Access to optical devices such as CD and DVD drives. |
policykit | ||
power | Right to use suspend utilities and power management controls. | |
rfkill | ||
root |
/* |
Complete system administration and control (root, admin). |
scanner |
/var/lock/sane |
Access to scanner hardware. |
smmsp |
sendmail group |
|
storage | Access to removable drives such as USB hard drives, flash/jump drives, MP3 players; enables the user to mount storage devices through HAL and D-Bus. | |
stb-admin | ||
sys | Right to admin printers in CUPS. | |
thinkpad |
/dev/misc/nvram |
Used by ThinkPad users for access to tools such as tpb. |
tty |
/dev/tty , /dev/vcc , /dev/vc , /dev/ptmx |
Eg. to acces /dev/ACMx |
users | Standard users group. | |
uucp |
/dev/ttyS[0-9] , /dev/tts/[0-9] |
Serial and USB devices such as modems, handhelds, RS-232/serial ports. |
vboxusers |
/dev/vboxdrv |
Right to use VirtualBox software. |
video |
/dev/fb/0 , /dev/misc/agpgart |
Access to video capture devices, DRI/3D hardware acceleration (X can be used without belonging to this group). |
vmware | Right to use VMware software. | |
wheel | Right to use sudo (setup with
visudo ), also affected by PAM. |
При подготовке использован материал с сайта Archlinux.org
как в Linux добавить строку в конец файла без его открытия в редакторе?
часто когда настраиваешь Linux компьютер требуется добавить в конец разных файлов строку (или несколько) с настройками. Это можно сделать не открывая файл в редакторе, тем более обычно рекомендуют открывать файл в редакторе vi или nano.
НО ведь новичок, да и не новичок в Linux не знает комбинации клавиш в этих консольных редакторах. Кроме того и действий требуется лишнего.
Вместо этого можно:
почему внешние узлы на Asterisk сервере не пингуются?
почему в Linux с 2мя сетевыми картами не работает интернет?
в данной статье рассматривается финальная настройка (после ввода параметров сетевых карт) интернета на Asterisk сервере.
проблема с шлюзами на базе Linux заключается в том, что после того, как обе сетевых карты настроены Linux не знает куда направлять все пересылаемые пакеты данных (например, когда вы пингуете интернет-узел).
чтобы это работало после каждой перезагрузки сервера, вставьте эту строку:
route add default ip_адрес_внешней_интернетовской_сетевой_карты
в файл /etc/rc.local
это можно сделать командой:
если Вы вошли в систему не как пользователь root, то для большинства команд установки-смены настроек нужно впереди команды писать sudo. Это команда запуска вашей команды с правами root (или теми, что были специальным образом назначены.), но в общем случае это права root-пользователя.
как установить MC (Mindnight Commander) в CentOS, OpenSuse?
Mindnight Commander — это двухпанельный консольный менеджер файлов для Linux, xxxBSD систем. Очень удобен в работе. Стоит поставить на сервере, если пока работа с командной строкой для вас проблема (получается не очень быстро).
смена паролей на Asterisk сервере
# passwd-maint – эта команда меняет пароль на веб-интерфейсе Trixbox. На Trixbox. по умолчанию, пользователь maint, пароль password
# passwd-amp – для смены пароля используемого для обслуживания сервера через web интерфейс (пароль для пользователя wwwadmin).
Разница между этими двумя пользователями (maint и wwwadmin) в том, что пользователь maint получает абсолютно полный доступ, а пользователь wwwadmin – ограниченный.
# passwd admin – для смены пароля пользователя который может читать системную почту.
# passwd – для смены пароля пользователя root. (Надеюсь на этапе установки вы выбрали хороший пароль).
это все команды для смены всех паролей на Asterisk сервере.
Огромная благодарность пользователю РУУТ форума http://asteriskforum.ru/viewtopic.php?t=2918 за толковое объяснение, которое легло в основу данной статьи.
как установить Asterisk?

Asterisk — это программа которая делает из компьютера мини-АТС. Работает Asterisk на Linux. Ставится обычно на CentOS или Debian Linux (стабильные версии) т.к от стабильности работы ОС зависит стабильность работы вашей новой мини-АТС.
Если не заморачиваться то можно поставить вот этот дистрибутив — TrixBox.
Это будет сразу операционная система Linux CentOS, точно не глючная, без графического режима — чистая консоль и сам Asterisk + программы позволяющие управлять Asterisk через браузер (веб интерфейс).
Настроить Asterisk можно обратившись в дальнейшем по IP адресу сервера Asterisk (который вы установили из дистрибутива Trixbox), вбив его IP адрес в адресную строку браузера.
Через веб-интерфейс можно в этой сборке и внутренние номера добавить и настроить подключение к провайдеру телефонии и даже поменять настройки сетевых карт. Эта сборка позволяет вам смотреть журнал работы Asterisk.
Я попробовал все доступные сборки (бесплатные) Asterisk и могу сказать что именно эта на первое время меня устроила лучше других.
В последствии же я для себя принял решение устанавливать самостоятельно операционную систему и поверх нее Asterisk. Причина — нужны были нестандартные настройки: запись всех телефонных звонков, резервное копирование звонков и настроек, разобрался с тем как устроены файлы настроек Asterisk и понял, что мне нужно больше возможностей от Asterisk, чем есть в ЛЮБОЙ стандартной сборке.
Но это произошло после активной эксплуатации сервера под высокой нагрузкой через год и несколько восстановлений ОС после поломок самого железа.
Если бы я не установил эту сборку сразу я бы долго сидел не зная что именно мне нужно и ковырял файлы настроек, а так — за день поднял сервер и год работал, а после уже понял, что хочу большего. Кстати мое большее не особо нужно для работы прямо сейчас и больше отностися к работе над будущим и меньшими проблемами в обслуживании (оптимизация рабочего времени).
В результате я и сейчас тому кто не использует на личном комьпютере Linux (как я) и не очень хорошо разбирается во внутреннем устройстве файлов конфигурации Asterisk говорю:
«НЕ ПУДРИ СЕБЕ МОЗГИ ПОСТАВЬ ГОТОВУЮ СБОРКУ. НАУЧИШЬСЯ КОНФИГУРИРОВАТЬ ASTERISK ЧЕРЕЗ ФАЙЛЫ — ПЕРЕУСТАНОВИШЬ СЕБЕ СЕРВЕР ТАКЖЕ ЗА ДЕНЬ ИЛИ МЕНЬШЕ, НО ВРЯД ЛИ ТЫ ЗАХОЧЕШЬ ЭТО ДЕЛАТЬ».
Я рекомендую вот этот дистрибутив — TrixBox. Можно конечно как и я поставить разных дистрибутивов и выбрать, но если ты АДМИН и это твоя работа — бери уже проверенное.
А коробочные варианты считаю надо тестить перед покупкой, причем уже тому кто разбирается в Asterisk. Т.к. В рекламе обычно не договаривают минусов своего продукта, а они обычно есть и столкнешься с ними ты когда купите эту сборку и именно тебя будут «полоскать» как профессионала выбравшего этот продукт.
Из минусов установки ЛЮБЫХ сборок: у провайдеров телефонии строят ЧИСТЫЕ Asterisk сервера. Это значит, что они тебе вряд ли помогут, если у тебя что-то не будет работать.
Если расчитываешь на помощь провайдера телефонии лучше установить DEBIAN Linux и Asterisk вместо сборки.
Почему не CentOS? Debian это родитель Ubuntu. О том как что-то сделать в Ubuntu советов больше чем про любую другую сборку Linux. Debian Linux это стабильная (очень хорошо работающие вместе) сборка программ под Linux и она глючит меньше всего, а на сервере это очень важно.
Удачи в работе.
Служебные команды Asterisk
Полезные команды Asterisk
1. Переполнение памяти SMS
Если нужно принять SMS-ку, а в консоли (asterisk -rvv) пишет следующее:
ERROR[15627]: at_response.c:1420 at_response_smmemfull: [dongle0] SMS storage is full
то, логично — нам необходимо почистить память для смс-ок.
- память SIM
- память модема
Или здесь: http://www.smartposition.nl/resources/sms_pdu.html
<dongle_name> 0 Free 22 0 0 life:) E173 21.157.71.00.388 <imei_number> <imsi_number> <tel_number>
6. Прерывание определенных звонков.
Вначале отобразим инфо о текущих звонках:
Допустим, мы хотим обрубить звонок пользователю 4003 (выделен). Выполняем команду:
Теперь можно увидеть, что звонок завершен.
(Источник)
7. Отслеживание активных звонков в Asterisk
В консоли Linux набираем:
взято с сайта http://geckich.blogspot.com/2013/10/asterisk_25.html
как русифицировать сообщения Asterisk?
Как раздобыть звуковые русские файлы, куда их копировать и какие настройки вносить в Asterisk для активации русского языка:
wget --no-check-certificate https://github.com/pbxware/asterisk-sounds/tarball/master -Ostandard-sounds.tar.gz
wget --no-check-certificate https://github.com/pbxware/asterisk-sounds-additional/tarball/master -Oadditional-sounds.tar.gz
tar -xvzf standard-sounds.tar.gz
tar -xvzf additional-sounds.tar.gz
copy pbxware-asterisk-sounds*/* /var/lib/asterisk/sounds/*
внести в sip.conf или в sip_custom.conf (предпочтительнее) если он есть это:
language=ru #эту строку
Огромная благодарность выражеется автору сайта linux.mixed-spb.ru за ценнейшую и главное рабочую статью, на основе которой подготовлен этот материал.
Если SAMBA не стартует сама после перезагрузки…
Как запускать SAMBA автоматически или как добавить samba в автозагрузку?
Чтобы демон стартовал при загрузке необходимо использовать команду chkconfig, справка по команде — man chkconfig.
вот команда автостарта samba сервера:
chkconfig —levels 35 smb on
Как сменить пароль root в MySQL?
;Остановка сервера и запуск его с нужными для смены пароля параметрами
/usr/local/etc/rc.d/mysql-server stop
mysqld_safe —skip-grant-tables &
mysql -u root
;Команды для консоли MySQL:
use mysql;
update user set password=PASSWORD('my_password') where user='root' and host='localhost';
flush privileges;
quit
; перезапуск MySQL
killall mysqld_safe
/usr/local/etc/rc.d/mysql-server start
mysqladmin -u root password 'mypassword'
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');
mysqladmin -u root -poldpassword password 'mypassword'
mysql -u root
Как записать разговоры на Asterisk? Как сделать запись разговоров на Asterisk, Trixbox?
Запись разговоров на сервере Asterisk в файлы
чтобы запись начала работать в Dialplan (extensions.conf) в последовательности дозвона до провайдера нужно вставить:
MixMonitor(/var/spool/asterisk/monitor/${filename}.wav)
если Вы используете Asterisk Trixbox или другую сборку Asterisk то нужно редактировать файл /etc/asterisk/extensions_additional.conf
вот пример как это сделал я, файлы имеют имя: ИмяПользователя-ГГГГ.ММ.ДД_Часы-Минуты-НомерКомуЗвонили
exten => _[78]XXXXXXXXXX,n,Set(fname= ${CALLERID(number)}-${EXTEN}-${STRFTIME(${EPOCH},,%Y.%m.%d_%H-%M})
exten => _[78]XXXXXXXXXX,n,MixMonitor(${MIXMON_DIR}${fname}.wav)
$MIXMON_DIR — переменная в начале файла, указывающая на каталог, в который будут складываться записи разговоров.
Asterisk — прослушивание звонков. Запись данных Asterisk в БД
на работающем Asterisk с установленным на этот комп MySQL нужно созать таблицу CDR. Это делается выполнением в MySQL команду:
GRANT INSERT
ON asterisk.*
TO asterisk@localhost
IDENTIFIED BY 'yourpassword';
USE asterisk;
CREATE TABLE `cdr` (
`calldate` datetime NOT NULL default '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL default '',
`src` varchar(80) NOT NULL default '',
`dst` varchar(80) NOT NULL default '',
`dcontext` varchar(80) NOT NULL default '',
`channel` varchar(80) NOT NULL default '',
`dstchannel` varchar(80) NOT NULL default '',
`lastapp` varchar(80) NOT NULL default '',
`lastdata` varchar(80) NOT NULL default '',
`duration` int(11) NOT NULL default '0',
`billsec` int(11) NOT NULL default '0',
`disposition` varchar(45) NOT NULL default '',
`amaflags` int(11) NOT NULL default '0',
`accountcode` varchar(20) NOT NULL default '',
`userfield` varchar(255) NOT NULL default ''
);
ALTER TABLE `cdr` ADD INDEX ( `calldate` );
ALTER TABLE `cdr` ADD INDEX ( `dst` );
ALTER TABLE `cdr` ADD INDEX ( `accountcode` );
Теперь нужно дать доступ пользователю asterisk_user к базе asterisk
flush privileges;