Доступна коммуникационная платформа Asterisk 18

26 октября 2020, 09:04

 
      

После года разработки состоялся релиз новой стабильной ветки открытой коммуникационной платформы Asterisk 18, используемой для развёртывания программных АТС, систем голосовой связи, VoIP-шлюзов, организации IVR-систем (голосовое меню), голосовой почты, телефонных конференций и call-центров. Исходные тексты проекта доступны под лицензией GPLv2.
Asterisk 18 отнесён к категории выпусков с расширенной поддержкой (LTS), обновления для которого будут выпускаться в течение пяти лет вместо свойственных для обычных выпусков двух лет. Поддержка прошлой LTS-ветки Asterisk 16 продлится до октября 2023 года, а ветки Asterisk 13 до октября 2021 года. При подготовке LTS-выпусков основное внимание уделяется обеспечению стабильности и оптимизации производительности, приоритетом же обычных выпусков является наращивание функциональности.

Ключевые улучшения в Asterisk 18:
    Добавлена поддержка видеокодека H.265/HEVC.
    Для приложений и каналов реализована поддержка протокола двунаправленной потоковой передачи звука AudioSocket.
    Добавлена поддержка протоколов STIR/SHAKEN для борьбы с фальсификацией идентификатора звонящего (caller ID). Поддерживается как отправка заголовка с заверением идентичности при исходящих вызовов, так и проверка звонящего при приёме входящих вызовах. с заверением идентичности при исходящих вызовов, так и проверка звонящего при приёме входящих вызовах.
    Добавлен новый режим форматирования лога "plain", при использовании которого не используются управляющие символы для выделения цветом и указывается информация о файле, функции и номере строки.

В API Streams реализованы базовые возможности для управления согласованием кодеков (ACN, Advanced Codec Negotiation)     Поведение приложения BridgeAdd приближено к приложению Bridge и также выставляет для канала переменную BRIDGERESULT, для передачи в сценарий обработки вызовов (dialplan) информации о результате совмещения каналов.     В модуле res_pjsip реализованы новые опции incoming_call_offer_pref и outgoing_call_offer_pref для определения желаемого порядка кодеков для входящих и исходящих вызовов.
...
  Оригинал статьи https://www.opennet.ru/opennews/art.shtml?num=53941

Пока сидим дома

15 апреля 2020, 14:39
 

Зайдите на сайт http://pokadoma.ru

Создайте нужную комнату для переговоров

Пользователи подключаются по ссылке или введя название комнаты

Защищенная сеть - Защита каналов связи организуется фреймворком WebRTC, который использует протоколы шифрования SRTP для передачи видео и аудио данных

Возможность установки пароля для входа в чат

Установите пароль на нужную комнату и проводите переговоры конфиденциально.

  1. Видео веб-семинары

  2. Совещания

  3. Планерки

  4. Видео встречи с друзьями и знакомыми

  5. Прямые эфиры

  6. Групповые обучения

  7. Презентации

   

Встраиваем переводчик в Астериск

9 августа 2019, 10:13

 
Два собеседника в разных странах, русскоязычный и англоязычный, могут воспользоваться облачными сервисами распознавания голоса, перевода, синтезатора речи Text-to-speech, чтобы  общаться по телефону через Оксану, робота переводчика. При наборе номера удалённого абонента через сервисный код *21*+442037692097 голосовой поток от русскоязычного абонента Алёны отправляется через chan_LEG на распознавание, превращается в текст, который, в свою очередь, отправляется в on-line сервис https://translate.yandex.ru, откуда поступает в модуль синтезатора речи - Text-to-speech, и воспроизводится англоязычному абоненту Бобу.

Встречный голосовой поток от Боба обрабатывается по такой же схеме, но через Google voice recognition + Google translate + Google speech engine, такоим образом доходит до Алёны уже по-русски. Система работает в многопоточном режиме, т.е. нет необходимости ожидать завершения распознавания/перевода предыдущего фрагмента, чтобы наговаривать следующий.

Схема полностью модульна, позволяет гибко переключать все элементы, заменяя, например, всю цепочку только сервисами Google для обоих направлений, или, например, обрабатывая текстовый перевод в обоих направлениях облачным сервисом перевода Яндекс   https://translate.yandex.ru.

Система начинает распознавание не дожидаясь окончания фрагмента и сама определяет его начало и конец по паузе в конце предложения. Отметим также простоту интеграции и скорость перевода близкую к реальному разговору.

   

К слову  сказать, Google recognition заявляет об огромном списке языков для распознавания:

Language languageCode Language (English name)
Afrikaans (Suid-Afrika) af-ZA Afrikaans (South Africa)
አማርኛ (ኢትዮጵያ) am-ET Amharic (Ethiopia)
Հայ (Հայաստան) hy-AM Armenian (Armenia)
Azərbaycan (Azərbaycan) az-AZ Azerbaijani (Azerbaijan)
Bahasa Indonesia (Indonesia) id-ID Indonesian (Indonesia)
Bahasa Melayu (Malaysia) ms-MY Malay (Malaysia)
বাংলা (বাংলাদেশ) bn-BD Bengali (Bangladesh)
বাংলা (ভারত) bn-IN Bengali (India)
Català (Espanya) ca-ES Catalan (Spain)
Čeština (Česká republika) cs-CZ Czech (Czech Republic)
Dansk (Danmark) da-DK Danish (Denmark)
Deutsch (Deutschland) de-DE German (Germany)
English (Australia) en-AU English (Australia)
English (Canada) en-CA English (Canada)
English (Ghana) en-GH English (Ghana)
English (Great Britain) en-GB English (United Kingdom)
English (India) en-IN English (India)
English (Ireland) en-IE English (Ireland)
English (Kenya) en-KE English (Kenya)
English (New Zealand) en-NZ English (New Zealand)
English (Nigeria) en-NG English (Nigeria)
English (Philippines) en-PH English (Philippines)
English (Singapore) en-SG English (Singapore)
English (South Africa) en-ZA English (South Africa)
English (Tanzania) en-TZ English (Tanzania)
English (United States) en-US English (United States)
Español (Argentina) es-AR Spanish (Argentina)
Español (Bolivia) es-BO Spanish (Bolivia)
Español (Chile) es-CL Spanish (Chile)
Español (Colombia) es-CO Spanish (Colombia)
Español (Costa Rica) es-CR Spanish (Costa Rica)
Español (Ecuador) es-EC Spanish (Ecuador)
Español (El Salvador) es-SV Spanish (El Salvador)
Español (España) es-ES Spanish (Spain)
Español (Estados Unidos) es-US Spanish (United States)
Español (Guatemala) es-GT Spanish (Guatemala)
Español (Honduras) es-HN Spanish (Honduras)
Español (México) es-MX Spanish (Mexico)
Español (Nicaragua) es-NI Spanish (Nicaragua)
Español (Panamá) es-PA Spanish (Panama)
Español (Paraguay) es-PY Spanish (Paraguay)
Español (Perú) es-PE Spanish (Peru)
Español (Puerto Rico) es-PR Spanish (Puerto Rico)
Español (República Dominicana) es-DO Spanish (Dominican Republic)
Español (Uruguay) es-UY Spanish (Uruguay)
Español (Venezuela) es-VE Spanish (Venezuela)
Euskara (Espainia) eu-ES Basque (Spain)
Filipino (Pilipinas) fil-PH Filipino (Philippines)
Français (Canada) fr-CA French (Canada)
Français (France) fr-FR French (France)
Galego (España) gl-ES Galician (Spain)
ქართული (საქართველო) ka-GE Georgian (Georgia)
ગુજરાતી (ભારત) gu-IN Gujarati (India)
Hrvatski (Hrvatska) hr-HR Croatian (Croatia)
IsiZulu (Ningizimu Afrika) zu-ZA Zulu (South Africa)
Íslenska (Ísland) is-IS Icelandic (Iceland)
Italiano (Italia) it-IT Italian (Italy)
Jawa (Indonesia) jv-ID Javanese (Indonesia)
ಕನ್ನಡ (ಭಾರತ) kn-IN Kannada (India)
ភាសាខ្មែរ (កម្ពុជា) km-KH Khmer (Cambodia)
ລາວ (ລາວ) lo-LA Lao (Laos)
Latviešu (latviešu) lv-LV Latvian (Latvia)
Lietuvių (Lietuva) lt-LT Lithuanian (Lithuania)
Magyar (Magyarország) hu-HU Hungarian (Hungary)
മലയാളം (ഇന്ത്യ) ml-IN Malayalam (India)
मराठी (भारत) mr-IN Marathi (India)
Nederlands (Nederland) nl-NL Dutch (Netherlands)
नेपाली (नेपाल) ne-NP Nepali (Nepal)
Norsk bokmål (Norge) nb-NO Norwegian Bokmål (Norway)
Polski (Polska) pl-PL Polish (Poland)
Português (Brasil) pt-BR Portuguese (Brazil)
Português (Portugal) pt-PT Portuguese (Portugal)
Română (România) ro-RO Romanian (Romania)
සිංහල (ශ්රී ලංකාව) si-LK Sinhala (Sri Lanka)
Slovenčina (Slovensko) sk-SK Slovak (Slovakia)
Slovenščina (Slovenija) sl-SI Slovenian (Slovenia)
Urang (Indonesia) su-ID Sundanese (Indonesia)
Swahili (Tanzania) sw-TZ Swahili (Tanzania)
Swahili (Kenya) sw-KE Swahili (Kenya)
Suomi (Suomi) fi-FI Finnish (Finland)
Svenska (Sverige) sv-SE Swedish (Sweden)
தமிழ் (இந்தியா) ta-IN Tamil (India)
தமிழ் (சிங்கப்பூர்) ta-SG Tamil (Singapore)
தமிழ் (இலங்கை) ta-LK Tamil (Sri Lanka)
தமிழ் (மலேசியா) ta-MY Tamil (Malaysia)
తెలుగు (భారతదేశం) te-IN Telugu (India)
Tiếng Việt (Việt Nam) vi-VN Vietnamese (Vietnam)
Türkçe (Türkiye) tr-TR Turkish (Turkey)
اردو (پاکستان) ur-PK Urdu (Pakistan)
اردو (بھارت) ur-IN Urdu (India)
Ελληνικά (Ελλάδα) el-GR Greek (Greece)
Български (България) bg-BG Bulgarian (Bulgaria)
Русский (Россия) ru-RU Russian (Russia)
Српски (Србија) sr-RS Serbian (Serbia)
Українська (Україна) uk-UA Ukrainian (Ukraine)
עברית (ישראל) he-IL Hebrew (Israel)
العربية (إسرائيل) ar-IL Arabic (Israel)
العربية (الأردن) ar-JO Arabic (Jordan)
العربية (الإمارات) ar-AE Arabic (United Arab Emirates)
العربية (البحرين) ar-BH Arabic (Bahrain)
العربية (الجزائر) ar-DZ Arabic (Algeria)
العربية (السعودية) ar-SA Arabic (Saudi Arabia)
العربية (العراق) ar-IQ Arabic (Iraq)
العربية (الكويت) ar-KW Arabic (Kuwait)
العربية (المغرب) ar-MA Arabic (Morocco)
العربية (تونس) ar-TN Arabic (Tunisia)
العربية (عُمان) ar-OM Arabic (Oman)
العربية (فلسطين) ar-PS Arabic (State of Palestine)
العربية (قطر) ar-QA Arabic (Qatar)
العربية (لبنان) ar-LB Arabic (Lebanon)
العربية (مصر) ar-EG Arabic (Egypt)
فارسی (ایران) fa-IR Persian (Iran)
हिन्दी (भारत) hi-IN Hindi (India)
ไทย (ประเทศไทย) th-TH Thai (Thailand)
한국어 (대한민국) ko-KR Korean (South Korea)
國語 (台灣) zh-TW Chinese, Mandarin (Traditional, Taiwan)
廣東話 (香港) yue-Hant-HK Chinese, Cantonese (Traditional, Hong Kong)
日本語(日本) ja-JP Japanese (Japan)
普通話 (香港) zh-HK Chinese, Mandarin (Simplified, Hong Kong)
普通话 (中国大陆) zh Chinese, Mandarin (Simplified, China)

Обратная связь - опрос: Asterisk Usage Survey

13 марта 2019, 10:23

 
 

Для тех, кто ещё меня не знает, меня зовут Мэтью Фредриксон (Matthew Fredrickson) и я руковожу проектом Asterisk. Во-первых, я хотел бы поблагодарить всех вас, кто вносит свой вклад в проект.  Будь то на уровне разработчиков, или отвечая на вопросы на форумах и списках рассылки, или разрабатывая документацию, или просто в целом, выступая за это в своей сфере влияния. Требуется так много усилий людей, чтобы сделать проект тем, что он есть, и поддерживать такое большое и яркое сообщество пользователей и разработчиков.

Мы создали общий опрос о том, как люди используют Asterisk. Это займет всего 10-15 минут, но поможет нам лучше понять, как наши пользователи используют Asterisk и помогут нам понять, есть ли важные области Asterisk,
которые мы недооцениваем с точки зрения развития. Если вы не возражаете принять участие, мы были бы вам очень признательны.  Еще раз большое спасибо за ваше время и наилучшие пожелания каждому из вас в ваших усилиях.

   


Слияние Sangoma & Digium

24 августа 2018, 14:02

Sangoma объявила что компания заключила окончательное соглашение о покупке компании Digium.Ожидается, что сделка закроется 31 августа 2018 года или около того. Выгоды предполагаются в создании лидирующей компании-поставщика систем связи в бюджетном сегменте корпоративной связи при слияние двух крупнейших производителей программного обеспечения с открытыми исходными кодами, создателей и управляторов: Asterisk и FreePBX, под одним флагом.


 

Читать полностью »

Мы назвали её Оксаной

14 июня 2018, 13:04
          Она родилась практически уже почти разумным, понятливым самостоятельным человеком, и, благодаря Yandex SpeechKit Cloud хорошо заговорила с нами, иногда, правда, путая ударения и не замечая знаки препинания. Можно сказать, что её старшая сестра  Алиса,  которую мы подключили к Астериску 24.10.2017 дала жизнь Оксане, над которой мы теперь и работаем последнее время. Нет предела совершенству!

Сегодня в определённых сферах все только и говорят про роботов: промышленных, бытовых, текстовых чат-ботов. Гиганты и флагманы индустрии — Google, Amazon, Apple, Yandex демонстрируют своих виртуальных помощников и помощниц, одна другой краше и сообразительней. Большинство их привязано к нейросетям, для самообучения и демонстрации искусственного псевдо-интеллекта. Как тут не впомнить Алана Тьюринга с его тестом?

Оксана, не слишком умна (да и зачем её большой ум? Диссертации писать? Её дело простое: отвечать на одни и те же вопросы, принимать заказы, переводить звонок в техподдержку (если надо), записывать на стрижку/укладку/мелирование.
Что ещё? Всё что можно придумать и уложить в логику простого диалога с распознаванием речи, переспросами, если не поняла или не расслышала, и не больше 5-7 шагов.

Хотите поговорить с ней? Звоните
+7 (495) 645 8002
+7 (999)-333-4027

        Логика такого диалога — простая конфигурация, но к ней надо подходить основательно. Лучше сразу нарисовать блок-схему, с ветвлением, с переходами по условиям если распознано (массив_вероятных_слов_1), то => шаг Х, если же иное (массив_вероятных_слов_2) => шаг Y, и так далее. Говорить она может не только через Yandex text-to-speech, но и через встроенный Festival, который заметно хуже.

Простота конфигурации печатанием всевозможных слов и выражений (мы строги к ненормативной лексике!) может заменяться заранее записанными аудио-файлами вариантов ответов, и тогда реально труднее распознать, что вы общаетесь не с живым человеком! Особенно после некоторых опций - ключевых слов, которыми можно перебить искусственный разум, типа - "Замолчи!" и даже "Заткнись!". Когда мы придумаем блок эмоций, то эмоциональная окраска диалогов с Оксаной станет более насыщенной.

Конфигурабельность диалога вынесена в отдельный текстовый файл, синтаксис которого понятен уже в прочтении примеров. Смотрите — вот несколько примеров, которые уже работают. Можно для наглядности позвонить и смотреть как строится диалог:


Читать полностью »

e164, ENUM, ENUMER...

8 мая 2018, 08:42

   

Как описано в https://ru.wikipedia.org/wiki/ENUM

ENUM (или Enum, от E.164 NUmber Mapping) — набор протоколов для объединения системы нумерации телефонов E.164 с системой адресации интернет, а DNS при использовании косвенного метода поиска получает записи NAPTR. Записи хранятся в базе данных DNS. Логика создания такой базы вытекала из базовой (условной) стоимости звонков по протоколам VoIP, стремящейся к нулю.

Функция поиска номера назначения при исходящем вызове на межгородские и международные соединения легко включала бы в себя запрос в единую базу номеров Enum, и, при наличии этого номера в базе, узел совершал бы вызов не по традиционным каналам PSTN, а напрямую к ресурсу, на котором зарегистрирован этот номер.

Понятно, что такой сценарий не очень устраивает традиционных консервативных операторов связи, которые по прежнему зарабатывают на услугах голосовой связи, игнорируя порой возможности новых технологий. Это облегчает вызов пользователя VoIP из IP  сетей, но никак не из традиционных сетей.


   
По сути, ENUM также не является функцией VoIP, являясь лишь удобным дополнением. Диалектика развития нулевой стоимости вызовов для проекта Enum привела его к угасанию

И только в последнее время появилось новое продолжение - ENUMER, та же самая функция идейно, но на новой технологической платформе - блокчейна Emercoin.

Зачем нужен ENUMER простому клиенту?

  • Публикуясь в ENUMER, вы даёте возможность миру позвонить себе бесплатно. Это полезно для организаций, кто принимает звонки, в особенности - владельцы 800-х номеров: служба заказов билетов, магазины, заводы и тп.;
  • Если у вас 800-ый (toll-free) номер - то это прямая экономия на расходах за принимаемые вызовы, которые оплачивает владелец номера;
  • ENUMER сокращает время установления соединения с примерно 2х sec PSTN до 0.3s ENUMER;
  • Повышенное качество сигнала и снижение задержек за счёт сокращения цепочки транскодинга;
  • Повышенное качество сигнала за счёт возможности использовать HD codec;
  • Возможность безопасного соединения за счёт SRTP/ZRTP;
  • Обход ограничения на кол-во линий E1/T1;

  • Как использовать ?

    В Asterisk есть команда dialplan ENUMLOOKUP. Применив которую осуществляется DNS запрос в базу блокчейна.
    Пример dialplan:

    exten => s,1,Set(DIAL_NUMBER=74951234567)                                                                ;набираемый номер
    exten => s,n,Set(ENUMER=${ENUMLOOKUP(${DIAL_NUMBER},sip,,1,enum.)})            ;выполняем поиск номера в блокчейне
    exten => s,n,NoOp(ENUMLOOKUP is ${ENUMER})                                                           ;выводим результат запроса
    exten => s,n,GotoIf($["${ENUMER}" != ""]?enum:pstn)                                                        ;если номер существует - звоним напрямую, если нет - звоним через свою обычную линию
    exten => s,n(enum),Dial(SIP/${ENUMER},30)                                                                     ;звоним напрямую
    exten => s,n,Hangup()
    exten => s,n(pstn),Dial(SIP/my_provider_trunk/${DIAL_NUMBER},30)                              ;звоним через свою обычную линию
    exten => s,n,Hangup()

    Для осуществления DNS запроса в клиенте emercoin встроен DNS сервер, который необходимо включить в emercoin.conf.

    Присоединяйтесь !
    Если Вы хотите зарегистрировать свой номер в ENUMER, то обратитесь к нам и мы поможем Вам сделать это абсолютно бесплатно.

    Для более детального понимания читать  >>> https://habr.com/company/emercoin/blog/337034/

    chan_LEG - канал для распознавания речи, обработки сообщений Early media

    28 марта 2018, 16:13

    "            chan_LEG - специализированный канал в asterisk, который позволяет выполнить обработку звука разговора, независимо от процессов обработки самого разговора и связанным с разговором каналов:
    • специальное прослушивание и запись сторонними приложениями и устройствами;
    • анализ - сравнение с шаблонами;
    • дикторонезависимое распознавание речи (преобразование речи в текст);
    • и др.
    Возможно выполнение обработки отдельно входящего, исходящего и обоих одновременно звуковых потоков.
    Также Chan_LEG позволяет управлять исходными каналом через установку значений переменных канала и имеет возможность завершения исходного канала (разговора).
    Приложение WaitForPattern предназначено для распознавания наличия в звуковом потоке определенных паттернов (шаблонов) звука. В одном вызове может распознавать до 256 паттернов, которые указываются в виде звуковых файлов любого формата, используемых в asterisk. Алгоритм распознавания основан на определении длительности участков голоса и тишины.
    Типичными применениями Chan_LEG + WaitForPattern являются:
    • определение наличия автоответчиков - сообщения в предответном состоянии (Early media) при дозвоне мобильным абонентам;
    • динамическое изменение ограничения длительности в текущем разговоре.

     http://www.postmet.com/chanleg


    Алиса и Астериск

    24 октября 2017, 08:27
    "        Алиса — голосовой помощник, созданный в Яндексе. Алиса умеет решать повседневные задачи: подскажет погоду, посоветует, где поесть или купить продуктов, найдёт что угодно в интернете. Но главное — Алиса не ограничивается набором заранее заданных ответов. В ходе разговора она способна импровизировать: в этом ей помогает нейронная сеть. Мы задумались о том, чтобы вывести Алису из мира высоких технологий, где она доступна только компьютер-совместимым пользователям, или пользователям смартфонов, и подключить  её к телефонии, просто как машину Тьюринга.  Схему стенда подключения можно легко разобрать (ниже). Программный софтфон устанавливаем в режим автоподнятия трубки при входящем - Autoanswer, на вход его микрофона подаём голосовой выход Алисы, и наоборот. Коммутация выполнена через Virtual Audio Cable - VB Audio

    Мне уже видится несколько виртуальных машин с Android, на каждой такой instance  запущена Алиса, и вот такой прямо ИИ Call center.
    Вот так нас вытеснят скоро роботы.


    Asterisk 15 Release candidate 1

    4 сентября 2017, 08:19
      Разработчики Digium сообщили миру о выпуске Release candidate (rc1) после бета-релиза нового Asterisk 15. Asterisk 15 пожалуй самый масштабный релиз Asterisk, который выпущен за последние 10 лет (или около того). Пишут, что было много работы, проделанной в Asterisk core для лучшей поддержки новых протоколов мульти-потокового видео и улучшения соответствующих технологий WebRTC. Для тех, кто заинтересован, многое из этого будет рассмотрено в блогах https://blogs.asterisk.org в течение следующего месяца или двух.

    Обычно когда выпускается новый крупный релиз Asterisk (13, 14, 15...), у разработчиков и сообщества есть несколько месяцев тестирования новой ветки, которое происходит до выхода stable release для того, чтобы найти регрессии, и другие проблемы, решение которых приводит к первым официальным релизам по мере появления значительного числа пользователей. После сегодняшнего релиза 15.0.0-rc1 этот процесс уже начался. Пожалуйста, не стесняйтесь начать тестирование этой версии Астериска в сложных условия. Любые ошибки должны быть сообщены на трекер https://issues.asterisk.org

    Как замечание со стороны - из-за многие основных изменений в 15 версии, которые были сделаны после выпуска Asterisk 14, было решено, что релиза Asterisk 15 LTS не будет. Для тех из вас, кто не знаком с различиями между LTS и стандартными релизами, вы можете найти более подробную информацию здесь.

    Спасибо всем членам сообщества Asterisk за помощь и поддержку, которые делают Asterisk великим проектом с открытым исходным кодом!

    P.S. Бинарные кодеки и прочие модули, распространяемые линий не сразу доступны для 15.0.0-rc1, будут доступны в ближайшее время.