US9271149B2 - Managing hidden security features in user equipment - Google Patents
- ️Tue Feb 23 2016
US9271149B2 - Managing hidden security features in user equipment - Google Patents
Managing hidden security features in user equipment Download PDFInfo
-
Publication number
- US9271149B2 US9271149B2 US14/057,970 US201314057970A US9271149B2 US 9271149 B2 US9271149 B2 US 9271149B2 US 201314057970 A US201314057970 A US 201314057970A US 9271149 B2 US9271149 B2 US 9271149B2 Authority
- US
- United States Prior art keywords
- api
- ptt
- application
- network
- ptt application Prior art date
- 2013-10-18 Legal status (The legal status 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 status listed.)
- Active, expires 2034-06-22
Links
- 238000000034 method Methods 0.000 claims description 54
- 230000003247 decreasing effect Effects 0.000 claims 1
- 239000008186 active pharmaceutical agent Substances 0.000 abstract 6
- 230000008569 process Effects 0.000 description 38
- 238000004891 communication Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 5
- 230000001934 delay Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1016—IP multimedia subsystem [IMS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/4061—Push-to services, e.g. push-to-talk or push-to-video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
- H04W12/069—Authentication using certificates or pre-shared keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0215—Traffic management, e.g. flow control or congestion control based on user or device properties, e.g. MTC-capable devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0268—Traffic management, e.g. flow control or congestion control using specific QoS parameters for wireless networks, e.g. QoS class identifier [QCI] or guaranteed bit rate [GBR]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/06—Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
- H04W4/10—Push-to-Talk [PTT] or Push-On-Call services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. Transmission Power Control [TPC] or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0261—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
- H04W52/0264—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by selectively disabling software applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M7/00—Arrangements for interconnection between switching centres
- H04M7/006—Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
- H04M7/0078—Security; Fraud detection; Fraud prevention
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
- H04W88/06—Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Definitions
- a push-to-talk (PTT) service provides direct one-to-one and/or one-to-many audio communication.
- PTT may include a mechanism that provides instantaneous communication between parties, and that utilizes a button to switch user equipment (UE) from a voice transmission mode to a voice reception mode.
- UE user equipment
- the operation of UEs in this manner may be similar to how walkie talkies operate.
- a PTT service may switch a UE from a full duplex mode, where both parties may hear each other simultaneously, to a half duplex mode, where a single party may speak at one time. Multiple parties to a conversation may also be included. Availabilities of parties may be checked before a call with the help of a presence function.
- the fourth generation (4G) cellular network includes an evolved packet system (EPS).
- the EPS may include a radio access network (e.g., referred to as a long term evolution (LTE) network), a wireless core network (e.g., referred to as an evolved packet core (EPC) network), an Internet protocol (IP) multimedia subsystem (IMS) network, and a packet data network (PDN).
- LTE long term evolution
- EPC evolved packet core
- IP Internet protocol
- IMS Internet protocol multimedia subsystem
- PDN packet data network
- the LTE network is often called an evolved universal terrestrial radio access network (E-UTRAN).
- E-UTRAN evolved universal terrestrial radio access network
- the EPC network is an all-IP packet-switched core network that supports high-speed wireless and wireline broadband access technologies.
- the EPC network allows UEs to access various services by connecting to the LTE network, an evolved high rate packet data (eHRPD) radio access network (RAN), and/or a wireless local area network (WLAN) RAN.
- the IMS network may include an architectural framework or network (e.g., a telecommunications network) for delivering IP multimedia services.
- the PDN may include a communications network that is based on packet switching.
- FIG. 1 is a diagram of an overview of an example implementation described herein;
- FIG. 2 is a diagram of an example environment in which systems and/or methods described herein may be implemented
- FIG. 3 is a diagram of example components of a device that may correspond to one or more of the devices of the environment depicted in FIG. 2 ;
- FIG. 4 is a flow chart of an example process for granting or denying access to exposed application programming interfaces (APIs);
- APIs application programming interfaces
- FIGS. 5A-5C are diagrams of an example relating to the example process shown in FIG. 4 ;
- FIG. 6 is a flow chart of an example process for establishing and conducting a PTT session with another UE based on exposed APIs.
- FIGS. 7A-7H are diagrams of an example relating to the example process shown in FIG. 6 .
- Current 4G PTT applications use a public Internet connection with no quality of service (QoS) for PTT services. Without QoS, a user's PTT experience may degrade when a network or a UE is busy and PTT traffic is queued up behind other traffic (e.g., email, video, Internet, etc. traffic).
- the user experience may be exemplified in what is called a “push to hear” delay, which measures how quickly a user hears a beep after pushing the PTT button and how quickly the user's voice reaches a called party.
- Current 4G PTT applications have push to hear delays of approximately 1.5 to 2 seconds, which creates a poor user experience.
- FIG. 1 is a diagram of an overview of an example implementation 100 described herein.
- a user may be associated with a UE connected to an EPS that includes a RAN, an EPC network, an IMS network, and a PDN.
- the UE may include a PTT application that enables the user to establish and conduct a PTT call (or session) via the EPS.
- a manufacturer of the UE may expose one or more hidden or unexposed APIs.
- the UE manufacturer may expose an IMS PDN API and a Discontinuous Receive (DRX) cycle API, as shown in FIG. 1 .
- the IMS PDN API may enable the UE to establish data routes to the IMS network and the PDN.
- the DRX cycle API may enable the UE to modify a DRX cycle timer that dictates when the UE checks a network for traffic.
- the UE may include a security application that restricts access to the exposed APIs, as further shown in FIG. 1 .
- the security application may provide secure access to the IMS PDN API and the DRX cycle API by the PTT application, and may prevent unauthorized applications from accessing the IMS PDN API and the DRX cycle API.
- the security application may include authentication credentials (e.g., a signature, a security token, a security key, or the like) that may be utilized to authenticate applications attempting to access the IMS PDN API and/or the DRX cycle API.
- the security application may request that a particular application attempting to access the IMS PDN API and/or the DRX cycle API provide a credential. If the credential provided by the particular application matches the credential of the security application, the security application may authenticate the particular application for accessing the IMS PDN API and/or the DRX cycle API.
- the PTT application When the PTT application is installed in the UE, the PTT application may be provided with a credential that matches the credential of the security application.
- the security application may authenticate the PTT application for accessing the IMS PDN API and/or the DRX cycle API, as shown in FIG. 1 .
- the security application may provide, to an operating system of the UE, a message indicating that the PTT application is authenticated for accessing the IMS PDN API and/or the DRX cycle API.
- the PTT application may request access to the IMS PDN API, and the IMS PDN API may check with the operating system to determine whether the PTT application is authenticated. Since the PTT application is authenticated, the IMS PDN API may grant the PTT application access to the IMS PDN API.
- the PTT may utilize the IMS PDN API to establish a data connection (e.g., set up data routes) with the PDN over the IMS network.
- the IMS network may permit the UE to utilize quality of service (QoS) with respect to PTT sessions.
- the QoS may include prioritizing PTT traffic over other types of traffic, such as, for example, email, video, and Internet traffic.
- the QoS may improve a call setup time for establishing a PTT session, and may improve a latency time associated with the PTT session.
- the PTT application may request access to the DRX cycle API, and the DRX cycle API may check with the operating system to determine whether the PTT application is authenticated. Since the PTT application is authenticated, the DRX cycle API may grant the PTT application access to the DRX cycle API. The PTT application may access the DRX cycle API in order to modify the DRX cycle timer provided in the DRX cycle API. In some implementations, the PTT application may decrease the DRX cycle timer so that the UE checks the EPS for traffic (e.g., PTT traffic) more frequently. This may enable the UE to more quickly receive PTT traffic from the EPS, such as an incoming PTT call, which may result in shorter call setup times (e.g., relative to public Internet-based PTT).
- traffic e.g., PTT traffic
- Such PTT enhancements may permit prioritization of PTT traffic over other types of traffic, such as email, video, Internet, etc. traffic. This may provide improved PTT call setup time and/or latency time over current 4G PTT implementations, which may improve the PTT user experience. For example, the PTT enhancements may provide push to hear delays of approximately less than one second.
- Implementations of the security application are described herein with respect to a PTT application and to particular APIs exposed for the purpose of enhancing the PTT application.
- the security application may be utilized to provide secure access to one or more exposed APIs of the UE, other than the particular exposed APIs described herein (e.g., the IMS PDN API and the DRX cycle API).
- the security application may be utilized to grant or deny the PTT application, and/or one or more other applications of the UE, access to any exposed API of the UE.
- the PTT application is described herein in terms of PTT voice calls, the PTT application may alternatively or additionally be utilized for PTT video calls.
- FIG. 2 is a diagram of an example environment 200 in which systems and/or methods described herein may be implemented.
- environment 200 may include a UE 210 and an EPS 215 that includes a LTE network 220 , an EPC network 230 , an IMS network 240 , and a PDN 250 .
- LTE network 220 may include an eNodeB (eNB) 222 .
- EPC network 230 may include a mobility management entity (MME) 232 , a serving gateway (SGW) 234 , a policy and charging rules function (PCRF) 236 , and a PDN gateway (PGW) 238 .
- MME mobility management entity
- SGW serving gateway
- PCRF policy and charging rules function
- PGW PDN gateway
- IMS network 240 may include a home subscriber server (HSS) 242 and a proxy call session control function (P-CSCF) 244 .
- HSS home subscriber server
- P-CSCF proxy call session control function
- Devices/networks of environment 200 may connect via wired connections, wireless connections, or a combination of wired and wireless connections.
- eNB 222 may connect with MME 232 over a S1-MME interface, and may connect with SGW 234 over a S1-U interface.
- MME 232 may connect with SGW 234 over a S11 interface, and may connect with HSS 242 over a S6 a interface.
- SGW 234 may connect with PGW 238 over a S5 interface.
- PCRF 236 may connect with PGW 238 over a Gx interface.
- PGW 238 may connect with PDN 250 over a SGi interface, and may connect with P-CSCF 244 .
- Other connections may also be utilized by EPS 215 .
- multiple MMEs 232 may connect with one another over S10 interfaces.
- UE 210 may include a device that is capable of communicating over LTE network 220 , EPC network 230 , and/or IMS network 240 .
- UE 210 may include a radiotelephone; a PCS terminal that may combine, for example, a cellular radiotelephone with data processing and data communications capabilities; a smart phone; a PDA that can include a radiotelephone, a pager, Internet/intranet access, etc.; a laptop computer; a tablet computer; a desktop computer; a workstation computer; a personal computer; a landline telephone; or another type of computation and communication device.
- EPS 215 may include is a core network architecture of the 3GPP LTE wireless communication standard.
- EPS 215 may include LTE network 220 , EPC network 230 , IMS network 240 , and PDN 250 .
- LTE network 220 may include a communications network that connects users (e.g., UE 210 ) to a service provider network.
- LTE network 220 may include a wireless local area network (WLAN) or another type of access network (e.g., an E-UTRAN or an eHRPD network).
- LTE network 220 may include a radio access network capable of providing a particular data rate, a particular latency, packet optimization, a particular capacity and coverage, etc.
- eNB 222 may include one or more computation and communication devices, such as a base station, that receive traffic from MME 232 and/or SGW 234 and transmit that traffic to UE 210 .
- eNB 222 may also include one or more devices that receive traffic from UE 210 and transmit that traffic to MME 232 and/or SGW 234 or to other UEs 210 .
- eNB 222 may combine the functionalities of a base station and a radio network controller (RNC) in 2G or 3G radio access networks.
- RNC radio network controller
- EPC network 230 may include an IP packet-switched core network that supports high-speed wireless and wireline broadband access technologies.
- EPC network 230 may provide packet-switched voice services (e.g., which are traditionally circuit-switched) using IMS network 240 and PDN 250 .
- MME 232 may include one or more computation and communication devices that may be responsible for idle mode tracking and paging procedures (e.g., including retransmissions) for UE 210 .
- MME 232 may be involved in a bearer activation/deactivation process (e.g., for UE 210 ) and may choose a SGW for UE 210 at an initial attach and at a time of intra-LTE handover.
- MME 232 may authenticate UE 210 .
- Non-access stratum (NAS) signaling may terminate at MME 232 , and MME 232 may generate and allocate temporary identities to UEs 210 .
- NAS Non-access stratum
- MME 232 may check authorization of UE 210 to utilize LTE network 220 and may enforce roaming restrictions for UE 210 .
- MME 232 may be a termination point in EPC network 230 for ciphering/integrity protection for NAS signaling and may handle security key management.
- MME 232 may provide a control plane function for mobility between LTE network 220 and other access networks with a S3 interface terminating at MME 232 .
- SGW 234 may include one or more devices that route and forward user data packets, may act as a mobility anchor for a user plane during inter-eNB handovers, and may act as an anchor for mobility between LTE and other 3GPP technologies. For idle state UEs 210 , SGW 234 may terminate a downlink data path and may trigger paging when downlink data arrives for UE 210 . SGW 234 may manage and store contexts associated with UE 210 (e.g., parameters of an IP bearer service, network internal routing information, etc.).
- contexts associated with UE 210 e.g., parameters of an IP bearer service, network internal routing information, etc.
- SGW 234 may include one or more traffic transfer devices (or network devices), such as a gateway, a router, a switch, a firewall, a network interface card (NIC), a hub, a bridge, a proxy server, an optical add-drop multiplexer (OADM), or some other type of device that processes and/or transfers traffic.
- traffic transfer devices such as a gateway, a router, a switch, a firewall, a network interface card (NIC), a hub, a bridge, a proxy server, an optical add-drop multiplexer (OADM), or some other type of device that processes and/or transfers traffic.
- PCRF 236 may include one or more computation and communication devices that provide policy control decision and flow based charging control functionalities.
- PCRF 236 may provide network control regarding service data flow detection, gating, QoS and flow based charging, etc.
- PCRF 236 may determine how a certain service data flow shall be treated, and may ensure that user plane traffic mapping and treatment is in accordance with a user's subscription profile.
- PGW 238 may include one or more devices that provide connectivity of UE 210 to external packet data networks by being a traffic exit/entry point for UE 210 .
- UE 210 may simultaneously connect to more than one PGW 238 for accessing multiple PDNs 250 .
- PGW 238 may perform policy enforcement, packet filtering for each user, charging support, lawful intercept, and packet screening.
- PGW 238 may also act as an anchor for mobility between 3GPP and non-3GPP technologies.
- PGW 238 may include one or more traffic transfer devices (or network devices), such as a gateway, a router, a switch, a firewall, a NIC, a hub, a bridge, a proxy server, an OADM, or some other type of device that processes and/or transfers traffic.
- IMS network 240 may include an architectural framework or network (e.g., a telecommunications network) for delivering IP multimedia services.
- IMS network 240 may include a standardized reference architecture that provides session control, a connection control and an applications services framework, and user and services data.
- HSS 242 may include one or more computation and communication devices that provide a master user database that supports devices of IMS network 240 that handle calls.
- HSS 242 may contain subscription-related information (e.g., user profiles), may perform authentication and authorization of a user, and may provide information about a user's location and IP information.
- P-CSCF 244 may include one or more computation and communication devices that function as a proxy server for UE 210 , where SIP signaling traffic to and from UE 210 may go through P-CSCF 244 .
- P-CSCF 244 may validate and then forward requests from UE 210 , and may process and forward responses to UE 210 .
- PDN 250 may include one or more data communications networks that are based on packet switching, as opposed to circuit switching that is used in public telephone networks. In some implementations, PDN 250 may be capable of communicating with UE 210 over IMS network 240 .
- the number of devices and/or networks shown in FIG. 2 is provided as an example. In practice, there may be additional devices and/or networks, fewer devices and/or networks, different devices and/or networks, or differently arranged devices and/or networks than those shown in FIG. 2 . Furthermore, two or more devices shown in FIG. 2 may be implemented within a single device, or a single device shown in FIG. 2 may be implemented as multiple, distributed devices. Additionally, one or more of the devices of environment 200 may perform one or more functions described as being performed by another one or more devices of environment 200 .
- FIG. 3 is a diagram of example components of a device 300 that may correspond to one or more of the devices of environment 200 .
- one or more of the devices of environment 200 may include one or more devices 300 or one or more components of device 300 .
- device 300 may include a bus 310 , a processor 320 , a memory 330 , an input component 340 , an output component 350 , and a communication interface 360 .
- Bus 310 may include a path that permits communication among the components of device 300 .
- Processor 320 may include a processor (e.g., a central processing unit, a graphics processing unit, an accelerated processing unit, etc.), a microprocessor, and/or any processing component (e.g., a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), etc.) that interprets and/or executes instructions, and/or that is designed to implement a particular function.
- processor 320 may include multiple processor cores for parallel computing.
- Memory 330 may include a random access memory (RAM), a read only memory (ROM), and/or another type of dynamic or static storage component (e.g., a flash, magnetic, or optical memory) that stores information and/or instructions for use by processor 320 .
- RAM random access memory
- ROM read only memory
- static storage component e.g., a flash, magnetic, or optical memory
- Input component 340 may include a component that permits a user to input information to device 300 (e.g., a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, etc.).
- Output component 350 may include a component that outputs information from device 300 (e.g., a display, a speaker, one or more light-emitting diodes (LEDs), etc.).
- LEDs light-emitting diodes
- Communication interface 360 may include a transceiver-like component, such as a transceiver and/or a separate receiver and transmitter, which enables device 300 to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections.
- communication interface 360 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a high-definition multimedia interface (HDMI), or the like.
- RF radio frequency
- USB universal serial bus
- HDMI high-definition multimedia interface
- Device 300 may perform various operations described herein. Device 300 may perform these operations in response to processor 320 executing software instructions included in a computer-readable medium, such as memory 330 .
- a computer-readable medium may be defined as a non-transitory memory device.
- a memory device may include memory space within a single physical storage device or memory space spread across multiple physical storage devices.
- Software instructions may be read into memory 330 from another computer-readable medium or from another device via communication interface 360 . When executed, software instructions stored in memory 330 may cause processor 320 to perform one or more processes described herein. Additionally, or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
- device 300 may include additional components, fewer components, different components, or differently arranged components than those shown in FIG. 3 . Additionally, or alternatively, one or more components of device 300 may perform one or more functions described as being performed by another one or more components of device 300 .
- FIG. 4 is a flow chart of an example process 400 for granting or denying access to exposed APIs.
- one or more process blocks of FIG. 4 may be performed by UE 210 .
- one or more process blocks of FIG. 4 may be performed by another device or a group of devices separate from or including UE 210 .
- process 400 may include exposing an IMS PDN API and a DRX cycle API to a PTT application (block 410 ).
- UE 210 may include a PTT application that enables UE 210 to establish and conduct PTT sessions with other UEs 210 .
- UE 210 may include an IMS PDN API that enables UE 210 to establish a data connection with PDN 250 over IMS network 240 , as opposed to over the public Internet.
- the IMS PDN API may enable the PTT application to make a data connection with PDN 250 over IMS network 240 .
- UE 210 may include several hidden or unexposed APIs that may not be viewed or altered by applications provided in UE 210 .
- the IMS PDN API may be exposed by UE 210 so that the PTT application may utilize the IMS PDN API to establish a data connection with PDN 250 over IMS network 240 .
- UE 210 may include a DRX cycle API that controls a DRX cycle timer associated with UE 210 .
- the DRX cycle timer may include a timer that dictates when UE 210 checks a network for traffic (e.g., UE 210 may check a network for traffic after expiration of the DRX cycle timer).
- the DRX cycle API may be exposed by UE 210 so that the PTT application may modify the DRX cycle timer. For example, UE 210 may decrease the DRX cycle timer so that UE 210 checks EPS 215 for traffic (e.g., PTT traffic) more frequently. This may enable UE 210 to more quickly receive PTT traffic from EPS 215 .
- process 400 may include receiving, by a security application, a credential from the PTT application (block 420 ).
- UE 210 may include a security application that provides secure access to exposed APIs in UE 210 .
- the security application may provide secure access to the IMS PDN API and the DRX cycle API by the PTT application.
- the security application may prevent unauthorized applications from accessing the IMS PDN API and the DRX cycle API.
- the security application may include authentication credentials (e.g., a certificate, a signature, an authentication key, a security token, etc.) that may be utilized to authenticate applications attempting to access the IMS PDN API and/or the DRX cycle API.
- the security application may request that a particular application attempting to access the IMS PDN API and/or the DRX cycle API provide authentication credentials.
- the PTT application may be installed in UE 210 by a manufacturer of UE 210 , may be installed by a network service provider, or may be downloaded and installed in UE 210 by a user of UE 210 .
- the PTT application may be provided with authentication credentials (e.g., a signature), and may provide the authentication credentials to the security application.
- the security application may receive the authentication credentials (e.g., the signature).
- process 400 may include determine whether the credential received from the PTT application matches a credential associated with the security application (block 430 ).
- the security application may determine whether the authentication credentials received from the PTT application match the authentication credentials of the security application.
- the authentication credentials of the security application may include a first signature associated with a first certificate, a first private signing key, and/or a first public verification key.
- the authentication credentials of the PTT application may include a second signature associated with a second certificate, a second private signing key, and/or a second public verification key.
- the security application may determine whether the first signature matches the second signature.
- the security application may determine whether the first certificate matches the second certificate, whether the first private signing key matches the second private signing key, and/or whether the first public verification key matches the second public verification key.
- process 400 may include authenticating the PTT application for accessing the IMS PDN API and the DRX cycle API (block 440 ). For example, if the authentication credentials provided by the PTT application match the authentication credentials of the security application, the security application may authenticate the PTT application for accessing the IMS PDN API and/or the DRX cycle API. In some implementations, when the PTT application is installed in UE 210 , the PTT application may be provided with authentication credentials that match the authentication credentials of the security application. Therefore, the security application may authenticate the PTT application for accessing the IMS PDN API and/or the DRX cycle API.
- the PTT application may utilize and/or modify the IMS PDN API and the DRX cycle API.
- the PTT application may utilize the IMS PDN API to establish a data connection (e.g., set up data routes) with PDN 250 over IMS network 240 .
- the PTT application may utilize the data connection over IMS network 240 to implement a QoS framework for PTT traffic associated with the PTT application.
- the PTT application when the PTT application is installed in UE 210 or when UE 210 receives a tracking area update (TAU) (e.g., a TAU may be performed periodically or when UE 210 moves to another set of cells or tracking area) from EPS 215 , the PTT application may access the DRX cycle API in order to modify the DRX cycle API. For example, the PTT application may modify the DRX cycle timer provided in the DRX cycle API. In some implementations, the PTT application may decrease the DRX cycle timer so that UE 210 checks EPS 215 for traffic (e.g., PTT traffic) more frequently (e.g., every so many milliseconds, seconds, minutes, etc.). This may enable UE 210 to more quickly receive PTT traffic from EPS 215 , such as an incoming PTT call, which may result in shorter call setup times (e.g., relative to public Internet-based PTT).
- TAU tracking area update
- the PTT application may restore the DRX cycle timer to a configurable default value based on particular conditions. For example, the PTT application may restore the DRX cycle timer to the default value when UE 210 is connected to an access network other than LTE network 220 (e.g., when UE 210 connects to a wireless LAN (WLAN)). In such an example, the PTT application may modify the DRX cycle timer again when UE 210 reconnects to LTE network 220 .
- WLAN wireless LAN
- process 400 may include not authenticating the PTT application for accessing the IMS PDN API and the DRX cycle API (block 440 ). For example, if the authentication credentials provided by the PTT application fail to match the authentication credentials of the security application, the security application may not authenticate the PTT application for accessing the IMS PDN API and/or the DRX cycle API and may generate an error (e.g., a security exception error). In some implementations, another application of UE 210 may maliciously or not maliciously attempt to access the IMS PDN API and/or the DRX cycle API.
- the other application may not be provided with a credential that matches the credential of the security application. Prior to attempting to access the IMS PDN API and/or the DRX cycle API, the other application may provide the non-matching credential to the security application, and the security application may not authenticate the other application for accessing the IMS PDN API and/or the DRX cycle API.
- the security application may notify the operating system of UE 210 of the result of the authentications. For example, the security application may inform the operating system that the PTT application is authenticated for accessing the IMS PDN API and the DRX cycle API. In another example, the security application may inform the operating system that the other application is not authenticated for accessing the IMS PDN API and the DRX cycle API.
- process 400 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in FIG. 4 . Additionally, or alternatively, two or more of the blocks of process 400 may be performed in parallel.
- FIGS. 5A-5C are diagrams of an example 500 relating to example process 400 shown in FIG. 4 .
- UE 210 includes unexposed APIs 505 that are hidden from a user of UE 210 and/or applications executing on UE 210 , as shown in FIG. 5A .
- Unexposed APIs 505 may include an IMS PDN API 510 that enables UE 210 to establish a data connection with PDN 250 over IMS network 240 , and a DRX cycle API 515 that controls a DRX cycle timer associated with UE 210 .
- IMS PDN API 510 that enables UE 210 to establish a data connection with PDN 250 over IMS network 240
- DRX cycle API 515 that controls a DRX cycle timer associated with UE 210 .
- IMS PDN API 510 and DRX cycle API 515 may be exposed to a PTT application 520 that enables UE 210 to establish and conduct PTT sessions with other UEs 210 .
- IMS PDN API 510 and DRX cycle API 515 may be exposed to PTT application 520 so that PTT application 520 may utilize and/or modify IMS PDN API 510 and/or DRX cycle API 515 .
- UE 210 may include a security application 525 that determines whether an application is authenticated for accessing IMS PDN API 510 and/or DRX cycle API 515 .
- Security application 525 may include a credential 530 that is utilized to authenticate applications attempting to access IMS PDN API 510 and/or DRX cycle API 515 .
- PTT application 520 may provide a credential 535 to security application 525 . Assume that security application 525 determines that credential 535 provided by PTT application 520 matches credential 530 of security application 525 .
- security application 525 may determine that PTT application 520 is authenticated for accessing IMS PDN API 510 and/or DRX cycle API 515 , as indicated by reference number 540 , and may provide this information to an operating system of UE 210 .
- PTT application 520 may provide an access request 545 to IMS PDN API 510 , and IMS PDN API 510 may check 550 , based on access request 545 , with the operating system to determine whether PTT application 520 is authenticated for accessing IMS PDN API 510 . Since PTT application 520 is authenticated, PTT application 520 may be granted access to IMS PDN API 510 , as indicated by reference number 555 . PTT application 520 may provide an access request 560 to DRX cycle API 515 , and DRX cycle API 515 may check 565 , based on access request 560 , with the operating system to determine whether PTT application 520 is authenticated for accessing DRX cycle API 515 . Since PTT application 520 is authenticated, PTT application 520 may be granted access to DRX cycle API 515 , as indicated by reference number 570 .
- another application of UE 210 may provide a credential 575 to security application 525 .
- security application 525 determines that credential 575 provided by the other application does not match credential 530 of security application 525 .
- security application 525 may determine that the other application is not authenticated for accessing IMS PDN API 510 and/or DRX cycle API 515 , as indicated by reference number 580 , and may provide this information to the operating system.
- the other application may provide an access request 585 to IMS PDN API 510 and/or DRX cycle API 515 .
- IMS PDN API 510 and/or DRX cycle API 515 may check 590 , based on access request 585 , with the operating system to determine whether the other application is authenticated for accessing IMS PDN API 510 and/or DRX cycle API 515 . Since the other application is not authenticated, the other application may be denied access to IMS PDN API 510 and/or DRX cycle API 515 , as indicated by reference number 595 .
- FIGS. 5A-5C are provided merely as an example. Other examples are possible and may differ from what was described with regard to FIGS. 5A-5C .
- FIG. 6 is a flow chart of an example process 600 for establishing and conducting a PTT session with another UE based on exposed APIs.
- one or more process blocks of FIG. 6 may be performed by UE 210 .
- one or more process blocks of FIG. 6 may be performed by another device or a group of devices separate from or including UE 210 .
- process 600 may include modifying a DRX cycle timer with a PTT application and via a DRX cycle API (block 610 ).
- the PTT application of UE 210 may access the DRX cycle API, and may modify the DRX cycle timer provided in the DRX cycle API.
- the security application may provide secure access to the DRX cycle API by the PTT application.
- the PTT application may decrease the DRX cycle timer so that UE 210 checks EPS 215 for traffic (e.g., PTT traffic) more frequently. This may enable UE 210 to more quickly receive PTT traffic from EPS 215 , such as an incoming PTT call, which may result in shorter call setup times (e.g., relative public Internet-based PTT).
- process 600 may include establishing, via an IMS PDN API and the PTT application, data routes with a network (block 620 ).
- the PTT application of UE 210 may access the IMS PDN API, and may utilize the IMS PDN API.
- the security application may provide secure access to the IMS PDN API by the PTT application.
- the PTT application may utilize the IMS PDN API to establish a data connection (e.g., set up data routes) with PDN 250 over IMS network 240 .
- IMS network 240 may permit UE 210 to utilize QoS with respect to PTT sessions. The QoS may improve a call setup time for establishing a PTT session, and may improve a latency time associated with the PTT session.
- process 600 may include establishing a QoS framework with the network for prioritizing PTT traffic (block 630 ).
- UE 210 may connect to PDN 250 over IMS network 240 and via LTE network 220 and EPC network 230 .
- the PTT application of UE 210 may establish a QoS framework with EPS 215 (e.g., with IMS network 240 ) that prioritizes PTT traffic associated with the PTT application.
- the PTT application may prioritize PTT traffic over best effort traffic (e.g., email traffic, video traffic, Internet traffic, etc.), as the PTT traffic traverses IMS network 240 and PDN 250 .
- best effort traffic e.g., email traffic, video traffic, Internet traffic, etc.
- the PTT application may utilize the data connection over IMS network 240 to implement a QoS framework for PTT traffic associated with the PTT application.
- QoS bearers may be defined in IMS network 240 and may be set up statically when UE 210 registers with IMS network 240 . In some implementations, the QoS bearers may be set up dynamically when UE 210 utilizes the PTT application to make a PTT call.
- the PTT traffic may be prioritized after guaranteed bit rate (GBR) conversational audio (e.g., voice-over-IP (VoIP) traffic); before non-GBR variable bit rate video traffic; before non-GBR standard video telephony, video streaming, and general best effort traffic; and before non-GBR machine-to-machine (M2M) traffic.
- GLR guaranteed bit rate
- VoIP voice-over-IP
- M2M machine-to-machine
- process 600 may include utilizing the PTT application and the modified DRX cycle timer to establish a PTT session with a UE (block 640 ).
- UE 210 may utilize the modified DRX cycle timer to check EPS 215 for traffic, such as a PTT call from another UE 210 .
- UE 210 may execute the PTT application based on receiving the PTT call.
- the PTT application may display information indicating that the other UE 210 is trying to establish a PTT session with UE 210 .
- a PTT session may be established between UE 210 and the other UE 210 . If the user does not accept the PTT call, a PTT session may not be established between UE 210 and the other UE 210 .
- the user may instruct UE 210 to execute the PTT application, and the user may utilize the PTT application to establish a PTT session with the other UE 210 .
- the PTT application may display a list of available PTT contacts associated with the user, and the user may select a PTT contact associated with the other UE 210 from the list.
- the PTT application may cause UE 210 to generate a PTT call destined for the other UE 210 .
- UE 210 may provide the PTT call to the other UE 210 via EPS 215 . If the PTT contact accepts the PTT call, a PTT session may be established between UE 210 and the other UE 210 . If the PTT contact does not accept the PTT call, a PTT session may not be established between UE 210 and the other UE 210 .
- process 600 may include prioritizing the PTT traffic during the PTT session based on the QoS framework (block 650 ). For example, during the PTT session, UE 210 may prioritize the PTT traffic over best effort traffic based on the QoS framework established with EPS 215 . In some implementations, during the PTT session, the other UE 210 may also prioritize the PTT traffic over any best effort traffic associated with the other UE 210 , based on the QoS framework established with EPS 215 .
- the PTT traffic in the PTT session with the other UE 210 , may be prioritized before non-GBR traffic, such as, for example, variable bit rate video traffic, standard video telephony traffic, video streaming traffic, general best effort traffic, and M2M traffic.
- non-GBR traffic such as, for example, variable bit rate video traffic, standard video telephony traffic, video streaming traffic, general best effort traffic, and M2M traffic.
- the combination of the reduced DRX cycle timer, the QoS framework for PTT traffic, and other enhancements may provide improved PTT call setup time and/or latency time over current 4G PTT implementations, which may improve the PTT user experience for the users of UE 210 and the other UE 210 .
- the combination may enable the user of UE 210 to experience push to hear delays of approximately less than one second during the PTT session with the other UE 210 .
- the combination may enable the user of the other UE 210 to experience push to hear delays of approximately less than one second during the PTT session with UE 210 .
- process 600 may include determining whether the PTT application is uninstalled (block 660 ).
- the security application may determine whether the PTT application is uninstalled (or removed) from UE 210 .
- the user of UE 210 may utilize an uninstall function of UE 210 to request that the PTT application be uninstalled.
- the uninstall function when implemented by the user, may perform operations to uninstall the PTT application from UE 210 .
- the operating system of UE 210 may notify the security application about any applications that are uninstalled from UE 210 , including the PTT application.
- process 600 may include ending the PTT session with the UE (block 670 ).
- the security application determines that the PTT application is not uninstalled, UE 210 may continue to use the PTT application.
- the user of UE 210 may eventually end the PTT session with the other UE 210 by selecting a mechanism (e.g., an end call button, icon, link, etc.) displayed by the PTT application during the PTT session.
- UE 210 may terminate the PTT session with the other UE 210 , and may display information associated with the PTT application to the user. In some implementations, UE 210 may display other information (e.g., data associated with best effort traffic, a home page, etc.) to the user when the PTT session is terminated. In some implementations, the user of the other UE 210 may end the PTT session with UE 210 .
- process 600 may include utilizing the IMS PDN API to remove the data routes with the network (block 680 ).
- the security application may utilize the IMS PDN API to remove any data routes set up by the PTT application via the IMS PDN API.
- the security application may utilize the IMS PDN API to remove any data connections (e.g., data routes) established with PDN 250 over IMS network 240 .
- the PTT application may utilize the IMS PDN API to establish another data connection (e.g., set up data routes) with PDN 250 over IMS network 240 .
- another data connection e.g., set up data routes
- process 600 may include utilizing the DRX cycle API to reset the DRX cycle timer to a default value (block 690 ).
- the security application may utilize the DRX cycle API to reset the DRX cycle timer to a default value.
- the security application may reset the DRX cycle timer to a configurable default value that may reduce battery usage in UE 210 .
- the default value of the DRX cycle timer may include a value that causes UE 210 to check EPS 215 for traffic less frequently, which may conserve battery usage in UE 210 .
- the security application may reset the DRX cycle timer to a configurable default value that may reduce battery usage in UE 210 .
- the default value of the DRX cycle timer may include a value that causes UE 210 to check EPS 215 for traffic less frequently, which may conserve battery usage in UE 210 .
- the security application may read a default DRX value that is being broadcasted by EPS 215 , and may use the default DRX value to change the DRX cycle timer of UE 210 to the default value.
- This may reset the DRX cycle timer of UE 210 to a default value which EPS 215 wants devices to use (e.g., when using the default value).
- the PTT application may decrease the DRX cycle timer so that UE 210 checks EPS 215 for traffic (e.g., PTT traffic) more frequently (e.g., every so many milliseconds, seconds, minutes, etc.).
- process 600 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in FIG. 6 . Additionally, or alternatively, two or more of the blocks of process 600 may be performed in parallel.
- FIGS. 7A-7H are diagrams of an example 700 relating to example process 600 shown in FIG. 6 .
- UE 210 e.g., a smart phone 210
- smart phone 210 includes IMS PDN API 510 , DRX cycle API 515 , and PTT application 520 .
- PTT application 520 may access DRX cycle API 515 , and may instruct DRX cycle API 515 to modify the DRX cycle timer.
- DRX cycle API 515 may modify the DRX cycle timer based the instruction, and UE 210 may utilize modified DRX cycle timer 705 to check EPS 215 for traffic.
- modified DRX cycle timer 705 causes smart phone 210 to check EPS 215 for information more frequently than before the DRX cycle timer was modified.
- PTT application 520 may access IMS PDN API 510 , and may instruct IMS PDN API 510 to establish data routes in EPS 215 .
- IMS PDN API 510 may establish data routes with IMS network 240 and PDN 250 based on the instruction, as indicated by reference number 710 .
- PTT application 520 may determine, with EPS 215 , a QoS framework 715 that prioritizes PTT traffic.
- smart phone 210 may check EPS 215 for information (e.g., received calls, traffic, etc.) based on a modified DRX cycle timer 705 , as indicated by reference number 720 .
- a coworker of the user may be associated with a tablet computer 210 , and may utilize tablet computer 210 to access a PTT application provided in tablet computer 210 . Assume that the coworker utilizes the PTT application to generate a request 725 for a PTT session with the user and smart phone 210 .
- Tablet computer 210 may provide request 725 for the PTT session to EPS 215 , and EPS 215 may forward request 725 toward smart phone 210 utilizing the QoS framework.
- smart phone 210 may execute a PTT application provided in smart phone 210 and may stop displaying email message 715 .
- the PTT application may cause smart phone 210 to display information associated with request 725 , such as the coworker's name, the coworker's picture, a mechanism to accept or deny request 725 , etc.
- the user utilizes the displayed information to accept request 725 , and establish a PTT session with tablet computer 210 and the coworker, as indicated by reference number 730 in FIG. 7C .
- the PTT application may cause smart phone 210 to display a user interface 735 that includes a picture of coworker, a PTT button, and an end call button.
- the PTT application of smart phone 210 may prioritize PTT traffic associated with the PTT session, as indicated by reference number 740 .
- a delay time between when the user speaks and when the coworker hears the user's voice may be approximately less than one second, as indicated by reference number 760 .
- the coworker selects 765 the PTT button and begins talking to tablet computer 210 , as indicated by reference number 770 .
- the coworker's spoken voice may be provided by tablet computer 210 to smart phone 210 (e.g., via EPS 215 ), and may be heard by the user via smart phone 210 , as indicated by reference number 775 .
- a delay time between when the coworker speaks and when the user hears the coworker's voice may be approximately less than one second, as indicated by reference number 780 .
- Either the user or the coworker may end the PTT session by selecting the end call button.
- the end call button is selected, smart phone 210 and tablet computer 210 may end the PTT session, as indicated by reference number 785 in FIG. 7F .
- smart phone 210 may resume displaying email message 715 to the user, and tablet computer 210 may display a home page or some other information to the coworker.
- smart phone 210 may display a user interface 590 to the user, as shown in FIG. 7G .
- User interface 790 may ask whether the user wants to uninstall PTT application 520 .
- the user selects a Yes button of user interface 590 to indicate that the user wants to uninstall PTT application 520 .
- smart phone 210 may uninstall PTT application 520 from smart phone 210 .
- security application 525 may receive (e.g., from the operating system of smart phone 210 ) a notification indicating that PTT application 520 has been uninstalled from smart phone 210 . Based on the notification, security application 525 may instruct DRX cycle API 515 to reset the DRX cycle timer, as indicated by reference number 795 in FIG. 7H , and DRX cycle API 514 may reset the DRX cycle timer to a default value. Based on the notification, security application 525 may instruct IMS PDN API 510 to remove data routes established in EPS 215 , as indicated by reference number 797 in FIG. 7H , and IMS PDN API 510 may remove any data routes established with IMS network 240 and PDN 250 .
- FIGS. 7A-7H are provided merely as an example. Other examples are possible and may differ from what was described with regard to FIGS. 7A-7H .
- a component is intended to be broadly construed as hardware, firmware, or a combination of hardware and software.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
A device determines whether a PTT application is authenticated to access a first API and a second API, and prevents the PTT application from accessing the first and second APIs when the PTT application is not authenticated. The device permits the PTT application to access the first and second APIs when the PTT application is authenticated, and modifies, via the first API, a timer that dictates when the device checks for traffic received from a network. The device establishes, via the second API, a data connection with the network, and determines, based on the data connection, a QoS framework for the network. The device utilizes the PTT application and the timer to establish a PTT session with another device via the network, and prioritizes, based on the QoS framework, PTT traffic provided in the PTT session with the other device.
Description
A push-to-talk (PTT) service provides direct one-to-one and/or one-to-many audio communication. PTT may include a mechanism that provides instantaneous communication between parties, and that utilizes a button to switch user equipment (UE) from a voice transmission mode to a voice reception mode. The operation of UEs in this manner may be similar to how walkie talkies operate. A PTT service may switch a UE from a full duplex mode, where both parties may hear each other simultaneously, to a half duplex mode, where a single party may speak at one time. Multiple parties to a conversation may also be included. Availabilities of parties may be checked before a call with the help of a presence function.
In the Third Generation Partnership Project (3GPP), the fourth generation (4G) cellular network includes an evolved packet system (EPS). The EPS may include a radio access network (e.g., referred to as a long term evolution (LTE) network), a wireless core network (e.g., referred to as an evolved packet core (EPC) network), an Internet protocol (IP) multimedia subsystem (IMS) network, and a packet data network (PDN). The LTE network is often called an evolved universal terrestrial radio access network (E-UTRAN). The EPC network is an all-IP packet-switched core network that supports high-speed wireless and wireline broadband access technologies. The EPC network allows UEs to access various services by connecting to the LTE network, an evolved high rate packet data (eHRPD) radio access network (RAN), and/or a wireless local area network (WLAN) RAN. The IMS network may include an architectural framework or network (e.g., a telecommunications network) for delivering IP multimedia services. The PDN may include a communications network that is based on packet switching.
BRIEF DESCRIPTION OF THE DRAWINGSis a diagram of an overview of an example implementation described herein;
is a diagram of an example environment in which systems and/or methods described herein may be implemented;
is a diagram of example components of a device that may correspond to one or more of the devices of the environment depicted in
FIG. 2;
is a flow chart of an example process for granting or denying access to exposed application programming interfaces (APIs);
are diagrams of an example relating to the example process shown in
FIG. 4;
is a flow chart of an example process for establishing and conducting a PTT session with another UE based on exposed APIs; and
are diagrams of an example relating to the example process shown in
FIG. 6.
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
Current 4G PTT applications use a public Internet connection with no quality of service (QoS) for PTT services. Without QoS, a user's PTT experience may degrade when a network or a UE is busy and PTT traffic is queued up behind other traffic (e.g., email, video, Internet, etc. traffic). The user experience may be exemplified in what is called a “push to hear” delay, which measures how quickly a user hears a beep after pushing the PTT button and how quickly the user's voice reaches a called party. Current 4G PTT applications have push to hear delays of approximately 1.5 to 2 seconds, which creates a poor user experience.
is a diagram of an overview of an
example implementation100 described herein. As shown, a user may be associated with a UE connected to an EPS that includes a RAN, an EPC network, an IMS network, and a PDN. The UE may include a PTT application that enables the user to establish and conduct a PTT call (or session) via the EPS. In order to enhance the PTT application to improve the PTT session, a manufacturer of the UE may expose one or more hidden or unexposed APIs. For example, the UE manufacturer may expose an IMS PDN API and a Discontinuous Receive (DRX) cycle API, as shown in
FIG. 1. The IMS PDN API may enable the UE to establish data routes to the IMS network and the PDN. The DRX cycle API may enable the UE to modify a DRX cycle timer that dictates when the UE checks a network for traffic.
However, since the exposed APIs may affect battery life of the UE and may be susceptible to security threats, the UE may include a security application that restricts access to the exposed APIs, as further shown in
FIG. 1. The security application may provide secure access to the IMS PDN API and the DRX cycle API by the PTT application, and may prevent unauthorized applications from accessing the IMS PDN API and the DRX cycle API.
For example, the security application may include authentication credentials (e.g., a signature, a security token, a security key, or the like) that may be utilized to authenticate applications attempting to access the IMS PDN API and/or the DRX cycle API. The security application may request that a particular application attempting to access the IMS PDN API and/or the DRX cycle API provide a credential. If the credential provided by the particular application matches the credential of the security application, the security application may authenticate the particular application for accessing the IMS PDN API and/or the DRX cycle API. When the PTT application is installed in the UE, the PTT application may be provided with a credential that matches the credential of the security application. Therefore, the security application may authenticate the PTT application for accessing the IMS PDN API and/or the DRX cycle API, as shown in
FIG. 1. The security application may provide, to an operating system of the UE, a message indicating that the PTT application is authenticated for accessing the IMS PDN API and/or the DRX cycle API.
As further shown in
FIG. 1, the PTT application may request access to the IMS PDN API, and the IMS PDN API may check with the operating system to determine whether the PTT application is authenticated. Since the PTT application is authenticated, the IMS PDN API may grant the PTT application access to the IMS PDN API. The PTT may utilize the IMS PDN API to establish a data connection (e.g., set up data routes) with the PDN over the IMS network. Unlike the public Internet, the IMS network may permit the UE to utilize quality of service (QoS) with respect to PTT sessions. In some implementations, the QoS may include prioritizing PTT traffic over other types of traffic, such as, for example, email, video, and Internet traffic. The QoS may improve a call setup time for establishing a PTT session, and may improve a latency time associated with the PTT session.
As further shown in
FIG. 1, the PTT application may request access to the DRX cycle API, and the DRX cycle API may check with the operating system to determine whether the PTT application is authenticated. Since the PTT application is authenticated, the DRX cycle API may grant the PTT application access to the DRX cycle API. The PTT application may access the DRX cycle API in order to modify the DRX cycle timer provided in the DRX cycle API. In some implementations, the PTT application may decrease the DRX cycle timer so that the UE checks the EPS for traffic (e.g., PTT traffic) more frequently. This may enable the UE to more quickly receive PTT traffic from the EPS, such as an incoming PTT call, which may result in shorter call setup times (e.g., relative to public Internet-based PTT).
Such PTT enhancements may permit prioritization of PTT traffic over other types of traffic, such as email, video, Internet, etc. traffic. This may provide improved PTT call setup time and/or latency time over current 4G PTT implementations, which may improve the PTT user experience. For example, the PTT enhancements may provide push to hear delays of approximately less than one second.
Implementations of the security application are described herein with respect to a PTT application and to particular APIs exposed for the purpose of enhancing the PTT application. However, the security application may be utilized to provide secure access to one or more exposed APIs of the UE, other than the particular exposed APIs described herein (e.g., the IMS PDN API and the DRX cycle API). For example, the security application may be utilized to grant or deny the PTT application, and/or one or more other applications of the UE, access to any exposed API of the UE. Furthermore, although the PTT application is described herein in terms of PTT voice calls, the PTT application may alternatively or additionally be utilized for PTT video calls.
is a diagram of an
example environment200 in which systems and/or methods described herein may be implemented. As illustrated,
environment200 may include a
UE210 and an
EPS215 that includes a
LTE network220, an
EPC network230, an
IMS network240, and a
PDN250.
LTE network220 may include an eNodeB (eNB) 222.
EPC network230 may include a mobility management entity (MME) 232, a serving gateway (SGW) 234, a policy and charging rules function (PCRF) 236, and a PDN gateway (PGW) 238.
IMS network240 may include a home subscriber server (HSS) 242 and a proxy call session control function (P-CSCF) 244. Devices/networks of
environment200 may connect via wired connections, wireless connections, or a combination of wired and wireless connections.
As further shown in
FIG. 2,
eNB222 may connect with
MME232 over a S1-MME interface, and may connect with
SGW234 over a S1-U interface.
MME232 may connect with
SGW234 over a S11 interface, and may connect with
HSS242 over a S6 a interface.
SGW234 may connect with
PGW238 over a S5 interface.
PCRF236 may connect with
PGW238 over a Gx interface.
PGW238 may connect with
PDN250 over a SGi interface, and may connect with P-
CSCF244. Other connections, not shown in
FIG. 2, may also be utilized by
EPS215. For example,
multiple MMEs232 may connect with one another over S10 interfaces.
210 may include a device that is capable of communicating over
LTE network220,
EPC network230, and/or
IMS network240. In some implementations,
UE210 may include a radiotelephone; a PCS terminal that may combine, for example, a cellular radiotelephone with data processing and data communications capabilities; a smart phone; a PDA that can include a radiotelephone, a pager, Internet/intranet access, etc.; a laptop computer; a tablet computer; a desktop computer; a workstation computer; a personal computer; a landline telephone; or another type of computation and communication device.
215 may include is a core network architecture of the 3GPP LTE wireless communication standard.
EPS215 may include
LTE network220,
EPC network230,
IMS network240, and
PDN250.
220 may include a communications network that connects users (e.g., UE 210) to a service provider network. In some implementations,
LTE network220 may include a wireless local area network (WLAN) or another type of access network (e.g., an E-UTRAN or an eHRPD network). In some implementations,
LTE network220 may include a radio access network capable of providing a particular data rate, a particular latency, packet optimization, a particular capacity and coverage, etc.
222 may include one or more computation and communication devices, such as a base station, that receive traffic from
MME232 and/or
SGW234 and transmit that traffic to
UE210.
eNB222 may also include one or more devices that receive traffic from
UE210 and transmit that traffic to
MME232 and/or
SGW234 or to
other UEs210.
eNB222 may combine the functionalities of a base station and a radio network controller (RNC) in 2G or 3G radio access networks.
230 may include an IP packet-switched core network that supports high-speed wireless and wireline broadband access technologies. In some implementations,
EPC network230 may provide packet-switched voice services (e.g., which are traditionally circuit-switched) using
IMS network240 and
PDN250.
232 may include one or more computation and communication devices that may be responsible for idle mode tracking and paging procedures (e.g., including retransmissions) for
UE210.
MME232 may be involved in a bearer activation/deactivation process (e.g., for UE 210) and may choose a SGW for
UE210 at an initial attach and at a time of intra-LTE handover. In some implementations,
MME232 may authenticate
UE210. Non-access stratum (NAS) signaling may terminate at
MME232, and
MME232 may generate and allocate temporary identities to
UEs210.
MME232 may check authorization of
UE210 to utilize
LTE network220 and may enforce roaming restrictions for
UE210.
MME232 may be a termination point in
EPC network230 for ciphering/integrity protection for NAS signaling and may handle security key management.
MME232 may provide a control plane function for mobility between
LTE network220 and other access networks with a S3 interface terminating at
MME232.
234 may include one or more devices that route and forward user data packets, may act as a mobility anchor for a user plane during inter-eNB handovers, and may act as an anchor for mobility between LTE and other 3GPP technologies. For
idle state UEs210,
SGW234 may terminate a downlink data path and may trigger paging when downlink data arrives for
UE210.
SGW234 may manage and store contexts associated with UE 210 (e.g., parameters of an IP bearer service, network internal routing information, etc.). In some implementations,
SGW234 may include one or more traffic transfer devices (or network devices), such as a gateway, a router, a switch, a firewall, a network interface card (NIC), a hub, a bridge, a proxy server, an optical add-drop multiplexer (OADM), or some other type of device that processes and/or transfers traffic.
236 may include one or more computation and communication devices that provide policy control decision and flow based charging control functionalities.
PCRF236 may provide network control regarding service data flow detection, gating, QoS and flow based charging, etc. In some implementations,
PCRF236 may determine how a certain service data flow shall be treated, and may ensure that user plane traffic mapping and treatment is in accordance with a user's subscription profile.
238 may include one or more devices that provide connectivity of
UE210 to external packet data networks by being a traffic exit/entry point for
UE210.
UE210 may simultaneously connect to more than one
PGW238 for accessing
multiple PDNs250.
PGW238 may perform policy enforcement, packet filtering for each user, charging support, lawful intercept, and packet screening.
PGW238 may also act as an anchor for mobility between 3GPP and non-3GPP technologies. In some implementations,
PGW238 may include one or more traffic transfer devices (or network devices), such as a gateway, a router, a switch, a firewall, a NIC, a hub, a bridge, a proxy server, an OADM, or some other type of device that processes and/or transfers traffic.
240 may include an architectural framework or network (e.g., a telecommunications network) for delivering IP multimedia services. In some implementations,
IMS network240 may include a standardized reference architecture that provides session control, a connection control and an applications services framework, and user and services data.
242 may include one or more computation and communication devices that provide a master user database that supports devices of
IMS network240 that handle calls.
HSS242 may contain subscription-related information (e.g., user profiles), may perform authentication and authorization of a user, and may provide information about a user's location and IP information.
P-
CSCF244 may include one or more computation and communication devices that function as a proxy server for
UE210, where SIP signaling traffic to and from
UE210 may go through P-
CSCF244. In some implementations, P-
CSCF244 may validate and then forward requests from
UE210, and may process and forward responses to
UE210.
250 may include one or more data communications networks that are based on packet switching, as opposed to circuit switching that is used in public telephone networks. In some implementations,
PDN250 may be capable of communicating with
UE210 over
IMS network240.
The number of devices and/or networks shown in
FIG. 2is provided as an example. In practice, there may be additional devices and/or networks, fewer devices and/or networks, different devices and/or networks, or differently arranged devices and/or networks than those shown in
FIG. 2. Furthermore, two or more devices shown in
FIG. 2may be implemented within a single device, or a single device shown in
FIG. 2may be implemented as multiple, distributed devices. Additionally, one or more of the devices of
environment200 may perform one or more functions described as being performed by another one or more devices of
environment200.
is a diagram of example components of a
device300 that may correspond to one or more of the devices of
environment200. In some implementations, one or more of the devices of
environment200 may include one or
more devices300 or one or more components of
device300. As shown in
FIG. 3,
device300 may include a bus 310, a
processor320, a
memory330, an
input component340, an
output component350, and a
communication interface360.
Bus 310 may include a path that permits communication among the components of
device300.
Processor320 may include a processor (e.g., a central processing unit, a graphics processing unit, an accelerated processing unit, etc.), a microprocessor, and/or any processing component (e.g., a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), etc.) that interprets and/or executes instructions, and/or that is designed to implement a particular function. In some implementations,
processor320 may include multiple processor cores for parallel computing.
Memory330 may include a random access memory (RAM), a read only memory (ROM), and/or another type of dynamic or static storage component (e.g., a flash, magnetic, or optical memory) that stores information and/or instructions for use by
processor320.
340 may include a component that permits a user to input information to device 300 (e.g., a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, etc.).
Output component350 may include a component that outputs information from device 300 (e.g., a display, a speaker, one or more light-emitting diodes (LEDs), etc.).
360 may include a transceiver-like component, such as a transceiver and/or a separate receiver and transmitter, which enables
device300 to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. For example,
communication interface360 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a high-definition multimedia interface (HDMI), or the like.
300 may perform various operations described herein.
Device300 may perform these operations in response to
processor320 executing software instructions included in a computer-readable medium, such as
memory330. A computer-readable medium may be defined as a non-transitory memory device. A memory device may include memory space within a single physical storage device or memory space spread across multiple physical storage devices.
Software instructions may be read into
memory330 from another computer-readable medium or from another device via
communication interface360. When executed, software instructions stored in
memory330 may cause
processor320 to perform one or more processes described herein. Additionally, or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
The number of components shown in
FIG. 3is provided as an example. In practice,
device300 may include additional components, fewer components, different components, or differently arranged components than those shown in
FIG. 3. Additionally, or alternatively, one or more components of
device300 may perform one or more functions described as being performed by another one or more components of
device300.
is a flow chart of an
example process400 for granting or denying access to exposed APIs. In some implementations, one or more process blocks of
FIG. 4may be performed by
UE210. In some implementations, one or more process blocks of
FIG. 4may be performed by another device or a group of devices separate from or including
UE210.
As shown in
FIG. 4,
process400 may include exposing an IMS PDN API and a DRX cycle API to a PTT application (block 410). For example,
UE210 may include a PTT application that enables
UE210 to establish and conduct PTT sessions with
other UEs210. In some implementations,
UE210 may include an IMS PDN API that enables
UE210 to establish a data connection with
PDN250 over
IMS network240, as opposed to over the public Internet. For example, the IMS PDN API may enable the PTT application to make a data connection with
PDN250 over
IMS network240. In some implementations,
UE210 may include several hidden or unexposed APIs that may not be viewed or altered by applications provided in
UE210. However, the IMS PDN API may be exposed by
UE210 so that the PTT application may utilize the IMS PDN API to establish a data connection with
PDN250 over
IMS network240.
In some implementations,
UE210 may include a DRX cycle API that controls a DRX cycle timer associated with
UE210. The DRX cycle timer may include a timer that dictates when
UE210 checks a network for traffic (e.g.,
UE210 may check a network for traffic after expiration of the DRX cycle timer). In some implementations, the DRX cycle API may be exposed by
UE210 so that the PTT application may modify the DRX cycle timer. For example,
UE210 may decrease the DRX cycle timer so that
UE210
checks EPS215 for traffic (e.g., PTT traffic) more frequently. This may enable
UE210 to more quickly receive PTT traffic from
EPS215.
As further shown in
FIG. 4,
process400 may include receiving, by a security application, a credential from the PTT application (block 420). For example,
UE210 may include a security application that provides secure access to exposed APIs in
UE210. In some implementations, the security application may provide secure access to the IMS PDN API and the DRX cycle API by the PTT application. In some implementations, the security application may prevent unauthorized applications from accessing the IMS PDN API and the DRX cycle API.
For example, the security application may include authentication credentials (e.g., a certificate, a signature, an authentication key, a security token, etc.) that may be utilized to authenticate applications attempting to access the IMS PDN API and/or the DRX cycle API. The security application may request that a particular application attempting to access the IMS PDN API and/or the DRX cycle API provide authentication credentials.
In some implementations, the PTT application may be installed in
UE210 by a manufacturer of
UE210, may be installed by a network service provider, or may be downloaded and installed in
UE210 by a user of
UE210. When the PTT application is installed in
UE210, the PTT application may be provided with authentication credentials (e.g., a signature), and may provide the authentication credentials to the security application. The security application may receive the authentication credentials (e.g., the signature).
As further shown in
FIG. 4,
process400 may include determine whether the credential received from the PTT application matches a credential associated with the security application (block 430). For example, the security application may determine whether the authentication credentials received from the PTT application match the authentication credentials of the security application. In some implementations, the authentication credentials of the security application may include a first signature associated with a first certificate, a first private signing key, and/or a first public verification key. The authentication credentials of the PTT application may include a second signature associated with a second certificate, a second private signing key, and/or a second public verification key. In such implementations, the security application may determine whether the first signature matches the second signature. For example, the security application may determine whether the first certificate matches the second certificate, whether the first private signing key matches the second private signing key, and/or whether the first public verification key matches the second public verification key.
As further shown in
FIG. 4, if the credential received from the PTT application matches the credential associated with the security application (block 430—YES),
process400 may include authenticating the PTT application for accessing the IMS PDN API and the DRX cycle API (block 440). For example, if the authentication credentials provided by the PTT application match the authentication credentials of the security application, the security application may authenticate the PTT application for accessing the IMS PDN API and/or the DRX cycle API. In some implementations, when the PTT application is installed in
UE210, the PTT application may be provided with authentication credentials that match the authentication credentials of the security application. Therefore, the security application may authenticate the PTT application for accessing the IMS PDN API and/or the DRX cycle API.
When the PTT application is authenticated for access to the IMS PDN API and the DRX cycle API, the PTT application may utilize and/or modify the IMS PDN API and the DRX cycle API. In some implementations, the PTT application may utilize the IMS PDN API to establish a data connection (e.g., set up data routes) with
PDN250 over
IMS network240. The PTT application may utilize the data connection over
IMS network240 to implement a QoS framework for PTT traffic associated with the PTT application.
In some implementations, when the PTT application is installed in
UE210 or when
UE210 receives a tracking area update (TAU) (e.g., a TAU may be performed periodically or when
UE210 moves to another set of cells or tracking area) from
EPS215, the PTT application may access the DRX cycle API in order to modify the DRX cycle API. For example, the PTT application may modify the DRX cycle timer provided in the DRX cycle API. In some implementations, the PTT application may decrease the DRX cycle timer so that
UE210
checks EPS215 for traffic (e.g., PTT traffic) more frequently (e.g., every so many milliseconds, seconds, minutes, etc.). This may enable
UE210 to more quickly receive PTT traffic from
EPS215, such as an incoming PTT call, which may result in shorter call setup times (e.g., relative to public Internet-based PTT).
In some implementations, the PTT application may restore the DRX cycle timer to a configurable default value based on particular conditions. For example, the PTT application may restore the DRX cycle timer to the default value when
UE210 is connected to an access network other than LTE network 220 (e.g., when
UE210 connects to a wireless LAN (WLAN)). In such an example, the PTT application may modify the DRX cycle timer again when
UE210 reconnects to
LTE network220.
As further shown in
FIG. 4, if the credential received from the PTT application does not match the credential associated with the security application (block 430—NO),
process400 may include not authenticating the PTT application for accessing the IMS PDN API and the DRX cycle API (block 440). For example, if the authentication credentials provided by the PTT application fail to match the authentication credentials of the security application, the security application may not authenticate the PTT application for accessing the IMS PDN API and/or the DRX cycle API and may generate an error (e.g., a security exception error). In some implementations, another application of
UE210 may maliciously or not maliciously attempt to access the IMS PDN API and/or the DRX cycle API. The other application may not be provided with a credential that matches the credential of the security application. Prior to attempting to access the IMS PDN API and/or the DRX cycle API, the other application may provide the non-matching credential to the security application, and the security application may not authenticate the other application for accessing the IMS PDN API and/or the DRX cycle API.
In some implementations, the security application may notify the operating system of
UE210 of the result of the authentications. For example, the security application may inform the operating system that the PTT application is authenticated for accessing the IMS PDN API and the DRX cycle API. In another example, the security application may inform the operating system that the other application is not authenticated for accessing the IMS PDN API and the DRX cycle API.
Although
FIG. 4shows example blocks of
process400, in some implementations,
process400 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in
FIG. 4. Additionally, or alternatively, two or more of the blocks of
process400 may be performed in parallel.
are diagrams of an example 500 relating to
example process400 shown in
FIG. 4. In example 500, assume that
UE210 includes
unexposed APIs505 that are hidden from a user of
UE210 and/or applications executing on
UE210, as shown in
FIG. 5A.
Unexposed APIs505 may include an
IMS PDN API510 that enables
UE210 to establish a data connection with
PDN250 over
IMS network240, and a
DRX cycle API515 that controls a DRX cycle timer associated with
UE210. As further shown in
FIG. 5A,
IMS PDN API510 and
DRX cycle API515 may be exposed to a
PTT application520 that enables
UE210 to establish and conduct PTT sessions with
other UEs210.
IMS PDN API510 and
DRX cycle API515 may be exposed to
PTT application520 so that
PTT application520 may utilize and/or modify
IMS PDN API510 and/or
DRX cycle API515.
As shown in
FIG. 5B,
UE210 may include a
security application525 that determines whether an application is authenticated for accessing
IMS PDN API510 and/or
DRX cycle API515.
Security application525 may include a
credential530 that is utilized to authenticate applications attempting to access
IMS PDN API510 and/or
DRX cycle API515. As further shown in
FIG. 5B,
PTT application520 may provide a
credential535 to
security application525. Assume that
security application525 determines that
credential535 provided by
PTT application520
matches credential530 of
security application525. Accordingly,
security application525 may determine that
PTT application520 is authenticated for accessing
IMS PDN API510 and/or
DRX cycle API515, as indicated by
reference number540, and may provide this information to an operating system of
UE210.
As further shown in
FIG. 5B,
PTT application520 may provide an
access request545 to
IMS PDN API510, and
IMS PDN API510 may check 550, based on
access request545, with the operating system to determine whether
PTT application520 is authenticated for accessing
IMS PDN API510. Since
PTT application520 is authenticated,
PTT application520 may be granted access to
IMS PDN API510, as indicated by
reference number555.
PTT application520 may provide an
access request560 to
DRX cycle API515, and
DRX cycle API515 may check 565, based on
access request560, with the operating system to determine whether
PTT application520 is authenticated for accessing
DRX cycle API515. Since
PTT application520 is authenticated,
PTT application520 may be granted access to
DRX cycle API515, as indicated by
reference number570.
As shown in
FIG. 5C, another application of
UE210 may provide a
credential575 to
security application525. Assume that
security application525 determines that
credential575 provided by the other application does not match
credential530 of
security application525. Accordingly,
security application525 may determine that the other application is not authenticated for accessing
IMS PDN API510 and/or
DRX cycle API515, as indicated by
reference number580, and may provide this information to the operating system.
As further shown in
FIG. 5C, the other application may provide an
access request585 to
IMS PDN API510 and/or
DRX cycle API515.
IMS PDN API510 and/or
DRX cycle API515 may check 590, based on
access request585, with the operating system to determine whether the other application is authenticated for accessing
IMS PDN API510 and/or
DRX cycle API515. Since the other application is not authenticated, the other application may be denied access to
IMS PDN API510 and/or
DRX cycle API515, as indicated by
reference number595.
As indicated above,
FIGS. 5A-5Care provided merely as an example. Other examples are possible and may differ from what was described with regard to
FIGS. 5A-5C.
is a flow chart of an
example process600 for establishing and conducting a PTT session with another UE based on exposed APIs. In some implementations, one or more process blocks of
FIG. 6may be performed by
UE210. In some implementations, one or more process blocks of
FIG. 6may be performed by another device or a group of devices separate from or including
UE210.
As shown in
FIG. 6,
process600 may include modifying a DRX cycle timer with a PTT application and via a DRX cycle API (block 610). For example, the PTT application of
UE210 may access the DRX cycle API, and may modify the DRX cycle timer provided in the DRX cycle API. In some implementations, the security application may provide secure access to the DRX cycle API by the PTT application. In some implementations, the PTT application may decrease the DRX cycle timer so that
UE210
checks EPS215 for traffic (e.g., PTT traffic) more frequently. This may enable
UE210 to more quickly receive PTT traffic from
EPS215, such as an incoming PTT call, which may result in shorter call setup times (e.g., relative public Internet-based PTT).
As further shown in
FIG. 6,
process600 may include establishing, via an IMS PDN API and the PTT application, data routes with a network (block 620). For example, the PTT application of
UE210 may access the IMS PDN API, and may utilize the IMS PDN API. In some implementations, the security application may provide secure access to the IMS PDN API by the PTT application. In some implementations, the PTT application may utilize the IMS PDN API to establish a data connection (e.g., set up data routes) with
PDN250 over
IMS network240. Unlike the public Internet,
IMS network240 may permit
UE210 to utilize QoS with respect to PTT sessions. The QoS may improve a call setup time for establishing a PTT session, and may improve a latency time associated with the PTT session.
As further shown in
FIG. 6,
process600 may include establishing a QoS framework with the network for prioritizing PTT traffic (block 630). For example,
UE210 may connect to
PDN250 over
IMS network240 and via
LTE network220 and
EPC network230. In some implementations, the PTT application of
UE210 may establish a QoS framework with EPS 215 (e.g., with IMS network 240) that prioritizes PTT traffic associated with the PTT application. For example, the PTT application may prioritize PTT traffic over best effort traffic (e.g., email traffic, video traffic, Internet traffic, etc.), as the PTT traffic traverses
IMS network240 and
PDN250.
In some implementations, since the IMS PDN API may permit the PTT application to establish a data connection with
PDN250 over
IMS network240, the PTT application may utilize the data connection over
IMS network240 to implement a QoS framework for PTT traffic associated with the PTT application. In some implementations, QoS bearers may be defined in
IMS network240 and may be set up statically when
UE210 registers with
IMS network240. In some implementations, the QoS bearers may be set up dynamically when
UE210 utilizes the PTT application to make a PTT call.
In some implementations, the PTT traffic may be prioritized after guaranteed bit rate (GBR) conversational audio (e.g., voice-over-IP (VoIP) traffic); before non-GBR variable bit rate video traffic; before non-GBR standard video telephony, video streaming, and general best effort traffic; and before non-GBR machine-to-machine (M2M) traffic. By prioritizing the PTT traffic over the non-GBR traffic, the PTT application may reduce latency times associated with PTT sessions.
As further shown in
FIG. 6,
process600 may include utilizing the PTT application and the modified DRX cycle timer to establish a PTT session with a UE (block 640). For example,
UE210 may utilize the modified DRX cycle timer to check
EPS215 for traffic, such as a PTT call from another
UE210. When
UE210 receives the PTT call from the
other UE210, and
UE210 may execute the PTT application based on receiving the PTT call. Based on the PTT call, the PTT application may display information indicating that the
other UE210 is trying to establish a PTT session with
UE210. If the user accepts the PTT call, a PTT session may be established between
UE210 and the
other UE210. If the user does not accept the PTT call, a PTT session may not be established between
UE210 and the
other UE210.
In some implementations, the user may instruct
UE210 to execute the PTT application, and the user may utilize the PTT application to establish a PTT session with the
other UE210. In some implementations, the PTT application may display a list of available PTT contacts associated with the user, and the user may select a PTT contact associated with the
other UE210 from the list. When the user selects the PTT contact, the PTT application may cause
UE210 to generate a PTT call destined for the
other UE210. In some implementations,
UE210 may provide the PTT call to the
other UE210 via
EPS215. If the PTT contact accepts the PTT call, a PTT session may be established between
UE210 and the
other UE210. If the PTT contact does not accept the PTT call, a PTT session may not be established between
UE210 and the
other UE210.
As further shown in
FIG. 6,
process600 may include prioritizing the PTT traffic during the PTT session based on the QoS framework (block 650). For example, during the PTT session,
UE210 may prioritize the PTT traffic over best effort traffic based on the QoS framework established with
EPS215. In some implementations, during the PTT session, the
other UE210 may also prioritize the PTT traffic over any best effort traffic associated with the
other UE210, based on the QoS framework established with
EPS215. In some implementations, the PTT traffic, in the PTT session with the
other UE210, may be prioritized before non-GBR traffic, such as, for example, variable bit rate video traffic, standard video telephony traffic, video streaming traffic, general best effort traffic, and M2M traffic. By prioritizing the PTT traffic over the non-GBR traffic, the PTT application may reduce latency times associated with PTT session with the
other UE210.
In some implementations, the combination of the reduced DRX cycle timer, the QoS framework for PTT traffic, and other enhancements (e.g., frame bundling of PTT traffic) may provide improved PTT call setup time and/or latency time over current 4G PTT implementations, which may improve the PTT user experience for the users of
UE210 and the
other UE210. For example, the combination may enable the user of
UE210 to experience push to hear delays of approximately less than one second during the PTT session with the
other UE210. In some implementations, the combination may enable the user of the
other UE210 to experience push to hear delays of approximately less than one second during the PTT session with
UE210.
As further shown in
FIG. 6,
process600 may include determining whether the PTT application is uninstalled (block 660). For example, the security application may determine whether the PTT application is uninstalled (or removed) from
UE210. In some implementations, the user of
UE210 may utilize an uninstall function of
UE210 to request that the PTT application be uninstalled. The uninstall function, when implemented by the user, may perform operations to uninstall the PTT application from
UE210. In some implementations, the operating system of
UE210 may notify the security application about any applications that are uninstalled from
UE210, including the PTT application.
As further shown in
FIG. 6, if the PTT application is not uninstalled (block 660—NO),
process600 may include ending the PTT session with the UE (block 670). For example, if the security application determines that the PTT application is not uninstalled,
UE210 may continue to use the PTT application. In some implementations, the user of
UE210 may eventually end the PTT session with the
other UE210 by selecting a mechanism (e.g., an end call button, icon, link, etc.) displayed by the PTT application during the PTT session. In some implementations, when the user of
UE210 selects the end call mechanism,
UE210 may terminate the PTT session with the
other UE210, and may display information associated with the PTT application to the user. In some implementations,
UE210 may display other information (e.g., data associated with best effort traffic, a home page, etc.) to the user when the PTT session is terminated. In some implementations, the user of the
other UE210 may end the PTT session with
UE210.
As further shown in
FIG. 6, if the PTT application is uninstalled (block 660—YES),
process600 may include utilizing the IMS PDN API to remove the data routes with the network (block 680). For example, if the security application determines that the PTT application is uninstalled from
UE210, or if the PTT application is turned off or disabled (e.g., by the user), the security application may utilize the IMS PDN API to remove any data routes set up by the PTT application via the IMS PDN API. In some implementations, the security application may utilize the IMS PDN API to remove any data connections (e.g., data routes) established with
PDN250 over
IMS network240. In some implementations, if the PTT application is turned on or enabled (e.g., by the user), the PTT application may utilize the IMS PDN API to establish another data connection (e.g., set up data routes) with
PDN250 over
IMS network240.
As further shown in
FIG. 6, if the PTT application is uninstalled (block 660—YES),
process600 may include utilizing the DRX cycle API to reset the DRX cycle timer to a default value (block 690). For example, if the security application determines that the PTT application is uninstalled from
UE210, the security application may utilize the DRX cycle API to reset the DRX cycle timer to a default value. In some implementations, the security application may reset the DRX cycle timer to a configurable default value that may reduce battery usage in
UE210. For example, the default value of the DRX cycle timer may include a value that causes
UE210 to check
EPS215 for traffic less frequently, which may conserve battery usage in
UE210.
In some implementations, if the PTT application is removed or uninstalled from
UE210, or if the PTT application is turned off or disabled (e.g., by the user), the security application may reset the DRX cycle timer to a configurable default value that may reduce battery usage in
UE210. For example, the default value of the DRX cycle timer may include a value that causes
UE210 to check
EPS215 for traffic less frequently, which may conserve battery usage in
UE210. In some implementations, the security application may read a default DRX value that is being broadcasted by
EPS215, and may use the default DRX value to change the DRX cycle timer of
UE210 to the default value. This may reset the DRX cycle timer of
UE210 to a default value which
EPS215 wants devices to use (e.g., when using the default value). In some implementations, if the PTT application is turned on or enabled (e.g., by the user), the PTT application may decrease the DRX cycle timer so that
UE210
checks EPS215 for traffic (e.g., PTT traffic) more frequently (e.g., every so many milliseconds, seconds, minutes, etc.).
Although
FIG. 6shows example blocks of
process600, in some implementations,
process600 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in
FIG. 6. Additionally, or alternatively, two or more of the blocks of
process600 may be performed in parallel.
are diagrams of an example 700 relating to
example process600 shown in
FIG. 6. As shown in
FIG. 7A, assume that a user is associated with UE 210 (e.g., a smart phone 210), and that
smart phone210 includes
IMS PDN API510,
DRX cycle API515, and
PTT application520. As further shown in
FIG. 7A,
PTT application520 may access
DRX cycle API515, and may instruct
DRX cycle API515 to modify the DRX cycle timer.
DRX cycle API515 may modify the DRX cycle timer based the instruction, and
UE210 may utilize modified
DRX cycle timer705 to check
EPS215 for traffic. Assume that modified
DRX cycle timer705 causes
smart phone210 to check
EPS215 for information more frequently than before the DRX cycle timer was modified.
PTT application520 may access
IMS PDN API510, and may instruct
IMS PDN API510 to establish data routes in
EPS215.
IMS PDN API510 may establish data routes with
IMS network240 and
PDN250 based on the instruction, as indicated by
reference number710. As further shown in
FIG. 7A,
PTT application520 may determine, with
EPS215, a
QoS framework715 that prioritizes PTT traffic.
As shown in
FIG. 7B, while the user is creating an email message,
smart phone210 may check
EPS215 for information (e.g., received calls, traffic, etc.) based on a modified
DRX cycle timer705, as indicated by
reference number720. As further shown in
FIG. 7B, a coworker of the user may be associated with a
tablet computer210, and may utilize
tablet computer210 to access a PTT application provided in
tablet computer210. Assume that the coworker utilizes the PTT application to generate a
request725 for a PTT session with the user and
smart phone210.
Tablet computer210 may provide
request725 for the PTT session to
EPS215, and
EPS215 may forward request 725 toward
smart phone210 utilizing the QoS framework.
When
request725 is received by
smart phone210,
smart phone210 may execute a PTT application provided in
smart phone210 and may stop displaying
email message715. The PTT application may cause
smart phone210 to display information associated with
request725, such as the coworker's name, the coworker's picture, a mechanism to accept or deny
request725, etc. Assume that the user utilizes the displayed information to accept
request725, and establish a PTT session with
tablet computer210 and the coworker, as indicated by
reference number730 in
FIG. 7C. When the PTT session is established, the PTT application may cause
smart phone210 to display a
user interface735 that includes a picture of coworker, a PTT button, and an end call button. As further shown in
FIG. 7C, the PTT application of
smart phone210 may prioritize PTT traffic associated with the PTT session, as indicated by
reference number740.
As shown in
FIG. 7D, assume that the user selects 745 the PTT button and begins talking to
smart phone210, as indicated by reference number 750. The user's spoken voice may be provided by
smart phone210 to tablet computer 210 (e.g., via EPS 215), and may be heard by the coworker via
tablet computer210, as indicated by
reference number755. As further shown in
FIG. 7D, a delay time between when the user speaks and when the coworker hears the user's voice may be approximately less than one second, as indicated by
reference number760.
As shown in
FIG. 7E, assume that the coworker selects 765 the PTT button and begins talking to
tablet computer210, as indicated by
reference number770. The coworker's spoken voice may be provided by
tablet computer210 to smart phone 210 (e.g., via EPS 215), and may be heard by the user via
smart phone210, as indicated by reference number 775. As further shown in
FIG. 7E, a delay time between when the coworker speaks and when the user hears the coworker's voice may be approximately less than one second, as indicated by
reference number780.
Either the user or the coworker may end the PTT session by selecting the end call button. When the end call button is selected,
smart phone210 and
tablet computer210 may end the PTT session, as indicated by
reference number785 in
FIG. 7F. As further shown, after the PTT session ends,
smart phone210 may resume displaying
email message715 to the user, and
tablet computer210 may display a home page or some other information to the coworker.
Now assume that the user utilizes an uninstall function of
smart phone210 to request that
PTT application520 be uninstalled from
smart phone210. When the uninstall function is invoked,
smart phone210 may display a
user interface590 to the user, as shown in
FIG. 7G.
User interface790 may ask whether the user wants to uninstall
PTT application520. Assume that the user selects a Yes button of
user interface590 to indicate that the user wants to uninstall
PTT application520. When the user selects the Yes button,
smart phone210 may uninstall
PTT application520 from
smart phone210.
After
smart phone210 uninstalls
PTT application520,
security application525 may receive (e.g., from the operating system of smart phone 210) a notification indicating that
PTT application520 has been uninstalled from
smart phone210. Based on the notification,
security application525 may instruct
DRX cycle API515 to reset the DRX cycle timer, as indicated by
reference number795 in
FIG. 7H, and DRX cycle API 514 may reset the DRX cycle timer to a default value. Based on the notification,
security application525 may instruct
IMS PDN API510 to remove data routes established in
EPS215, as indicated by
reference number797 in
FIG. 7H, and
IMS PDN API510 may remove any data routes established with
IMS network240 and
PDN250.
As indicated above,
FIGS. 7A-7Hare provided merely as an example. Other examples are possible and may differ from what was described with regard to
FIGS. 7A-7H.
To the extent the aforementioned implementations collect, store, or employ personal information provided by individuals, it should be understood that such information shall be used in accordance with all applicable laws concerning protection of personal information. Storage and use of personal information may be in an appropriately secure manner reflective of the type of information, for example, through various encryption and anonymization techniques for particularly sensitive information.
The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations.
A component is intended to be broadly construed as hardware, firmware, or a combination of hardware and software.
It will be apparent that systems and/or methods, as described herein, may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement these systems and/or methods is not limiting of the implementations. Thus, the operation and behavior of the systems and/or methods were described without reference to the specific software code—it being understood that software and control hardware can be designed to implement the systems and/or methods based on the description herein.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of possible implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one claim, the disclosure of possible implementations includes each dependent claim in combination with every other claim in the claim set.
No element, act, or instruction used herein should be construed as critical or essential unless explicitly described as such. Also, as used herein, the articles “a” and “an” are intended to include one or more items, and may be used interchangeably with “one or more.” Furthermore, as used herein, the term “set” is intended to include one or more items, and may be used interchangeably with “one or more.” Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
Claims (20)
1. A method, comprising:
determining, by a device, whether a push-to-talk (PTT) application, provided in the device, is authenticated to access a first application programming interface (API) and a second API;
preventing, by the device, the PTT application from accessing the first API and the second API when the PTT application is not authenticated;
permitting, by the device, the PTT application to access the first API and the second API when the PTT application is authenticated;
modifying, by the device and via the first API when the PTT application is permitted to access the first API, a timer associated with the device,
the timer dictating when the device checks for traffic received from a network;
establishing, by the device and via the second API when the PTT application is permitted to access the second API, a data connection with the network;
determining, by the device and based on the data connection, a quality of service (QoS) framework for the network,
the QoS framework assigning priorities to different types of traffic associated with the device;
utilizing, by the device, the PTT application and the timer to establish a PTT session with another device via the network; and
prioritizing, by the device and based on the QoS framework, PTT traffic provided in the PTT session with the other device.
2. The method
claim 1, where determining whether the PTT application is authenticated further comprises:
determining whether an authentication credential, associated with the PTT application, matches an authentication credential associated with a security application of the device;
authenticating the PTT application to access the first API and the second API when the authentication credential, associated the PTT application, matches the authentication credential associated with the security application; and
failing to authenticate the PTT application to access the first API and the second API when the authentication credential, associated the PTT application, fails to match the authentication credential associated with the security application.
3. The method of
claim 1, where modifying the timer further comprises:
accessing the first API with the PTT application; and
utilizing the PTT application to instruct the first API to modify the timer.
4. The method of
claim 1, where establishing the data connection with the network further comprises:
accessing the second API with the PTT application; and
utilizing the PTT application to instruct the second API to establish the data connection with the network.
5. The method of
claim 1, further comprising:
determining that the PTT application is removed from the device;
restoring, via the first API, the timer to a default value when the PTT application is removed from the device; and
removing, via the second API, the data connection with the network when the PTT application is removed from the device.
6. The method of
claim 1, where the network includes an Internet protocol (IP) multimedia subsystem (IMS) network and a packet data network (PDN), and the method further comprises:
accessing the second API with the PTT application; and
utilizing the second API to establish the data connection with the IMS network and the PDN.
7. The method of
claim 1, where modifying the timer further comprises:
decreasing the timer from a first value to a second value,
the first value of the timer causing the device to check for traffic received from the network at a first frequency,
the second value of the timer causing the device to check for traffic received from the network at a second frequency, and
the second frequency being greater than the first frequency.
8. A device, comprising:
a memory to store a push-to-talk (PTT) application; and
one or more processors to:
determine whether the PTT application is authenticated to access a first application programming interface (API) and a second API,
the first API and the second API being exposed to the PTT application,
permit the PTT application to access the first API and the second API when the PTT application is authenticated,
modify, via the first API when the PTT application is permitted to access the first API, a timer associated with the device,
the timer dictating when the device checks for traffic received from a network,
establish, via the second API when the PTT application is permitted to access the second API, a data connection with the network,
determine, based on the data connection, a quality of service (QoS) framework for the network,
the QoS framework assigning priorities to different types of traffic associated with the device,
utilize the PTT application and the timer to establish a PTT session with another device via the network,
prioritize, based on the QoS framework, PTT traffic provided in the PTT session with the other device, and
utilize the PTT application to terminate the PTT session with the other device.
9. The device
claim 8, where, when determining whether the PTT application is authenticated, the one or more processors are further to:
determine whether a credential associated with the PTT application matches a credential associated with a security application of the device, and
authenticate the PTT application to access the first API and the second API when the credential associated the PTT application matches the credential associated with the security application.
10. The device of
claim 8, where, when modifying the timer, the one or more processors are further to:
access the first API with the PTT application, and
utilize the PTT application to instruct the first API to modify the timer.
11. The device of
claim 8, where, when establishing the data connection with the network, the one or more processors are further to:
access the second API with the PTT application, and
utilize the PTT application to instruct the second API to establish the data connection with the network.
12. The device of
claim 8, where the one or more processors are further to:
determine that the PTT application is removed from the device,
restore, via the first API, the timer to a default value when the PTT application is removed from the device, and
terminate, via the second API, the data connection with the network when the PTT application is removed from the device.
13. The device of
claim 8, where the network includes an Internet protocol (IP) multimedia subsystem (IMS) network and a packet data network (PDN), and the one or more processors are further to:
access the second API with the PTT application, and
utilize the second API to establish the data connection with the IMS network and the PDN.
14. The device of
claim 8, where, when modifying the timer, the one or more processors are further to:
decrease the timer from a first value to a second value,
the first value of the timer causing the device to check for traffic received from the network at a first frequency,
the second value of the timer causing the device to check for traffic received from the network at a second frequency, and
the second frequency being greater than the first frequency.
15. A non-transitory computer-readable medium for storing instructions, the instructions comprising:
one or more instructions that, when executed by one or more processors of a device, cause the one or more processors to:
cause a security application to:
determine whether a push-to-talk (PTT) application is authenticated to
access a first application programming interface (API) and a second API, and
permit the PTT application to access the first API and the second API
when the PTT application is authenticated; and
cause the PTT application to:
modify, via the first API when the PTT application is permitted to access the first API, a timer associated with the device,
the timer dictating when the device checks for traffic received from a network,
establish, via the second API when the PTT application is permitted to access the second API, a data connection with the network,
determine, based on the data connection, a quality of service (QoS) framework for the network,
the QoS framework assigning priorities to different types of traffic associated with the device,
utilize the timer to establish a PTT session with another device via the network, and
prioritize, based on the QoS framework, PTT traffic provided in the PTT session with the other device.
16. The computer-readable medium of
claim 15, where the instructions further comprise:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
cause the security application to:
determine whether a credential associated with the PTT application matches a credential associated with the security application, and
authenticate the PTT application to access the first API and second API when the credential associated the PTT application matches the credential associated with the security application.
17. The computer-readable medium of
claim 15, where, when modifying the timer, the instructions further comprise:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
cause the PTT application to:
access the first API, and
instruct the first API to modify the timer.
18. The computer-readable medium of
claim 15, where, when establishing the data connection with the network, the instructions further comprise:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
cause the PTT application to:
access the second API, and
instruct the second API to establish the data connection with the network.
19. The computer-readable medium of
claim 15, where the network includes an Internet protocol (IP) multimedia subsystem (IMS) network and a packet data network (PDN), and the instructions further comprise:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
cause the PTT application to:
access the second API, and
instruct the second API to establish the data connection with the IMS network and the PDN.
20. The computer-readable medium of
claim 19, where the instructions further comprise:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
cause the security application to:
determine that the PTT application is uninstalled from the device,
restore, via the first API, the timer to a default value when the PTT application is uninstalled from the device, and
terminate, via the second API, the data connection with the network when the PTT application is uninstalled from the device.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/057,970 US9271149B2 (en) | 2013-10-18 | 2013-10-18 | Managing hidden security features in user equipment |
US14/930,852 US9578507B2 (en) | 2013-10-18 | 2015-11-03 | Managing hidden security features in user equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/057,970 US9271149B2 (en) | 2013-10-18 | 2013-10-18 | Managing hidden security features in user equipment |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/930,852 Continuation US9578507B2 (en) | 2013-10-18 | 2015-11-03 | Managing hidden security features in user equipment |
Publications (2)
Publication Number | Publication Date |
---|---|
US20150109908A1 US20150109908A1 (en) | 2015-04-23 |
US9271149B2 true US9271149B2 (en) | 2016-02-23 |
Family
ID=52826063
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/057,970 Active 2034-06-22 US9271149B2 (en) | 2013-10-18 | 2013-10-18 | Managing hidden security features in user equipment |
US14/930,852 Active US9578507B2 (en) | 2013-10-18 | 2015-11-03 | Managing hidden security features in user equipment |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/930,852 Active US9578507B2 (en) | 2013-10-18 | 2015-11-03 | Managing hidden security features in user equipment |
Country Status (1)
Country | Link |
---|---|
US (2) | US9271149B2 (en) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9779596B2 (en) | 2012-10-24 | 2017-10-03 | Apple Inc. | Devices and methods for locating accessories of an electronic device |
US9271149B2 (en) * | 2013-10-18 | 2016-02-23 | Verizon Patent And Licensing Inc. | Managing hidden security features in user equipment |
US9356988B2 (en) * | 2013-11-12 | 2016-05-31 | Qualcomm Incorporated | Internet protocol communication accessibility improvement |
CN105335146B (en) * | 2014-08-07 | 2018-10-02 | 昆山纬绩资通有限公司 | The method and portable electronic device of management software data traffic |
KR102347662B1 (en) * | 2015-06-29 | 2022-01-07 | 삼성전자 주식회사 | Method and apparatus for providing service in a wireless communication system |
KR102438683B1 (en) * | 2017-12-18 | 2022-08-31 | 삼성전자주식회사 | A terminal participating in a group call established based on an MCPTT service and its operation method |
US11641563B2 (en) | 2018-09-28 | 2023-05-02 | Apple Inc. | System and method for locating wireless accessories |
US11863671B1 (en) | 2019-04-17 | 2024-01-02 | Apple Inc. | Accessory assisted account recovery |
US20220200789A1 (en) * | 2019-04-17 | 2022-06-23 | Apple Inc. | Sharing keys for a wireless accessory |
CN111107058B (en) * | 2019-11-28 | 2021-02-23 | 华为技术有限公司 | IMS registration time management system and terminal equipment |
US11889302B2 (en) | 2020-08-28 | 2024-01-30 | Apple Inc. | Maintenance of wireless devices |
US12073705B2 (en) | 2021-05-07 | 2024-08-27 | Apple Inc. | Separation alerts for notification while traveling |
US12143895B2 (en) | 2021-06-04 | 2024-11-12 | Apple Inc. | Pairing groups of accessories |
Citations (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040103278A1 (en) * | 2002-11-27 | 2004-05-27 | Microsoft Corporation | Native wi-fi architecture for 802.11 networks |
US6763226B1 (en) * | 2002-07-31 | 2004-07-13 | Computer Science Central, Inc. | Multifunctional world wide walkie talkie, a tri-frequency cellular-satellite wireless instant messenger computer and network for establishing global wireless volp quality of service (qos) communications, unified messaging, and video conferencing via the internet |
US20050202807A1 (en) * | 2002-05-24 | 2005-09-15 | Kodiak Networks, Inc. | Architecture, client specification and application programming interface (API) for supporting advanced voice services (AVS) including push to talk on wireless handsets and networks |
US20060222009A1 (en) * | 2005-03-29 | 2006-10-05 | Microsoft Corporation | UMTS RIL extension |
US20070004517A1 (en) * | 2005-06-30 | 2007-01-04 | Flextronics Software Systems | Method for implementing games in a communication network using ptt/ptv technology and systems thereof |
US20070077919A1 (en) * | 2005-09-30 | 2007-04-05 | Chiarulli Nicholas C | Voice tagging of automated menu location |
US20070105589A1 (en) * | 2007-01-07 | 2007-05-10 | Wei Lu | Software Architecture for Future Open Wireless Architecture (OWA) Mobile Terminal |
US20070121596A1 (en) * | 2005-08-09 | 2007-05-31 | Sipera Systems, Inc. | System and method for providing network level and nodal level vulnerability protection in VoIP networks |
US20070254631A1 (en) * | 2003-11-06 | 2007-11-01 | Intuwave Limited | Secure Multi-Entity Access to Resources on Mobile Telephones |
US20080057960A1 (en) * | 2006-08-29 | 2008-03-06 | Atte Lahtiranta | Mobile communication device |
US20080104572A1 (en) * | 2006-10-31 | 2008-05-01 | Motorola, Inc. | Dispatch api that permits midlets to initiate dispatch calls |
US20080189421A1 (en) * | 2006-05-16 | 2008-08-07 | Bea Systems, Inc. | SIP and HTTP Convergence in Network Computing Environments |
US20080318610A1 (en) * | 2007-06-20 | 2008-12-25 | Qualcomm Incorporated | System and method for sharing media in a group communication among wireless communication devices |
US20090210536A1 (en) * | 2008-02-20 | 2009-08-20 | Andrew Allen | Methods and systems for facilitating transfer of sessions between user devices |
US20090280850A1 (en) * | 2008-05-12 | 2009-11-12 | Qualcomm Incorporated | Wireless communication device having dynamically escalated media transmission handling |
US20100036921A1 (en) * | 2006-09-28 | 2010-02-11 | Qual Comm Incorporated | Processing of a mobile terminated data over over signaling message |
US7738900B1 (en) * | 2007-02-15 | 2010-06-15 | Nextel Communications Inc. | Systems and methods of group distribution for latency sensitive applications |
US20100195503A1 (en) * | 2009-01-28 | 2010-08-05 | Headwater Partners I Llc | Quality of service for device assisted services |
US20100235823A1 (en) * | 2009-03-12 | 2010-09-16 | International Business Machines Corporation | Computer implemented api management mechanism for generating upgrade risk level handling |
US7818020B1 (en) * | 2007-02-15 | 2010-10-19 | Nextel Communications Company L.P. | System and method for joining communication groups |
US20110170408A1 (en) * | 2010-01-11 | 2011-07-14 | Research In Motion Limited | Congestion level indication with explicit congestion notification in communication systems |
US8155696B2 (en) * | 2005-12-02 | 2012-04-10 | At&T Mobility Ii Llc | Devices, systems and methods for scenario based services and intelligent user feedback |
US20120099564A1 (en) * | 2010-10-22 | 2012-04-26 | Motorola, Inc. | Method and apparatus for distributing video packets over multiple bearers for providing unequal packet loss protection |
US20120134352A1 (en) * | 2010-11-30 | 2012-05-31 | Nextel Communications, Inc. | Systems and Methods for Web-Based Push-To-Talk Communications |
US20130109426A1 (en) * | 2011-11-02 | 2013-05-02 | Qualcomm Incorporated | User experience enhancements for limiting calls in a group communication |
US8447341B2 (en) * | 2001-02-12 | 2013-05-21 | Apple Inc. | Push-to-talk telecommunications system utilizing a voice-over-IP network |
US20130231049A1 (en) * | 2012-03-05 | 2013-09-05 | Qualcomm Incorporated | Method and apparatus to dynamically enable and control communication link optimizations on a communication device |
US20130231100A1 (en) * | 2012-03-05 | 2013-09-05 | Qualcomm Incorporated | Method and Systems to Dynamically Enable and Control Communication Link Optimizations on a Communication Device |
US20130329550A1 (en) * | 2012-06-07 | 2013-12-12 | Verizon Patent And Licensing, Inc. | Quality of service treatement for applications with multiple traffic classes |
US20140095692A1 (en) * | 2012-09-28 | 2014-04-03 | Viacom International Inc. | Tracking Usage of and Sharing Data Between Mobile Device Applications |
US8699678B2 (en) * | 2007-10-19 | 2014-04-15 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US8718254B2 (en) * | 2007-06-26 | 2014-05-06 | At&T Intellectual Property I, L.P. | Techniques for conference scheduling |
US20140215036A1 (en) * | 2013-01-28 | 2014-07-31 | Uri Elzur | Traffic forwarding for processing in network environment |
US20150110005A1 (en) * | 2013-10-18 | 2015-04-23 | Verizon Patent And Licensing Inc. | PRIORITIZED PUSH-TO-TALK SESSION USING QUALITY OF SERVICE (QoS) OVER AN INTERNET PROTOCOL MULTIMEDIA SUBSYSTEM (IMS) |
US20150131657A1 (en) * | 2011-08-11 | 2015-05-14 | Lntel Corporation | Methods for switching between a mbms download and an htpp-based delivery of dash formatted content over an ims network |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6335927B1 (en) * | 1996-11-18 | 2002-01-01 | Mci Communications Corporation | System and method for providing requested quality of service in a hybrid network |
US20070195735A1 (en) * | 2006-02-22 | 2007-08-23 | Rosen Eric C | Method of buffering to reduce media latency in group communications on a wireless communication network |
US20040100940A1 (en) * | 2002-11-27 | 2004-05-27 | Nokia Corporation | Enhanced PDP context management using radio parameter information elements added to messages |
US6816070B1 (en) * | 2003-04-22 | 2004-11-09 | Conwise Technology Corporation Ltd. | Method of generating an alert for walkie-talkie when out of communicatable distance |
US7190981B2 (en) * | 2003-06-26 | 2007-03-13 | Nokia Corporation | Apparatus, and associated method, for selectably extending a time period in which a mobile station is operated in a non-slotted mode |
US7353036B2 (en) * | 2004-05-10 | 2008-04-01 | Motorola, Inc. | Push-to-talk reverse channel establishment |
US20080151828A1 (en) * | 2005-04-29 | 2008-06-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Method, Mobile Station and Base Station System for Transmitting Data Packets in a Packet Data Communication System |
US7831269B2 (en) * | 2005-07-21 | 2010-11-09 | Research In Motion Limited | System and associated method for facilitating push-to-talk communications |
DE102005043003A1 (en) * | 2005-09-09 | 2007-03-22 | Infineon Technologies Ag | Telecommunication conference server, telecommunication terminal, method for generating a telecommunication conference control message, method for controlling a telecommunication conference, computer readable storage media and computer program elements |
US8578046B2 (en) * | 2005-10-20 | 2013-11-05 | Qualcomm Incorporated | System and method for adaptive media bundling for voice over internet protocol applications |
US7570975B2 (en) * | 2005-10-26 | 2009-08-04 | Motorola, Inc. | Method and apparatus for management of low-battery mobile stations |
US7680478B2 (en) * | 2006-05-04 | 2010-03-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Inactivity monitoring for different traffic or service classifications |
US7689165B2 (en) * | 2006-05-19 | 2010-03-30 | Motorola, Inc. | Method and system for communicating within a wireless communication network |
US7764971B2 (en) * | 2007-03-08 | 2010-07-27 | Alcatel-Lucent Usa Inc. | Control procedure for simultaneous media communications within a talk group in communication networks for public safety |
US8009519B2 (en) * | 2008-02-28 | 2011-08-30 | Hewlett-Packard Development Company, L.P. | Apparatus and methods for maintaining a reliable time clock on a mobile computing device supporting satellite based position determination capability |
EP2160050B1 (en) * | 2008-09-02 | 2012-11-21 | Rohill Technologies B.V | Fast inter system push to talk operation |
US8824314B2 (en) * | 2009-05-22 | 2014-09-02 | Qualcomm Incorporated | Maintaining an allocation of antennas at an access terminal during a communication session within a wireless communications system |
US20110122783A1 (en) * | 2009-05-22 | 2011-05-26 | Qualcomm Incorporated | Transitioning a user equipment (ue) to a dedicated channel state during setup of a communication session within a wireless communications system |
US8325658B2 (en) * | 2009-07-27 | 2012-12-04 | Qualcomm Incorporated | Quality of service (QoS) resources within a wireless communications system |
US8804518B2 (en) * | 2010-02-26 | 2014-08-12 | Qualcomm Incorporated | Quality of service (QoS) acquisition and provisioning within a wireless communications system |
US8774169B2 (en) * | 2010-04-20 | 2014-07-08 | Qualcomm Incorporated | Supporting a multimedia application based on network zone recognition |
US8839397B2 (en) * | 2010-08-24 | 2014-09-16 | Verizon Patent And Licensing Inc. | End point context and trust level determination |
US8548510B2 (en) * | 2011-12-29 | 2013-10-01 | Blackberry Limited | Method and apparatus for receiving messages under first and second network coverage |
US9088440B2 (en) * | 2012-05-21 | 2015-07-21 | Alcatel Lucent | Telecom information for web services that are provided by a telecom network |
US9497659B2 (en) * | 2012-08-31 | 2016-11-15 | Qualcomm Incorporated | Directional adjustment to quality of service based on monitored traffic activity on a link |
US9578546B2 (en) * | 2012-08-31 | 2017-02-21 | Qualcomm Incorporated | Directional adjustment to quality of service based on predicted traffic activity on a link |
US9288816B2 (en) * | 2012-08-31 | 2016-03-15 | Qualcomm Incorporated | Providing service based on quality of service resources in a long term evolution communications system |
US9655159B2 (en) * | 2012-08-31 | 2017-05-16 | Qualcomm Incorporated | Managing guaranteed bit rate quality of service resource allocation based on guaranteed bit rate data activity on a link |
US9554366B2 (en) * | 2012-08-31 | 2017-01-24 | Qualcomm Incorporated | Optimized always-on wireless service using network assistance and keep-alives |
US9049688B2 (en) * | 2013-02-04 | 2015-06-02 | Google Technology Holdings LLC | Selective auto-accept of full duplex push to talk call |
US20140221023A1 (en) * | 2013-02-05 | 2014-08-07 | Qualcomm Incorporated | Server-initiated paging cycles |
US9225579B2 (en) * | 2013-03-05 | 2015-12-29 | Qualcomm Incorporated | Renewing registrations for a plurality of client applications that are associated with the same host server via an explicit piggybacking scheme |
US9219758B2 (en) * | 2013-03-05 | 2015-12-22 | Qualcomm Incorporated | Renewing registrations for a plurality of client applications that are associated with the same host server via an implicit piggybacking scheme |
CN104661270B (en) * | 2013-03-18 | 2018-06-12 | 英特尔公司 | Multimode wireless communication apparatus and system |
US20160119762A1 (en) * | 2013-05-15 | 2016-04-28 | Xipeng Zhu | Group bearer and bearer selection for multicast/broadcast data transmissions |
US9467480B2 (en) * | 2013-09-16 | 2016-10-11 | Qualcomm Incorporated | Selectively multiplexing incoming WebRTC traffic and/or de-multiplexing outgoing WebRTC traffic by a client-based WebRTC proxy on behalf of a WebRTC multimedia client application |
US9271149B2 (en) * | 2013-10-18 | 2016-02-23 | Verizon Patent And Licensing Inc. | Managing hidden security features in user equipment |
-
2013
- 2013-10-18 US US14/057,970 patent/US9271149B2/en active Active
-
2015
- 2015-11-03 US US14/930,852 patent/US9578507B2/en active Active
Patent Citations (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8447341B2 (en) * | 2001-02-12 | 2013-05-21 | Apple Inc. | Push-to-talk telecommunications system utilizing a voice-over-IP network |
US20050202807A1 (en) * | 2002-05-24 | 2005-09-15 | Kodiak Networks, Inc. | Architecture, client specification and application programming interface (API) for supporting advanced voice services (AVS) including push to talk on wireless handsets and networks |
US6763226B1 (en) * | 2002-07-31 | 2004-07-13 | Computer Science Central, Inc. | Multifunctional world wide walkie talkie, a tri-frequency cellular-satellite wireless instant messenger computer and network for establishing global wireless volp quality of service (qos) communications, unified messaging, and video conferencing via the internet |
US20040103278A1 (en) * | 2002-11-27 | 2004-05-27 | Microsoft Corporation | Native wi-fi architecture for 802.11 networks |
US20070254631A1 (en) * | 2003-11-06 | 2007-11-01 | Intuwave Limited | Secure Multi-Entity Access to Resources on Mobile Telephones |
US20060222009A1 (en) * | 2005-03-29 | 2006-10-05 | Microsoft Corporation | UMTS RIL extension |
US20070004517A1 (en) * | 2005-06-30 | 2007-01-04 | Flextronics Software Systems | Method for implementing games in a communication network using ptt/ptv technology and systems thereof |
US20070121596A1 (en) * | 2005-08-09 | 2007-05-31 | Sipera Systems, Inc. | System and method for providing network level and nodal level vulnerability protection in VoIP networks |
US20070077919A1 (en) * | 2005-09-30 | 2007-04-05 | Chiarulli Nicholas C | Voice tagging of automated menu location |
US8155696B2 (en) * | 2005-12-02 | 2012-04-10 | At&T Mobility Ii Llc | Devices, systems and methods for scenario based services and intelligent user feedback |
US20080189421A1 (en) * | 2006-05-16 | 2008-08-07 | Bea Systems, Inc. | SIP and HTTP Convergence in Network Computing Environments |
US20080057960A1 (en) * | 2006-08-29 | 2008-03-06 | Atte Lahtiranta | Mobile communication device |
US20100036921A1 (en) * | 2006-09-28 | 2010-02-11 | Qual Comm Incorporated | Processing of a mobile terminated data over over signaling message |
US20080104572A1 (en) * | 2006-10-31 | 2008-05-01 | Motorola, Inc. | Dispatch api that permits midlets to initiate dispatch calls |
US20070105589A1 (en) * | 2007-01-07 | 2007-05-10 | Wei Lu | Software Architecture for Future Open Wireless Architecture (OWA) Mobile Terminal |
US7738900B1 (en) * | 2007-02-15 | 2010-06-15 | Nextel Communications Inc. | Systems and methods of group distribution for latency sensitive applications |
US7818020B1 (en) * | 2007-02-15 | 2010-10-19 | Nextel Communications Company L.P. | System and method for joining communication groups |
US20080318610A1 (en) * | 2007-06-20 | 2008-12-25 | Qualcomm Incorporated | System and method for sharing media in a group communication among wireless communication devices |
US8718254B2 (en) * | 2007-06-26 | 2014-05-06 | At&T Intellectual Property I, L.P. | Techniques for conference scheduling |
US8699678B2 (en) * | 2007-10-19 | 2014-04-15 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US20090210536A1 (en) * | 2008-02-20 | 2009-08-20 | Andrew Allen | Methods and systems for facilitating transfer of sessions between user devices |
US20090280850A1 (en) * | 2008-05-12 | 2009-11-12 | Qualcomm Incorporated | Wireless communication device having dynamically escalated media transmission handling |
US20100195503A1 (en) * | 2009-01-28 | 2010-08-05 | Headwater Partners I Llc | Quality of service for device assisted services |
US20100235823A1 (en) * | 2009-03-12 | 2010-09-16 | International Business Machines Corporation | Computer implemented api management mechanism for generating upgrade risk level handling |
US20110170408A1 (en) * | 2010-01-11 | 2011-07-14 | Research In Motion Limited | Congestion level indication with explicit congestion notification in communication systems |
US20120099564A1 (en) * | 2010-10-22 | 2012-04-26 | Motorola, Inc. | Method and apparatus for distributing video packets over multiple bearers for providing unequal packet loss protection |
US20120134352A1 (en) * | 2010-11-30 | 2012-05-31 | Nextel Communications, Inc. | Systems and Methods for Web-Based Push-To-Talk Communications |
US20150131657A1 (en) * | 2011-08-11 | 2015-05-14 | Lntel Corporation | Methods for switching between a mbms download and an htpp-based delivery of dash formatted content over an ims network |
US20130109426A1 (en) * | 2011-11-02 | 2013-05-02 | Qualcomm Incorporated | User experience enhancements for limiting calls in a group communication |
US20130231100A1 (en) * | 2012-03-05 | 2013-09-05 | Qualcomm Incorporated | Method and Systems to Dynamically Enable and Control Communication Link Optimizations on a Communication Device |
US20130231049A1 (en) * | 2012-03-05 | 2013-09-05 | Qualcomm Incorporated | Method and apparatus to dynamically enable and control communication link optimizations on a communication device |
US20130329550A1 (en) * | 2012-06-07 | 2013-12-12 | Verizon Patent And Licensing, Inc. | Quality of service treatement for applications with multiple traffic classes |
US20140095692A1 (en) * | 2012-09-28 | 2014-04-03 | Viacom International Inc. | Tracking Usage of and Sharing Data Between Mobile Device Applications |
US20140215036A1 (en) * | 2013-01-28 | 2014-07-31 | Uri Elzur | Traffic forwarding for processing in network environment |
US20150110005A1 (en) * | 2013-10-18 | 2015-04-23 | Verizon Patent And Licensing Inc. | PRIORITIZED PUSH-TO-TALK SESSION USING QUALITY OF SERVICE (QoS) OVER AN INTERNET PROTOCOL MULTIMEDIA SUBSYSTEM (IMS) |
Non-Patent Citations (1)
Title |
---|
Android Developers, "Google Play Services", developer.android.com/google/play-services/index.html, Dec. 3, 2012, 2 pages. |
Also Published As
Publication number | Publication date |
---|---|
US20150109908A1 (en) | 2015-04-23 |
US9578507B2 (en) | 2017-02-21 |
US20160057625A1 (en) | 2016-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9578507B2 (en) | 2017-02-21 | Managing hidden security features in user equipment |
US9544939B2 (en) | 2017-01-10 | Intelligent policy and charging rule function (PCRF) restoration |
US10057805B2 (en) | 2018-08-21 | Use of traffic load reduction indicator for facilitating mobility management entity overload control function |
JP5805909B2 (en) | 2015-11-10 | Extended access control by network control for multi-service user devices |
US20180192264A1 (en) | 2018-07-05 | Open Access Points for Emergency Calls |
US9038135B2 (en) | 2015-05-19 | Quality of service application |
US9491596B2 (en) | 2016-11-08 | Prioritized push-to-talk session using quality of service (QoS) over an internet protocol multimedia subsystem (IMS) |
KR20180080226A (en) | 2018-07-11 | Systems and methods for improving the support of a virtual subscriber identity module (SIM) in a multi-SIM wireless communication device |
EP4040873A1 (en) | 2022-08-10 | Connection processing method and communication device |
US9392000B2 (en) | 2016-07-12 | Re-authentication timer for user equipment |
TW201419924A (en) | 2014-05-16 | Criteria for UE-initiated bearer deactivation when maximum number of active bearers has been reached |
KR20130074029A (en) | 2013-07-04 | Mobile communication system and method of radio resource connection for controlling overload thereof |
US20160330595A1 (en) | 2016-11-10 | Push-to-talk service features |
US11234287B2 (en) | 2022-01-25 | System and method of radio resource management for radio access networks |
US20160088547A1 (en) | 2016-03-24 | Service Access Control Method and Apparatus |
US9930563B2 (en) | 2018-03-27 | Providing a quality-of-service-based service from a cellular network via a wireless sharing device |
US20230126490A1 (en) | 2023-04-27 | Optimized security mode command procedure to reduce communication setup failures |
US11696208B1 (en) | 2023-07-04 | Priority data transport service |
WO2015194459A1 (en) | 2015-12-23 | Mobile station and restriction control method |
US12156269B2 (en) | 2024-11-26 | Systems and methods for enabling an alternate quality of service for non-guaranteed bit rate flows |
US20240422652A1 (en) | 2024-12-19 | Systems and methods for supporting network slice admission control based on subscription and policy control |
US20250056638A1 (en) | 2025-02-13 | Systems and methods for enabling an alternate quality of service for non-guaranteed bit rate flows |
JP6125585B2 (en) | 2017-05-10 | Extended access control by network control for multi-service user devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
2013-10-18 | AS | Assignment |
Owner name: VERIZON PATENT AND LICENSING INC., NEW JERSEY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HAMMER, HOWARD G.;SINHA, SHWETA;REEL/FRAME:031438/0886 Effective date: 20131018 Owner name: CELLCO PARTNERSHIP D/B/A VERIZON WIRELESS, NEW JER Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ANDRADA, MAURICIO PATI CALDEIRA DE;NOMANI, MUHAMMAD SALMAN;REEL/FRAME:031438/0859 Effective date: 20131018 |
2016-02-03 | STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
2019-08-08 | MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
2023-08-09 | MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |