Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

В аттаче картинка с схемой реализации учета звонков.

Описание таблицы базы данных:

Базу данных заполняет SIP сервер (asterisk)

TABLE cdr (

calldate timestamp with time zone DEFAULT now() NOT NULL,

clid character varying(80) DEFAULT ''::character varying NOT NULL,

src character varying(80) DEFAULT ''::character varying NOT NULL,

dst character varying(80) DEFAULT ''::character varying NOT NULL,

dcontext character varying(80) DEFAULT ''::character varying NOT NULL,

channel character varying(80) DEFAULT ''::character varying NOT NULL,

dstchannel character varying(80) DEFAULT ''::character varying NOT NULL,

lastapp character varying(80) DEFAULT ''::character varying NOT NULL,

lastdata character varying(80) DEFAULT ''::character varying NOT NULL,

duration bigint DEFAULT (0)::bigint NOT NULL,

billsec bigint DEFAULT (0)::bigint NOT NULL,

disposition character varying(45) DEFAULT ''::character varying NOT NULL,

amaflags bigint DEFAULT (0)::bigint NOT NULL,

accountcode character varying(20) DEFAULT ''::character varying NOT NULL,

uniqueid character varying(150) DEFAULT ''::character varying NOT NULL,

userfield character varying(255) DEFAULT ''::character varying NOT NULL

);

описание:

clid - на какой номер был вызов (абонент)

dst = 100 - звонок во время статьи дня

billsec - длительность звонка

-------------

Добавка:

dst = 103 - звонок во время утреннего урока

Уточнение:

Деньги считает оператор SIP телефонии, мы можем считать только время, например лимит 360 минут, это два урока, по деньгам это 10-12 долларов.

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

74956996652

74956996578

В случае превышения установленного лимита минут добавляем номер абонента в этот файл.

В случае если администратор убирает блокировку - удаляем номер из этого файла.

В принципе ничего не мешает реализовать тот же алгоритм используя базу данных, при помощи python скрипта

Сейчас скрипты работают так:

Принимаем входящий звонок

Определяем номер звонящего

Проверяем есть ли этот номер в списке заблокированных

Если номер не заблокирован - перезваниваем.

Система перезванивает при создании файла вида:

NUMBER=$1 #берем номер абонента из командной строки

echo "Channel: SIP/$NUMBER@sipmarket

MaxRetries: 1

RetryTime: 30

WaitTime: 120

Context: lesson-out

Extension: 103

Priority: 2

AlwaysDelete: Yes

Callerid: $NUMBER" >/var/spool/asterisk/tmp/$NUMBER.call # помещаем файл вызова во временную папку

sleep 10 #даем человеку время повесить трубку

cp /var/spool/asterisk/tmp/$NUMBER.call /var/spool/asterisk/outgoing/$NUMBER.call #копируем файл для отрабатывания системы

файл в папке /var/spool/asterisk/tmp/ оставляем для контроля, кто пользовался услугой.

нынешние скрипты написаны на шелле :)

база - posgresql

-------------

По сути, надо только собрать номера телефонов и сколько кто проговорил, чтобы отсеять те, у которых деньги кончились (видимо только по номеру телефона - где организован и как список абонентов), чтобы им больше не звонить.

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

-------------

Будут уточняющие вопросы, спрашивайте!

А так жду сроков и стоимостей исполнения.

13 лет назад
atemixx
Артем 
36 летРоссия
17 лет в сервисе
Был
5 лет назад
  • Похожие заказы
  • И так уважаемые вебмастеры. Есть сайт в БД добавление много сайтов админ в ручную запускает парсер временно от временем индексирует их. на сайте установлен поиск при запросе юзеров дает по ключевым словам результат эти сайты которые ...

    Закрыт
    13 лет назад
  • $500

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

    Закрыт
    13 лет назад
  • Нужно создать Доску Объявлений, по тематике сельское хозяйство, просмотрев многие готовые скрипты досок так и не смог определится какая именно подойдет. Нужно сделать доску по типу doska.zol.ru , функционал нужен примерно как на скрипте joker ...

    Закрыт
    13 лет назад
  • Здравствуйте Уважаемые Веблансеры! Нужно написать скрипт простенького файлообменника. Функции / условия: 1. Загружать файлы через админ панель (т.е должна присутствовать админ панель) 2. Удалять файлы через админ панель 3. Сделать систему покупки голд аккаунтов (с голд аккаунтом скорость неограничена) ...

    Закрыт
    13 лет назад
  • Необходимо доработать сервис поиска по файлообменникам search.bmrk.ru (написан с использованием фреймворка CodeIgniter) Необходимо внести следующие изменения: Интерфейс: - Переключение языков интерфейса - Вывод ссылки-источника Работа с текущей базой: - Очистить базу от одинаковых ссылок - Очистить базу от мертвых ссылок - ...

    Закрыт
    13 лет назад
  • Необходимо реализовать на сайте возможность для пользователей записывать аудио или видео сообщения соответственно через микрофон или вебкамеру. Максимально просто. Прошу кратко описать механизм и необходимый бюджет.

    Закрыт
    13 лет назад
  • $10

    Сайт контента:http://bank42.ru/?view=courses&city=3842 Необходимо парсить блок:http://imagepost.ru/?v=458/1n09FbCidZAI8.png И немного его оформить:http://imagepost.ru/?v=458/1n09FbCidZAI8.png Оплата 10$ показывайте у себя на сервере перевожу деньги вы устонавливайте у меня на сервере!

    Закрыт
    13 лет назад
  • Нужен аналог cian.ru - регистрация с смс подтверждением - сортировка по самым различным параметрам - отображение квартиры на карте - вывод результата в таблице со всеми нужными параметрами пока без биллинга

    Закрыт
    13 лет назад
  • Нужно написать парсер игр с сайта game.mob.ua по категориям с последующим обновлением игр через CRON. Оплата по факту пишите цену срок до завтра!

    Закрыт
    13 лет назад
  • Необходимо написать 2 скрипта - клиент и сервер. основные задачи: отправке формы клиент отсылает данные на сервер сервер принимает полученные данные в формате user_id|action|text, распарсивает их далее в зависимости от action выполняет одно из условий и потом, если action=send_all ...

    Закрыт
    13 лет назад