Звонок робота на телефон
Вот подкючен я к оператору сотовой связи. Кончаются у меня деньги, мне звонит оператор. Бот говорит: "На вашем счету осталось 11 рублей 55 копеек. Пополните свой баланс.". Некоторые операторы конечно ограничиваются отсылкой смс-сообщения с этим же текстом.
Вопрос:
Как это реализовано?? Это же сделано программно?? Т.е. хранятся данные о счете (телефонном номере) в БД, когда сумма денег на счете достигает какого-то значения, делается звонок. Считывается значение из БД. Так??
Так вот как реализован такой робот??
Как позвонить - есть несколько способов, хотя бы с помощью AT-комманд телефонной трубы.. а вот как продиктовать текст клиенту??
Способы называния большого числа давно существуют - конечно много слов записано - различных имен цифр и чисел в различных падежах, из них составляется число (по крайней мере , мне так кажется - судя по корявости речи робота, который называет мне остаток)))
Я знаю, что существуют голосовые движки, и как они работают.
Я знаю, что такое Скайп и как осуществляется голосовой чат/конференции по нему.
Извини за неточную, видимо, формулировку вопроса.
Уточню вопрос: Как в обход микрофона, донести до слушателя на другом конце провода (канала), какой-либо звук. Т.е. я делаю вызов, к примеру, через AT комманду.. как мне проиграть какую-либо мелодию/запись, чтобы ее услышал человек, поднявший трубку.
Тебя же не удивляет, что когда ты хочешь послушать музыку, нигде рядом не играет гитара или ф-но. Их звук записан заранее, оцифрован, сжат в mp3 и хранится у тебя на винчестере. Точно так же и с сообщением по телефону - проигрывается заранее записанный с микрофона звук.
Кстати, AT-команды тут вообще ни при чем, это команды управления модемом, к звуку, передаваемому в линию, они никакого отношения не имеют. Тут правильнее сравнивать не с модемом, а со звуковой картой.
port.WriteLine("ATD+79028919579;");
Можно совершить звонок и другими способами - суть не в том. Как программно озвучить сообщение??
Как я понял, автор говорит что-то типа, "если соединиться с помощью модема с телефоном, то какие данные надо посылать телефону, чтобы из трубки слышалась человеческая речь, а не, например, жуткий модемный скрежет?"
Как я понял, автор говорит что-то типа, "если соединиться с помощью модема с телефоном, то какие данные надо посылать телефону, чтобы из трубки слышалась человеческая речь, а не, например, жуткий модемный скрежет?"
Не получится.
Модем для этого не предназначен.
Есть, правда, голосовые модемы, но они, насколько мне известно, лишь подключают к телефонной линии звуковую карту. Т.е. формирование звука в любом случае осуществляется звуковой картой, а не модемом.
Давайте абстрагируемся от AT-комманд:
1) программно звоним на какой-то телефон
2) программно опять же включаем ему песню Киркорова "Зайка моя" :D
Получается он получает входящий звонок->берет трубку->там играет Киркоров.
Как это реализовать??
из Википедии:
Голосовой модем — имеет функцию оцифровки сигнала с телефонной линии и воспроизведение произвольного звука в линию. Часть голосовых модемов имеет встроенный микрофон.
Это позволяет осуществить:
1. передачу голосовых сообщений в режиме реального времени на другой удалённый голосовой модем и приём сообщений от него и воспроизведение их через внутренний динамик;
2. использование такого модема в режиме автоответчика и для организации голосовой почты.
Давайте абстрагируемся от AT-комманд:
1) программно звоним на какой-то телефон
2) программно опять же включаем ему песню Киркорова "Зайка моя" :D
Получается он получает входящий звонок->берет трубку->там играет Киркоров.
Как это реализовать??
Вот как написал, так и реализовываешь:
1. звоним
2. передаем звук
В чем проблема?
Голосовой модем — имеет функцию оцифровки сигнала с телефонной линии и воспроизведение произвольного звука в линию. Часть голосовых модемов имеет встроенный микрофон.
Это позволяет осуществить:
1. передачу голосовых сообщений в режиме реального времени на другой удалённый голосовой модем и приём сообщений от него и воспроизведение их через внутренний динамик;
2. использование такого модема в режиме автоответчика и для организации голосовой почты.
Честно говоря, не знаю, что на это можно сказать. Существует 2 варианта:
1. Мне попадались "урезанные" голосовые модемы, в которых часть функций осуществлялось при помощи звуковой карты.
2. Именно такой вариант и является нормальным голосовым модемом, т.к. в противном случае невозможео добиться полной функциональности голосового модема из-за низкой пропускной способности интерфейса, составляющей, как правило, десятки Кбит/с, тогда как для полноценного звука нужно минимум на порядок больше.
Интернет ни при чем. Модем используется тут для преобразования цифрового сигнала в аналоговый.
Разница между цифровым и аналоговым сигалом в данном случае немного размыта, правильнее будет сказать "преобразования цифрового сигнала к виду, позволяющему передать максимальный поток информации через существующие аналоговые линии связи".
Не размыта: от компьютера модему идёт цифровой сигнал (т.е. сигнал с двумя уровнями: "высоким" и "низким"), на выходе модема будет в любом случае аналоговый сигнал (не дискретный). Но согласен, что качество этого сигнала у обычного модема не подходит для передачи голосовых сообщений. Т.е. нужен хороший голосовой модем.
Ну, с железом почти определились :) Теперь осталось определиться с программной частью. Наверно тут надо разбираться с TAPI...
На самом деле COM работает через токовую петлю, так что никаких "высокого" и "низкого" уровня там нет.
По проводу идет ток, т.е. обычный электрический (аналоговый) сигнал, который последующим преобразователем превращается в сигналы "высокого" и "низкого" уровня.
На выходе модема будет многочастотный сигнал, который точно так же входным преобразователем переводится в "высокий" или "низкий" уровень.
Любая линия передачи по сути своей аналоговая и передается по ней аналоговый сигнал, который представляет собой тем или иным способом закодированный цифровой сигнал (если мы рассматриваем цифровые системы передачи). Т.е. разница на участках до и после модема - лишь в способах кодировки цифрового сигнала в аналоговый.
Дело даже не в качесве, а в том, что принцип кодирования не позволяет получить на выходе сигнал произвольной формы.
Либо другое устойство, способное передавать сигнал произвольной формы.
Ну, с железом почти определились :) Теперь осталось определиться с программной частью. Наверно тут надо разбираться с TAPI...
Что-то я не понял, с каким именно железом мы определились.
Тебе достоверно известно, какое железо используется на цифровых АТС? А тем более в сотовой связи...
По проводу идет ток, т.е. обычный электрический (аналоговый) сигнал, который последующим преобразователем превращается в сигналы "высокого" и "низкого" уровня.
Побыстрее сотри эту чушь и я сотру эту цитату твою. RS-232 (в простонародье COM) передает сигнал напряжением: логической 1 соответствуют отрицательные уровни напряжения, а логическому 0 - положительные (смотри в стандарте конкретные значение).
Токовая петля также передает цифровой сигнал: есть ток - 1, нету тока - 0.
Есть еще использование аналоговой токовой петли 4- 20 мА, но это уже совсем из другой области.
[QUOTE=andriano]Что-то я не понял, с каким именно железом мы определились.
Тебе достоверно известно, какое железо используется на цифровых АТС? А тем более в сотовой связи...[/QUOTE]
Зачем мне об этом знать? Например, старые советские телефоны об этом "не знают", но по ним еще можно разговаривать...