СПОСОБ И СИСТЕМА ДЛЯ ПОСТАВКИ КОНТЕНТА ПОЛЬЗОВАТЕЛЮ ТЕЛЕФОННОГО УСТРОЙСТВА
METHOD AND SYSTEM FOR DELIVERING CONTENT TO TELEPHONY DEVICE USER

Область техники, к которой относится изобретение
Настоящее изобретение относится к использованию телефонного устройства для запуска данного события. Более конкретно, рассматриваемое изобретение относится к системе и способу использования информации, которой обмениваются в процессе инициализации запроса на установление телефонного соединения, для инициирования выполнения желаемой задачи.
Уровень техники
Многие телекоммуникационные сети первоначально были построены для передачи голосового трафика из первого фиксированного пункта во второй фиксированный пункт. Технологический прогресс предоставил сегодня пользователям возможность использовать телекоммуникационные сети для передачи голоса, данных и видео от одного мобильного устройства другому мобильному устройству или нескольким мобильным устройствам.
Несмотря на эти достижения большинство пользователей продолжает оплачивать многие функции, выполняемые с использованием телефонного устройства. Большинство пользователей оплачивает выполнение почти всех функций современной телекоммуникационной сети: как тариф с поминутной оплатой соединения, так и бездимитный тариф передачи данных по фиксированной ставке. Однако для инициирования телефонного соединения необходимо передать некий небольшой объем данных от вызывающей станции к станции адресата. Эту информацию в форме запроса вызова провайдер телефонной связи часто передает бесплатно. Такой запрос вызова часто содержит информацию для идентификации вызывающего телефонного устройства и идентификации узла адресата.
Несмотря на то что большинство провайдеров телефонной связи передают информацию запроса вызова, не взимая за это с пользователей обычной платы, до сих пор отсутствовали способ и система для использования такой информации запроса вызова с целью предоставления расширенных функциональных возможностей пользователям телефонных устройств.
Сущность изобретения
Настоящее изобретение относится к системе и способу использования информации, которой обмениваются в процессе инициализации запроса на установление телефонного соединения, для идентификации пользователя и предоставления ему дополнительных услуг. Согласно одному из вариантов настоящего изобретения система и способы поставки контента способны принимать запрос на установление соединения от телефонного устройства. Как и в случае обычного телефонного вызова, запрос на установление соединения содержит информацию, идентифицирующую пользователя и/или телефонное устройство, передавшее телефонный вызов (вызывающий номер) и набранный телефонный номер (сигнальный номер).
На этапе инициирования (т.е. в период, когда телефонное устройство уже передало запрос на установление соединения, но прежде установления запрошенного соединения) система поставки контента выделяет информацию, относящуюся к этому запросу на установление соединения, и «аннулирует» данный запрос (т.е. активно аннулирует запрос на установление соединения или пассивно разрешает телефонному устройству самому отменить запрос). В результате соединение установлено не будет.
Выделенная информация (т.е. вызывающий номер, сигнальный номер или оба номера) ассоциирована с одной или несколькими задачами, которые нужно выполнить (желаемая задача(и)), и идентифицирует эти задачи. Система поставки контента использует информацию из запроса на установление соединения для идентификации одной или нескольких желаемых задач и поставляет контент, связанный с желаемой задачей(ами), пользователю.
Согласно различным вариантам настоящего изобретения запрос на установление соединения, переданный телефонным устройством, действует как запрос на выполнение желаемой задачи. Предпочтительно, в результате выделения информации из запроса на установление соединения и завершения/аннулирования действия этого запроса на этапе инициирования вызова (т.е. прежде установления соединения) за использование вызывающим телефонным устройством связи никакая плата не начисляется. В этом смысле пользователь может набрать конкретный сигнальный номер с целью передачи запроса на выполнение желаемой задачи, запрос на установление соединения будет завершен/аннулирован, желаемая задача будет идентифицирована, а контент, соответствующий желаемой задаче, будет поставлен пользователю в соответствии с одним или несколькими способами поставки согласно настоящему изобретению (т.е. по электронной почте, обычной почтой, Интернет-почтой, по телефону, посредством короткого сообщения (SMS), передачей по Протоколу беспроводных приложений (WAP) и т.п.).
Согласно варианту настоящего изобретения предлагаемые способы и системы позволяют пользователю извлечь выгоду из «бесплатной» или «нетарифицируемой» части, соответствующей обычному запросу на установление телефонного соединения (т.е. этап инициирования, в течение которого вызов передан, но завершен прежде установления соединения) путем предоставления пользователю возможности передать запрос на выполнение желаемой задачи. В ответ на передачу запроса желаемой задачи предлагаемые системы и способы согласно настоящему изобретению предоставляют пользователю контент, связанный с желаемой задачей.
Краткое описание чертежей
Перечисленные выше и другие цели и преимущества настоящего изобретения станут ясны из рассмотрения следующего ниже подробного описания вместе с прилагаемыми чертежами, на которых одинаковые номера позиций обозначают одинаковые элементы на всех чертежах:
фиг.1 иллюстрирует пример сетевой среды, включающей систему поставки контента, согласно варианту настоящего изобретения;
фиг.2 иллюстрирует пример процесса поставки контента пользователю или от имени пользователя согласно варианту настоящего изобретения;
фиг.3 иллюстрирует пример сетевой среды, включающей систему поставки контента, согласно варианту настоящего изобретения;
фиг.4 иллюстрирует пример процесса для работы примера апплета телефонного устройства согласно варианту настоящего изобретения;
фиг.5 и 6 иллюстрирует пример процесса для работы примера сигнального Клиента согласно варианту настоящего изобретения;
фиг.7 иллюстрирует пример процесса для работы примера телефонного сервера согласно варианту настоящего изобретения;
фиг.8 иллюстрирует пример процесса для работы примера сервера приложений согласно варианту настоящего изобретения;
фиг.9-12 иллюстрируют пример процесса для работы примера сервера сигнализации согласно варианту настоящего изобретения.
Подробное описание изобретения
Настоящее изобретение относится к способу и системе поставки контента (далее именуется «Система 100 поставки контента») пользователю телефонного устройства или от его имени. Понятие «пользователь» включает любого человека, систему, машину, компьютер и/или сеть, который использует и/или дает команду телефонному устройству для доступа к системе поставки контента, соединения, связи и/или взаимодействия с системой поставки контента согласно настоящему изобретению. Понятие «телефонное устройство» включает любое устройство связи, машину, систему, компьютер и т.п., конфигурированные для инициирования и/или установления телефонного соединения через обычную телекоммуникационную сеть. Любой обычный специалист в данной области должен понимать, что телефонное устройство может быть как беспроводным устройством связи, так и проводным устройством связи (т.е. станция наземной линии связи). К примерам таких телефонных устройств относятся, но не ограничиваются этим, обычный наземный телефон и мобильный телефон (т.е. сотовый телефон). Любой обычный специалист в данной области должен также понимать, что телекоммуникационная сеть может быть сетью радиосвязи, сетью проводной связи, сетью передачи голоса по IP-протоколу (VOIP) или сочетанием таких сетей.
На фиг.1 показан пример Системы 100 поставки контента согласно настоящему изобретению, связанной с телефонным устройством 102 через телекоммуникационную сеть. Следует отметить, что сеть, изображенная на фиг.1, предложена для помощи в демонстрации новых аспектов настоящего изобретения и не может быть использована в целях ограничения.
Система 100 поставки контента представляет собой доступную для одного телефонного устройства или нескольких телефонных устройств 102 компьютерную систему, включающую, но не ограничиваясь, следующие компоненты: модуль 104 выделения информации из запроса на установление соединения (CRIEM), модуль 106 аннулирования соединения (CRM), модуль 108 идентификации желаемой задачи (DTIM) и модуль 110 поставки (DM). Термин «компьютер» или «компьютерное устройство» должен включать любое устройство обработки данных, например настольный компьютер, портативный компьютер, универсальный большой компьютер, персональный цифровой помощник, сервер, карманное устройство или любое другое устройство, способное обрабатывать данные.
Любой обычный специалист в данной области должен понимать, что компоненты Системы 100 поставки контента могут быть расположены на одном компьютере, как показано на фиг.1, либо на нескольких (больше одного) компьютерах, соединенных для поддержания связи. Более того, каждый из компонентов Системы 100 поставки контента может содержать одно или несколько выполняемых на компьютерах приложений в сочетании с одним или несколькими компьютерными устройствами. Термин «соединенный для поддержания связи» должен включать соединение любого типа - проводное или беспроводное, по которому можно передавать данные. Термин «соединенный для поддержания связи» должен включать соединения между устройствами и/или программами в одном компьютере или между устройствами и/или программами на разных компьютерах.
Хотя на фиг.1 компоненты Системы 100 поставки контента показаны в виде раздельных модулей, любой обычный специалист в данной области должен понимать, что эти модули (104-110) могут быть соединены и/или интегрированы в одном или нескольких устройствах.
Система 100 поставки контента и составляющие ее модули 104-110 здесь описаны со ссылками на фиг.1 и 2. Согласно одному из вариантов настоящего изобретения пользователь, которому нужно выполнить «желаемую задачу», использует телефонное устройство 102 для генерации «запроса 114 на установление соединения». Термин «желаемая задача» должен включать, не ограничиваясь этим, одно или несколько заданий, событий, запросов на получение информации, операций и действий, которые пользователь желает выполнить, исполнить, реализовать или на которые хочет воздействовать. Результатом выполнения желаемой задачи является поставка контента пользователю и или от имени пользователя, как подробно описано ниже. Примеры желаемых задач включают, но не ограничиваются: 1) запрос на получение любой информации, например состояния авиарейса или счета спортивных состязаний; 2) размещение заказа на покупку; 3) инициирование интерактивной игры; 4) активизация системы (например, системы охраны или работы автоматической двери гаража); 5) обновление данных в базе данных или на веб-сайте и т.п.
Термин «запрос на установление соединения» должен включать запрос на установление телефонного соединения с ресурсом-адресатом (т.е. телефонное устройство-адресат). Запрос 114 на установление соединения, переданный телефонным устройством 102, содержит «информацию запроса на установление соединения», включающую, но не ограничивающуюся, «вызывающий номер» и «сигнальный номер». Термин «вызывающий номер» должен включать, но не ограничиваясь этим, телефонный номер, ассоциированный с телефонным устройством и/или пользователем и позволяющий идентифицировать телефонное устройство и/или пользователя, передавшего запрос 114 на установление соединения. Термин «сигнальный номер» должен включать, но не ограничиваясь этим, телефонный номер, ассоциированный с одной или несколькими задачами и позволяющий идентифицировать одну или несколько желаемых задач.
Любой обычный специалист в данной области должен понимать, что вызывающий номер и сигнальный номер могут содержать произвольную комбинацию цифр, букв и/или символов (например, # и *), подходящих для использования в обычной сети телефонной связи.
Как показано на фиг.1 и 2, шаг 202, запрос 114 на установление соединения передает телефонное устройство 102 и принимает модуль 104 выделения информации из запроса на установление соединения. На шаге 204 этот модуль 104 выделения информации из запроса на установление соединения выделяет из этого запроса, по меньшей мере, часть информации запроса на установление соединения. Далее модуль 104 выделения информации из запроса на установление соединения передает эту выделенную информацию, которая может представлять собой всю или часть информации из запроса на установление соединения, модулю 110 идентификации желаемой задачи для выполнения шага 208, как описано ниже. Любой обычный специалист в данной области должен понимать, что выделенная информация может быть направлена модулю 110 идентификации желаемой задачи непосредственно или через модуль 106 аннулирования соединения, как показано на фиг.1.
Любой обычный специалист в данной области должен понимать, что модуль 104 выделения информации из запроса на установление соединения может быть конфигурирован для выделения информации в соответствии с известными способами и системами, подходящими для использования согласно настоящему изобретению, включая, но не ограничиваясь этим, способ/систему автоматического определения номера (ANI) (т.е. для выделения вызывающего номера) и/или функцию определения набранного номера (DNIS) (т.е. для выделения сигнального номера).
На шаге 206 модуль 106 аннулирования соединения принимает и «аннулирует» запрос 114 на установление соединения. Любой обычный специалист в данной области должен понимать, что запрос 114 на установление соединения может быть аннулирован посредством любого подходящего известного способа и/или системы. Например, если модуль 106 аннулирования соединения выполняет протокол инициирования сеанса (SIP), этот модуль 106 аннулирования соединения может аннулировать запрос 114 на установление соединения путем передачи сообщения «ЗАНЯТО» (BUSY) с использованием этого протокола (SIP). В альтернативном варианте модуль 106 аннулирования соединения может пассивно аннулировать запрос 114 на установление соединения, просто не приняв или не распознав этого запроса 114 на установление соединения. В случае непринятия запроса 114 на установление соединения пользователь может услышать непрерывный гудок, служащий извещением для пользователя, что рассматриваемое соединение установлено не будет. Соответственно, пользователь может предпринять необходимые шаги для завершения этого запроса 114 на установление соединения.
Аннулируя запрос 114 на установление соединения, модуль 106 аннулирования соединения завершает вызов, инициированный телефонным устройством 102. В результате телефонное соединение между вызывающим номером (телефонное устройство 102) и сигнальным номером установлено не будет. Любой обычный специалист в данной области должен понимать, что шаг 204 и шаг 206 могут быть выполнены в любой последовательности один относительно другого и могут быть выполнены последовательно или параллельно один другому.
Период времени от передачи телефонным устройством запроса на установление соединения (т.е. передача вызова) до аннулирования запроса на шаге 206 именуется здесь «этапом инициирования» вызова. В обычных телефонных системах предпочтительно провайдеры телефонной связи обычно осуществляют этап инициирования вызова бесплатно. Системы и способы согласно настоящему изобретению извлекают выгоду из этого «бесплатного» периода таким образом, что запрос на выполнение желаемой задачи может быть передан пользователем бесплатно. Следовательно, при условии, что в большинстве случаев запрос 114 на установление соединения оказывается аннулирован прежде установления соединения, телефонному устройству 102, инициировавшему запрос на установление соединения, не будет выставлен счет на оплату запуска желаемой задачи.
Вслед за аннулированием запроса вызова или параллельно ему на шаге 206 модуль 110 идентификации желаемой задачи выполняет идентификацию такой желаемой задачи на шаге 208. Этот модуль 110 идентификации желаемой задачи идентифицирует желаемую задачу на основе выделенной информации запроса на установление соединения. Согласно варианту настоящего изобретения модуль 110 идентификации желаемой задачи соединен для поддержания связи с базой данных, конфигурированной для хранения информации, относящейся к идентификации желаемой задачи, например несколько «профилей» и «ассоциаций», описанных ниже.
Согласно одному из вариантов настоящего изобретения «профиль» может быть установлен и записан в базе данных, связывающей одну или несколько желаемых задач с конкретным пользователем или телефонным устройством 102. «Ассоциация» может быть установлена и записана в базе данных, связывающей или соотносящей одну или несколько желаемых задач с вызывающим номером, сигнальным номером и/или их сочетанием.
Например, пользователь, называемый здесь Джон Доу, может установить «профиль», предполагающий, что при передаче этим пользователем запроса на установление соединения от любого из своих телефонных устройств 102: 1) его мобильного телефона (вызывающий номер 123555-1234) и/или 2) его домашнего телефона (вызывающий номер 123-555-1234)- на любой из сигнальных номеров, ассоциированных с Системой 100 поставки контента согласно настоящему изобретению, этот пользователь хочет узнать текущие цены на десять заранее выбранных пакетов акций (здесь именуемый «портфель Джона Доу»), которые (цены) ему нужно переслать по электронной почте. Выделив вызывающий номер 123-555-1234 из запроса 114 на установление соединения, модуль 110 идентификации желаемой задачи связывает этот номер с профилем Джона Доу и идентифицирует желаемую задачу, ассоциированную с этим профилем (т.е. посылает в ответ текущую цену акций для портфеля Джона Доу).
Согласно одному из вариантов настоящего изобретения модуль 110 идентификации желаемой задачи может быть конфигурирован для идентификации одной или нескольких желаемых задач с использованием хеш-таблицы или аналогичной структуры данных, так что эта хеш-таблица конфигурирована для хранения профилей, ассоциаций или другой информации, относящейся к идентификации желаемой задачи.
В следующем разделе приведены, со ссылками на расположенную ниже таблицу 1, несколько примеров идентификации желаемой задачи на основе информации, выделенной из запроса на установление соединения. В этих примерах вызывающий и сигнальный номера представлены по следующей стандартной схеме: (код зоны) префикс-линейный номер. Как показано в таблице 1, модуль 104 выделения информации из запроса на установление соединения принимает три разных запроса на установление соединения (запросы на установление соединения №1-3). Для запроса на установление соединения №1 модуль 104 выделения информации из запроса на установление соединения выделяет время вызова [3:00:00], вызывающий номер [(999) 555-1234] и сигнальный номер [(999) 555-4321]. Используя выделенную информацию, модуль 104 выделения информации из запроса на установление соединения запрашивает базу данных, определяет ассоциации, относящиеся к сочетанию выделенного вызывающего номера и выделенного сигнального номера, и идентифицирует желаемую задачу(и) (т.е. сообщает текущие время и температуру в Ньюарке, шт.Нью-Джерси).
Во втором примере модуль 104 выделения информации из запроса на установление соединения выделяет время вызова (3:00:30) и сигнальный номер [(999) АВС-4444]. В этом примере сигнальный номер [(999) АВС-4444] ассоциирован с конкретной желаемой задачей, что позволяет модулю 110 идентификации желаемой задачи определить, что пользователя интересует текущее состояние рейса №4444 авиакомпании АВС Airline. Как демонстрирует этот пример, числа, содержащие сигнальный номер, могут быть выбраны таким образом, чтобы эти числа сами по себе имели логическую связь с соответствующей задачей. Как показано здесь, «префиксная» часть сигнального номера "АВС" представляет название авиакомпании, а «линейный номер» из состава сигнального номера представляет номер рейса.
В третьем примере модуль 104 выделения информации из запроса на установление соединения выделяет время вызова (3:01:00), вызывающий номер [(900) 555-7777] и сигнальный номер [(999) 555-8888]. В этом примере модуль 110 идентификации желаемой задачи определяет профиль, относящийся к вызывающему номеру, а уже этот профиль указывает, что запрос на установление соединения, переданный с этого конкретного вызывающего номера на указанный конкретный сигнальный номер, относится к желаемой задаче, сформулированной как сообщение текущего счета в играх всех профессиональных спортивных команд в пределах некоторого географического радиуса вокруг территории, охватываемой кодом зоны «900». Предпочтительно пользователь может заранее установить профиль, чтобы определить любой номер и тип желаемых задач, выполнение которых должно быть запущено посредством одного или нескольких вызывающих номеров, контролируемых этим пользователем.
Таблица 1
Номер запроса на установление соединения
Время вызова
Информация, выделенная из запроса на установление соединения
Желаемая задача (и)
Вызывающий номер
Сигнальный номер
1
03-00-00
(999)555-1234
(999)555-4321
Сообщить текущие время и температуру в Ньюарке, шт.Нью-Джерси
2
03:00:30
N/A.
(999) ABC-4444
Сообщить текущее состояние рейса №4444 авиакомпании АВС Airlines
3
03:01:00
(900)555-7777
(900)555-8888
Сообщить последние данные о счете в играх большинства местных спортивных команд поблизости от зоны с кодом (900)
После идентификации одной или нескольких желаемых задач на шаге 210 модуль 112 поставки генерирует, вызывает, приобретает, получает доступ и/или определяет «контент» 118, ассоциированный с идентифицированной желаемой задачей, и поставляет этот контент 118 пользователю. Этот «контент» может включать, но не ограничиваясь этим, любую информацию, ассоциированную с желаемой задачей. В первом примере, рассмотренном выше в таблице 1, контент, ассоциированный с желаемой задачей, представляет собой значение температуры воздуха в Ньюарке, шт.Нью-Джерси, в день и время приема запроса на установление соединения.
Согласно одному из вариантов настоящего изобретения модуль 112 поставки может быть соединен для поддержания связи с одним или несколькими ресурсами 116, конфигурированными для хранения, генерации, обслуживания, передачи, поставки или предоставления контента 118, ассоциированного с желаемой задачей, этому модулю 112 поставки. Примеры таких ресурсов 116, подходящих для использования согласно настоящему изобретению, включают любых известных провайдеров информации (как в электронном, так и в других видах), например веб-сайты, базы данных, электронные носители записи, книги и т.п. Любой обычный специалист в данной области должен понимать, что модуль 112 поставки может поставлять контент 118 пользователю посредством любых подходящих способов, режимов, систем или процессов связи, включая, но не ограничиваясь этим, электронную почту, веб-почту или другую веб-связь (в совокупности «связь через Интернет»), передачу коротких сообщений (SMS), передачу текстовых сообщений, обычную почту, курьерскую доставку или обратную телефонную связь. Далее отмечено, что контент 118 не обязательно должен быть поставлен именно тому телефонному устройству 102, откуда исходит запрос 114 на установление соединения. Вместо этого контент 118 может быть поставлен непосредственно: 1) самому пользователю (например, доставка пищи (контент) по домашнему адресу пользователя); 2) любому устройству, помимо телефонного устройства 102, передавшего запрос 114 на установление соединения, включая устройство, связанное с пользователем (например, по адресу электронной почты пользователя); и/или 3) устройству, связанному с другим пользователем (например, по телефону «друга» пользователя). Данные о пунктах поставки, например информация об адресе самого пользователя, информация о связанном с пользователем устройстве или информация о «друге» пользователя, могут быть записаны в качестве составной части профиля пользователя.
Во втором примере, рассмотренном выше в таблице 1, модуль 112 поставки может связаться с веб-сайтом авиакомпании АВС airline (ресурс 116) и передать сведения о состоянии рейса 4444 на телефонное устройство 102 пользователя посредством короткого сообщения (SMS).
Модуль поставки 112 может поставить контент 118 через «бесплатную» услугу, такую как передача сообщений (например, сообщений электронной почты, отправлений обычной почты или по телефону), или через платную услугу, например, как передача SMS, когда провайдер телефонной связи взимает плату за передачу SMS. Дополнительная желаемая задача может включать, но не ограничиваться этим, запросы на получение информации от удаленных сетей передачи данных (например, состояние рейсов, котировки акций, счет спортивных соревнований), инициирование интерактивной игры или размещение заказа на покупку. Важно отметить, что, даже если запуск выполнения желаемой задачи может быть бесплатным, пользователю, возможно, все равно придется платить за поставку соответствующего контента. Например, телефонное устройство может вызвать сигнальный номер, запускающий выполнение желаемой задачи получения SMS с информацией о погоде в данной местности. В этом примере телефонное устройство, оплачивающее каждое принятое SMS-сообщение, получит счет на оплату и того сообщения, которое будет получено в рамках выполнения желаемой задачи. Напротив, телефонное устройство может вызвать сигнальный номер, запускающий выполнение желаемой задачи приема электронной почты с информацией о погоде в данной местности. В этом примере акт приема электронной почты с информацией о погоде не приводит к начислению платы.
Согласно одному из вариантов настоящего изобретения желаемая задача или ассоциированный с ней контент могут зависеть от местонахождения, так что при формулировании задачи и/или контента учитывают физическое местонахождение телефонного устройства 102, инициировавшего запрос 114 на установление соединения. Такие зависящие от местонахождения услуги могут быть предоставлены с использованием добавления, интеграции, введения или включения данных системы глобального местоопределения (GPS) или другой информации о местонахождении в информацию запроса на установление соединения. Например, текущее местонахождение телефонного устройства 102 (т.е. информация об этом местонахождении) может быть определено с применением GPS-приложения, работающего в телефонном устройстве 102, и добавлено к информации в запросе на установление соединения. В альтернативном варианте информация о местонахождении может быть получена от ресурса 116 с использованием информации из запроса на установление соединения. Эта информация о местонахождении может быть выделена и использована для идентификации желаемой задачи и относящегося к ней контента. Например, телефонное устройство 102, расположенное в Ньюарке, шт.Нью-Джерси, может инициировать запрос на установление соединения с сигнальным номером (999-555-5555), ассоциированным с общей задачей «сообщения о погоде в данной местности». Затем модуль 110 идентификации желаемой задачи может проанализировать информацию о местонахождении, чтобы определить пункт, для которого нужно передать информацию о погоде. В альтернативном варианте данные о местонахождении пользователя и/или телефонного устройства 102 могут быть закодированы в составе вызывающего номера и/или сигнального номера
Система 100 поставки контента согласно настоящему изобретению может включать в себя компьютерные приложения/программы (т.е. программное обеспечение), составляющие аппаратных средств и/или их сочетания, конфигурированные для работы на сервере телекоммуникационной сети. Система 100 поставки контента может быть установлена, полностью или частично, в узле телекоммуникационной сети, таком, например, как сервер, который может быть ассоциирован с провайдером телефонной связи.
Согласно одному из вариантов настоящего изобретения Система 100 поставки контента может быть конфигурирована для приема нескольких запросов 114 на установление соединения из многочисленных различных источников, включая любые номера других телефонных сетей. Более того, Система 100 поставки контента может быть конфигурирована для приема нескольких запросов 114 на установление соединения из традиционных телефонных сетей (проводных и беспроводных), а также сетей VOIP.
Согласно одному из вариантов настоящего изобретения Система 100 поставки контента может быть конфигурирована в качестве узла сети, соединенного для поддержания связи с частью существующей телефонной сети (здесь компьютер телефонной сети). Система 100 поставки контента может направлять и/или управлять работой и функциями компьютера телефонной сети и передавать компьютеру телефонной сети рекомендации, инструкции и команды, относящиеся к обработке входящих запросов 114 на установление соединения. Эта информация может включать указания адресата, которому следует передать запрос 114 на установление соединения, и способ передачи этой информации. Например, Система 100 поставки контента может инструктировать компьютер телефонной сети, передавать некоторые запросы 114 на установление соединения в Систему 100 поставки контента для дальнейшей обработки или инструктировать компьютер телефонной сети, передать запрос на установление соединения, аннулировать/отбросить запрос или установить соединение в соответствии с запросом. Связь с компьютером телефонной сети и его конфигурирование можно осуществлять через веб-интерфейс или через другой компьютер в этой телекоммуникационной сети.
Согласно одному из вариантов настоящего изобретения Система 100 поставки контента может быть конфигурирована для поставки конкретного контента на основе исключительно сигнального номера и независимо от вызывающего номера. Например, способы и системы согласно настоящему изобретению могут быть конфигурированы для передачи SMS-сообщения, содержащего текущие биржевые котировки Google в ответ на каждый принятый запрос на установление соединения, включающий в себя конкретный сигнальный номер.
Как рассмотрено выше, Система 100 поставки контента может быть реализована в виде компьютерной программы, приложения или апплета, работающего на телефонном устройстве 102. Телефонное устройство 102 может включать графический интерфейс пользователя (GUI), так что пользователь может инициировать запрос на установление соединения посредством взаимодействия с этим GUI (т.е. щелкнув кнопкой на GUI, чтобы ввести команду). Этот GUI и соответствующие «ссылки» могут быть согласно настоящему изобретению ассоциированы с сигнальными номерами, так что взаимодействие с GUI позволяет передать один или несколько запросов 114 на установление соединения, включающих сигнальный номер. Согласно настоящему изобретению пользователю телефонного устройства 102 нет нужды «набирать» сигнальный номер, а вместо этого можно использовать GUI, чтобы инициировать запрос на установление соединения для обработки Системой 100 поставки контента. Рассматриваемый GUI предпочтительно представляет пользователю информацию, позволяющую пользователю выбрать желаемую задачу, не требуя от него определить сигнальный номер, ассоциированный с желаемой задачей.
Согласно одному из вариантов настоящего изобретения Система 100 поставки контента может импортировать или экспортировать список сигнальных номеров для записи при доступе телефонным устройством 102. Эти сигнальные номера могут быть записаны в телефонном устройстве 102 любым подходящим способом, включая, но не ограничиваясь этим, предварительное программирование изготовителем телефонного устройства, динамическое обновление или импорт из Системы 100 поставки контента, ручной ввод пользователем телефонного устройства 102.
Согласно одному из вариантов настоящего изобретения способы и системы в соответствии с настоящим изобретением могут быть реализованы с использованием сочетания элементов и соответствующих функций «приборной стороны» и элементов и соответствующих функций «сетевой стороны», как показано на фиг.3. Элементы приборной стороны содержат телефонное устройство 302, включая сигнальный клиент 304 и апплет 306 телефонного устройства. Элементы сетевой стороны могут быть реализованы с использованием одного компьютера или сервера, управляемого одним объектом, либо сети компьютеров или серверов, управляемых несколькими объектами. Эти элементы сетевой стороны содержат телефонный сервер 308, сервер 310 приложений и сервер 312 сигнализации.
Любой обычный специалист в данной области должен понимать, что варианты способов и систем поставки контента, описанные ниже со ссылками на фиг.3-Х, могут быть реализованы и воплощены посредством модулей и функций Системы 100 поставки контента, описанной со ссылками на фиг.1 и 2.
На фиг.3 показано, как указано выше, приборная сторона (т.е. телефонное устройство 302) содержит сигнальный клиент 304 и апплет 306 телефонного устройства. Сигнальный клиент 304 представляет собой приложение/программу, обеспечивающую функции Системы 100 поставки контента. Сигнальный клиент 304 может быть конфигурирован в виде пассивного (т.е. «слабого клиента») или в виде активного или сложного (т.е. «мощного клиента») устройства. Если телефонное устройство 102 является программируемым (например, мобильный телефон или программируемый SIP-телефон), сигнальный клиент 304 может быть реализован в виде приложения, способного работать на любой подходящей платформе, например Java ME (мобильная версия), двоичная среда выполнения для радиосвязи (Binary Runtime Environment for Wireless (BREW)), Symbian или мобильный Windows. Согласно вариантам настоящего изобретения сигнальный клиент 304 может быть инсталлирован изготовителем телефонного устройства 302, оператором мобильной сети или самим пользователем посредством соответствующих процессов регистрации или инсталляции.
Объекты сетевой стороны могут снабдить сигнального клиента 304 информацией о сигнальных номерах. Эта информация может быть предварительно конфигурирована в сигнальном клиенте 304 при инсталляции последнего или может быть частью программы (или приложения), выполняемой во время работы. Сигнальные номера могут быть предоставлены динамически или посредством периодического обновления (либо по запросу сигнального клиента 304, либо путем принудительной «загрузки» в сигнального клиента 304 со стороны одного или нескольких объектов сетевой стороны). Для передачи сигнальных номеров реализуемому сигнальному клиенту 304 могут быть использованы любые один или несколько подходящих способов. Любой обычный специалист в данной области должен понимать, что и другие подходящие способы могут быть использованы для поддержания группы сигнальных номеров у сигнального клиента 304. Эту группу сигнальных номеров предпочтительно можно сохранять в постоянной памяти (например, флэш-памяти) телефонного устройства 302, чтобы информация сохранялась в телефонном устройстве 302 даже после выключения питания и повторного включения устройства.
Во время работы на программируемом устройстве сигнальный клиент 304 может взаимодействовать с телефонной сетью с использованием телефонного Прикладного программного интерфейса (API), имеющегося в телефонном устройстве 302. Телефонный интерфейс API реализован средой программирования, поддерживаемой в телефонном устройстве 302, например Java ME (мобильная версия), двоичная среда выполнения для радиосвязи (Binary Runtime Environment for Wireless (BREW)), Symbian или мобильный Windows в мобильных телефонах. Сигнальный клиент 304 использует этот интерфейс API для передачи вызовов, для получения извещений о входящих вызовах и для отмены вызовов (как входящих, так и исходящих). Сигнальный клиент 304 может быть конфигурирован для манипуляций, управления, контроля и/или взаимодействия с сигнальными номерами, так что обработка вызовов в адрес других телефонных номеров (т.е. несигнальных номеров) и от них происходит в соответствии с обычными функциями, системами и процессами телефонного устройства 302.
Согласно одному из вариантов настоящего изобретения, когда телефонное устройство 302 является программируемым, оно может содержать апплет 306 телефонного устройства, как показано на фиг.3. Любой обычный специалист в данной области должен понимать, что, если телефонное устройство 302 является непрограммируемым, например обычный аналоговый телефон, апплет 306 телефонного устройства в нем отсутствует. В программируемом устройстве (типа мобильного телефона или программируемого SIP-телефона) апплет 306 телефонного устройства реализован в виде приложения, работающего на подходящей платформе, например Java ME (мобильная версия), (BREW), Symbian или мобильный Windows, имеющийся в телефонном устройстве 302
Апплет 306 телефонного устройства может быть инсталлирован изготовителем телефонного устройства 302, оператором мобильной сети или конечным пользователем посредством соответствующих процессов регистрации или инсталляции. Апплет 306 телефонного устройства может быть также реализован в виде режима поведения сигнального клиента 304 и может быть динамически инсталлирован и активизирован этим сигнальным клиентом 304.
Согласно одному из вариантов настоящего изобретения апплет 306 телефонного устройства может быть создан тем же самым административным органом, что и сигнальный клиент 304, и использовать сигнальный клиент 304 для сигнализации. Несколько апплетов 306 телефонного устройства, созданных независимыми административными органами, могут работать бок о бок, используя сигнальный клиент 304 для сигнализации.
Апплет 306 телефонного устройства отвечает за представление графического интерфейса пользователя (GUI) рассматриваемому пользователю, представление необходимых данных пользователю, управление дисплеем и т.п. Апплет 306 телефонного устройства использует сигнальный клиент 304 для передачи запросов на установление соединения, например, с привлечением алгоритмов интерфейса API или некоторых эквивалентных способов связи в телефонном устройстве 302.
Апплет 306 телефонного устройства конфигурирован для идентификации подходящего сигнального номера, ассоциированного с желаемой задачей. Согласно вариантам настоящего изобретения ассоциации сигнальный номер - желаемая задача могут быть предварительно конфигурированы в апплете 306 телефонного устройства во время его инсталляции, переданы апплету 306 телефонного устройства при начале его работы и/или могут быть сообщены динамически или периодически обновляться (либо по запросу апплета 306 телефонного устройства, либо путем принудительной «загрузки» в апплет 306 телефонного устройства со стороны одного или нескольких объектов сетевой стороны).
Как указано выше, сетевая сторона среды поставки контента согласно настоящему изобретению содержит телефонный сервер 308, сервер 310 приложений и сервер 312 сигнализации. Телефонный сервер 308 содержит расположенный на сетевой стороне компьютерный элемент, принимающий «физические» телекоммуникационные сообщения в соответствии со способами и системами согласно настоящему изобретению из обычной телефонной сети. Телефонный сервер 308 может быть физически соединен с телефонной сетью (например, через соединение, использующее нагрузку сигнализационной линии SS7) или может представлять «логическую» линию связи (например, через сеть Интернет-протокола (IP) или эквивалентную сеть передачи данных). Телефонный сервер 308 может быть также интегрирован в системы и способы согласно настоящему изобретению путем реализации внутри существующего оборудования передачи телефонных сигналов. Такой телефонный сервер 308 может быть реализован на «вызывающей» или «вызываемой» стороне телефонной сети. Более того, этот телефонный сервер 308 может быть реализован оператором службы передачи сигналов вне телефонной сети. Такой телефонный сервер 308 может быть организован на одном компьютере или эквивалентно на группе компьютеров, соединенных один с другим посредством сети связи, например, для обеспечения резервирования, переключения на резервные мощности, отказоустойчивости и возможности наращивания и т.п.
Телефонный сервер 308 конфигурирован для передачи и приема запросов на установление соединения и вызовов от нескольких телефонных устройств в телефонной сети и может охватывать несколько телефонных сетей. Согласно одному из вариантов настоящего изобретения телефонный сервер 308 реализован в качестве сервера приложений VOIP (например, сервера приложений протокола инициирования сеанса (SIP)), сервера приложений открытых систем Parlay/OSA, сервера приложений IN/WIN (интеллектуальная сеть связи/интеллектуальная сеть радиосвязи) или сервера, организованного с использованием любого другого интерфейса API для программирования телекоммуникационного оборудования.
Телефонный сервер 308 конфигурирован для приема запросов на установление соединения для входящих вызовов, направленных, по меньшей мере, части сигнальных номеров. Согласно одному из вариантов настоящего изобретения сигнальные номера, которые должен принимать телефонный сервер 308, предоставляют, когда телефонный сервер 308 соединен с телефонной сетью, чтобы эта телефонная сеть могла правильно направлять или поставлять такие входящие вызовы телефонному серверу 308.
Например, администратор сервера 312 сигнализации может создать аккаунт для администратора телефонного сервера 308. Сервер 312 сигнализации предоставляет административный интерфейс (например, веб-интерфейс), позволяющий администратору телефонного сервера 308 поддерживать работу с группой номеров, за которые отвечает этот телефонный сервер 308 (т.е. сигнальные номера). Администратор телефонного сервера 308 использует этот интерфейс для добавления, просмотра, обновления и удаления сигнальных номеров, обслуживаемых телефонным сервером 308. Администратор телефонного сервера 308 может также использовать этот интерфейс, чтобы определить порядок связи между сервером 312 сигнализации и телефонным сервером 308. Например, администратор может задать адрес URL, по которому сервер 312 сигнализации может передавать директивы для обработки телефонным сервером 308. Любой обычный специалист в данной области должен понимать, что телефонный сервер 308 может быть конфигурирован для поддержки других известных способов связи с сервером 312 сигнализации.
Телефонный сервер 308 может быть реализован в виде одного сервера или в виде группы серверов, возможно даже в нескольких административных областях. Этот телефонный сервер 308 может обслуживать входящие вызовы для всех или только для подгруппы сигнальных номеров. Например, телефонная сеть сообщает телефонному серверу 308 о входящем вызове. В SIP-варианте, например, о поступлении входящего запроса на установление соединения/вызова извещает приход сообщения INVITE по протоколу SIP. Телефонный сервер 308 сообщает серверу 312 сигнализации об этом запросе на установление соединения и предоставляет этому серверу 312 сигнализации информацию из запроса на установление соединения. Это может быть сделано, например, путем передачи сообщения по протоколу HTTP серверу 312 сигнализации. Телефонный сервер 308 может использовать и другие известные способы, чтобы известить сервер 312 сигнализации о запросе на установление соединения.
Телефонный сервер 308 аннулирует запрос на установление соединения прежде, чем это соединение будет установлено, так что никакая плата с вызывающей стороны не взимается. Например, в SIP-варианте телефонный сервер 308 может аннулировать запрос на установление соединения путем передачи сообщения BUSY по SIP-протоколу. Могут быть также реализованы другие способы аннулирования вызова, позволяющие запросу на установление соединения продолжать действовать («звенеть»), пока его не отменит само телефонное устройство 302, или передающие запрос на установление соединения другому серверу, который в свою очередь не допускает установления соединения.
Согласно одному из вариантов настоящего изобретения телефонный сервер 308 конфигурирован для передачи входящих запросов на установление соединения по директивам сервера 312 сигнализации. Например, сервер 312 сигнализации может попросить телефонный сервер 308 переадресовать запрос на установление соединения другому объекту, например серверу мультимедиа, который может воспроизвести сигнал оповещения или представить данные в слышимой звуковой форме. Директива переадресации содержит информацию, например, о телефонном номере, куда нужно переадресовать запрос на установление соединения, и другую информацию, которая может быть полезна для телефонного сервера 308. Например, в SIP-варианте телефонный сервер 308 может переадресовать рассматриваемый запрос на установление соединения путем выполнения процедуры REDIRECT с использованием SIP-протокола или другим подобным способом переадресации запроса на установление соединения.
Согласно одному из вариантов настоящего изобретения телефонный сервер 308 конфигурирован для передачи вызова в адрес вызываемой стороны в соответствии с директивами, принимаемыми от сервера 312 сигнализации. Этот телефонный сервер 308 может принимать директивы от сервера 312 сигнализации в виде сообщений протокола HTTP или с использованием другого подходящего способа связи. Директива может содержать сигнальный номер, вызывающий номер и относящуюся к делу информацию, которая может быть полезна телефонному серверу 308. Телефонный сервер 308 конфигурирован для аннулирования любых вызовов, которые он подает, по директивам сервера 312 сигнализации. Директива для аннулирования вызова может быть передана вместе с директивой передать вызов (например, запрос на установление соединения с сигнальным номером 12345 может включать директиву аннулировать или завершить этот вызов через 5 с, если он уже не был аннулирован/отменен к этому моменту).
Согласно вариантам настоящего изобретения сетевая сторона среды поставки контента содержит сервер 310 приложений, компьютер, конфигурированный для выполнения приложений в соответствии со способами и системами поставки контента в рамках настоящего изобретения. Сервер 310 приложений может быть реализован с использованием стандартных языков программирования, например С, Java, PHP, Ruby в конфигурации для серверной среды. Сервер 310 приложений может быть сопряжен с одним или несколькими серверами 312 сигнализации, включая те серверы, которые располагаются не в одной административной области с сервером приложений. Например, сервером 310 приложений может управлять служба сводок погоды, а сервером 312 сигнализации может управлять отдельный оператор службы передачи сигналов. Сервер 310 приложений конфигурирован также для связи с апплетом 306 телефонного устройства.
Сервер 312 сигнализации представляет собой элемент сетевой стороны, конфигурированный для приема и обработки «логических» запросов на установление соединения, информации запросов на установление соединения и/или инструкций от телефонного сервера 308 в соответствии с принципами систем и способов поставки контента согласно настоящему изобретению. Сервер 312 сигнализации обрабатывает информацию запросов на установления соединения, взаимодействует с сервером 310 приложений для проведения специфичных для конкретных приложений логических операций и действий и/или, при наличии соответствующих инструкций от сервера 310 приложений, сервер 312 сигнализации может дать команду телефонному серверу 308 аннулировать/передать/переадресовать/отменить вызов в сторону телефонного устройства 302 и поставить этому устройству контент. Сервер 312 сигнализации может быть также конфигурирован для передачи других данных (например, информации запроса на установление соединения, такой как сигнальный номер(а) и т.п.) телефонному устройству 302.
Сервер 312 сигнализации может представлять собой сочетание аппаратных/программных средств, реализованное с использованием обычного программирования/платформ, поддерживаемых в типичной среде компьютер/сервер, например С, Java, PHP, Ruby и т.п. Сервер 312 сигнализации может быть для поддержания связи соединен и иметь сопряжение с одними или несколькими телефонными серверами 308, серверами 310 приложений и/или сигнальными клиентами 304 из одной или нескольких сетей или административных областей. Сервер 312 сигнализации может быть реализован в виде одного физического компьютера или в виде группы компьютеров, соединенных в сеть, для обеспечения резервирования, переключения на резервные мощности, отказоустойчивости и возможности наращивания.
Администратор сервера 312 сигнализации может быть уполномочен на создание аккаунта для каждого администратора телефонных серверов 308 и серверов 310 приложений, чтобы позволить этим администраторам взаимодействовать с системой поставки контента согласно настоящему изобретению. Для этого администратор сервера 312 сигнализации предоставляет администраторам телефонных серверов 308 и серверов 310 приложений информацию, необходимую для конфигурирования телефонного сервера 308 и сервера 310 приложений для связи с сервером 312 сигнализации, такой как, например, URL и/или описания программного интерфейса, параметры доступа (учетные данные) и т.п.
Согласно одному из вариантов настоящего изобретения сервер 312 сигнализации конфигурирован для приема информации запроса на установление соединения от телефонного сервера 308 в любом подходящем формате связи (например, сообщение HTTP-протокола). Как указано выше, информация запроса на установление соединения может содержать вызывающий номер, сигнальный номер и другую относящуюся к этому информацию. При приеме информации запроса на установление соединения от телефонного сервера 308 сервер 312 сигнализации создает событие апплета, описанное дескриптором апплета, если таковое событие не существует уже для рассматриваемого запроса на установление соединения и/или желаемой задачи. «Событие» представляет собой структуру данных, содержащую рабочие данные, необходимые для поддержания состояния и для выполнения желаемой задачи. Здесь важно то, что в одно и то же время могут существовать несколько событий апплета, использующих один и тот же дескриптор апплета, так что каждое событие представляет взаимодействие с отдельным запросом на установление соединения.
Согласно одному из вариантов настоящего изобретения сервер 312 сигнализации может передавать инструкции или директивы телефонному серверу 308 для переадресовки соединения, передачи вызова на/от сигнального номера или аннулирования/отмены запроса на установление соединения. Сервер 312 сигнализации конфигурирован для поддержания списка сигнальных номеров и соответствующих ассоциаций. Сервер 312 сигнализации может предоставить административный интерфейс, позволяющий одному или нескольким администраторам телефонных серверов 308 поддерживать возможность просмотра, модификации, доступа и/или изменения сигнальных номеров, за которые отвечает телефонный сервер 308.
Согласно одному из вариантов настоящего изобретения сервер 312 сигнализации отвечает за передачу одного или нескольких сигнальных номеров сигнальному клиенту 304. Эта информация может быть передана сигнальному клиенту 304, например, на этапе инсталляции или в момент первоначального запуска сигнального клиента 304. Эта информация может быть передана сигнальному клиенту 304, когда он работает первый раз. Сигнальные номера и относящаяся к ним информация могут передаваться сигнальному клиенту 304 динамически и периодически обновляться сервером 312 сигнализации. Сигнальные номера могут быть переданы сигнальному клиенту 304 посредством SMS в виде полезной нагрузки этих сообщений, посредством сообщения, которое прикажет сигнальному клиенту 304 установить соединение для передачи данных, чтобы выбрать относящиеся к делу данные, другими обычными способами передачи данных или посредством сочетания приведенных выше способов.
Согласно одному из вариантов настоящего изобретения сервер 312 сигнализации может опубликовать группу сигнальных номеров либо непосредственно, либо через посредство третьей стороны. В этом случае пользователи могут загрузить эти доступные сигнальные номера в списки контактов своих телефонов, что особенно удобно для непрограммируемых телефонных устройств 302 или для телефонных устройств 302, на которых сигнальный клиент 304 не установлен.
Администратор сервера 310 приложений создает дескрипторы апплета и загружает их в сервер 312 сигнализации. Термин «дескриптор апплета» ("Applet Descriptor") должен включать, но не ограничиваясь этим, приложение, которое может выполняться в рамках выполнения другой программы. Дескриптор апплета может быть конфигурирован в качестве сценария для сервера 312 сигнализации, который этот сервер выполняет от имени сервера 310 приложений. Дескрипторы апплета позволяют серверу 312 сигнализации ввести специфичную для сервера приложений информацию и/или режим в информацию запроса на установление соединения и/или в создание дескрипторов приложений, что представляет повышенную ценность для пользователя.
Дескриптор апплета содержит вызывающий номер, сигнальный номер, код операции телефона, представляющий инструкции телефонному серверу 308 относительно обработки запроса на установление соединения (т.е. «ОТМЕНИТЬ» (CANCEL), «УСТАНОВИТЬ-ОТМЕНИТЬ» (COMPLETE-CANCEL) и т.п.), информацию, относящуюся к самой желаемой задаче, и/или информацию, относящуюся к контенту, ассоциированному с этой желаемой задачей (т.е. информацию, идентифицирующую подходящий Ресурс, ассоциированный с контентом, который должен быть поставлен пользователю). Код операции телефона определяет, что нужно делать с входящим вызовом (несущим запрос на установление соединения), а действие приложения обычно определяет URL, указывающий на Ресурс 116, управляемый администратором сервера 310 приложений (так что сервер 310 приложений может выполнять произвольную программу по его выбору). Сервер 310 приложений посылает соответствующий документ или инструкции, именуемые «дескриптор сигнализации», серверу 312 сигнализации, так что эти инструкции указывают серверу 312, что нужно делать.
Ниже приведен пример дескриптора апплета;
<applet id="1"name="simpleDataGetter">
<catchSignal
calledPattern="16005551212"
appAction="getData"
telephonyAction="CANCEL"
appURL=http://appserver/sendMessage
appData="CALLER,CALLED,appAction"
/>
<sendSignal
callerPattern="16005551212" appAction="sendData"
/>
</applet>
здесь "catchSignal" обозначает входящий запрос на установление соединения; "calledPatterm" обозначает сигнальный номер; "telephonyAction" обозначает требуемые операции над запросом на установление соединения; "appURL" описывает желаемую задачу; а "sendSignal" описывает поставку контента (т.е. исходящую связь). Во время работы, когда сервер 312 сигнализации получает от телефонного сервера 308 сигнальный номер, совпадающий с заданной структурой (определяемой величиной переменной "calledPattem", в этом примере - 16005551212), он дает команду телефонному серверу 308 отменить вызов (на основе кода операции телефона CANCEL) и затем обращается к ресурсу и ассоциированному контенту, обозначенному URL приложения (appURL). Далее сервер 312 сигнализации передает серверу 310 приложений сообщение, включающее данные приложения (в соответствии со спецификациями appData), содержащие вызывающий номер (обозначенный ключевым словом CALLER), сигнальный номер (обозначенный ключевым словом CALLED) и операцию приложения (обозначенную компонентом "appAction"). Сервер 310 приложений может затем использовать эти данные как положено. Например, сервер 310 приложений может поискать вызывающий номер в своей внутренней базе данных, вызвать оттуда соответствующий адрес электронной почты и передать сообщение по этому электронному адресу. В другом примере сервер 310 приложений может использовать этот вызывающий номер, передать его в службу, которая идентифицирует его в качестве мобильного номера, и послать SMS на этот вызывающий номер. Затем сервер 312 сигнализации просматривает спецификации параметра "sendSignal", чтобы определить подробности, относящиеся к поставке указанного контента.
Сервер 310 приложений реагирует на прием желаемой задачи (т.е. доступ appURL) посредством дескриптора сигнализации. Этот дескриптор сигнализации представляет собой сценарий для сервера 312 сигнализации, конфигурированный с целью проинструктировать этот сервер 312 сигнализации в случае необходимости выполнения каких-либо последующих действий. Дескриптор сигнализации может иметь форму простого текстового документа, расширенного XML-документа или другую подходящую форму файла/программы. Дескриптор сигнализации может содержать любую информацию, относящуюся к связи, например указание желаемой задачи (т.е. требуемое действие) и данные, которые могут потребоваться при выполнении желаемой задачи.
Далее приведен пример дескриптора сигнализации:
<signal>
<dataAction payload="some data for User Applet"/> </signal>
Приведенный выше дескриптор сигнализации сообщает серверу 312 сигнализации, что сервер 310 приложений требует передать данные апплету 306 телефонного устройства (на основе команды "dataAction"). Это позволит серверу 310 приложений передать данные (специфицированные параметром "payload") апплету 306 телефонного устройства посредством совмещенной обратной передачи по каналу, который сервер 312 сигнализации использует для связи с сигнальным клиентом 304.
Ниже приведен другой пример дескриптора сигнализации:
<signal>
<noAction/> </signal>
В этом примере дескриптор сигнализации дает серверу 312 сигнализации команду ничего не предпринимать (на основе команды "noAction"). Это может быть использовано в том случае, когда делать ничего не нужно, и обычно применяется в ситуации, когда запрос на установление соединения уже был аннулирован/отменен.
Еще один пример дескриптора сигнализации:
<signal>
<transferAction
transferNumber="19175551212"
/>
</signal>
В этом примере дескриптор сигнализации дает серверу 312 сигнализации команду переадресовать запрос на установление соединения на сигнальный номер (на основе команды "transferAction"), а сам этот целевой сигнальный номер задан значением параметра transferNumber.
Другой пример дескриптора сигнализации:
<signal>
<signalAction
toNumber="19081234567"fromNumber="19175551212"
/>
</signal>
В этом примере дескриптор сигнализации дает серверу 312 сигнализации команду поставить контент (на основе команды "signalAction") по телефонному номеру, указанному значением параметра "toNumber", с номера, указанного значением параметра "fromNumber". Здесь следует отметить, что параметр "fromNumber" был сначала определен в дескрипторе апплета "sendSignal", т.е. он обязан совпадать с параметром "callerPattern".
Еще один пример дескриптора сигнализации выглядит так:
<signal>
<endAction/> </signal>
и указывает для сервера 312 сигнализации окончание последовательности взаимодействия (на основе операции " endAction").
Отметим, что реальный синтаксис дескриптора апплета и дескриптора сигнализации существенным не является. Эти описания могут быть выражены самыми разными способами и на самых разных языках программирования, единственно важным здесь является то, чтобы сервер 310 приложений был способен определить для сервера 312 сигнализации подробности запроса на установление соединения, включая номера, используемые приложением для приема и передачи сообщений, и то, как сервер 310 приложений участвует в обработке принимаемых сообщений. Согласно одному из вариантов настоящего изобретения сервер 310 приложений может при приеме запроса на установление соединения выполнять произвольные логические функции с использованием данных, переданных ему сервером 312 сигнализации, вместе с любыми другими данными, к которым сервер 310 приложений имеет доступ, и затем может дать серверу 312 сигнализации указание выполнить определенные действия с использованием данных, которые сервер 310 приложений передал серверу 312 сигнализации. В альтернативном варианте сервер 310 приложений может спонтанно дать серверу 312 сигнализации указание выполнить определенные действия (например, поставить контент).
Нет никаких ограничений на объем информации, который может быть передан между сервером 310 приложений и сервером 312 сигнализации. Например, дескриптор апплета может содержать несколько спецификаций «ловушек» для перехвата различных запросов на установление соединения, и соответственно, дескриптор сигнализации может содержать указания нескольких вариантов операций. При обмене данными между сервером 310 приложений и сервером 312 сигнализации может быть использован идентификатор сеанса или "cookie", чтобы выполняемое приложение могло постоянно отслеживать состояние взаимодействия при обмене данными, относящимися к нескольким запросам на установление соединения. Аналогично, сервер 312 сигнализации и сервер 310 приложений могут передавать больше данных с использованием любого эквивалентного механизма обмена данными.
Далее приведен пример дескриптора апплета, относящегося к приложению для голосования, используемому пользователем системы, и способов поставки контента согласно настоящему изобретению. В этом примере дескриптор апплета выглядит так:
<applet id="2" name="voteCounter">
<catchSignal
calledPattern="16005551213"
appAction="yesVote"
telephony Action="CANCEL"
appURL="http://appserver/countVote"
appData="CALLER,CALLED,app Action"
/>
<catchSignal
calledPattern="16005551214"
appAction="noVote"
telephonyAction="CANCEL"
appURL="http://appserver/countVote"
appData="CALLER,CALLED,appAction"
/>
</applet>
В этом примере дескриптор апплета описывает апплет, использующий два телефонных номера - один для фиксации голосов «да» ("yes") и один для фиксации голосов «нет» ("по"), а операция "appAction" представляет символическое имя для работы апплета. Сервер 312 сигнализации обращается к appURL, чтобы сервер 310 приложений произвел необходимые действия для выполнения желаемой задачи. Сервер 310 приложений регистрирует голос пользователя/звонившего (с использованием либо значения параметра appAction, либо сигнального номера).
Далее приведен пример дескриптора апплета, относящегося к игре в «крестики-нолики» ("Tic Tac Toe") между пользователями системы, и способов поставки контента согласно настоящему изобретению. В этом примере дескриптор апплета выглядит так:
=
<applet id"3"name="ticTacToeGame">
<catchSignal
calledPattern="16005551310"
appAction="startGame"
telephonyAction="CANCEL"
appURL="http://appserver/startGame"
appData="CALLER,ALLED,SESS10N,appAction"
session="START"
/>
<catchSignal
calledPattern="1600555131[1-9]"
appAction="gameMove"
telephony Action="CANCEL"
appURL=http://appserver/makeMove
appData="CALLER,CALLED,SESSION,appAction"
/>
<catchSignal
calledPattern="16005551320"
appAction-"endGame"
telephonyAction="CANCEL"
appURL=http://appserver/endGame
appData="CALLER,CALLED,SESSlON,appAction"
session="END"
/>
<sendSignal
callerPattern="16005551310"
appAction="startGame"
/>
<sendSignal
callerPattern="1600555131[1-9]"
appAction="gameMove"
/>
<sendSignal
callerPattern="16005551320"
appAction="endGame"
/>
</applet>
Дескриптор апплета, приведенный выше, описывает апплет, использующий одиннадцать телефонных номеров: один - для начала игры в «крестики-нолики», девять - для приема ходов и один - для окончания игры, где "appAction" - это символическое имя действия апплета. Этот дескриптор апплета дает также инструкции для передачи запросов на установление соединения с использованием одиннадцати телефонных номеров для сигналов начала игры, игровых ходов и окончания игры. Сервер 312 сигнализации обращается к "appURL", чтобы сервер 310 приложений выполнил нужное действие. Сервер 310 приложений регистрирует игровой ход, принятый от первого игрока/вызывающего (на основе сигнального или, в этом случае, «вызываемого» номера) и сообщает об этом серверу 312 сигнализации, чтобы перейти к приему хода от второго игрока/вызывающего (посредством соответствующего дескриптора сигнализации).
Сервер 312 сигнализации начинает «сеанс», когда получит сигнал "startGame", и передает идентификатор сеанса серверу 310 приложений. Сервер 310 приложений использует этот идентификатор сеанса, чтобы отслеживать игру среди нескольких сигналов. Сервер 312 сигнализации может завершить «сеанс», когда получит сигнал "endgame".
Согласно одному из вариантов настоящего изобретения сервер 312 сигнализации отвечает за поддержание группы активных апплетов 306 пользователей на основе группы активных дескрипторов апплета, как подробно описано ниже. Он создает административный интерфейс, позволяющий администратору сервера 310 приложений поддерживать набор дескрипторов апплета, за которые отвечает этот сервер 310 приложений. Сервер 312 сигнализации конфигурирован для сопряжения с одним или несколькими серверами 310 приложений, так что активные дескрипторы апплета всех серверов 310 приложений, с которыми связан этот сервер 312 сигнализации, составляют группу активных дескрипторов апплета этого сервера 312 сигнализации.
Сервер 312 сигнализации конфигурирован для передачи информации об активных дескрипторах апплета сигнальному клиенту 304. Эта информация может быть передана сигнальному клиенту 304 в ходе процесса инсталляции (т.е. когда инсталлируют этого сигнального клиента 304 или когда инсталлируют апплет 306 телефонного устройства) или передана сигнальному клиенту 304, когда он работает первый раз. Любой обычный специалист в данной области должен понимать, что эта информация может динамически передаваться сигнальному клиенту 304 и периодически обновляться сервером 312 сигнализации. Активные дескрипторы апплета могут быть переданы сигнальному клиенту 304 посредством любого подходящего канала или способа связи, такого как, например, в составе полезной нагрузки SMS-сообщения или в виде сообщения с командой сигнальному клиенту 304 установить соединение передачи данных, чтобы выбрать соответствующую информацию. Любой обычный специалист в данной области должен понимать, что любое сочетание этих способов с любыми другими подходящими способами может быть использовано для передачи этих данных сигнальному клиенту 304.
Информацию дескриптора апплета, переданную сигнальному клиенту 304 и апплету 306 телефонного устройства сервером 312 сигнализации, выделяют из этого дескриптора апплета. Эта информация дескриптора апплета может содержать информацию запроса на установление соединения, включая, например, вызывающий номер (т.е. информация "callerPattem"), сигнальный номер (т.е. информация "calledPattern") и информацию об ожидаемой задаче (т.е. данные "appAction") из спецификации "catchSignal" и спецификации "sendSignal". Эта информация предоставляет сигнальному клиенту 304 и апплету 306 телефонного устройства данные о запросах на установление соединений, необходимых для реализации желаемой задачи и поставки связанного с ней контента. Такая информация дескриптора апплета может быть использована апплетом 306 телефонного устройства для представления пользователю соответствующего интерфейса пользователя и дает данные о подлежащей выполнению желаемой задач(ах), когда пользователь или приложение запускает конкретное взаимодействие (т.е. через взаимодействие с интерфейсом пользователя, например щелчок по иконке).
Когда сервер 312 сигнализации получит от сервера 310 приложений дескриптор сигнализации с командой "endAction", например:
<signal>
<endAction/>
</signal>
Сервер 312 сигнализации завершает событие апплета и очищает соответствующие структуры данных. В некоторых вариантах этот сервер 312 сигнализации может дать команду соответствующему сигнальному клиенту 304 закончить соответствующий апплет 306 телефонного устройства в телефонном устройстве 302.
Согласно одному из вариантов настоящего изобретения сигнальный клиент 304 может выполнять одну или несколько функций, которые требуют сохранения активного состояния, вследствие чего устанавливают «сеанс» между телефонным устройством 302 и телефонным сервером 308, сервером 310 приложений и/или сервером 312 сигнализации. В таком варианте сигнальный клиент 304 конфигурируют для записи информации о предшествующих взаимодействиях с элементами со стороны сети, что позволяет в дальнейшем использовать во время связи эту информацию предыстории. Например, сигнальный клиент 304 может получить информацию, которую он, возможно, не сумеет обработать в данное время, однако при сохранении активного состояния соответствующий апплет может обратиться к этой информации или запросить ее повторную передачу, когда обработка может начаться. Такая способность сохранять состояние может быть также использована для выполнения желаемых задач, которые требуют ряда взаимодействий между сигнальным клиентом 304 и элементами со стороны сети. В некоторых вариантах настоящего изобретения состояние телефонного устройства 302 можно сохранять независимо от того, включено это телефонное устройство 302 или нет. Например, сигнальный клиент 304 может сохранить информацию, которая поступила, пока пользователь разговаривал, и которая не может быть обработана, поскольку телефонное устройство 302 не поддерживает использование приложений во время разговора.
Согласно одному из вариантов настоящего изобретения сигнальный клиент 304 может поддерживать совместно используемый контекст при взаимодействии с объектами со стороны сети. Эта информация может быть предварительно конфигурирована в сигнальном клиенте 304 во время инсталляции. В альтернативных вариантах эта информация может быть предоставлена сигнальному клиенту 304 во время работы или может быть передана динамически или посредством периодического обновления (либо по запросу сигнального клиента 304, либо путем принудительной «загрузки» в сигнального клиента 304 со стороны одного или нескольких элементов сетевой стороны).
Как указано выше, дескрипторы апплета описывают и ограничивают взаимодействие в направлении от сервера 312 сигнализации к серверу 310 приложений. Более того, сервер 310 приложений генерирует дескрипторы сигнализации, которые описывают и ограничивают взаимодействие в направлении от сервера 310 приложений к серверу 312 сигнализации. Согласно одному из вариантов настоящего изобретения сервер 312 сигнализации может быть конфигурирован для поддержки использования «символических сигнальных номеров» (SSN) для передачи информации, относящейся к запросу на установление соединения. В соответствии с этим соглашением об укороченных номерах, такой же объем информации, какой был бы передан с использованием полных вызывающего номера и сигнального номера, может быть передан с применением «символического» или укороченного идентификатора. Например, использование SSN позволяет вместо передачи вызывающего номера "123-555-1234" и сигнального номера "987-555-9876" назначить запросу на установление соединения укороченный идентификатор "/1234/1" и обрабатывать затем этот идентификатор в соответствии со способами и системой поставки контента согласно настоящему изобретению. Сервер 312 сигнализации может быть конфигурирован для правильной расшифровки сообщения SSN. Например, идентификатор "/1234/1" может быть ассоциирован с желаемой задачей «получения контента, относящегося к первой предварительно заданной задаче, ассоциированной с вызывающим номером 123-555-1234». Как описано выше, ассоциации желаемой задачи могут быть записаны в хеш-таблице или в аналогичной структуре данных. Таким образом, благодаря использованию SSN, сервер 312 сигнализации может обрабатывать данный запрос на установление соединения без передачи полной пары вызывающий номер/сигнальный номер.
Следующий пример иллюстрирует дескриптор апплета, использующий символические сигнальные номера "/1002/1" и "/1002/2":
<applet id="1002" name="sinipleDataGetter">
<catchSignal
caliedPattern="/1002/1"
appAction="getData"
telephony Action="CANCEL"
appURL=http://appserver/sendMessage
appData="CALLER,CALLED,appAction"
/>
<sendSignal
callerPattem="/1002/2"
appActiorr="sendData"
/>
</applet>
Хотя некоторые приложения согласно настоящему изобретению основаны на использовании сигнальных номеров, предоставляемых телефонной сетью общего пользования (например, сигнальный номер, кодирующий авиакомпанию, равно как и номер рейса, или сигнальный номер, запускающий передачу купона по электронной почте), многие приложения не нуждаются в использовании публичных сигнальных номеров общей сети. Например, в случае приложения, представляющего собой обычную игру в крестики-нолики, система и способы поставки контента согласно настоящему изобретению не заботятся о наличии специального сигнального номера, используемого для запроса конкретного игрового хода, до тех пор пока эти система и способы поставки контента способны однозначно определить, какой именно игровой ход запрашивает пользователь.
Согласно одному из вариантов настоящего изобретения сервер 312 сигнализации может быть конфигурирован для поддержки таких приложений посредством Управляемых сигнальных номеров (Managed Signaling Numbers (MSN)). Управляемые сигнальные номера могут быть выбраны из совокупности сигнальных номеров, которые поддерживаются присоединенными телефонными серверами 308, но на которые нет ссылок в явном виде ни в одном из дескрипторов апплета и которые также не публиковались (т.е. не являются публичными сигнальными номерами). Дескрипторы апплета для таких приложений содержат только символические сигнальные номера. Сервер 312 сигнализации динамически определяет, какой именно сигнальный номер из совокупности Управляемых сигнальных номеров назначить конкретному запросу на установление соединения. Здесь важно отметить, что в момент активизации дескриптора апплета должны быть уже назначены только вызывающие номера. Различные телефонные номера могут быть также использованы для разных сигнальных клиентов 304. Другие телефонные номера для последующего взаимодействия, если таковые вообще потребуются, в апплете могут быть назначены после начала выполнения сигнальной последовательности, т.е. когда сервер сигнализации реализует апплет (отметим, что для этого потребуется установление связи с сигнальным клиентом 304, чтобы привести его совместно используемый контекст в актуальное состояние). Кроме того, телефонные номера нужно назначать только на время сигнального взаимодействия. После этого сигнальный номер может быть освобожден и возвращен в указанную совокупность доступных Управляемых сигнальных номеров для повторного использования.
Способ с использованием Управляемых сигнальных номеров сообщает серверу 312 сигнализации повышенную гибкость, расширенные функциональные возможности и другие преимущества, включая, но не ограничиваясь этим, уменьшение сигнализационной нагрузки, общее выравнивание нагрузки, конфиденциальность пользователя и защиту от распределенных атак типа отказа в обслуживании (DDS-атак); как будет подробно описано в последующих параграфах.
Уменьшение сигнализационной нагрузки: Согласно одному из вариантов настоящего изобретения сервер 312 сигнализации может использовать знание о местонахождении устройств с установленными сигнальными клиентами при выборе из MSN-совокупности сигнальных номеров, «близких» к рассматриваемому телефонному устройству 302 с точки зрения сети. Например, сервер 312 сигнализации может с использованием отдельного канала связи обнаружить, что сигнальный клиент 304 находится в роуминге в другой телефонной сети (т.е. в гостевой сети), и может переключиться на использование сигнального номера, ассоциированного с телефонными серверами 308 в этой гостевой сети. Аналогично, сервер 312 сигнализации также с использованием отдельного канала связи может обнаружить, что сигнальный клиент 304 находится в какой-то конкретной части телефонной сети оператора мобильной телефонной связи, и может переключиться на использование сигнального номера, ассоциированного с одним из ближайших телефонных серверов 308. В результате такой способ можно использовать для уменьшения нагрузки на опорную телекоммуникационную сеть.
Выравнивание нагрузки: согласно одному из вариантов настоящего изобретения сервер 312 сигнализации использует знание «загрузки» телекоммуникационной сети для выравнивания сигнализационной нагрузки с точки зрения сети. Например, на основе имеющейся у него информации или с использованием отдельного канала связи сервер 312 сигнализации может определить, что некоторые телефонные серверы 308 перегружены, тогда как другие недогружены, и может переключиться на использование сигнальных номеров, ассоциированных с одним из мало загруженных телефонных серверов 308. В результате такой способ можно использовать для выравнивания нагрузки в телекоммуникационной сигнализационной сети и тем самым избежать перегрузки и образования «узких» мест.
Конфиденциальность пользователя: поскольку сигнальные номера, ассоциированные с разными приложениями и желаемыми задачами, могут быть изменены с использованием принципа Управляемых сигнальных номеров и могут различаться для разных сигнальных клиентов 304, посторонний орган или лицо не сможет на основе прослеживания и анализа сигнальных номеров сделать вывод о том, с каким приложением работает пользователь.
Защита от распределенных атак типа отказа в обслуживании (DDS-атак): поскольку сигнальные номера, ассоциированные с разными приложениями и желаемыми задачами, могут быть изменены с использованием принципа Управляемых сигнальных номеров и могут различаться для разных сигнальных клиентов 304, посторонний орган или лицо не сможет легко провести DDS-атаку против конкретного приложения.
На фиг.4 представлен пример схемы процесса, показывающей работу примера апплета 306 телефонного устройства, согласно одному из вариантов настоящего изобретения. На шаге 410 происходит инициализация апплета 306 телефонного устройства при запуске приложения. На следующем шаге 420 апплет 306 телефонного устройства получает информацию дескриптора апплета, а также данные о каких-либо незавершенных сеансах связи от сигнального клиента 304 и использует полученную информацию для обновления своего внутреннего состояния. На шаге 430 апплет 306 телефонного устройства представляет интерфейс пользователя, позволяющий пользователю передать запрос на установление соединения (т.е. запрос на установление соединения, ассоциированного с выполнением желаемой задачи). На следующем шаге 440, если пользователь передал запрос на установление соединения, апплет 306 телефонного устройства посылает сигнал серверу 310 приложений (через сигнального клиента 304 и сервер 312 сигнализации).
На шаге 450 апплет 306 телефонного устройства обновляет свое внутреннее состояние, а также, если нужно, интерфейс пользователя (обозначенный на чертежах "UI"), представляемый пользователю. В некоторых вариантах апплет 306 телефонного устройства может принимать данные от сервера 310 приложений (обозначенного на чертежах "AS") спонтанно или по соответствующему сигналу (либо непосредственно, либо через сигнального клиента 304) и затем последовательно обновляет свое внутреннее состояние, равно как и интерфейс пользователя, представляемый этому пользователю, на шаге 460. В некоторых вариантах пользователь может многократно использовать апплет 306 телефонного устройства для передачи нескольких запросов на установление соединения. Наконец, на шаге 470 апплет 306 телефонного устройства завершает свою работу, когда пользователь закрывает использование приложения.
На фиг.5 и 6 представлен пример схемы процесса, показывающей работу примера сигнального клиента 304 согласно одному из вариантов настоящего изобретения. На шаге 510 происходит запуск и инициализация сигнального клиента 304. На шаге 520 сигнальный клиент 304 обрабатывает группу сигнальных номеров, информацию состояния имеющихся дескрипторов апплета (обозначенных "AD" на чертежах), относящихся к апплету 306 телефонного устройства, и/или сохраняет внутренние структуры данных и на шаге 530 ожидает приема сигнального события. Если сигнальный клиент 304 принимает от апплета 306 телефонного устройства команду передать сигнал, он передает запрос на установление соединения с соответствующим сигнальным номером (в соответствии с дескриптором апплета), чтобы послать этот сигнал на шаге 540. На шаге 550 этот сигнальный клиент 304 аннулирует, если нужно, запрос на установление соединения. На шаге 560 сигнальный клиент 304 в некоторых вариантах сохраняет посланный сигнал в составе своего локального состояния.
Если сигнальный клиент 304 принимает от сервера 312 сигнализации сигнал в виде входящего вызова от сигнального номера (обозначенного на чертежах "SN"), он аннулирует вызов при необходимости на шаге 610. Затем сигнальный клиент 304 может по выбору сохранить принятый сигнал в своем локальном состоянии на шаге 620. На шаге 630 сигнальный клиент 304 идентифицирует подходящий апплет 306 телефонного устройства, которому он должен передать сигнал (на основе информации в дескрипторе апплета), и передает сигнал целевому апплету 306 телефонного устройства. В некоторых вариантах сигнальный клиент 304 может принимать данные от сервера 312 сигнализации, обновлять группу сигнальных номеров, группу дескрипторов апплета и информацию состояния апплета 306 телефонного устройства на шаге 640 и извещать апплет 306 телефонного устройства о соответствующих обновлениях на шаге 650. Если пользователь выполняет начальную установку сигнального клиента 304, он посылает сигнал начальной установки серверу 312 сигнализации на шаге 660. Если пользователь выполняет начальную установку сигнального клиента 304 или в случае приема сигнала начальной установки от сервера 312 сигнализации, сигнальный клиент 304 возвращает (сбрасывает) свое состояние к контрольной точке на шаге 670.
На фиг.7 представлен пример схемы процесса, показывающей работу примера телефонного сервера согласно одному из вариантов настоящего изобретения. Телефонный сервер 308 конфигурирован для ожидания событий, запускаемых сигналом связи от телефонной сети или сервера 312 сигнализации либо от собственной внутренней логической схемы на шаге 710. На шаге 720 телефонный сервер 308 получает при необходимости подгруппу сигнальных номеров с признаком «Отменить-Прежде-Оповещения» (обозначены "CBN" на чертежах) от сервера 312 сигнализации. Когда телефонный сервер 308 получает из телефонной сети извещение о входящем вызове, он проверяет, входит ли вызываемый номер в группу «Отменить-Прежде-Оповещения». Если входит, телефонный сервер 308 аннулирует вызов на шаге 730. На шаге 740 телефонный сервер 308 передает извещение о вызове серверу 312 сигнализации.
Если телефонный сервер 308 принимает команду CANCEL (т.е. аннулирование) от сервера 312 сигнализации, он аннулирует/отменяет вызов на шаге 750. Если телефонный сервер 308 получает команду TRANSFER от сервера 312 сигнализации, он переадресует вызов по заданному номеру на шаге 760. Если телефонный сервер 308 принимает команду SIGNAL от сервера 312 сигнализации, он передает вызов по указанному сигнальному номеру от указанного вызывающего номера на шаге 770. Если SIGNAL указывает, что вызов нужно аннулировать по истечении заданного времени, телефонный сервер 308 запускает таймер, чтобы аннулировать/отменить вызов по истечении этого времени (и затем аннулирует/отменяет вызов в должное время) на шаге 780. В противном случае телефонный сервер 308 ожидает команды CANCEL от сервера 312 сигнализации, как указано выше.
На фиг.8 представлен пример схемы процесса, показывающей работу примера сервера 310 приложений, согласно одному из вариантов настоящего изобретения. Как показано на шаге 810, сервер 310 приложений конфигурирован для ожидания событий, запускаемых взаимодействием с сервером 312 сигнализации или с внутренними логическими схемами сервера 310 приложений. Когда сервер 310 приложений принимает сигнал оповещения от сервера 312 сигнализации, как установлено в дескрипторе, этот сервер 310 приложений выполняет специфичные для него логические операции с использованием данных, поступивших вместе с сигналом оповещения, локальных данных, имеющихся на этом сервере 310 приложений, и/или данных, вызванных из одной или нескольких удаленных систем, на шаге 820. В некоторых вариантах сервер 310 приложений передает информацию любой подходящей стороне (например, Ресурсу 116, другому пользователю, другому серверу 310 приложений и т.п.) с использованием доступных ему каналов связи.
На шаге 840 сервер 310 приложений определяет последующие действия для сервера 312 сигнализации и создает соответствующий дескриптор сигнализации, а на шаге 850 сервер 310 приложений передает этот дескриптор сигнализации серверу 312 сигнализации. Сервер 310 приложений может использовать дескриптор сигнализации для передачи данных апплету 306 телефонного устройства, передачи контента Ресурсу 116, пользователю, серверу приложений или Вэб-серверу, переадресации вызова другому серверу, передачи команд серверу 312 сигнализации для перехода в ждущий режим или завершения сигнального взаимодействия, сервер 310 приложений может спонтанно инициировать выполнение сервером 312 сигнализации некоторых действий путем создания дескриптора сигнализации на шаге 860 и передачи этого дескриптора сигнализации серверу 312 сигнализации на шаге 870.
На фиг.9-12 представлен пример схемы процесса, показывающий работу примера сервера 312 сигнализации согласно одному из вариантов настоящего изобретения. Как показано на шаге 910, сервер 312 сигнализации конфигурирован для ожидания событий, запускаемых сигналами от одного или нескольких телефонных серверов 308, одного или нескольких серверов 310 приложений и/или собственных внутренних логических устройств. На шаге 920 сервер 312 сигнализации может периодически принимать группу сигнальных номеров от телефонного сервера 308 или его администратора и соответственно обновлять существующую группу сигнальных номеров. Этот сервер 312 сигнализации может периодически принимать информацию дескриптора апплета от сервера 310 приложений или его администратора и обновлять соответственно свою группу дескрипторов приложений на шаге 930.
В некоторых вариантах сервер 312 сигнализации может быть конфигурирован для создания группы «Отменить-Прежде-Оповещения» для каждого телефонного сервера 308 с использованием информации от дескрипторов апплета на шаге 940. Если сервер 312 сигнализации использует символические сигнальные номера, он может на шаге 950 построить и поддерживать преобразовательную таблицу. Если сервер 312 сигнализации применяет принцип Управляемых сигнальных номеров, он определяет и поддерживает на шаге 960 группу сигнальных номеров для использования на этом сервере 312 сигнализации.
В некоторых вариантах сервер 312 сигнализации может быть конфигурирован для манипулирования группой сигнальных номеров с целью выравнивания нагрузки путем распределения сигнализационной нагрузки на шаге 1010. В некоторых вариантах сервер 312 сигнализации манипулирует группой сигнальных номеров с целью уменьшения нагрузки путем распределения сигнализационной нагрузки (шаг 1020). Если нужно, сервер 312 сигнализации передает группу сигнальных номеров и относящуюся к ней информацию сигнальному клиенту 304 на шаге 1030. Также при необходимости сервер 312 сигнализации передает данные совместно используемого контекста сигнальному клиенту 304, как показано на шаге 1040. Эти данные могут включать группу соответствующих сигнальных номеров, дескрипторы апплета и/или информацию, относящуюся к состоянию апплета 306 телефонного устройства. Если нужно, на шаге 1050 сервер 312 сигнализации может передать сигнал начальной установки одному или нескольким сигнальным клиентам 304, переведя тем самым этих одного или нескольких сигнальных клиентов 304 в состояние, известное серверу 312 сигнализации (т.е. в контрольную точку).
При приеме сервером 312 сигнализации сигнала оповещения от телефонного сервера 308 этот сервер 312 сигнализации определяет подходящий дескриптор апплета на основе вызываемого номера, указанного в сигнале оповещения от телефонного сервера на шаге 1110; формирует и запускает апплет для этого сигнального взаимодействия, если таковой апплет еще не был сформирован, на шаге 1120 и обновляет контекст апплета и выполняет спецификации, имеющиеся в дескрипторе апплета, в контексте этого апплета на шаге 1130.
Если дескриптор апплета задает отмену вызова, сервер 312 сигнализации дает команду телефонному серверу отменить вызов на шаге 1140. Если дескриптор апплета задает начало сеанса в апплете, сервер 312 сигнализации начинает сеанс и обновляет контекст апплета на шаге 1150.
На следующем шаге 1160 сервер 312 сигнализации передает сигнал оповещения назначенному серверу 310 приложений (как определено в дескрипторе апплета) вместе с соответствующими данными. На шаге 1170 сервер 312 сигнализации принимает в ответ дескриптор сигнализации от сервера 310 приложений, например, в результате спонтанной передачи от сервера 310 приложений. На следующем шаге 1210 сервер 312 сигнализации обрабатывает дескриптор сигнализации, полученный от сервера 310 приложений. Если сервер 310 приложений потребует передачи сигнала, сервер 312 сигнализации передает соответствующему телефонному серверу 308 команду передать сигнал, как показано на шаге 1220. В альтернативном варианте, если сервер 310 приложений потребует переадресации вызова, сервер 312 сигнализации даст команду соответствующему телефонному серверу 308 переадресовать вызов, как показано на шаге 1230. Аналогично, если сервер 310 приложений потребует отмены вызова, сервер 312 сигнализации даст команду соответствующему телефонному серверу отменить вызов на шаге 1240.
На шаге 1250, если сервер 310 приложений желает передать данные апплету 306 телефонного устройства, сервер 312 сигнализации передает соответствующие данные сигнальному клиенту 304. На шаге 1260, если сервер 310 приложений желает завершить сеанс для апплета, сервер 312 сигнализации очищает состояние сеанса и обновляет контекст апплета. Наконец, на шаге 1270, если сервер 310 приложений желает завершить сигнальное взаимодействие, сервер 312 сигнализации очищает информацию состояния и завершает событие апплета.
Примеры
Следующий раздел содержит несколько примеров приложений, иллюстрирующих разнообразные случаи применения Системы 100 поставки контента и относящиеся к этому способы согласно различным вариантам настоящего изобретения и никоим образом не накладывает ограничений на использование, функции и/или работу систем и способов поставки контента согласно настоящему изобретению.
Заказ купона по мобильному телефону. Пользователь мобильного телефона вызывает конкретный сигнальный номер, указанный магазином (например, опубликованный в рекламном объявлении в местной газете), чтобы получить купон (желаемая задача). Система поставки контента согласно настоящему изобретению получает запрос на установление соединения, выделяет из этого запроса информацию и аннулирует запрос прежде установления соединения, так что это не влечет затрат для пользователя. Система поставки контента согласно настоящему изобретению посылает SMS-сообщение, содержащее купон (т.е. контент), указанному мобильному телефону (используя вызывающий номер). Для пользователей, получающих входящие SMS-сообщения бесплатно, такое получение купона не связано с затратами.
Заказ купона с использованием проводной связи. Телефонный номер и адрес электронной почты пользователя проводной связи зарегистрированы в универмаге (совместно используемый контекст, созданный офлайн). Пользователь вызывает конкретный сигнальный номер, указанный магазином (например, опубликованный в телевизионной рекламе), чтобы получить купон (желаемая задача). Система поставки контента согласно настоящему изобретению получает запрос на установление соединения, выделяет из этого запроса информацию и аннулирует запрос прежде установления соединения, так что это не влечет затрат для пользователя. Система поставки контента согласно настоящему изобретению находит адрес электронной почты, ассоциированный с вызывающим номером, и передает пользователю электронное сообщение, содержащее купон (т.е. поставка контента).
Заказ информации по мобильному телефону. Пользователь мобильного телефона вызывает сигнальный номер, указанный производителем информации, так что в этом сигнальном номере закодированы как сам производитель информации, так и информация, которая нужна пользователю (желаемая задача). Например, авиакомпания Continental Airlines может попросить пользователей звонить по номеру 1-600-CON-XXXX, где CON представляет эту авиакомпанию Continental Airlines, a XXXX представляет номер рейса (если номер рейса содержит меньше четырех цифр, недостающие первые цифры следует заменить нулями), если эти пользователи хотят получить самую последнюю информацию об этом рейсе. Система поставки контента согласно настоящему изобретению получает запрос на установление соединения, выделяет из этого запроса информацию и аннулирует запрос прежде установления соединения, так что это не влечет затрат для пользователя. Система поставки контента согласно настоящему изобретению идентифицирует желаемую задачу на основе сигнального номера, посылает SMS-сообщение, содержащее запрошенную информацию о рейсе, указанному мобильному телефону (используя вызывающий номер). Для пользователей, получающих входящие SMS-сообщения бесплатно, такое получение информации не связано с затратами.
Информация для мобильного приложения. Система поставки контента согласно настоящему изобретению поддерживает перечень мест, для которых имеется информация о погоде. Эти данные отражены в приложении для мобильного телефона (совместно используемый контекст, созданный офлайн). Пользователь через интерфейс пользователя выбирает одно из этих мест и нажимает кнопку, запрашивающую сводку погоды. Мобильный телефон набирает конкретный сигнальный номер, соответствующий этому месту. Система поставки контента согласно настоящему изобретению получает запрос на установление соединения, выделяет из этого запроса информацию и аннулирует запрос прежде установления соединения, так что это не влечет затрат для пользователя. Система поставки контента согласно настоящему изобретению определяет на основе совместно используемого контекста вызывающий номер и сигнальный номер, а также место, для которого запрашивается сводка погоды (т.е. желаемая задача). Система поставки контента согласно настоящему изобретению посылает SMS-сообщение, содержащее запрошенную информацию о погоде, мобильному телефону пользователя (используя вызывающий номер). Для пользователей, получающих входящие SMS-сообщения бесплатно, такое получение информации не связано с затратами. Аналогично, система поставки контента согласно настоящему изобретению может поддерживать справочную информацию для местного бизнеса, информацию «желтых страниц», сведения о часах работы магазинов, состояние авиарейсов/автобусных рейсов/поездов и т.п. - в общем, любой контент, который может потребоваться пользователю. Пользователи взаимодействуют с интерфейсом пользователя для выбора позиции из списка и, используя изложенную выше процедуру, получают нужный ему (или ей) контент.
Интерактивное телевизионное шоу. ТВ-шоу может приглашать пользователей голосовать за предпочитаемых ими участников путем представления на экране списка сигнальных номеров - по одному на каждого конкурсанта. Пользователь проводного телефона может передать запрос на установление соединения по сигнальному номеру, соответствующему участнику, за которого этот пользователь хочет проголосовать. Система поставки контента согласно настоящему изобретению получает запрос на установление соединения, выделяет из этого запроса информацию и аннулирует запрос прежде установления соединения, так что это не влечет затрат для пользователя. Система поставки контента согласно настоящему изобретению определяет желаемую задачу на основе вызывающего номера и сигнального номера и регистрирует голос (здесь поставка контента заключается в регистрации голоса). В альтернативном примере пользователь мобильного телефона может использовать интерфейс пользователя для ТВ-шоу (совместно используемый контекст, созданный офлайн), чтобы просмотреть варианты голосования. Пользователь выбирает один из этих вариантов голосования и воздействует на ассоциированную с этим вариантом иконку. Мобильный телефон набирает конкретный сигнальный номер, соответствующий выбранному варианту голосования. Система поставки контента согласно настоящему изобретению получает запрос на установление соединения, выделяет из этого запроса информацию и аннулирует запрос прежде установления соединения, так что это не влечет затрат для пользователя. Система поставки контента согласно настоящему изобретению определяет желаемое действие (т.е. требуемое голосование) и на основе совместно используемого контекста вызывающий номер и сигнальный номер и регистрирует голос.
Все предшествующее описание вместе с соответствующими чертежами и примерами предназначены для иллюстрации и понимания принципов настоящего изобретения. Специалисты в данной области могут внести различные модификации, не выходящие за рамки объема настоящего изобретения, описанного здесь. Таким образом, специалист в данной области должен понимать, что настоящее изобретение может быть практически реализовано и иным способом, отличным от рассмотренных вариантов, представленных здесь в качестве иллюстраций.