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

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

Базу данных заполняет 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

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

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

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

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

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

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

14 лет назад
atemixx
Артем 
37 лет
18 лет в сервисе
Был
6 лет назад

Заявки фрилансеров

Нет заявок фрилансеров
  • Похожие заказы

  • И так уважаемые вебмастеры. Есть сайт в БД добавление много сайтов админ в ручную запускает парсер временно от временем индексирует их. на сайте установлен поиск при запросе юзеров дает по ключевым словам ...

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

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

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

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

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

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

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

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

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

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

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

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