Asterisk. Сервіс підтвердження номерів.
Доброго дня.
Потрібна розробка сервісу підтвердження номерів за допомогою Asterisk.
Кажу відразу – звичайний Asterisk у ядрі, без web-інтерфейсів типу FreePBX та інших.
Результатом потрібен налаштований сервер, який отримує від клієнтів номер підтвердження, а цифри які потрібно озвучити дозвонившись на відповідний номер.
Результат повинен фіксуватись в базі MySQL розташованій локально, а також відправлятись API-запит на сервер білінгу для фіксації факту успішного дзвінка.
Клієнтів може бути декілька.
Приблизний алгоритм наступний:
Вже є сайт, який керує клієнтами. Коли клієнт активує послугу, цей Сайт відправляє API-запит на Asterisk, який включає наступні параметри:
- Ідентифікатор клієнта, та авторизаційний токен, по якому сервер Asterisk повинен в майбутньому авторизовувати клієнта.
- Голосові файли wav, які Asterisk повинен озвучувати при виклику. Тобто якесь вітання, та цифри (якщо клієнт бажає власні), або у разі відсутності звукових файлів із цифрами – Asterisk щоб використовував власні.
- Кількість цифр, які повинен озвучувати робот.
- Ідентифікатор транку з якого потрібно робити виклик (транків може бути декілька).
- Масив номерів, з яких може робитись виклик. Номер повинен братись рандомно із масиву.
- URL WebHook для відправки відповіді клієнту із статусом після виконання дзвінка. У разі, коли це поле незаповнене – відправка відповіді не виконується.
Далі клієнт повинен мати можливість посилати API-запити на Asterisk, відправляти номер який потрібно підтвердити, та цифри, які потрібно назвати.
Asterisk робить виклик, озвучує голосове вітання та називає цифри підтвердження. Після виконання спроби повинно робитись:
- Фіксація події в локальній базі MySQL
- Відправка на наш головний сервер білінгу, отримання відповіді про зміни клієнта (блокувати чи ні)
- Відправка WebHook клієнту з результатом.
- Тут також потрібно передбачити, якщо якийсь із серверів (наш білінговий, чи клієнта) не відповідає кодом 200, то це не повинно тормозити процеси Asterisk та потім робити наступні декілька спроб.
Asterisk може видати помилку у разі:
- Невірний токен авторизації
- Кількість цифр для перевірки не співпадає з кількість в налаштуваннях
- Аккаунт клієнта не активен (заблоковано)
Потрібно контролювати результат виклику, і у разі якщо виклик буде невдалим з вини провайдера (тобто коли це не абонент розмовляє, поза зоною, зайнятий, скинув виклик, а наприклад наш номер заблоковано через несплату, чи не вистачає нам ліній транку), то треба робити наступну спробу з іншого номеру (із масиву) та окрема фіксація цього інциденту.
Програмну реалізацію скриптів бажано робити на PHP. Операційна система CentOS. Встановлення Asterisk на сервер також входить в завдання проекту.
-
273 Доброго дня, ми команда програмістів зможемо це зробити, ми уже робили схожі проекти і зможемо вам відповісти на усі питання, думаю краще поговорити по телефону або у повідомленнях.
-
796 3 0 **Добрий день. Мене звати Марія. Уважно вивчила ваш проект. Готова до виконання.**
📞 **Алгоритм роботи сервісу**
1. **Отримання запиту від клієнта:**
- Клієнт надсилає API-запит на сервер із параметрами:
- Ідентифікатор клієнта та авторизаційний токен.
- Голосові файли (вітання та цифри) або вказівка використовувати стандартні.
- Кількість цифр для озвучування.
… - Ідентифікатор транку для дзвінка.
- Масив номерів, з яких можна здійснювати дзвінки.
- URL для WebHook-а з результатами.
2. **Ініціація дзвінка:**
- Сервер перевіряє авторизацію клієнта.
- Обирає номер із наданого масиву.
- Ініціює дзвінок через Asterisk, використовуючи обраний транк.
- Озвучує вітання та цифри підтвердження.
3. **Обробка результатів:**
- Фіксує результат дзвінка в базі даних MySQL.
- Надсилає результат на сервер білінгу.
- Надсилає результат клієнту через WebHook (якщо URL надано).
4. **Обробка помилок:**
- У разі невдалого дзвінка з вини провайдера (наприклад, номер заблоковано), сервіс:
- Намагається здійснити дзвінок з іншого номеру з масиву.
- Фіксує інцидент у базі даних.
**Готова обговорити деталі!**
-
420 привіт, реалізую ваше завдання за досвід.
...................
....,..............
...................
...................
Актуальні фриланс-проєкти в категорії DevOps
Тест написаного телеграмм ботта та підключення його до серверу. Швидка оплата
700 UAH
Всім привіт! Маю вже готового Telegram-бота, написаного на Python, який повинен автоматично купувати NFT (подарунки) згідно з певними фільтрами (ціна, кількість, ліміт, отримувачі тощо). ⚠️ Що потрібно: Протестувати код (уся логіка вже написана). Доробити/відлагодити… DevOps, Розробка ботів ∙ 3 години 41 хвилина тому ∙ 4 ставки |
Налаштування Server-Side Tracking (GTM SS) для інтернет-магазину на ХорошопТехнічне завдання: Ціль проєкту Налаштувати повноцінну систему Server-Side Tracking (через Google Tag Manager Server Container) для передачі подій у: Google Analytics 4 Google Ads Facebook Conversion API TikTok Events API Сайт працює на платформі Хорошоп, місячний трафік —… DevOps, Налаштування ПЗ та серверів ∙ 1 день 15 годин тому ∙ 2 ставки |
Налаштування захисту від DDoS для ігрового проекту
3000 UAH
Добрий день! Для ігрового проекту пов'язаного з іграми CS2 та інших шукаю професіонала який займається налаштуванням DDoS захисту. Завдання: - Налаштувати основні правила Iptables для захисту від атак - Налаштувати fail2ban - Налаштувати скрипт для швидкого відключення країн по… DevOps, Налаштування ПЗ та серверів ∙ 3 дні 4 години тому ∙ 4 ставки |
Nginx-lua-geoip2Потрібно створити готовий до використання Docker контейнер з веб-сервером Nginx, який буде автоматично перевіряти кожного відвідувача на предмет того, чи робиться запит з hetzner сервера, а також визначати геолокацію користувачів через GeoIP2. Більше інформації в технічному… DevOps ∙ 3 дні 16 годин тому ∙ 3 ставки |
Тормозить сайт | Amazon AWS | DevOpsСайт навчальної платформи лежить на амазон авс. Час від часу тупить наступним чином (див відео). Скоріш за все для економії витрати девОпс зробив +- натупне. Коли ніхто не користується сайтом (Саме бек!!) він входиться в спячий режим. Коли хтось робить до нього запит він… DevOps ∙ 4 дні 12 годин тому ∙ 4 ставки |