Инструменты пользователя

Инструменты сайта


configure_asterisk_for_cloud_version

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Следующая версия Следующая версия справа и слева
configure_asterisk_for_cloud_version [2020/11/18 09:45]
Евгений Романенко
configure_asterisk_for_cloud_version [2021/06/03 09:31]
Евгений Романенко
Строка 89: Строка 89:
   - Инсталлируем необходимые пакеты (для примера в Debian/​Ubuntu) <code bash>​aptitude install unixodbc-dev libmyodbc</​code>​   - Инсталлируем необходимые пакеты (для примера в Debian/​Ubuntu) <code bash>​aptitude install unixodbc-dev libmyodbc</​code>​
   - Asterisk должна быть собрана со следующими опциями {{::​9d37fd2a5c08439f8a69fe81a398891c.png?​400|}}{{::​34d0b50241d3443d827afa222aede0f4.png?​400|}}   - Asterisk должна быть собрана со следующими опциями {{::​9d37fd2a5c08439f8a69fe81a398891c.png?​400|}}{{::​34d0b50241d3443d827afa222aede0f4.png?​400|}}
-  - Далее редактируем несколько конфиг-файлов:​\\ **/​etc/​asterisk/​res_odbc.conf** <code bash>[asterisk]+  - Далее редактируем несколько конфиг-файлов:​\\ **/​etc/​asterisk/​res_odbc.conf** <code bash>[asteriskcdrdb]
 enabled => yes enabled => yes
 dsn => MySQL-asterisk dsn => MySQL-asterisk
Строка 107: Строка 107:
 ;Port = 3306 ;Port = 3306
 Socket = /​var/​run/​mysqld/​mysqld.sock Socket = /​var/​run/​mysqld/​mysqld.sock
-Database = asterisk+Database = asteriskcdrdb
 Charset = utf8</​code>​ **/​etc/​odbcinst.ini** <​code>​[MySQL] Charset = utf8</​code>​ **/​etc/​odbcinst.ini** <​code>​[MySQL]
 Description = MySQL driver Description = MySQL driver
Строка 114: Строка 114:
 CPTimeout = CPTimeout =
 CPReuse =</​code>​ в конец **/​etc/​asterisk/​cdr_mysql.conf** добавить <code bash>​alias filename => filename</​code>​ CPReuse =</​code>​ в конец **/​etc/​asterisk/​cdr_mysql.conf** добавить <code bash>​alias filename => filename</​code>​
-  - Внесем в **/​etc/​asterisk/​extconfig.conf** <code bash>​queue_log => odbc,asterisk</​code>​+  - Внесем в **/​etc/​asterisk/​extconfig.conf** <code bash>​queue_log => odbc,asteriskcdrdb</​code>​
   - **cel.conf** выглядит так <code bash>​[general]   - **cel.conf** выглядит так <code bash>​[general]
 enable=yes enable=yes
Строка 122: Строка 122:
 [manager] [manager]
 [radius]</​code>​ [radius]</​code>​
-  - **cel_odbc.conf** <code bash>[asterisk+  - **cel_odbc.conf** <code bash>[asteriskcdrdb
-connection=asterisk+connection=asteriskcdrdb
 table=cel table=cel
 loguniqueid=yes loguniqueid=yes
Строка 148: Строка 148:
        System(mkdir -p ${WAV}/​${datedir});​        System(mkdir -p ${WAV}/​${datedir});​
               Set(monopt=nice -n 19 /​usr/​bin/​lame -b 32  --silent "​${WAV}/​${datedir}/​${fname}.wav" ​ "​${MP3}/​${datedir}/​${fname}.mp3"​ && rm -f "​${WAV}/​${fname}.wav"​ && chmod o+r "​${MP3}/​${datedir}/​${fname}.mp3"​);​               Set(monopt=nice -n 19 /​usr/​bin/​lame -b 32  --silent "​${WAV}/​${datedir}/​${fname}.wav" ​ "​${MP3}/​${datedir}/​${fname}.mp3"​ && rm -f "​${WAV}/​${fname}.wav"​ && chmod o+r "​${MP3}/​${datedir}/​${fname}.mp3"​);​
-              Set(CDR(filename)=${fname}.mp3);​ +              Set(CDR(filename)=${fname}.mp3);​  
-       Set(CDR(recordingfile)=${fname}.wav);​+
               Set(CDR(realdst)=${called});​               Set(CDR(realdst)=${called});​
               Set(CDR(realsrc)=${calling});​               Set(CDR(realsrc)=${calling});​
Строка 199: Строка 198:
 [from-pstn-custom] [from-pstn-custom]
 exten => _XX.,1, Macro(vistep.ru-record,​${CALLERID(number)},​${EXTEN})</​code>​ exten => _XX.,1, Macro(vistep.ru-record,​${CALLERID(number)},​${EXTEN})</​code>​
 +  - Или у вас внезапно lua <code lua>
 +WAV = "/​opt/​records/​wav"​ -- Временный каталог с WAV
 +MP3="/​opt/​records/​mp3"​ --Куда выгружать mp3 файлы
 +RECORDING=1 -- 1 - запись включена.
 +
 +function recording(calling,​called)
 +  if RECORDING == 1 then
 +    fname = channel.UNIQUEID:​get() .. "​-"​ .. channel.STRFTIME("​${EPOCH},,​%Y-%m-%d-%H_%M"​.."​-"​..calling.."​-"​..called):​get()
 +    datedir = channel.STRFTIME("​${EPOCH},,​%Y/​%m/​%d"​):​get().."/"​
 +    os.execute("​mkdir -p " .. WAV.."/"​..datedir)
 +    os.execute("​mkdir -p " .. MP3.."/"​..datedir)
 +    WAVfname = WAV..datedir..fname.."​.wav"​
 +    MP3fname = MP3..datedir..fname.."​.mp3"​
 +    channel.CDR("​filename"​):​set(MP3fname)
 +    channel.CDR("​realdst"​):​set(called)
 +    channel.CDR("​realsrc"​):​set(calling)
 +    monopt = string.format("​nice -n 19 /​usr/​bin/​lame -b 32  --silent %s %s && rm -f %s && chown o+r %s",​WAVfname,​MP3fname,​WAVfname,​MP3fname)
 +    app.mixmonitor(WAVfname,​b,​monopt)
 +    return
 +  end;
 +end;
 +
 +extensions = {
 +  ["​local"​] = {
 +    --локальные вызовы на номера XXX
 +    ["​_XXX"​] = function(context,​extension)
 +                 ​app.answer()
 +                 ​recording(channel.CALLERID("​num"​):​get(),​extension)
 +                 ​app.dial("​SIP/"​..extension,​300,"​t"​)
 +                 ​app.hangup()
 +               end;
 +  };
 +
 +}
 +
 +</​code>​
   - С препарированием нашей АТС закончили! \\ Переходим к настройке синхронизации БД и файлов записей разговоров в облако ViStep.RU. Для этого воспользуйтесь инструкцией - https://​wiki.vistep.ru/​doku.php?​id=cloud_daemon_sync ​   - С препарированием нашей АТС закончили! \\ Переходим к настройке синхронизации БД и файлов записей разговоров в облако ViStep.RU. Для этого воспользуйтесь инструкцией - https://​wiki.vistep.ru/​doku.php?​id=cloud_daemon_sync ​
   - Для входа в систему статистики используйте данные авторизации (Email-адрес/​Пароль) из регистрационного письма.   - Для входа в систему статистики используйте данные авторизации (Email-адрес/​Пароль) из регистрационного письма.
configure_asterisk_for_cloud_version.txt · Последние изменения: 2023/04/18 19:18 — Евгений Романенко