WO2008151205A2 - Systems and methods for development and testing of subscriber identity module applications - Google Patents

Systems and methods for development and testing of subscriber identity module applications Download PDF

Info

Publication number
WO2008151205A2
WO2008151205A2 PCT/US2008/065695 US2008065695W WO2008151205A2 WO 2008151205 A2 WO2008151205 A2 WO 2008151205A2 US 2008065695 W US2008065695 W US 2008065695W WO 2008151205 A2 WO2008151205 A2 WO 2008151205A2
Authority
WO
WIPO (PCT)
Prior art keywords
subscriber identity
identity module
sim
command
terminal equipment
Prior art date
Application number
PCT/US2008/065695
Other languages
French (fr)
Other versions
WO2008151205A3 (en
Inventor
Daniel Robert Eichenwald
Scott Bates Guthery
Andrew Lawrence Papia
Mark Edward Robinton
Original Assignee
Worldcell, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Worldcell, Inc. filed Critical Worldcell, Inc.
Publication of WO2008151205A2 publication Critical patent/WO2008151205A2/en
Publication of WO2008151205A3 publication Critical patent/WO2008151205A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis

Definitions

  • the present invention relates generally to mobile telephone devices and methods, and in particular to improved systems and methods for the development and testing of subscriber identity module applications.
  • SIM subscriber identity module
  • a SIM card securely stores a service- subscriber key used to identify the wireless device to the network.
  • a SIM card allows a user to change devices by simply removing the SIM card from one mobile device and inserting into another device with a suitable slot.
  • SIM subscriber identity module
  • AuC authentication center
  • SIM development integrated circuit cards
  • ICC development integrated circuit cards
  • ICC development integrated circuit cards
  • These SIMs therefore do not contain the cryptographic key material necessary to access a commercial wireless network.
  • communication over a commercial wireless network is preferable to develop, evaluate, measure and test the functionality of SIM-resident applications.
  • development of SIM applications can become arduous and time-consuming and applications developed without network access during their development may be found to be unsatisfactory when they are finally used on a wireless network.
  • a first technique entails the purchase of one or more wireless network simulators. These simulators are difficult to set up and maintain and require an administrator to oversee them. In addition, these network simulators cannot and do not accurately reflect the operational details of many commercial wireless networks. Finally, these simulated environments are very expensive and are typically out of financial reach for many application developers and software development enterprises. [0009] A second technique requires that a network operator issue to an application developer a network-activated SIM, onto which the developer can load developmental applications. Network operators do not distribute such SIMs without first establishing a close relationship with the developer. This happens infrequently, and is a common barrier to entry for many application developers. Furthermore, SIMs on which one can load an application are themselves special kinds of SIMs, such as Java Card SIMs, which place additional constraints on the application developer.
  • the third method requires a relationship with a network operator such that the network operator provides to the application developer the cryptographic key material necessary to access their wireless network. As network operators are very hesitant to release such cryptographic key material, these relationships often take months or even years to develop; and this method is rarely a commercially viable option.
  • Embodiments of the present invention are directed to systems and techniques in which a specially designed router mechanism is used in developing and testing an application for a subscriber identity module.
  • the router receives means for receiving a communication stream from a piece of terminal equipment.
  • the router analyzes the commands contained in the communication stream, and determines whether a command is an application development command or a network access command.
  • Application development commands are routed to an application development subscriber identity module.
  • Network access commands are directed to a network access subscriber identity module. Command responses from the application development subscriber identity module and the network access subscriber identity module are then sent back to the terminal equipment.
  • FIG. 1 is a block diagram illustrating an overall system according to an embodiment
  • FIG. 2 is a block diagram illustrating a software implementation of a system according to an embodiment
  • FIG. 3 is a block diagram illustrating a hardware implementation of the system according to an embodiment
  • FIG. 4 is a block diagram illustrating a programmable integrated circuit implementation of a system according to an embodiment
  • FIG. 5 is a block diagram illustrating a plan view of a cable for connecting terminal equipment to a Y-Router according to an embodiment
  • FIG. 6 is a flowchart that illustrates at a high level, a method according to an embodiment.
  • FIG. 7 is a block diagram that illustrates a computer syste upon which an embodiment of the invention may be implemented.
  • SIMs subscriber identity modules
  • TE terminal equipment
  • SIMs subscriber identity modules
  • TE terminal equipment
  • GSM Global System for Mobile Communications
  • SS7 Signal System 7
  • the signaling data packets indicate the network address and other properties of the two communicating end stations (such as a dialed telephone number) and reserve network resources to support the communications. In some applications the signaling data packets are used to support short data messaging (SMS) and other data services.
  • SMS short data messaging
  • SIM-TE communication stream between two separate SIMs: 1] an application and development SIM; and 2] an existing, network-enabled SIM.
  • Commands pertaining to the new application functionality are sent to the application development SIM, while commands pertaining to existing SIM functionality are sent to the network-enabled SIM.
  • the new SIM application being developed can be running either on a second integrated circuit card or on a suitable software development station, such as a computer, with software debugging capabilities.
  • various embodiments provide methods, systems and devices that for a SIM software development environment.
  • the described techniques can be used to test and debug new SIM applications as well as to study the performance characteristics of both new and existing SIM applications.
  • one SIM is a developmental integrated circuit card that contains the application being developed.
  • the other SIM is a SIM issued by a network operator that contains the cryptographic key material necessary to access the wireless network.
  • the new application on the first SIM achieves the ability to access the wireless network while using the second SIM to gain and maintain the authorization needed for this access.
  • FIG. 1 is a block diagram illustrating an overall system according to an embodiment, in which a development and testing computer with communication management software 110 is used to develop a SIM application.
  • the system 100 includes terminal equipment (TE) 120 that generates a communication stream 130 to be fed to a SIM.
  • TE terminal equipment
  • This communication stream is generally referred to herein as an SIM-TE communication stream.
  • the SIM-TE communications stream includes commands 132 generated by the terminal equipment 120 and command responses 134 generated by other components in the system 100 in response to the generated commands 132.
  • the SIM-TE communication stream 130 is not connected directly to a SIM. Rather, it is connected to Y-Router 140, which includes a command analyzer 142 and a router 144.
  • First and second communication streams 150 and 160 connect the Y-Router 140, respectively, to an application development SIM 170 and an existing, network-enabled SIM 180.
  • the command analyzer module 142 analyzes each command 132 to determine whether the command 132 pertains to the new application functionality or to the existing application functionality.
  • the router 144 routes the command 132 to the application development SIM 170 via the application development communication stream 150. If it is determined that a command 132 pertains to existing network functionality (e.g., does not pertain to any new application functionality), the router 144 routes the command to the existing, network- enabled SIM 180 via communication stream 160.
  • the application development SIM 170 is used to develop new applications, while the network-connected SIM 180 is used to provide a network connection and any older functionality.
  • the system 100 therefore allows an application to be developed while connected into the network for which the application is being developed.
  • the Y-Router mechanism may be implemented in a number of different ways. As discussed below, further embodiments of the invention are directed to software and hardware implementations of the described system.
  • FIG. 2 is a block diagram illustrating a software implementation of a system according to an embodiment.
  • the FIG. 2 system 200 includes a development and testing computer 210 that runs a suitable communication management software program, and also includes software components (e.g., instructions executing on a general purpose processor) allowing the computer 210 to function as a Y-Router, as described above.
  • the computer 210 is used to develop and test new applications for terminal equipment 220, such as a cell phone or the like.
  • the computer 210 is a suitable off-the-shelf product.
  • the terminal equipment 220 is provided with a SIM slot for connection to a SIM device.
  • FIG. 3 is a block diagram illustrating a hardware implementation of the system according to an embodiment.
  • the FIG. 3 system 300 includes a Y-Router device 310 having at least two SIM slots 312 and 314 (labeled SIMl and SIM2) and two communication cables 320 and 330.
  • the first communication cable 320 is used to connect the device to terminal equipment 340.
  • the second communication cable 330 is used to connect the device to a computer 350 running Y-Router communication management software.
  • the Y-Router 310 is implemented using a dedicated, general-purpose computer in a box.
  • FIG. 4 is a block diagram illustrating a programmable integrated circuit implementation of a system according to an embodiment.
  • FIG. 4 shows a system 400 in which the Y-Router is implemented as a printed circuit board with a dedicated programmable integrated circuit (PIC) 410, which has been programmed to route the commands from the terminal equipment.
  • the printed circuit board provides connections to first and second SIMs 420 and 430 (labeled SIMl and SIM2), a connection to terminal equipment 440 and a connection to a development and testing computer 450.
  • FIG. 5 is a block diagram illustrating a plan view of a cable for connecting terminal equipment to a Y-Router according to an embodiment.
  • FIG. 1 a plan view of a cable for connecting terminal equipment to a Y-Router according to an embodiment.
  • FIG. 5 shows a connector cable 500 for coupling terminal equipment to a Y-Router, in both the software and hardware embodiments described above.
  • the cable is provided with integrated circuit card contacts (ICC) 510 on one end.
  • ICC integrated circuit card contacts
  • the ICC end of this cable is inserted into a SIM slot of the terminal equipment.
  • the second end 520 of the cable is connected to the Y-Router.
  • the cable 500 carries all communications that the terminal equipment sends to the SIM to the Y-Router and sends all communications for the terminal equipment generated by either SIM card, by the Y-Router or by the development computer back to the terminal equipment
  • the SIM-TE communication stream comprises command-response pairs. Each coupled pair is called an Application Protocol Data Unit (APDU).
  • APDU Application Protocol Data Unit
  • a command APDU is sent from the terminal equipment to the SIM and a response APDU is, as a consequence, returned from the SIM to the terminal equipment.
  • the terminal equipment can use APDU commands to store data on the SIM or to retrieve data from the SIM.
  • the terminal equipment can also use APDU commands to cause processing to occur on the SIM. Example Routing of RUN GSM ALGORITHM Command.
  • the document ETSI GSM 11.11 describes in detail each APDU that can be sent from the terminal to the SIM.
  • One particular APDU the APDU named RUN GSM ALGORITHM, is used to authenticate a SIM to the wireless network.
  • This APDU sends a 16-byte random number from the network operator via the terminal equipment to the SIM and calls for the SIM to perform particular cryptographic processing steps using the cryptographic key material stored on the SIM.
  • the SIM returns a 4-byte Signed Response (SRES) and a 12-byte Cipher Key (Kc) to the terminal equipment.
  • SRES Signed Response
  • Kc Cipher Key
  • the terminal equipment communicates with the Y-Router and the communication management software, rather than directly with the SIM provided by the network operator.
  • the Y-Router and the communication management software then routes the APDU traffic to the appropriate SIM - the network access SIM or the application development SIM - based on the technical details of the APDU.
  • the RUN GSM ALGORITHM APDU is sent to the network access SIM that has been issued by a network operator and which contains the cryptographic key material necessary to gain network access. All other APDUs are sent to the application development SIM. In either case, the SIM receiving the command APDU forms the corresponding response APDU which is returned to the Y-Router and the communication management software that in turn sends the response APDU back to the terminal equipment.
  • the terminal equipment behaves exactly as if it were communicating with a single SIM whereas in fact it is concurrently communicating with a network access SIM and at least one application development SIM.
  • FIG. 6 6 is a flowchart 600 that illustrates at a high level, a method according to an embodiment. Although steps in FIG. 6 are presented in a particular order for purposes of illustration, in other embodiments one or more steps are performed in a different order or overlapping in time, or one more other steps are added or one or more steps are omitted, or some combination of changes are made.
  • step 601 the terminal equipment issues a command.
  • step 602 the Y-Router mechanism receives the command from the terminal equipment.
  • step 603 the Y-Router mechanism analyzes the command to determine whether the command is an application development command or a network access command.
  • step 603 If in step 603 it is determined that the command is an application development command, the technique proceeds down the left branch.
  • the command is sent to the application development SIM.
  • step 605 a response is generated by the application development SIM and sent back to the Y-Router.
  • step 606 the command response is sent back to the terminal equipment. The process then returns to step 601.
  • step 603 If in step 603 it is determined that the command is a network access command, the method proceeds down the right branch.
  • the command is sent to the network access SIM.
  • step 608 a response is generated by the network access SIM and received back at the Y-Router.
  • the method then returns to step 606.
  • step 606 as described above, the command response is sent back to the terminal equipment.
  • the method then returns to step 601. The process is repeated indefinitely, or as many times as desired.
  • a first benefit of the illustrated embodiments is the ability to gain and maintain network connectivity for a new SIM application without special arrangement with the network operator.
  • a second benefit of the illustrated embodiments is that, unlike the method in the current art of using a network simulator, no simulation is occurring.
  • the SIM application under development is communicating on the wireless network in exactly the manner in which it would be when commercially deployed.
  • a third benefit of the illustrated embodiments is that SIM application development can take place without the need to establish special business or technical relationships with a network operator.
  • a fourth benefit of the illustrated embodiments is that the Y-Router and the communication management software can be used to gather detailed performance data on the new SIM application including its interaction with the basic functionality of the SIM and with other SIM applications.
  • the Y-Router is configured to make a log of all the traffic between the terminal equipment and the SIM. In various embodiments, this log is extracted from the Y-Router for detailed analysis. One can then make an orderly sequence of changes in the SIM, such as changing the organization of the files on the SIM or sending back alternative result codes. By comparing these logs for different devices, the SIM application can be tuned to respond in a maximally efficient manner to a particular terminal device.
  • all of the communications between the terminal equipment and the two SIM cards are displayed on the screen of a development and testing computer.
  • This display parses these commands and display descriptions of the commands in human-readable text.
  • the display also builds and update various graphical and statistical displays of the command traffic, such as how many of each of the various commands were observed, and the response time of each of the SIMs to various commands.
  • the Y-Router is configured to route all commands to both SIMs in some embodiments. In such embodiments, the Y-Router waits until it has received a response from both SIMs before making a determination of which response to send back to the terminal equipment. In this manner the SIM application under development can defer functionality to the commercial SIM in specific application-dependent situations, while in different specific application-dependent situations it can override the functionality of the commercial SIM.
  • the command and the responses of both of the SIM cards are displayed on the development and testing computer; and the programmer or tester is able to make the decision as to which of the two responses should be sent back to the terminal equipment.
  • FIG. 7 is a block diagram that illustrates a computer system 700 upon which an embodiment of the invention may be implemented.
  • Computer system 700 includes a communication mechanism such as a bus 710 for passing information between other internal and external components of the computer system 700.
  • Information is represented as physical signals of a measurable phenomenon, typically electric voltages, but including, in other embodiments, such phenomena as mechanical, magnetic, electromagnetic, pressure, chemical, molecular atomic and quantum interactions. For example, north and south magnetic fields, or a zero and non-zero electric voltage, represent two states (0, 1) of a binary digit (bit).
  • a sequence of binary digits constitutes digital data that is used to represent a number or code for a character.
  • a bus 710 includes many parallel conductors of information so that information is transferred quickly among devices coupled to the bus 710.
  • One or more processors 702 for processing information are coupled with the bus 710.
  • a processor 702 performs a set of operations on information.
  • the set of operations include bringing information in from the bus 710 and placing information on the bus 710.
  • the set of operations also typically include comparing two or more units of information, shifting positions of units of information, and combining two or more units of information, such as by addition or multiplication.
  • a sequence of operations to be executed by the processor 702 constitute computer instructions.
  • Computer system 700 also includes a memory 704 coupled to bus 710.
  • the memory 704 such as a random access memory (RAM) or other dynamic storage device, stores information including computer instructions. Dynamic memory allows information stored therein to be changed by the computer system 700. RAM allows a unit of information stored at a location called a memory address to be stored and retrieved independently of information at neighboring addresses.
  • the memory 704 is also used by the processor 702 to store temporary values during execution of computer instructions.
  • the computer system 700 also includes a read only memory (ROM) 706 or other static storage device coupled to the bus 710 for storing static information, including instructions, that is not changed by the computer system 700.
  • ROM read only memory
  • Also coupled to bus 710 is a non- volatile (persistent) storage device 708, such as a magnetic disk or optical disk or flash drive, for storing information, including instructions, that persists even when the computer system 700 is turned off or otherwise loses power.
  • information is provided to the bus 710 for use by the processor from an external input device 712, such as a keyboard containing alphanumeric keys operated by a human user, or a sensor.
  • an external input device 712 such as a keyboard containing alphanumeric keys operated by a human user, or a sensor.
  • a sensor detects conditions in its vicinity and transforms those detections into signals compatible with the signals used to represent information in computer system 700.
  • bus 710 Other external devices coupled to bus 710, used primarily for interacting with humans, include a display device 714, such as a cathode ray tube (CRT) or a liquid crystal display (LCD) or a plasma screen, for presenting images, and a pointing device 716, such as a mouse or a trackball or cursor direction keys, for controlling a position of a small cursor image presented on the display 714 and issuing commands associated with graphical elements presented on the display 714.
  • a display device 714 such as a cathode ray tube (CRT) or a liquid crystal display (LCD) or a plasma screen
  • a pointing device 716 such as a mouse or a trackball or cursor direction keys
  • special purpose hardware such as an application specific integrated circuit (IC) 720
  • IC application specific integrated circuit
  • the special purpose hardware is configured to perform operations not performed by processor 702 quickly enough for special purposes.
  • application specific ICs include graphics accelerator cards for generating images for display 714, cryptographic boards for encrypting and decrypting messages sent over a network, speech recognition, and interfaces to special external devices, such as robotic arms and medical scanning equipment that repeatedly perform some complex sequence of operations that are more efficiently implemented in hardware.
  • Computer system 700 also includes one or more instances of a communications interface 770 coupled to bus 710.
  • Communication interface 770 provides a two-way communication coupling to a variety of external devices that operate with their own processors, such as printers, scanners and external disks. In general, the coupling is with a network link 778 that is connected to a local network 780 to which a variety of external devices with their own processors are connected.
  • communication interface 770 may be a parallel port or a serial port or a universal serial bus (USB) port on a personal computer.
  • USB universal serial bus
  • communications interface 770 is an integrated services digital network (ISDN) card or a digital subscriber line (DSL) card or a telephone modem that provides an information communication connection to a corresponding type of telephone line.
  • ISDN integrated services digital network
  • DSL digital subscriber line
  • a communication interface 770 is a cable modem that converts signals on bus 710 into signals for a communication connection over a coaxial cable or into optical signals for a communication connection over a fiber optic cable.
  • communications interface 770 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN, such as Ethernet.
  • LAN local area network
  • Wireless links may also be implemented.
  • Carrier waves, such as acoustic waves and electromagnetic waves, including radio, optical and infrared waves travel through space without wires or cables.
  • Signals include man-made variations in amplitude, frequency, phase, polarization or other physical properties of carrier waves.
  • the communications interface 770 sends and receives electrical, acoustic or electromagnetic signals, including infrared and optical signals, that carry information streams, such as digital data.
  • the term computer-readable medium is used herein to refer to any medium that participates in providing information to processor 702, including instructions for execution. Such a medium may take many forms, including, but not limited to, nonvolatile media, volatile media and transmission media.
  • Non- volatile media include, for example, optical or magnetic disks, such as storage device 708.
  • Volatile media include, for example, dynamic memory 704.
  • Transmission media include, for example, coaxial cables, copper wire, fiber optic cables, and waves that travel through space without wires or cables, such as acoustic waves and electromagnetic waves, including radio, optical and infrared waves.
  • Computer-readable media include, for example, a floppy disk, a flexible disk, a hard disk, a magnetic tape, or any other magnetic medium, a compact disk ROM (CD-ROM), a digital video disk (DVD) or any other optical medium, punch cards, paper tape, or any other physical medium with patterns of holes or knobs, a RAM, a programmable ROM (PROM), an erasable PROM (EPROM), a FLASH- EPROM, or any other memory chip or cartridge, signals on a carrier wave, or any other medium from which a computer can read.
  • Network link 778 typically provides information communication through one or more networks to other devices that use or process the information.
  • network link 778 may provide a connection through local network 780 to a host computer 782 or to equipment 784 operated by an Internet Service Provider (ISP).
  • ISP equipment 784 in turn provides data communication services through the public, world-wide packet- switching communication network of networks now commonly referred to as the Internet 790.
  • a computer called a server 792 connected to the Internet provides a service in response to information received over the Internet.
  • server 792 provides information representing video data for presentation at display 714.
  • the invention is related to the use of computer system 700 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 700 in response to processor 702 executing one or more sequences of one or more instructions contained in memory 704.
  • Such instructions also called software and program code, may be read into memory 704 from another computer-readable medium such as storage device 708. Execution of the sequences of instructions contained in memory 704 causes processor 702 to perform one or more of the method steps described herein.
  • hardware such as application specific integrated circuit 720, may be used in place of or in combination with software to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware and software, unless otherwise stated.
  • the signals transmitted over network link 778 and other networks through communications interface 770 carry information to and from computer system 700.
  • Computer system 700 can send and receive information, including program code, through the networks 780, 790 among others, through network link 778 and communications interface 770.
  • a server 792 transmits program code for a particular application, requested by a message sent from computer 700, through Internet 790, ISP equipment 784, local network 780 and communications interface 770.
  • the received code may be executed by processor 702 as it is received, or may be stored in storage device 708 or other non-volatile storage for later execution, or both. In this manner, computer system 700 may obtain application program code in the form of a signal on transmission media such as a carrier wave.
  • Various forms of computer readable media may be involved in carrying one or more sequence of instructions or data or both to processor 702 for execution.
  • instructions and data may initially be carried on a magnetic disk of a remote computer such as host 782.
  • the remote computer loads the instructions and data into its dynamic memory and sends the instructions and data over a telephone line using a modem.
  • a modem local to the computer system 700 receives the instructions and data on a telephone line and uses an infra-red transmitter to convert the instructions and data to a signal on an infra-red carrier wave serving as the network link 778.
  • An infrared detector serving as communications interface 770 receives the instructions and data carried in the infrared signal and places information representing the instructions and data onto bus 710.
  • Bus 710 carries the information to memory 704 from which processor 702 retrieves and executes the instructions using some of the data sent with the instructions.
  • the instructions and data received in memory 704 may optionally be stored on storage device 708, either before or after execution by the processor 702.

Abstract

Techniques for developing an application for a subscriber identity module include receiving a communication stream from a piece of terminal equipment. The communication stream includes commands generated by the terminal equipment. It is determined whether a command in the communication stream is an application development command or a network access command. Application development commands are directed to an application development subscriber identity module. Network access commands are directed to a network access subscriber identity module. When command responses are received from the application development subscriber identity module or the network access subscriber identity module, the command responses are sent back to the terminal equipment.

Description

SYSTEMS AND METHODS FOR DEVELOPMENT AND TESTING OF SUBSCRIBER IDENTITY MODULE APPLICATIONS
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims benefit of United States Provisional Appln. 60/942188, filed June 5, 2007, under 35 U.S.C. §119(e).
[0002] This application also claims benefit of United States Provisional Appln. 60/944,062, filed June 14, 2007, the entire contents of which are hereby incorporated by reference as if fully set forth herein, under 35 U.S.C. §119(e).
BACKGROUND OF THE INVENTION
1. Field of the Invention
[0003] The present invention relates generally to mobile telephone devices and methods, and in particular to improved systems and methods for the development and testing of subscriber identity module applications.
2. Description of the Related Art
[0004] A subscriber identity module (SIM) is a removable "smart" card for wireless network devices, such as mobile telephones, and the like. A SIM card securely stores a service- subscriber key used to identify the wireless device to the network. A SIM card allows a user to change devices by simply removing the SIM card from one mobile device and inserting into another device with a suitable slot.
[0005] A subscriber identity module (SIM) is activated and can subsequently be used for the purpose of accessing and using a mobile network when a network operator issues it to a customer. This process typically involves the storing of a cryptographic key material on the SIM by the network operator. This cryptographic key material may be used, for example, to authenticate the SIM to the network operator's authentication center (AuC) and thus enable the terminal equipment to successfully access the wireless network.
[0006] When creating applications for the SIM, development work is typically done on development integrated circuit cards (ICC) that have not been issued or activated by a network operator. These SIMs therefore do not contain the cryptographic key material necessary to access a commercial wireless network. However, communication over a commercial wireless network is preferable to develop, evaluate, measure and test the functionality of SIM-resident applications. As it is typically not possible for a developer building a new SIM application to load this new, and thus experimental, application onto an activated SIM containing the requisite cryptographic key material for wireless network access, development of SIM applications can become arduous and time-consuming and applications developed without network access during their development may be found to be unsatisfactory when they are finally used on a wireless network. [0007] A number of techniques are used in the current art to address the above- described issues. These techniques include the following.
[0008] A first technique entails the purchase of one or more wireless network simulators. These simulators are difficult to set up and maintain and require an administrator to oversee them. In addition, these network simulators cannot and do not accurately reflect the operational details of many commercial wireless networks. Finally, these simulated environments are very expensive and are typically out of financial reach for many application developers and software development enterprises. [0009] A second technique requires that a network operator issue to an application developer a network-activated SIM, onto which the developer can load developmental applications. Network operators do not distribute such SIMs without first establishing a close relationship with the developer. This happens infrequently, and is a common barrier to entry for many application developers. Furthermore, SIMs on which one can load an application are themselves special kinds of SIMs, such as Java Card SIMs, which place additional constraints on the application developer.
[0010] The third method requires a relationship with a network operator such that the network operator provides to the application developer the cryptographic key material necessary to access their wireless network. As network operators are very hesitant to release such cryptographic key material, these relationships often take months or even years to develop; and this method is rarely a commercially viable option. SUMMARY OF THE INVENTION
[0011] Embodiments of the present invention are directed to systems and techniques in which a specially designed router mechanism is used in developing and testing an application for a subscriber identity module. The router receives means for receiving a communication stream from a piece of terminal equipment. The router analyzes the commands contained in the communication stream, and determines whether a command is an application development command or a network access command. Application development commands are routed to an application development subscriber identity module. Network access commands are directed to a network access subscriber identity module. Command responses from the application development subscriber identity module and the network access subscriber identity module are then sent back to the terminal equipment.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
[0013] FIG. 1 is a block diagram illustrating an overall system according to an embodiment;
[0014] FIG. 2 is a block diagram illustrating a software implementation of a system according to an embodiment;
[0015] FIG. 3 is a block diagram illustrating a hardware implementation of the system according to an embodiment;
[0016] FIG. 4 is a block diagram illustrating a programmable integrated circuit implementation of a system according to an embodiment;
[0017] FIG. 5 is a block diagram illustrating a plan view of a cable for connecting terminal equipment to a Y-Router according to an embodiment;
[0018] FIG. 6 is a flowchart that illustrates at a high level, a method according to an embodiment; and
[0019] FIG. 7 is a block diagram that illustrates a computer syste upon which an embodiment of the invention may be implemented.
DETAILED DESCRIPTION
[0020] A method, apparatus and system are described for development and testing of subscriber identity modules (SIMs) in terminal equipment (TE), such as mobile telephones, or other like devices. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
[0021] Multiple communications networks have evolved that support wireless communications with a mobile communications device, called a mobile station (MS) or terminal equipment (TE), such as a cell phone, a personal digital assistant (PDA) and a lap top computer. The Global System for Mobile Communications (GSM) is a digital cellular technology that is used worldwide, predominantly in Europe and Asia. GSM is the world's leading standard in digital wireless communications. GSM supports real time digital voice and multimedia streams. In the process of setting up sessions across the GSM network to carry such real time streams, signaling data packets are sent among network nodes. These signaling data packets use a signaling protocol, such as Signal System 7 (SS7), and are usually transparent to the user of the TE. The signaling data packets indicate the network address and other properties of the two communicating end stations (such as a dialed telephone number) and reserve network resources to support the communications. In some applications the signaling data packets are used to support short data messaging (SMS) and other data services.
[0022] In developing applications for a SIM, it is advantageous to be able to build the application in incremental steps, while testing on the actual wireless network accessed by the TE. According to various embodiments, this is accomplished by splitting the SIM-TE communication stream between two separate SIMs: 1] an application and development SIM; and 2] an existing, network-enabled SIM. Commands pertaining to the new application functionality are sent to the application development SIM, while commands pertaining to existing SIM functionality are sent to the network-enabled SIM. The new SIM application being developed can be running either on a second integrated circuit card or on a suitable software development station, such as a computer, with software debugging capabilities.
[0023] As described hereinbelow, various embodiments provide methods, systems and devices that for a SIM software development environment. The described techniques can be used to test and debug new SIM applications as well as to study the performance characteristics of both new and existing SIM applications.
[0024] The described techniques allow terminal equipment to communicate with two SIMs concurrently. According to an aspect of the invention, one SIM is a developmental integrated circuit card that contains the application being developed. The other SIM is a SIM issued by a network operator that contains the cryptographic key material necessary to access the wireless network. Using hardware and software to manage and route communications between the terminal equipment and both of the SIMs, the new application on the first SIM achieves the ability to access the wireless network while using the second SIM to gain and maintain the authorization needed for this access. Because the illustrated embodiments split the communication from the terminal equipment to the SIM into two pathways, one for each of the SIMs, the method and device is called a "Y-Router." This Y-Router does not necessarily perform any of the data packet forwarding processes performed by intermediate network nodes called routers on internetwork layer protocols embedded in the data packets. [0025] FIG. 1 is a block diagram illustrating an overall system according to an embodiment, in which a development and testing computer with communication management software 110 is used to develop a SIM application. The system 100 includes terminal equipment (TE) 120 that generates a communication stream 130 to be fed to a SIM. This communication stream is generally referred to herein as an SIM-TE communication stream. The SIM-TE communications stream includes commands 132 generated by the terminal equipment 120 and command responses 134 generated by other components in the system 100 in response to the generated commands 132. [0026] As shown in FIG. 1, the SIM-TE communication stream 130 is not connected directly to a SIM. Rather, it is connected to Y-Router 140, which includes a command analyzer 142 and a router 144. First and second communication streams 150 and 160 connect the Y-Router 140, respectively, to an application development SIM 170 and an existing, network-enabled SIM 180. [0027] When the Y-Router 140 receives commands 132 via the SIM-TE communication stream 130, the command analyzer module 142 analyzes each command 132 to determine whether the command 132 pertains to the new application functionality or to the existing application functionality.
[0028] If it is determined that a command 132 pertains to the new application functionality, the router 144 routes the command 132 to the application development SIM 170 via the application development communication stream 150. If it is determined that a command 132 pertains to existing network functionality (e.g., does not pertain to any new application functionality), the router 144 routes the command to the existing, network- enabled SIM 180 via communication stream 160. Thus, the application development SIM 170 is used to develop new applications, while the network-connected SIM 180 is used to provide a network connection and any older functionality. The system 100 therefore allows an application to be developed while connected into the network for which the application is being developed.
[0029] The Y-Router mechanism may be implemented in a number of different ways. As discussed below, further embodiments of the invention are directed to software and hardware implementations of the described system.
[0030] FIG. 2 is a block diagram illustrating a software implementation of a system according to an embodiment. The FIG. 2 system 200 includes a development and testing computer 210 that runs a suitable communication management software program, and also includes software components (e.g., instructions executing on a general purpose processor) allowing the computer 210 to function as a Y-Router, as described above. The computer 210 is used to develop and test new applications for terminal equipment 220, such as a cell phone or the like. According to some embodiments, the computer 210 is a suitable off-the-shelf product. The terminal equipment 220 is provided with a SIM slot for connection to a SIM device. In system 200, a suitable communication cable 230 is provided having a first end that connects to the terminal device SIM slot and a second end that connects to the computer 210. The computer 210 is connected to a first integrated card reader 240 for Application Development SIM 242 (labeled SIMl) and to a second integrated card reader 250 for Network Access SIM 252 (labeled SIM2). [0031] FIG. 3 is a block diagram illustrating a hardware implementation of the system according to an embodiment. The FIG. 3 system 300 includes a Y-Router device 310 having at least two SIM slots 312 and 314 (labeled SIMl and SIM2) and two communication cables 320 and 330. The first communication cable 320 is used to connect the device to terminal equipment 340. The second communication cable 330 is used to connect the device to a computer 350 running Y-Router communication management software. In FIG. 3, the Y-Router 310 is implemented using a dedicated, general-purpose computer in a box.
[0032] FIG. 4 is a block diagram illustrating a programmable integrated circuit implementation of a system according to an embodiment. FIG. 4 shows a system 400 in which the Y-Router is implemented as a printed circuit board with a dedicated programmable integrated circuit (PIC) 410, which has been programmed to route the commands from the terminal equipment. The printed circuit board provides connections to first and second SIMs 420 and 430 (labeled SIMl and SIM2), a connection to terminal equipment 440 and a connection to a development and testing computer 450. [0033] FIG. 5 is a block diagram illustrating a plan view of a cable for connecting terminal equipment to a Y-Router according to an embodiment. FIG. 5 shows a connector cable 500 for coupling terminal equipment to a Y-Router, in both the software and hardware embodiments described above. The cable is provided with integrated circuit card contacts (ICC) 510 on one end. The ICC end of this cable is inserted into a SIM slot of the terminal equipment. The second end 520 of the cable is connected to the Y-Router. The cable 500 carries all communications that the terminal equipment sends to the SIM to the Y-Router and sends all communications for the terminal equipment generated by either SIM card, by the Y-Router or by the development computer back to the terminal equipment
Methods of Operation.
[0034] According to the standards describing the interface between the terminal equipment and the subscriber identity module, the SIM-TE communication stream comprises command-response pairs. Each coupled pair is called an Application Protocol Data Unit (APDU). A command APDU is sent from the terminal equipment to the SIM and a response APDU is, as a consequence, returned from the SIM to the terminal equipment. The terminal equipment can use APDU commands to store data on the SIM or to retrieve data from the SIM. The terminal equipment can also use APDU commands to cause processing to occur on the SIM. Example Routing of RUN GSM ALGORITHM Command. [0035] For wireless networks based on the Global System for Mobile communications (GSM) standards, the document ETSI GSM 11.11 describes in detail each APDU that can be sent from the terminal to the SIM. One particular APDU, the APDU named RUN GSM ALGORITHM, is used to authenticate a SIM to the wireless network. This APDU sends a 16-byte random number from the network operator via the terminal equipment to the SIM and calls for the SIM to perform particular cryptographic processing steps using the cryptographic key material stored on the SIM. In response, the SIM returns a 4-byte Signed Response (SRES) and a 12-byte Cipher Key (Kc) to the terminal equipment. The SRES portion of this response is returned to the network operator by the handset as a witness for the cryptographic key material contained on the SIM. After the network operator has verified this response, network access is granted to the terminal equipment.
[0036] In a method embodiment described herein, the terminal equipment (TE) communicates with the Y-Router and the communication management software, rather than directly with the SIM provided by the network operator. The Y-Router and the communication management software then routes the APDU traffic to the appropriate SIM - the network access SIM or the application development SIM - based on the technical details of the APDU.
[0037] In a preferred embodiment, the RUN GSM ALGORITHM APDU is sent to the network access SIM that has been issued by a network operator and which contains the cryptographic key material necessary to gain network access. All other APDUs are sent to the application development SIM. In either case, the SIM receiving the command APDU forms the corresponding response APDU which is returned to the Y-Router and the communication management software that in turn sends the response APDU back to the terminal equipment. Thus by the method and device of the Y-Router, the terminal equipment behaves exactly as if it were communicating with a single SIM whereas in fact it is concurrently communicating with a network access SIM and at least one application development SIM.
[0038] FIG. 6 6 is a flowchart 600 that illustrates at a high level, a method according to an embodiment. Although steps in FIG. 6 are presented in a particular order for purposes of illustration, in other embodiments one or more steps are performed in a different order or overlapping in time, or one more other steps are added or one or more steps are omitted, or some combination of changes are made.
[0039] In step 601, the terminal equipment issues a command.
[0040] In step 602, the Y-Router mechanism receives the command from the terminal equipment.
[0041] In step 603, the Y-Router mechanism analyzes the command to determine whether the command is an application development command or a network access command.
[0042] If in step 603 it is determined that the command is an application development command, the technique proceeds down the left branch. In step 604, the command is sent to the application development SIM. In 605, a response is generated by the application development SIM and sent back to the Y-Router. In step 606 the command response is sent back to the terminal equipment. The process then returns to step 601.
[0043] If in step 603 it is determined that the command is a network access command, the method proceeds down the right branch. In step 607, the command is sent to the network access SIM. In step 608, a response is generated by the network access SIM and received back at the Y-Router. The method then returns to step 606. In step 606, as described above, the command response is sent back to the terminal equipment. The method then returns to step 601. The process is repeated indefinitely, or as many times as desired.
[0044] A first benefit of the illustrated embodiments is the ability to gain and maintain network connectivity for a new SIM application without special arrangement with the network operator.
[0045] A second benefit of the illustrated embodiments is that, unlike the method in the current art of using a network simulator, no simulation is occurring. The SIM application under development is communicating on the wireless network in exactly the manner in which it would be when commercially deployed.
[0046] A third benefit of the illustrated embodiments is that SIM application development can take place without the need to establish special business or technical relationships with a network operator.
[0047] A fourth benefit of the illustrated embodiments is that the Y-Router and the communication management software can be used to gather detailed performance data on the new SIM application including its interaction with the basic functionality of the SIM and with other SIM applications.
Command Logging and Display.
[0048] In order to optimize a SIM application for a particular type or model of terminal equipment it is beneficial to be able to be able to study in detail how the terminal equipment interacts with the SIM and how the terminal equipment responds to responses from the SIM. This is particularly important during initialization phases during which the terminal equipment may send hundreds of discovery commands to the SIM. [0049] In some embodiments, the Y-Router is configured to make a log of all the traffic between the terminal equipment and the SIM. In various embodiments, this log is extracted from the Y-Router for detailed analysis. One can then make an orderly sequence of changes in the SIM, such as changing the organization of the files on the SIM or sending back alternative result codes. By comparing these logs for different devices, the SIM application can be tuned to respond in a maximally efficient manner to a particular terminal device.
[0050] In an alternative embodiment, all of the communications between the terminal equipment and the two SIM cards are displayed on the screen of a development and testing computer. This display parses these commands and display descriptions of the commands in human-readable text. In some embodiments, the display also builds and update various graphical and statistical displays of the command traffic, such as how many of each of the various commands were observed, and the response time of each of the SIMs to various commands.
Situation-Specific Routing.
[0051] Rather than routing specific commands to one SIM or the other according to a fixed rule, the Y-Router is configured to route all commands to both SIMs in some embodiments. In such embodiments, the Y-Router waits until it has received a response from both SIMs before making a determination of which response to send back to the terminal equipment. In this manner the SIM application under development can defer functionality to the commercial SIM in specific application-dependent situations, while in different specific application-dependent situations it can override the functionality of the commercial SIM. [0052] In some other embodiments, the command and the responses of both of the SIM cards are displayed on the development and testing computer; and the programmer or tester is able to make the decision as to which of the two responses should be sent back to the terminal equipment.
Hardware Overview
[0053] FIG. 7 is a block diagram that illustrates a computer system 700 upon which an embodiment of the invention may be implemented. Computer system 700 includes a communication mechanism such as a bus 710 for passing information between other internal and external components of the computer system 700. Information is represented as physical signals of a measurable phenomenon, typically electric voltages, but including, in other embodiments, such phenomena as mechanical, magnetic, electromagnetic, pressure, chemical, molecular atomic and quantum interactions. For example, north and south magnetic fields, or a zero and non-zero electric voltage, represent two states (0, 1) of a binary digit (bit). A sequence of binary digits constitutes digital data that is used to represent a number or code for a character. A bus 710 includes many parallel conductors of information so that information is transferred quickly among devices coupled to the bus 710. One or more processors 702 for processing information are coupled with the bus 710. A processor 702 performs a set of operations on information. The set of operations include bringing information in from the bus 710 and placing information on the bus 710. The set of operations also typically include comparing two or more units of information, shifting positions of units of information, and combining two or more units of information, such as by addition or multiplication. A sequence of operations to be executed by the processor 702 constitute computer instructions.
[0054] Computer system 700 also includes a memory 704 coupled to bus 710. The memory 704, such as a random access memory (RAM) or other dynamic storage device, stores information including computer instructions. Dynamic memory allows information stored therein to be changed by the computer system 700. RAM allows a unit of information stored at a location called a memory address to be stored and retrieved independently of information at neighboring addresses. The memory 704 is also used by the processor 702 to store temporary values during execution of computer instructions. The computer system 700 also includes a read only memory (ROM) 706 or other static storage device coupled to the bus 710 for storing static information, including instructions, that is not changed by the computer system 700. Also coupled to bus 710 is a non- volatile (persistent) storage device 708, such as a magnetic disk or optical disk or flash drive, for storing information, including instructions, that persists even when the computer system 700 is turned off or otherwise loses power.
[0055] In many embodiments, information, including instructions, is provided to the bus 710 for use by the processor from an external input device 712, such as a keyboard containing alphanumeric keys operated by a human user, or a sensor. A sensor detects conditions in its vicinity and transforms those detections into signals compatible with the signals used to represent information in computer system 700. Other external devices coupled to bus 710, used primarily for interacting with humans, include a display device 714, such as a cathode ray tube (CRT) or a liquid crystal display (LCD) or a plasma screen, for presenting images, and a pointing device 716, such as a mouse or a trackball or cursor direction keys, for controlling a position of a small cursor image presented on the display 714 and issuing commands associated with graphical elements presented on the display 714.
[0056] In the illustrated embodiment, special purpose hardware, such as an application specific integrated circuit (IC) 720, is coupled to bus 710. The special purpose hardware is configured to perform operations not performed by processor 702 quickly enough for special purposes. Examples of application specific ICs include graphics accelerator cards for generating images for display 714, cryptographic boards for encrypting and decrypting messages sent over a network, speech recognition, and interfaces to special external devices, such as robotic arms and medical scanning equipment that repeatedly perform some complex sequence of operations that are more efficiently implemented in hardware.
[0057] Computer system 700 also includes one or more instances of a communications interface 770 coupled to bus 710. Communication interface 770 provides a two-way communication coupling to a variety of external devices that operate with their own processors, such as printers, scanners and external disks. In general, the coupling is with a network link 778 that is connected to a local network 780 to which a variety of external devices with their own processors are connected. For example, communication interface 770 may be a parallel port or a serial port or a universal serial bus (USB) port on a personal computer. In some embodiments, communications interface 770 is an integrated services digital network (ISDN) card or a digital subscriber line (DSL) card or a telephone modem that provides an information communication connection to a corresponding type of telephone line. In some embodiments, a communication interface 770 is a cable modem that converts signals on bus 710 into signals for a communication connection over a coaxial cable or into optical signals for a communication connection over a fiber optic cable. As another example, communications interface 770 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN, such as Ethernet. Wireless links may also be implemented. Carrier waves, such as acoustic waves and electromagnetic waves, including radio, optical and infrared waves travel through space without wires or cables. Signals include man-made variations in amplitude, frequency, phase, polarization or other physical properties of carrier waves. For wireless links, the communications interface 770 sends and receives electrical, acoustic or electromagnetic signals, including infrared and optical signals, that carry information streams, such as digital data. [0058] The term computer-readable medium is used herein to refer to any medium that participates in providing information to processor 702, including instructions for execution. Such a medium may take many forms, including, but not limited to, nonvolatile media, volatile media and transmission media. Non- volatile media include, for example, optical or magnetic disks, such as storage device 708. Volatile media include, for example, dynamic memory 704. Transmission media include, for example, coaxial cables, copper wire, fiber optic cables, and waves that travel through space without wires or cables, such as acoustic waves and electromagnetic waves, including radio, optical and infrared waves.
[0059] Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, a hard disk, a magnetic tape, or any other magnetic medium, a compact disk ROM (CD-ROM), a digital video disk (DVD) or any other optical medium, punch cards, paper tape, or any other physical medium with patterns of holes or knobs, a RAM, a programmable ROM (PROM), an erasable PROM (EPROM), a FLASH- EPROM, or any other memory chip or cartridge, signals on a carrier wave, or any other medium from which a computer can read. [0060] Network link 778 typically provides information communication through one or more networks to other devices that use or process the information. For example, network link 778 may provide a connection through local network 780 to a host computer 782 or to equipment 784 operated by an Internet Service Provider (ISP). ISP equipment 784 in turn provides data communication services through the public, world-wide packet- switching communication network of networks now commonly referred to as the Internet 790. A computer called a server 792 connected to the Internet provides a service in response to information received over the Internet. For example, server 792 provides information representing video data for presentation at display 714. [0061] The invention is related to the use of computer system 700 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 700 in response to processor 702 executing one or more sequences of one or more instructions contained in memory 704. Such instructions, also called software and program code, may be read into memory 704 from another computer-readable medium such as storage device 708. Execution of the sequences of instructions contained in memory 704 causes processor 702 to perform one or more of the method steps described herein. In alternative embodiments, hardware, such as application specific integrated circuit 720, may be used in place of or in combination with software to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware and software, unless otherwise stated.
[0062] The signals transmitted over network link 778 and other networks through communications interface 770, carry information to and from computer system 700. Computer system 700 can send and receive information, including program code, through the networks 780, 790 among others, through network link 778 and communications interface 770. In an example using the Internet 790, a server 792 transmits program code for a particular application, requested by a message sent from computer 700, through Internet 790, ISP equipment 784, local network 780 and communications interface 770. The received code may be executed by processor 702 as it is received, or may be stored in storage device 708 or other non-volatile storage for later execution, or both. In this manner, computer system 700 may obtain application program code in the form of a signal on transmission media such as a carrier wave. [0063] Various forms of computer readable media may be involved in carrying one or more sequence of instructions or data or both to processor 702 for execution. For example, instructions and data may initially be carried on a magnetic disk of a remote computer such as host 782. The remote computer loads the instructions and data into its dynamic memory and sends the instructions and data over a telephone line using a modem. A modem local to the computer system 700 receives the instructions and data on a telephone line and uses an infra-red transmitter to convert the instructions and data to a signal on an infra-red carrier wave serving as the network link 778. An infrared detector serving as communications interface 770 receives the instructions and data carried in the infrared signal and places information representing the instructions and data onto bus 710. Bus 710 carries the information to memory 704 from which processor 702 retrieves and executes the instructions using some of the data sent with the instructions. The instructions and data received in memory 704 may optionally be stored on storage device 708, either before or after execution by the processor 702.
Extensions and modifications.
[0064] In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Claims

CLAIMSWhat is claimed is:
1. A router for use in developing and testing an application for a subscriber identity module, comprising: means for receiving a communication stream from a piece of terminal equipment, the communication stream including commands generated by the terminal equipment; means for determining whether a command in the communication stream is an application development command or a network access command; means for routing application development commands to an application development subscriber identity module; means for routing network access commands to a network access subscriber identity module; means for receiving command responses from the application development subscriber identity module and the network access subscriber identity module; and means for sending the command responses back to the terminal equipment.
2. A method for developing an application for a subscriber identity module, comprising: receiving a communication stream from a piece of terminal equipment, the communication stream including commands generated by the terminal equipment; determining whether a command in the communication stream is an application development command or a network access command; routing application development commands to an application development subscriber identity module; routing network access commands to a network access subscriber identity module; receiving command responses from the application development subscriber identity module and the network access subscriber identity module; and sending the command responses back to the terminal equipment.
3. A system for developing and testing an application for a subscriber identity module, comprising: a Y- Router having a terminal port for connecting to a terminal device, and first and second subscriber identity module ports for connecting to first and second subscriber identity modules; means for connecting the Y-Router terminal port to a subscriber identity module connector on a terminal device; means for connecting the first Y-Router subscriber identity port to an application development and testing subscriber identity module; and means for connecting the second Y-Router subscriber identity port to a network access subscriber identity module, wherein the Y-Router includes means for receiving and analyzing commands from the terminal device and for routing commands identified as application development commands to the application development and testing subscriber identity module, and for routing commands identified as network access commands to the network access subscriber identity module, and the Y-Router further includes means for receiving command responses from the subscriber identity modules and for routing those command responses back to the terminal device.
PCT/US2008/065695 2007-06-05 2008-06-03 Systems and methods for development and testing of subscriber identity module applications WO2008151205A2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US94218807P 2007-06-05 2007-06-05
US60/942,188 2007-06-05
US94406207P 2007-06-14 2007-06-14
US60/944,062 2007-06-14

Publications (2)

Publication Number Publication Date
WO2008151205A2 true WO2008151205A2 (en) 2008-12-11
WO2008151205A3 WO2008151205A3 (en) 2010-01-07

Family

ID=40094400

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/065695 WO2008151205A2 (en) 2007-06-05 2008-06-03 Systems and methods for development and testing of subscriber identity module applications

Country Status (1)

Country Link
WO (1) WO2008151205A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8915950B2 (en) 2010-12-06 2014-12-23 Covidien Lp Vascular remodeling device
US9089332B2 (en) 2011-03-25 2015-07-28 Covidien Lp Vascular remodeling device
US9186267B2 (en) 2012-10-31 2015-11-17 Covidien Lp Wing bifurcation reconstruction device

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020073393A1 (en) * 2000-09-13 2002-06-13 Metasolv Software, Inc. System and method for automatically designing communications circuits
US20030100299A1 (en) * 2001-11-23 2003-05-29 Ko Yiu Fai Network testing systems
US20040043792A1 (en) * 2002-08-28 2004-03-04 Nokia Corporation Identity module for terminal equipment using prepaid applications
US6760886B1 (en) * 1999-11-17 2004-07-06 International Business Machines Corporation Ensuring referential integrity when using WebDAV for distributed development of a complex software application
US20050021875A1 (en) * 2003-04-11 2005-01-27 Jean-Luc Bouthemy User identification module for access to multiple communication networks
US7058726B1 (en) * 1996-07-08 2006-06-06 Internet Number Corporation Method and systems for accessing information on a network using message aliasing functions having shadow callback functions
WO2007006841A1 (en) * 2005-07-08 2007-01-18 Teliasonera Finland Oyj Quality of a realtime service

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058726B1 (en) * 1996-07-08 2006-06-06 Internet Number Corporation Method and systems for accessing information on a network using message aliasing functions having shadow callback functions
US6760886B1 (en) * 1999-11-17 2004-07-06 International Business Machines Corporation Ensuring referential integrity when using WebDAV for distributed development of a complex software application
US20020073393A1 (en) * 2000-09-13 2002-06-13 Metasolv Software, Inc. System and method for automatically designing communications circuits
US20030100299A1 (en) * 2001-11-23 2003-05-29 Ko Yiu Fai Network testing systems
US20040043792A1 (en) * 2002-08-28 2004-03-04 Nokia Corporation Identity module for terminal equipment using prepaid applications
US20050021875A1 (en) * 2003-04-11 2005-01-27 Jean-Luc Bouthemy User identification module for access to multiple communication networks
WO2007006841A1 (en) * 2005-07-08 2007-01-18 Teliasonera Finland Oyj Quality of a realtime service

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8915950B2 (en) 2010-12-06 2014-12-23 Covidien Lp Vascular remodeling device
US9351859B2 (en) 2010-12-06 2016-05-31 Covidien Lp Vascular remodeling device
US9089332B2 (en) 2011-03-25 2015-07-28 Covidien Lp Vascular remodeling device
US9186267B2 (en) 2012-10-31 2015-11-17 Covidien Lp Wing bifurcation reconstruction device

Also Published As

Publication number Publication date
WO2008151205A3 (en) 2010-01-07

Similar Documents

Publication Publication Date Title
CN105391811A (en) DNS (domain name resolution) method, access method for application server, and terminal
CN102421112B (en) Testing method of mobile terminal, mobile terminal simulator, testing equipment and testing system
CN105516246B (en) A kind of method and server of anti-application program downloading abduction
CN106790727B (en) Information push method and device
CN106792637B (en) International mobile equipment identification number wiring method, device and mobile terminal
CN110471848A (en) A kind of method and apparatus of dynamic returned packet
CN106534129A (en) Access control method and apparatus
US9154973B1 (en) Testing mobile phone maintenance channel
CN101964923A (en) Configuration system and method for interactive commands
CN110278092A (en) Router long-range control method and system based on MQTT agreement
CN108337163A (en) Method and apparatus for link aggregation
WO2008151205A2 (en) Systems and methods for development and testing of subscriber identity module applications
CN107332872A (en) A kind of method that Android device network agile management and control is realized based on VPN connections
CN111614476A (en) Equipment configuration method, system and device
CN105302617A (en) Method and sever for downloading application program
CN114513331B (en) Mining Trojan detection method, device and equipment based on application layer communication protocol
CN102271155B (en) A kind of method of the equipment and its remote operation equipment
CN114071391B (en) Content charging test method, management device, terminal device and storage medium
CN113055254B (en) Address configuration method, device, access server and storage medium
Salazar-Chacón et al. OpenSDN Southbound Traffic Characterization: Proof-of-Concept Virtualized SDN-Infrastructure
CN104836598A (en) Method, device and system of business processing based on near field communication
CN105187633A (en) Mobile phone number display method and device
CN110890981A (en) System for configuring network equipment and method for realizing network equipment configuration
CN116232798B (en) Method, system, equipment and terminal for controlling various CAN bus equipment in cross-platform mode
US20230336983A1 (en) Establishing a backup connectivity between a sensor and a management system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08770071

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08770071

Country of ref document: EP

Kind code of ref document: A2