turning of CallForwarding in Asterisk

Запись создана октября 14, 2010

Для включения безусловной переадресации используется сервисный код *72. При его наборе система спросит номер абонента (по дефолту можно ввести любой) и номер на который надо переадресовывать. Отключить переадресацию можно набрав код *73 но только для своего номера, т.е. если ваш номер 101, а переадресацию надо отключить для 100, то ничего не получится.

собственно переадресацию Call Forward можно отключить или включить из консоли asterisk,

переадресация с номера 100 на 2678678 включена:

office*CLI> database show
............
/CF/100                                           : 2678678
............

или так:

rasterisk -x 'database show'|grep -r "^/CF"
/CF/101                                           : 103

Убираем переадресацию:

office*CLI> database del CF 100

или так:

rasterisk -x 'database del CF 101'
Database entry removed.

Включаем переадресацию с номера 101 на 2768079:

office*CLI> database put CF 101 2768079
Updated database successfully

office*CLI> database get CF 101
Value: 2768079

или так:

 rasterisk -x 'database put CF 101 103'
Updated database successfully

» Запись из раздела VoIP | Комментировать

Ubuntu hibernate fails

Запись создана октября 5, 2010

Hibernate это по нашему спящий режим, содержимое ОЗУ скидывается в swap и компьютер выключается, после включения машина работает с того же момента что и до ухода в хибернейт. Кто работал с виртуальными машинами типа vmware и пр. будет понятнее если сравнить с save state выключением.

Вобщем, когда на рабочий компьютер я устанавливал Ubuntu у меня было всего 1 гиг ОЗУ, соответственно инсталятор сделал небольшой swap раздел. Чуть позже я добил ОЗУ до 4-х гиг и swap раздела стало нехватать для спящего режима. Сделал swap раздел на другом диске и другого размера, машина стала уходить в спящий режим без ошибок, а вот вместо того чтобы просыпаться из него, система просто грузилась заново. Как оказалось нужно менять имя раздела или UID раздела swap не только в fstab но и в файле /etc/initramfs-tools/conf.d/resume

echo RESUME=$(sudo /sbin/blkid | grep swap | awk '{print $2}') > /etc/initramfs-tools/conf.d/resume

на всякий пожарный перегенерим initramfs:

sudo update-initramfs -u

» Запись из раздела Linux desktop, Ubuntu | Комментировать

Cisco 7912 from SCCP to SIP and provisioning

Запись создана сентября 26, 2010

Несколько лет назад покупал пару IP фонов Cisco CP-7912G= прошивал старенькой SIP прошивкой, настраивались аппараты вручную с клавиатуры аппарата, а тут вот захотелось заапдейтить firmware и заставить аппараты брать конфиг с tftp сервера. Захотел — сделал! теперь расскажу как.

Будем считать что tftp сервер у вас уже есть и dhcp сервер отдает option-150. Будем считать что корень tftp у нас в /tftpboot.

cd /tftpboot
wget http://itblog.su/wp-content/uploads/2010/09/7912.tar.gz
tar zxf 7912.tar.gz

Из архива распакуются файлы:

bmp2logo.exe
cfgfmt.exe
cfgfmt.linux
cfgfmt.sun
CP7912080001SIP060412A.sbin
gkdefault.cfg
gkdefault.txt
prserv.exe
prserv.linux
prserv.sun
Readme.txt
sipexample.txt
sip_ptag.dat

первый файл который сливает телефон имеет имя gkdefault.cfg файлик этот бинарный.
в файле прописываются конфигурационные данные одинаковые для всех телефонов, это так называемый первый уровень provisioning. В качестве второго уровня выступает файл gk где это mac-адрес телефона, в этом файле укзываются конкретно для данного телефона настройки, например логин и пароль.

Итак для того чтобы телефон прошился последней фирмварью CP7912080001SIP060412A.sbin нужно создать файл gkdefault.txt с содержимым:

#txt
upgradecode:3,0x601,0x0400,0x0100,0.0.0.0,69,0x060412a,CP7912080001SIP060412A.sbin
UIPassword:1234

после чего из текстового файла сделать бинарный.

chmod +x cfgfmt.linux
./cfgfmt.linux -tsip_ptag.dat gkdefault.txt gkdefault.cfg

Теперь создадим файл gk00192ff6e690.txt для второго уровня.

#txt
dhcp:1
Proxy:192.168.1.100
UID:100
PWD:password_here
LoginID:100
SIPRegOn:1

ну и конечно скомпилируем:

./cfgfmt.linux -tsip_ptag.dat gk00192ff6e690.txt gk00192ff6e690.cfg

теперь сделаем ресет телефона, для этого нужно набрать комбинацию **#** и подтвердить желаение сделать manufacture reset.

более подробная инструкция по провизионингу ест ьв файле sipexample.txt

» Запись из раздела Cisco, VoIP | Комментировать

static routes pushed through DHCP

Запись создана сентября 15, 2010

Моя домашняя сеть находится в 192.168.1.0/24, а голос вынесен в подсеть 192.168.0.0/24.
доступ «в мир» роутится через 192.168.1.1 а в голос через 192.168.1.111 (да вот захотелось мне так).
Домашние машины получают ip адреса из подсети 192.168.1.0/24, а айпифоны из подсети 192.168.0.0/24

соответственно по дефолту машины не могут получить доступа к фойсовым аппаратам (ATA и IP фоны), прописывать на каждой машине статик роуты, я считаю моветоном. К счастью, не я один так считаю и есть rfc3442 позволяющий с DHCP сервера передавать клиентам статичные маршруты.

итак настроим dhcp сервер давать статик роут на сеть 192.168.0.0/24 через 192.168.1.111

option ms-classless-static-routes code 249 = array of unsigned integer 8;
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

option ms-classless-static-routes 24, 192,168,0, 192, 168, 1, 111;
option rfc3442-classless-static-routes 24, 192,168,0, 192, 168, 1, 111;

Так как Microsoft компания новатор, срать ей хотелось на RFC. По этому в приведенном выше конфиге присутствуют ms-classless строки. Если у вас в сети нет windows машин, то можно их не уазывать.

На сервере делаем service dhcpd restart, а на клиенте /etc/init.d/networking restart и на клиенте получим:

shakirov@work:~$ route -n
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
192.168.0.0     192.168.1.111   255.255.255.0   UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0

справедливо это для Ubuntu на клиенте, говорят что в других дистрибутивах нужно в /etc/dhcp3/dhclient.conf добавить:

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

И в том же файле в поле request добавить параметр rfc3442-classless-static-routes; выглядеть в итоге должно так:

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

send host-name "<hostname>";
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers;

И еще, если нет, то надо создать файл /etc/dhcp3/dhclient-exit-hooks.d/rfc3442-classless-routes

RUN="yes"


if [ "$RUN" = "yes" ]; then
        if [ "$new_rfc3442_classless_static_routes" != "" ]; then
                if [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then
                        rfc_routes=($new_rfc3442_classless_static_routes)

                        for(( i=0; i < ${#rfc_routes[@]}; )); do
                                net_length=${rfc_routes[$i]}

                                ((i++))

                                net_address=(0 0 0 0)
                                for(( j=0; j < $[$net_length / 8 + \
                                    ($net_length % 8 ? 1 : 0)]; j++, i++)); do

                                        net_address[$j]=${rfc_routes[$i]}
                                done

                                gateway=(0 0 0 0)
                                for (( j=0; j < 4; j++, i++ )); do
                                        gateway[$j]=${rfc_routes[$i]}
                                done

                                old_IFS="$IFS"
                                IFS='.'

                                if [ "$net_length" == "32" ]; then
                                        /sbin/route add -host "${net_address[*]}" gw "${gateway[*]}"
                                else
                                        /sbin/route add -net "${net_address[*]}/$net_length" gw "${gateway[*]}"
                                fi
                                IFS="$old_IFS"

                        done
                fi
        fi
fi

Ну и конечно сделать его исполняемым.

кстати, если нужно передать несколько статичных маршрутов клиентам, то перечислять их надо через запятую, примерно вот так:

option ms-classless-static-routes       24, 192,168,0, 192,168,1,111, 16, 172,16, 10,16,40,100;
option rfc3442-classless-static-routes 24, 192,168,0, 192,168,1,111, 16, 172,16, 10,16,40,100;

И на последок, если используете OpenWRT и сервер dnsmasq, то вам приголится мануал http://www.debian-administration.org/articles/471

» Запись из раздела networking, Несортированное | 3 комментариев

Elastix Flash Operator Panel default password

Запись создана сентября 13, 2010

If you a new user to Elastix (Unified Communications platform Asterisk based) and trying to enter FOP (flash operator panel) first time, you’ll need to enter a password that not the same as admin passowrd.

Deffauld password stored in file /etc/amportal.conf section:

# FOPPASSWORD: the secret code for performing transfers and hangups in the FOP
FOPPASSWORD=eLaStIx.2oo7

so as you see, default password is «eLaStIx.2oo7″ without quotes. And you beter to change it.

» Запись из раздела VoIP | Комментировать

Мультифон в Asterisk (trixbox/elastix/freePBX)

Запись создана сентября 11, 2010

Trunk Description: multifon
Outbound Caller ID: 79297xxxxxx
Trunk Name: multifon

PEER Details:

host=multifon.ru
username=79297xxxxxx
secret=PASSWORD_HERE
type=peer
dtmfmode=inband
insecure=very
fromuser=79297xxxxxx
fromdomain=multifon.ru
qualify=yes
nat=yes

Register String:

79297xxxxxx:PASSWORD_HERE@multifon.ru

» Запись из раздела VoIP | Комментировать

MySQL 5 to MySQL 4.1 downgrade on Plesk

Запись создана августа 26, 2010

Для сборки mysql на потребуется установить:

yum install gcc ncurses-devel gcc-c++

берем тарбол mysql-4.1.22, распаковываем, собираем и ставим в /opt/mysql-4.1.22 дефолтная кодировка mysql будет cp1251

wget http://itblog.su/downloads/mysql-4.1.22.tar.gz
tar zxf mysql-4.1.22.tar.gz
cd mysql-4.1.22
./configure --with-charset=cp1251 --with-collation=cp1251_general_ci \
                --with-extra-charset=all --prefix=/opt/mysql-4.1.22 \
                --without-docs --without-man --without-bench
make && make install

теперь остановим mysql5 установленный панелью Plesk и заменим инитскрипт

/etc/init.d/mysqld stop
gzip /etc/init.d/mysqld
cp /opt/mysql-4.1.22/share/mysql/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start

После запуска mysql 4.1 проверим работоспособность mysql

mysql -uadmin -p`cat  /etc/psa/.psa.shadow`
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 4.1.22

В панели плеск root не используется, суперпользователь имеет логин admin а пароль совпадает с паролем от входа в панель, если вы его забыли или не знаете, подсмотреть его можно в файле /etc/psa/.psa.shadow

» Запись из раздела CentOS Linux, MySQL | Комментировать

Monitoring Adaptec RAID controller under Ubuntu

Запись создана июля 26, 2010

Для мониторинга RAID массива построенного на контроллере Adaptec крайне удобно использовать утилиту arcconf.
нативно адаптек дает пакет для RHEL/SCO/FreeBSD/Windows .deb пакетов в этом списке нет. Понадобилось поставить на Ubuntu 10.04, ставить будем так:

wget -c -q http://download.adaptec.com/raid/storage_manager/asm_linux_x86_v6_40_18530.rpm
sudo alien --scripts asm_linux_x86_v6_40_18530.rpm
sudo dpkg -i storman_6.40-18531_i386.deb
sudo ln -s /usr/StorMan/libstdc++.so.5 /usr/lib
sudo /usr/StorMan/arcconf GETCONFIG 1

Controllers found: 1
----------------------------------------------------------------------
Controller information
----------------------------------------------------------------------
   Controller Status                        : Optimal
   Channel description                      : SAS/SATA
   Controller Model                         : Adaptec 3405
   Controller Serial Number                 : 7C2110BD45E
   Physical Slot                            : 3
   Temperature                              : 55 C/ 131 F (Normal)
   Installed memory                         : 128 MB
   Copyback                                 : Disabled
   Background consistency check             : Enabled
   Automatic Failover                       : Enabled
   Stayawake period                         : Disabled
   Spinup limit internal drives             : 0
   Spinup limit external drives             : 0
   Defunct disk drive count                 : 0
   Logical devices/Failed/Degraded          : 1/0/0

» Запись из раздела Несортированное | Комментировать

installing CentOS from USB pen drive

Запись создана июля 8, 2010

Понадобилось у становить CentOS на машину которая не умеет загружаться по сети и не оказалось под рукой CD-ROM. Создаем загрузочную флешку для установки CentOS

вставляем флешку в usb порт, появляется новое устройство /dev/sdd теперь запустим fdisk

fdisk /dev/sdd

удалим все разделы создадим:
/dev/sdd1 размером 15 MB
/dev/sdd2 всё остальное пространство

/dev/sdd1 нужно сделть Bootable, т.е. загрузочным и переходим к установке:
wget http://mirror.yandex.ru/centos/5.4/os/i386/images/diskboot.img
dd if=diskboot.img of=/dev/sdd1

если размер USB диска позволяет, то форматируем /dev/sdd2 в ext3
mkfs.ext3 /dev/sdd2
и копируем в этот раздел содержимое установочного диска.

теперь можно начать установку с USB диска и выбрать установка с диска указав второй раздел или указать локальный http репозиторий для установки

» Запись из раздела CentOS Linux | Комментировать

HP iLo self signed sertificate

Запись создана апреля 21, 2010

Есть у меня пара HP ProLiant DL360-ых, которые оснащены iLO (это ip-kvm, power management и многое другое через вебморду). так вот, и у того и у другого оказался сертификат с одним и тем же серийником. как следствие firefox не давал зайти.

Покупать ssl сертификаты для iLO на мой взгляд глупо, по этому решено было сгенерить self signed

openssl genrsa -out ca.key 1024
openssl req -new -x509 -days 365 -key ca.key -out ca.pem -subj /CN=ilo.server.com/O=Company/C=RU

теперь из Administration -> Certificate Administration делаем «Generate a certificate request» и полученный ключ Certificate Signing Request кладем в ilo-server1.csr ну и подписываем его:

openssl x509 -req -days 365 -in ilo-server1.csr -CA ca.pem -CAkey ca.key -set_serial 01 -out ilo-server1.crt

для второго сервера из того же Administration -> Certificate Administration делаем «Generate a certificate request» и полученный ключ Certificate Signing Request кладем в ilo-server2.csr и подписываем его тем же ключом но с другим серийником:

 openssl x509 -req -days 365 -in ilo-server2.csr -CA ca.pem -CAkey ca.key -set_serial 02 -out ilo-server2.crt

полученные ilo-server1.crt и ilo-server2.crt вставляем в форму на следующем шаге Certificate Administration, а именно на Step 3. Import Certificate.

» Запись из раздела Несортированное | 2 комментариев

« предыдущая страницаследующая страница »