31.03.2019

d-link dvg6004s и asterisk

годные статейки перваяи вторая как подключить голосовые шлюзы, в том числе к elastix.

25.03.2019

mixmonitor. playback. file not found

если записать канал и затем попытаться воспроизвести его,то астериск выдаёт: does not exist in any format

решение оказалось таким, записываем без формата

same => n,mixmonitor(mytest-${UNIQUEID})

и воспроизводим тоже

same => n,background(/var/spool/asterisk/monitor/mytest-${UNIQUEID})

25.03.2019

freepbx + a2biling different places

Чтобы разнести а2биллинг и астериск по разным машинам, нужно определиться будем ли мы запускать скрипты на машине с астериском или через fastAGI

в интернете есть упоминания о том, что при использовании fastAGI возникли проблемы с биллингом по этому,был выбран путь 1. скачать скрипты, подключиться к БД и вперед

Есть одно неудобство, которая пока не знаю как победить – просмотр логов из панели а2биллинга невозможет, т.к. они лежат на другой тачке.

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

  • Скачать исходники а2биллинга(распаковывать кстати командой unzip, через mc Занимает много времени)
  • добавить AGI

Цитата: Set up AGI

mkdir /var/lib/asterisk/agi-bin
cd /usr/src/a2billing/AGI               
cp a2billing.php /var/lib/asterisk/agi-bin
cp a2billing_monitoring.php /var/lib/asterisk/agi-bin
chown -R asterisk. /var/lib/asterisk/agi-bin
chmod 755 /var/lib/asterisk/agi-bin/a2billing.php
chmod 755 /var/lib/asterisk/agi-bin/a2billing_monitoring.php
ln -s /var/www/html/a2billing/common/lib /var/lib/asterisk/agi-bin/lib
ln -s /var/www/html/a2billing/vendor /var/lib/asterisk/vendor

Add the following extensions to /etc/asterisk/extensions_custom.conf

If not using Freepbx then this would go into /etc/asterisk/extensions.conf.  Customize this to your needs.

The 1 in a2billing.php,1 refers to the default agi-conf1 configuration in a2billing system settings.  It is possible to add additional agi-conf such as agi-conf2 etc. via System Settings > Add agi-conf.

nano /etc/asterisk/extensions_custom.conf
[a2billing-did] 
exten => _X.,1,AGI(a2billing.php,1,did)
exten => _X.,n,Hangup()

[a2billing-out]
exten => _X.,1,AGI(a2billing.php,1)
exten => _X.,n,Hangup()

Add custom destinations to FreePBX via FreePBX GUI>Admin>Custom Destinations

These destinations are referring to the custom extensions created above in /etc/asterisk/extensions_custom.conf

Target: a2billing-did,${EXTEN},1 
Description: A2Billing - Inbound

Target: a2billing-out,${EXTEN},1 
Description: A2Billing - Outbound

Create inbound route

We are creating a universal DID inbound route.  This requires _. in the DID number field.  That is underscore character followed by period or dot character. 

Connectivity > Inbound Routes

Description: Some descriptive name

DID number: _.

Set Destination: Custom Destinations
                               A2Billing - Inbound

13.03.2019

connecting TATA sip trunk

TATA выдает подключает sip-trunkи через локальные сети, т.е. например они дают подсеть 10.0.8.6/32 со шлюзом 10.0.8.5 и только назначив первый ip адрес вы сможете подключиться к их voip сети.

Сразу укажу статью оригинал, которая помогла понять смысл подключения.

В качестве IP SBC\PBX тоже используются локальный адрес, например это может быть 10.0.74.11.

Едем дальше, чтобы получать входящие звонки нужно:

  • добавить интерфейс к centos ip address add 10.0.86.6/30 dev eth0:0
  • создать статический маршрут route add 10.0.74.11 gateway 10.0.8.5
  • регистрироваться на их SBC (пароль по-умолчанию 1234)
    register => 66810000:1234:66810000@10.0.74.11/66810000

для совершения исходящих:

  • нужно звонить по определенным правилам набора, например для индии это набор номера 10 знаков без 5.
  • нужно использовать в поле FROM правильный номер,
  • А также необходимо удостовериться что поле contact соответствует 10.0.8.6 (если такое сделать не получится, то у меня звонки проходили и без этого пункта ),
  • Обязательно добавьте SIP заголовок к исходящим
    P-Preferred-Identity: <sip:66810000@SBC_IP> ,

для FREEPBX добавить sip заголовок к исходящему звонку просто:

  • добавить в файл extensions_custom.conf нужный контекст, например такой:
[add-tata1-header] 
exten => s,1,SipAddHeader(P-Preferred-Identity: ${ARG1})
exten => s,n,Return
  • в настройках транка переопределить DIAL опции на:
B(add-tata1-header^s^1(66810000@10.0.76.11))

Вот так сумбурно, но в целом это все требования.

PS: чтобы freepbx подставлял в поле contact нужные данные, необходимо чтобы был маршрут до SBC. route add sbc_ip gateway gateway_IP. А также сети должны быть прописаны в конфигах Asterisk как localnet

5.03.2019

update elastix 2.5 to FreePBX 14

Оказывается, это можно сделать буквально в два движения.

Вот ссылка на инструкцию, там смысл простой запускаешь на машине-приёмнике команду, затем туже команду на машине-источнике и вуаля.

Кое-что придёт перенести вручную, но 90% работы делается автоматически.

1.03.2019

pjsip, pitch_shift, real-time

Необходимо решить такую задачу нужно в режиме реального времени менять тональность каналов на asterisk 13.

Для реализации будем использовать AMI который есть почти во всех астерисках.

  1. Получаем список активных каналов через команду
  2. “core show channels concise”
  3. Отображаем пользователям каналы и кнопки увеличения,уменьшения тональности для конкретных каналов
  4. Применяем к каналам данные настройки через команду:

Action: SetVar
Channel: 1551426910.36
Variable: PITCH_SHIFT(both)
Value: 3

или как итоге получилось:

dialplan set chanvar $channel PITCH_SHIFT(both) high