Архив автора: admin

Asterisk. Соединение абонента с тем же оператором, при обрыве связи

Задача

Имеется небольшой call-центр. Все входящие звонки с разных линий и номеров сначала поступают на сервер Asterisk (FreeBSD+Asterisk 11.14.1), а он в свою очередь распределяет эти звонки между всеми операторами по определенному сценарию (queues).

При звонке, клиент сначала прослушивает голосовое приветствие, потом его сервер соединяет со свободным оператором, и начинается общение. Но часто бывает, что при плохой связи – звонок обрывает. Клиенту приходится заново перезванивать, слушать опять голосовое приветствие (которое порой может длиться до полуминуты), и попадает на оператора… на другого оператора. Приходится заново  рассказывать о своей проблеме другому оператору и решать все по новой. Порой “качество” связи (мобильной) может упасть на столько, что приходится перезванивать по 5-10 раз !!!

Поэтому было решено сделать так, что бы при обрыве, при повторном звонке, от одного и того же клиента – звонок шел без очереди на того же оператора, без голосовых приветсвий и т.д.

Решение

Решение оказалось довольно простым.

Будем использовать существующую базу Asterisk’а – CDRВ этой базе хранятся все записи и входящих и исходящих звонках нашего телефонного сервера.

Открываем файл /etc/asterisk/extensions.conf и правим нужный нам входящий канал. Добавляем такой блок:

 exten => 100,1,MYSQL(Connect connid IP_MYSQL ЛОГИН_MYSQL ПАРОЛЬ_MYSQL БАЗА_MYSQL)

 exten => 100,n,MYSQL(Query resultid ${connid} select dstchannel from cdr where clid like '%${CDR(src)}' and calldate like '${STRF TIME(${EPOCH},,%Y-%m-%d %H)}%')

 exten => 100,n,MYSQL(Fetch fetchid ${resultid} operator)

 exten => 100,n,GotoIf($["${operator}" = ""]?8:5)

 exten => 100,n,MYSQL(Clear ${resultid})

 exten => 100,n,MYSQL(Disconnect ${connid})

 exten => 100,n,Dial(SIP/${operator:-12:3},20,tT)

 exten => 100,n,Background(hello)

 exten => 100,n,Queue(support)

Что мы делаем

При входящем звонке, соединяемся с базой, делаем запрос, на поиск в таблице cdr в поле clid  по номеру водящего звонка (переменная %${CDR(src)} ) и время укажем последний текущий час (переменная ${STRF TIME(${EPOCH},,%Y-%m-%d %H)}%) в поле calldate.  Если звонок “новый” и еще не звонил в течении часа, то запрос вернет пустое значение в переменную operator, и звонок перекинется на проигрывание приветствия, и звонок поступит в очередь операторов, где на него ответит свободный оператор.

Пример cmd asterisk:

 -- Executing [100@local-phones:1] MYSQL("SIP/INPUT_MTS-0000006c", "Connect connid localhost aster password asterisk") in new stack

 -- Executing [100@local-phones:2] MYSQL("SIP/INPUT_MTS-0000006c", "Query resultid 3 select dstchannel from cdr where clid like '%099xxxxxxx' and calldate like '2017-09-06 09%'") in new stack

 -- Executing [100@local-phones:3] MYSQL("SIP/INPUT_MTS-0000006c", "Fetch fetchid 4 operator") in new stack

 -- Executing [100@local-phones:4] GotoIf("SIP/INPUT_MTS-0000006c", "1?8:5") in new stack

 -- Goto (local-phones,100,8)

 -- Executing [100@local-phones:8] BackGround("SIP/INPUT_MTS-0000006c", "hello") in new stack

 -- <INPUT_MTS-0000006c> Playing 'hello.slin' (language 'ru')

 -- Executing [100@local-phones:9] Queue("SIP/INPUT_MTS-0000006c", "support") in new stack

 -- Started music on hold, class 'default', on SIP/INPUT_MTS-0000006c

 == Using SIP RTP CoS mark 5

 -- SIP/971-0000006d is ringing

 -- SIP/971-0000006d answered SIP/INPUT_MTS-0000006c

 -- Stopped music on hold on SIP/INPUT_MTS-0000006c


Если же, клиент уже звонил и в базе cdr уже существует запись о том, что он звонил. Тогда в переменную operator вернется значение – SIP- номер оператора, с кем он разговаривал, и звонок уже вне очереди поступит напрямую к тому же оператору.

 -- Executing [100@local-phones:1] MYSQL("SIP/INPUT_MTS-0000006a", "Connect connid localhost aster password asterisk") in new stack

 -- Executing [100@local-phones:2] MYSQL("SIP/INPUT_MTS-0000006a", "Query resultid 1 select dstchannel from cdr where clid like '%099xxxxxxx' and calldate like '2017-09-06 09%'") in new stack 

 -- Executing [100@local-phones:3] MYSQL("SIP/INPUT_MTS-0000006a", "Fetch fetchid 2 operator") in new stack

 -- Executing [100@local-phones:4] GotoIf("SIP/INPUT_MTS-0000006a", "0?8:5") in new stack

 -- Goto (local-phones,100,5)

 -- Executing [100@local-phones:5] MYSQL("SIP/INPUT_MTS-0000006a", "Clear 2") in new stack

 -- Executing [100@local-phones:6] MYSQL("SIP/INPUT_MTS-0000006a", "Disconnect 1") in new stack

 -- Executing [100@local-phones:7] Dial("SIP/INPUT_MTS-0000006a", "SIP/971,20,tT") in new stack



2017-09-06T10:41:35
Asterisk

Как пользоваться Linux

В интернете существует множество инструкций, о том как установить Linux на компьютер, как установить его с несколькими другими системами, как настроить определенные аспекты работы, как делать те или иные действия, но нет дельной статьи о том, как пользоваться Linux, какие действия и когда стоит выполнять, зачем это нужно и как все делать правильно.

Мы поговорим о настройке системы, безопасности, обновлениях, журналах, очистке, резервном копировании и других подобных вещах. Я не претендую на звание эксперта в этой области. Я так делаю в своей системе и предлагаю делать вам, но это всего лишь мое мнение, вы и другие пользователи могут считать по-другому. Статья использование linux ориентирована на обычных пользователей, а не системных администраторов и программистов. Но я думаю, что вы можете найти что-то полезное для себя в этой статье.

Читать

Как бороться с выпадением волос

Не секрет что, поводом для гордости у женского пола являются красивые густые, длинные, блестящие волосы. Тем не менее, не многие могут похвастаться пышной шевелюрой. Использование дорогих масок и бальзамов не всегда даёт желательный эффект. Каждый день с головы человека выпадает около 100 волос. Неправильное питание, нехватка витаминов, стресс резко увеличивает потерю волос.

 

В сезон простуд, весной и осенью наши волосы ослаблены и требуют дополнительного ухода. Прежде всего, старайтесь в это время следовать несложным правилам: Читать

Ажурный узор спицами. Вязание на спицах # 567 Схема

Как связать Ажурный узор спицами. Вязание на спицах. Мастер класс.

светлана тим
Как связать Ажурный узор спицами. Вязание на спицах.

Схема ажурного узора

Раппорт узора 22 петли + 2 кромочных (кромочные петли в схеме указаны)
В высоту узор повторять с 1 по 23 ряд
В изнаночных рядах вязать по узору, накид вязать изнаночной петлей

схемы узоров
схема узора

Видео на моем канале ютуб Svetlana Tim


Ажурные узорыОбразцы ажурных вязок состоят из простых комбинаций открытых прибавлений петель. Новые петли образуются при помощи накидывания нити на спицу, провязывание накидов создает эффект просвечивающегося, воздушного полотна.
Ваш выбор пряжи самым непосредственным образом повлияет на внешний вид ажурной вязки. Прочная, эластичная пряжа сделает структуру переплетения более рельефной; мягкая пряжа или нить с начесом сделают очертания узора расплывчатыми. Очень тонкая шерсть или хлопчатобумажная пряжа обычно вяжутся достаточно большими спицами.
В самых простых ажурных вязках каждое прибавление выполняется рядом с соответствующим ей убавлением, таким образом, количество петель в каждом ряду остается неизменным. В других вязках прибавление и убавление делаются в разных местах одного ряда, однако вы увидите, что выполнить их достаточно легко, потому что общее количество петель в ряду не изменяется. В некоторых красивых образцах прибавление и убавление выполняются в разных рядах, что затрудняет подсчет петель, однако при этом создаются изысканные узоры.


Автор: Svetlana Tim
Дата публикации: 2017-09-04T10:10:00.000-07:00

Как резать видео в virtualdub


Часто возникает необходимость вырезать кусок из видео или обрезать лишнее без всякой лишней обработки, да ёще чтобы это было максимально быстро и качественно. Для видео файлов с расширением (*avi) есть решение такой проблемы, программа VirtualDub. И в этой статье я расскажу как резать видео вVirtualDub.
Открываем файл (*avi) в VirtualDub, для этого достаточно перетащить файл прямо в окно программы.
Далее выделяем ту часть которую планируется вырезать, для этого в начале вырезаемого фрагмента нажимаем клавишу «Home», а в конце вырезаемого фрагмента «End» (можно воспользоваться кнопками которые выделены на скриншоте).

Выделение фрагмента в VirtualDub

Выделение фрагмента в VirtualDub

После выделения фрагмента его можно удалить, нажав клавишу «DELETE», а можно и отдельно от всего сохранить, нажав File -> Save as AVI.

Сохранение выделенного фрагмента

Сохранение выделенного фрагмента

Таким образом можно вырезать ненужные кусочки в вашем видео, или разделить видео на несколько частей.
Далее уже редактированную порезку нужно сохранить, и для того чтобы качество оставалось точно таким же как у исходника нужно выбрать прямопотоковое копирование.
Открываем меню Video и выставляем Direct stream copy.

Direct stream copy video

Direct stream copy video

Тоже самое в Audio, выставляем Direct stream copy.

Direct stream copy audio

Direct stream copy audio

Эти параметры позволят сохранить видео без перекодирования, что значит без потери качества.
Не забудьте убрать оставшееся выдел
ение, иначе сохранится только выделенный кусок, для этого нужно нажать сочетание клавиш «ctrl+d».
Ну и в самом конце жмём File -> Save as AVI и у вашего видео нет ненужных кусков.

Автор: Guest Rooms «Varnaflats.eu»
Дата публикации: 2017-09-03T14:19:00.000-07:00

Как удалить запросы в поисковой Строке Яндекс

Это крайне актуальная тема. Многие пользуются Яндекс.Строкой в Windows или формой поиска Яндекс в браузере. По традиции, ответы на популярные запросы и поисковые подсказки отображаются в самом поле ввода в виде живого поиска. Это очень удобно, но … поисковые системы, в том числе Яндекс, собирают информацию о ваших интересах в интернете, затем стараются угадать ваши предпочтения с учётом этих интересов. Т.е. стоит один раз поискать рецепт плюшек в яндексе, и в следующий раз как только вы введёте букву «П», выскочит куча подсказок со словом «плюшка». Это косвенно указывает на вашу прошлую поисковую историю и интересы в сети. Иногда компьютер используется несколькими людьми, и не всегда хочется, чтобы другой человек видел вашу историю поиска. Как удалить запросы в поисковой строке Яндекс, если не желаешь делиться своими интересами с другими людьми читай далее.

Мы рассмотрим как быть при использовании поисковой строки в браузере и для поиска в Яндекс на панели задач Windows.




Чтобы подсказки не всплывали в браузере

Первым делом. Удаляем историю поиска в самом браузере. Это не относится к  Яндекс поиску, но, какой смысл скрывать свои прошлые запросы, если в браузере можно легко найти список всех посещённых сайтов.




Как очистить историю браузера вы можете посмотреть на картинках. Или подробнее найти в интернете, если ваш браузер ниже не представлен.

Очистка истории посещений в Mozilla FireFox
Очистка истории посещений в Google Chrome
Очистка истории посещений в Opera

Можно, также, очищать куки после каждого пользования поиском. В таком случае информация о поисковой истории более не будет связанная с вашим браузером. После очищения кук, подсказки поиска не будут нести никакой информации о вас.

Однако, проще всего настроить  «Персональный поиск» таким образом, чтобы подсказки не несли информации о вашей истории поиска.

Алгоритм таков:

  1. Открываем страницу поиска Яндекс через браузер. Если поле поиска интегрировано в браузер, то тыкаем в него курсором и нажимаем поиск
  2. На главной странице яндекса внизу находим ссылку «Настройки», и нажимаем
  3. На открывшейся странице снимаем галочки с «Учитывать мою историю поиска в результатах», «Показывать мои любимые сайты в подсказках», «Показывать мои запросы в подсказках»

По удалению запросов в Яндекс Строке

 В Windows 10 Яндекс.Строка располагается на панели задач, по умолчанию. Яндекс.Строка даёт возможность осуществить поисковый запрос в интернет прямо с панели задач без непосредственного запуска  браузера. Ещё строка проводит поиск по папкам на вашем компьютере. И может реагировать на голосовые команды. Довольно удобно, и безопасно, если компьютером пользуетесь только вы.




Откуда Яндекс.Строка берёт поисковые подсказки?

Строка черпает информацию из нескольких источников

  • перечень ссылок по запросу из поиска Яндекс
  • ссылки на разделы выбранного сайта
  • ответы на популярные запросы Яндекс
  • результаты индексации носителей компьютера (HDD, SSD, и т.д.)
Настройки строки весьма скудны, и в основном относятся к индексации файлов с дисков компьютера. 
Настройки строки поиска
Днём с огнём мной не обнаружено синхронизации между Яндекс аккаунтом и Яндекс.Строкой, или Яндекс.Браузером и Яндекс.Строкой. Казалось, это было бы вполне логично со стороны Яндекс. Но увы. Перерыв все их мануалы не нашел ничего стоящего внимания, других настроек строки, выходит, нет.
Что было в Яндекс.Строке, отстаётся в Яндекс.Строке?

Есть ещё один вариант. Ждать обновлений и новых доработок.

Ждём-с.

Был ли материал полезен вам?

Вопросы, замечания, возражения оставляйте в комментариях.

Автор: Ivan El