The invention relates to a technique for providing a communication service and, more particularly, to a technique for providing a customizable communication service.
This section introduces aspects that may help facilitate a better understanding of the invention. Accordingly, the statements of this section are to be read in this light and are not to be understood as admissions about what is prior art or what is not prior art.
Telecommunication service providers (telecoms) including cable operators nowadays provide customers with packages of communication services including wireline and wireless telephone services, Internet and email services, television (TV) services, etc. Some of these telecoms allow customers to view and manage their accounts, and also to change certain service parameters online. For example, a customer may invoke a program provided by a telecom on its website to change a call forwarding number in his/her telephone service.
The invention is premised upon a recognition that the trend of the telecommunication industry is migrating toward service customization by a user, thus reducing the workload of customer service. The typical telecom approach is “pushing” hardcoded programs to users for them to customize online specific service features which, a telecom believes, the users want to customize the most. Such a belief may be formed by second-guessing users' particular customization needs based, e.g., on anecdotal evidence from customer service calls. The shortcomings of the this approach thus are: (1) the second-guess may be correct only for those who called the customer service, but who do not represent the vast majority of the users, resulting in the guess being a “hit” or “miss” as far as an individual user is concerned; and (2) it takes time from collecting the anecdotal evidence to realizing the actual customization program, let alone the additional time it takes to publicize the new program.
Because of the above-identified shortcomings, the invention was conceived to supplant the ineffective approach of code pushing by a telecom. In accordance with an embodiment of the invention, in order to allow a user to personalize telecom services, and be in control of the service personalization in terms of the actual service features involved and the timing of its execution, a telecom needs to expose some of its facilities to a user, subject to his/her manipulation.
In one embodiment, the telecom is receptive to programming code from a user subscribing to one or more of the telecom services. The programming code is processed on the telecom side to realize a service application particular to the user which affects at least one telecom service subscribed by the user.
The invention is directed to allowing a user of communication services (e.g., wireless and wireline telephone services, Internet and email services, TV services, etc.) provided by a telecommunication service provider (telecom) to create personalized service applications. The typical telecom approach is “pushing” hardcoded programs to users for them to customize specific service features online. The invention was conceived to supplant this typical approach which proves to be ineffective. In accordance with an embodiment of the invention, the telecom provisions a user programmable services framework which enables a user to directly inject user programming code or a plugin into this framework, thereby allowing the user to access selected resources and/or components of the communication services to realize a personalized experience.
In this instance, communication arrangement 100 includes customer premises 150 where a user named Bob subscribes and has access to a suite of communication services, e.g., wireless and wireline telephone services, Internet and email services, TV services, etc., provided by Telco. To utilize the suite of communication services, Bob at customer premises 150 has such user devices as personal computer (PC) 151 which may be a desktop, notebook or netbook computer, pocket personal computer (PPC), etc.; wireless and wireline telephonic devices 153 which may includes one or more of a corded phone, cordless phone, mobile phone, smart phone, iPhone®, personal digital assistant (PDA), Blackberry®-type device, Kindle™-type device, etc.; set-top box 155 provided by Telco to receive TV signals delivered thereby, and TV equipment 157 connected to box 155 for viewing TV programs thereon. Because of his service subscription with Telco, Bob in this instance may access the Internet not only with PC 151 but also an Internet enabled phone and set-top box 155.
Arrangement 100 also includes the aforementioned user programmable services framework (UPSF) 105 which is part of the Telco service provider network providing the communication services. Telco provisions an execution engine, e.g., mashup application server (MAS) 109, in UPSF 105 to run mashups created by a user, e.g., Bob, to realize new personalized service applications. In this illustrative embodiment, MAS 109 is connected to wireline/wireless phone service controller 111 capable of accessing multimedia and voice applications of the wireline and wireless telephone services provided by Telco, in accordance with a well known IP multimedia subsystem (IMS) architecture. For example, instructed by a user mashup, MAS 109 may communicate with controller 111 using session initiation protocol (SIP) over Internet protocol (IP) to provision personalized phone-related service applications. MAS 109 also is connected to TV service controller 113 capable of manipulating multimedia components of the TV service provided by Telco to set-top box 155 on customer premises 150. For example, instructed by a user mashup, MAS 109 may send from another source (e.g., a 3G wireless video communication from controller 111) to controller 113 multimedia content in a standard enhanced TV binary interchange format (EBIF) or, alternatively, in conformance to the well known TRU2WAY™ specifications to realize new TV-related service applications. In addition, MAS 109 is connected to Internet controller 115 for accessing the Internet resources sometimes on behalf of the users. In one embodiment, controller 115 maintains a Telco website on the Internet at a predetermined uniform resource locator (URL), e.g., telco.com, and a Telco user may establish a hypertext transfer protocol (HTTP) connection with controller 115 using a conventional web browser which may run on PC 151 on customer premises 150. Further, the Telco user may send aforementioned mashups to MAS 109 through controller 115 via one such HTTP connection.
By way of example, but not limitation, each mashup in this illustrative embodiment is in the form of a Java application executable by processor 203 using Java runtime environment (JRE) 221 in memory 207. In one embodiment, Bob may utilize a text editor on PC 151 to compose a mashup program using Java programming language, with the aid of, e.g., tutorials on the Telco website, as indicated at step 305 in
Program section 409 also includes two subscriptions to an onIncomingCall routine with an object=“myCellPhone” in one subscription, and another object=“myHomePhone” in the other subscription. In other words, the onIncomingCall routine would be invoked whenever an incoming call to Bob's home or cell phone number is detected. At runtime, the objects “myCellPhone” and “myHomePhone” would be replaced by processor 203 with Bob's actual cell phone number and home phone number, respectively. Processor 203 may look up these phone numbers and any other user information stored in database 170 which are associated with Bob's user ID. In accordance with the onIncomingCall routine subscriptions, processor 203 would provision call control module 230 to detect any calls to Bob's home and cell phone numbers. In addition, program section 409 includes a subscription to an onHttpRequest routine, which is described below.
Program section 411 illustrates the onIncomingCall routine. According to this routine, if an incoming call detected by call control module 230 has an originating phone number which matches one of the blacklisted phone numbers, module 230 would be directed to automatically discard or drop the call. In addition, a NotifyOnTV routine would be invoked in section 411, whereby a video message “Call from [the originating phone number] was discarded” would be generated and popped up on the screen of Bob's TV equipment 157.
Program section 413 illustrates the onHttpRequest routine. According to this routine, processor 203 would monitor any Internet access by Bob to the relative URL “/provision” to update his blacklist thereat, in which case processor 203 incorporates any changes to Bob's blacklist accordingly. In this instance, the relative URL represents “mashaps/telco.com/bob/provision” which is its full version.
Referring back to
Let's assume in this instance that call control module 230 detects an incoming call to Bob's home or cell phone number. In accordance with Bob's mashup, processor 203 determines the telephone number from which the call originates based, e.g., on an automatic call identification (ANI) associated with the call, as indicated at step 507 in
It should be noted at this point that a Telco user is not given unbridled liberty to create whatever mashups the user desires. In fact, security measures are built into the Telco system to check the propriety of a user mashup. Such security measures may include imposing limits on CPU and memory consumption by a user mashup, and restrictions on the types of service interaction that can be invoked by a user mashup, etc., with the goal of protecting the Telco network resources and users from malicious or faulty user mashups.
For example, security measures may be built into the aforementioned IDE provided by Telco which helps a user compose a mashup program. The IDE provisioned with the security measures may statically check user mashup programs, and disallow those programs which contain seemingly malicious or faulty routines. One such routine may comprise a malicious loop, e.g., making a call to an emergency number “911” once every minute. Of course, a user would be stopped from compiling any mashup program disallowed by the IDE.
Security measures may also be built into MAS 109 to scrutinize a compiled mashup program received from a user, which comprises Java bytecode in this illustrative embodiment. For example, processor 203 may check the bytecode for particular routine subscriptions. One such subscription may be to the aforementioned onIncomingCall routine, i.e., Subscribe (onIncomingCall, objectPhone). As described earlier, such subscription would cause call control module 230 to monitor any incoming calls to the objectPhone number. In one embodiment, when the user mashup is received, processor 203 identifies the bytecode of the onIncomingCall subscription, represented by pseudo-code 603 in
The foregoing merely illustrates the principles of the invention. It will thus be appreciated that those skilled in the art will be able to devise numerous arrangements which embody the principles of the invention and are thus within its spirit and scope.
For example, in one embodiment of the invention, a repository is provided in UPSF 105 for a Telco user to deposit copies of selected mashup programs created by him or her. Other users may retrieve from the repository one or more program copies to adopt and/or modify in composing their own programs. Similarly, Telco may provide sample programs in the repository for a user to adopt or modify.
Finally, although communication arrangement 100 and it various components, as disclosed, are embodied in the form of various discrete functional blocks, such a system and components could equally well be embodied in an arrangement in which the functions of any one or more of those blocks or indeed, all of the functions thereof, are realized, for example, by one or more appropriately programmed processors or devices.