chan_dongle + asterisk 10

Asterisk
Asterisk

По мотивам предыдущей статьи:
Huawei 1550 + Asterisk = дешевый GSM шлюз

После выхода новой версии Asterisk – 10, chan_datacard не захотел собираться, да и вообще проект давно не обновлялся и на GoogleCode стоит урл на asterisk-chan-dongle
Значит бум собирать Dongle

Читати далі

Програмный SIP-телефон Blink

Есть множество разных програмных SIP телефонов, но многие из них мне не нравятся по таким причинам:

  • X-lite – в старых версих был хорош, в новых версиях тянет за собой столько мусора, что даж диву даюсь … в результате его установки места на диске становится на почти 100Мб меньше. Для примера – базовый генту на HDD занимает 200Мб, но это уже полноценная ОС 🙂 К тому-же нет нормальных сборок под Linux
  • Ekiga – типа кроссплатформенный телефон, но его зависания после окончания звонка просто выводят из себя.
  • SJPhone – юзерфрендли интерфей – это не про него…. выглядит уныло и не понятно куда нужно тыкать мышкой, та и функционал не ахти
  • KPhone – работает под Qt и тянет за собой кучу библитек, но пользователям KDE сойдет 🙂
  • Остальные либо платные, либо глючные, либо написаны на коленке и последний раз обновлялись в прошлом веке.

    Читати далі

Huawei 1550 + Asterisk = дешевый GSM шлюз

Очередной пост в интернете на тему создания дешевого GSM-шлюза на основе 3G модема от Huawei и IP PBX Asterisk.
Мануалов по настройке данной связки в интернете предостаточно, поэтому дання заметка больше для себя, нежели для других.

Что мы имеем:
3g модем от Киевстара на базе Huawei 1550 разлоченый под все, что только можно (MMC+ голос + видео+ любой оператор …) и купленый на aukro.ua
– сервер на базе Gentoo x64, kernel 2.6.38
Asterisk 1.8.4.1

Читати далі

“RTP read too short” при работе с FXO-шлюзом D-link

Голосовой шлюз D-Link DVG-6004S
Голосовой шлюз D-Link DVG-6004S

Достался мне FXO шлюз D-Link DVG-6004S который находится в удаленном офисе. А пользователи просто рыдают от того, что он лагает и голос едва слышно и звонки рвутся.

Полез я в консоль, а там почти при каждом входящем звонке вот такое валится:

WARNING[27281] rtp.c: RTCP Read too short

Вродь все понятно как ясный день – RTP пакет приходит или пустым или слишком маленьким.
Задача – сделать его нормальным 🙂

Читати далі

Функциональные изменения от версии Астериск 1.6.2 до версии Астериск 1.8

Огромное спасибо сайту pbxware.ru

Изменения в SIP

Добавлена опция preferred_codec_only в sip.conf. Эта возможность ограничивает пересечение множества кодеков, отправляемых в ответе на INVITE сообщение единственным, наиболее предпочтительным кодеком.
Добавлена переменная номерного плана SIP_CODEC_OUTBOUND, которая может быть использована для установки кодека на исходящие вызовы. Это должен быть один из кодеков, сконфигурированных для устройства.
Добавлена опция tlsprivatekey в sip.conf. Опция позволяет хранить private key в отдельном .pem файле. Если опция tlsprivatekey не используется, то поиск файла tlscertfile будет выполнен как для public, так и для private key.

Читати далі

Синтез речи и Asterisk

Ради эксперемента решил прикрутить Festival к Asterisk, но что-то он не завелся.
Пока-что у меня это дело работает через несколько костылей.
Вот что получилось.
Устанавливаем фестиваль

emerge -av app-accessibility/festival-ru

простая конфигурация

cat server.scm
(set! server_max_clients 10)
(set! server_port 1314)
(set! server_log_file "/var/log/festival/festival.log")
(set! server_access_list '("[^.]+" "127.0.0.1" "localhost" ))
(set! server_deny_list nil)

Просто проигрывать фразу “Привет” не интересно, интереснее слушать прогноз погоды 🙂
С помощью спонсора программы – gismeteo, будем генерировать файл прогноза на 2 дня.
Для это используем xml, который распарсиваем с помощью php
Скрипт на PHP

Читати далі

Использование MySQL в Asterisk 1.8

В Астериске 1.8 поддержка MySQL идет из коробки в отличии от предыдущих версий в которых необходимо доустанавливать asterisk-addons
Первым делом устанавливает сам Астер, если его еще нет 🙂

sudo -s
emerge -av asterisk

>>Calculating dependencies... done!
>>[ebuild     N ] net-misc/asterisk-1.8.4.1  USE="ais calendar caps curl dahdi doc gtalk h323 http iconv jabber jingle mysql newt postgres samples snmp span speex srtp ssl syslog usb vorbis -alsa -bluetooth -debug -freetds -ldap -lua -odbc -osplookup -oss -portaudio -radius -sqlite -sqlite3 -static"

Читати далі

Настройка языков в Asterisk

Для добавления русского языка в астериск нужно скачать русские звуковые файлы отсюда http://www.pbxware.ru/products/ivr/files/asterisk-sounds-ru-gsm-2010-04-28.tar.gz/view или отсюда http://www.ivrvoice.ru/downloader/download/ и распаковать их в какталог /var/lib/asterisk/sounds/ru После чего внести правки в конфигурацию cat sip.conf [general] ….. language=ru …… [user1] language=en для всех SIP-аккаунтов установится русский по умолчанию, а для user1 – английский Аналогичные манипуляции производятся для iax.conf Либо можно … Читати далі

Перекодирование записей звонков

Частенько приходится перегонять записи телефонных разговоров в другие форматы.
И постоянно приходится гуглить по этому поводу в поисках рабочих скриптов. Посему попробую сделать подборочку разных скриптов.
Начнем-с.
gsm -> wav

#!/bin/bash
cd /var/samba/convert
if ! test -d /var/samba/convert/wav
then
    mkdir /var/samba/convert/wav
    chmod -R 0644 /var/samba/convert/wav
fi
for a in *.gsm;
do
#Строка ниже для старых версий sox
#sox "$a" -t raw -r 8000 -s -w -c 1 `echo $a|sed "s/.wav/.sln/"` resample -ql;
sox "$a" -r 8000 -c 1 -2 -s wav/`echo $a|sed "s/.gsm/.wav/"` > /dev/null 2>&1
rm "$a" > /dev/null 2>&1
done

Читати далі

Создание очередей на примере Asterisk 1.6

Здравствуйте.
Для того, что бы более эффективно распределять звонки в офисе в Asterisk присутствует возможность создания очередей обработки звонка. Особенно эта функция актуальна для рекламных отделов компаний.
Будем считать, что у вас уже установлен и настроен Asterisk версии 1.6 и выше
Для начала расмотрим как описываются очереди (Queues)

Code queues.conf:
......
[queue_template](!)
musicclass=default      ; play [default] music
strategy=rrmemory       ; использовать стратегию обзвона  Round Robin Memory
joinempty=yes           ; загонять звонок в очередь если там отсутствуют агенты
leavewhenempty=no       ; оставлять очередь без агентов
ringinuse=no            ; звонить на члена очереди когда он занят ?

[sales](queue_template)
; Sales queue

[support](queue_template)
; Support queue

В данном примере мы создали шаблон queue_template и на базе шаблона создали 2 очереди: sales и support.
Теперь приступим к написанию диалплана.
Для этого нам нужно описать, как абоненты будут попадать в очередь, а также как логиниться и вылогиниваться из очереди агентам.
Пример 1:

Читати далі