Network-based geo-location identification of an end-user device

A device receives a connection from a user device, and provides, to a database, connection information associated with the user device. The device receives, from the database, user device information based on the connection information, where the user device information includes a location associated with the user device. The device also receives a trigger instructing the device to provide the user device information to a content provider device, and provides the user device information to the content provider device when the trigger is received.

BACKGROUND

In networks (e.g., Internet protocol (IP)-based networks, telecommunications networks, etc.), a significant amount of effort is expended trying to identify a physical location (e.g., a geographical location or “geo-location”) of an end user device (e.g., a mobile telephone, a set-top box (STB), a laptop computer, etc.) connected to the network. Some rudimentary services can identify the physical locations of end user devices. For example, a weather channel may target advertisements based on a perceived location of a user (e.g., of an end user device, such as an STB).

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Implementations described herein may provide systems and/or methods that retrieve information (e.g., customer information, device configuration information, location information, etc.) about an end user device (referred to herein as a “user device”) attached to a provider device via a network. The systems and/or methods may provide specific or general information about the customer and/or the user device based on the retrieved information. Information may be retrieved and/or provided via a postmark protocol. The postmark protocol may permit network devices associated with the network to provide information (e.g., metadata) regarding their locations, which may permit end-to-end geo-location path discovery. Alternatively, the network devices may hide their geographic topologies from external entities (e.g., third party content providers not associated with the network). The postmark protocol may be used to restrict or allow network flows, identify locations of user devices or network devices, allow localized differentiation for transactions, etc.

As used herein, the terms “customer” and/or “user” may be used interchangeably. Also, the terms “customer” and/or “user” are intended to be broadly interpreted to include a user device or a user of a user device.

As used herein, the term “postmark protocol” is intended to be broadly interpreted to include a network transmission protocol that enables a physical (e.g., geographical) location of a user device (e.g., connected to the network) to be ascertained.

FIG. 1depicts a diagram of an exemplary network100in which systems and/or methods described herein may be implemented. As shown, network100may include a user device110, a provider device120, a database130, and a content provider device140interconnected by a network150. Components of network100(e.g., one or more of user device110, provider device120, database130, content provider device140, and network150) may interconnect via wired and/or wireless connections. A single user device110, provider device120, database130, content provider device140, and network150have been illustrated inFIG. 1for simplicity. In practice, there may be more user devices110, provider devices120, databases130, content provider devices140, and/or networks150. Also, in some instances, a component in network100may perform one or more functions described as being performed by another component or group of components in network100.

User device110may include a radiotelephone, a personal communications system (PCS) terminal (e.g., that may combine a cellular radiotelephone with data processing and data communications capabilities), a STB, a PDA (e.g., that can include a radiotelephone, a pager, Internet/intranet access, etc.), a laptop computer, a personal computer, or other types of computation or communication devices, threads or processes running on these devices, and/or objects executable by these devices. In one implementation, user device110may include any device (e.g., an Internet Protocol (IP)-based device) that enables a user to access the Internet and/or communicate with provider device120and/or content provider device140via network150.

Provider device120may include one or more server entities, or other types of computation or communication devices, that gather, process, search, and/or provide information in a manner described herein. Provider device120may be associated with a provider that owns and/or manages provider device120, database130, and/or network150(or a portion of network150). In one implementation, provider device120may receive a connection by user device110, and may provide connection information (e.g., network attachment point data, user device110attachment point data, etc.) associated with user device110to database130. Provider device120may receive, from database130, information (e.g., geo-location information, etc.) associated with user device110based on the connection information, and may receive a trigger instructing provider device120to provide the user device information to content provider device140. When the trigger is received, provider device120may verify a content provider associated with content provider device140, and may provide the user device information to content provider device140when the content provider is verified.

Database130may include one or more storage devices that may store information received by and/or provided to provider device120. In one implementation, database130may store information described below in connection with, for example,FIG. 6. For example, database130may store registration information (e.g., user name, address, etc.) associated with user device110, type information (e.g., make, model, etc.) associated with user device110, speed information (e.g., in gigabits per second) associated with user device110, load information (e.g., bandwidth) associated with provider device120, etc. AlthoughFIG. 1shows database130as separate from provider device120, in other implementations, database130may be incorporated in provider device120.

Content provider device140may include one or more server entities, or other types of computation or communication devices, that gather, process, search, and/or provide information in a manner described herein. Content provider device140may be associated with a third party content provider that is not associated with (e.g., owns and/or manages) provider device120, database130, and/or network150. In one implementation, content provider device140may receive, from provider device120, information (e.g., geo-location information, etc.) associated with user device110. Based on the information associated with user device110, content provider device140may provide advertisements and/or content localized for user device110, may calculate demographic statistics, may redirect content delivery to a specific local content, may restrict financial transactions to a specific location, may prevent content delivery to illegal locations, and/or may provide, to law enforcement or emergency services agencies (or entities), a location of user device110.

Network150may include a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network, such as the Public Switched Telephone Network (PSTN), an intranet, the Internet, an optical fiber (or fiber optic)-based network, a session initiation protocol (SIP)-based network, or a combination of networks. In one implementation, network150may include one or more network devices (e.g., routers, gateways, switches, network interface cards (NICs), hubs, a bridges, etc.) that may route information (e.g., datagrams) to and/or from user device110, provider device120, database130, and/or content provider device140. A “datagram(s)” may include any type or form of data, such as packet or non-packet data.

FIG. 2illustrates a diagram of exemplary components of a device200that may correspond to user device110. As illustrated, device200may include a processing unit210, memory220, a user interface230, a communication interface240, and/or an antenna assembly250.

Processing unit210may include one or more microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or the like. Processing unit210may control operation of device200and its components. In one implementation, processing unit210may control operation of components of device200in a manner described herein.

Memory220may include a random access memory (RAM), a read-only memory (ROM), and/or another type of memory to store data and instructions that may be used by processing unit210.

User interface230may include mechanisms for inputting information to device200and/or for outputting information from device200. Examples of input and output mechanisms might include buttons (e.g., control buttons, keys of a keypad, a joystick, etc.) or a touch screen interface to permit data and control commands to be input into device200; a speaker to receive electrical signals and output audio signals; a microphone to receive audio signals and output electrical signals; a display to output visual information (e.g., text input into device200); a vibrator to cause device200to vibrate; etc.

Communication interface240may include, for example, a transmitter that may convert baseband signals from processing unit210to radio frequency (RF) signals and/or a receiver that may convert RF signals to baseband signals. Alternatively, communication interface240may include a transceiver to perform functions of both a transmitter and a receiver. Communication interface240may connect to antenna assembly250for transmission and/or reception of the RF signals.

Antenna assembly250may include one or more antennas to transmit and/or receive RF signals over the air. Antenna assembly250may, for example, receive RF signals from communication interface240and transmit them over the air, and receive RF signals over the air and provide them to communication interface240. In one implementation, for example, communication interface240may communicate with a network (e.g., network150) and/or devices connected to a network.

As will be described in detail below, device200may perform certain operations described herein in response to processing unit210executing software instructions of an application contained in a computer-readable medium, such as memory220. A computer-readable medium may be defined as a physical or logical memory device. A logical memory device may include memory space within a single physical memory device or spread across multiple physical memory devices. The software instructions may be read into memory220from another computer-readable medium or from another device via communication interface240. The software instructions contained in memory220may cause processing unit210to perform processes described herein. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

AlthoughFIG. 2shows exemplary components of device200, in other implementations, device200may contain fewer, different, differently arranged, or additional components than depicted inFIG. 2. In still other implementations, one or more components of device200may perform one or more other tasks described as being performed by one or more other components of device200.

FIG. 3depicts a diagram of exemplary components of a device300that may correspond to user device110(e.g., if user device is a laptop computer or a personal computer), provider device120, and/or content provider device140. As illustrated, device300may include a bus310, a processing unit320, a main memory330, a ROM340, a storage device350, an input device360, an output device370, and/or a communication interface380. Bus310may include a path that permits communication among the components of device300.

Processing unit320may include one or more processors, microprocessors, or other types of processors that may interpret and execute instructions. Main memory330may include a RAM or another type of dynamic storage device that may store information and instructions for execution by processing unit320. ROM340may include a ROM device or another type of static storage device that may store static information and/or instructions for use by processing unit320. Storage device350may include a magnetic and/or optical recording medium and its corresponding drive.

Input device360may include a mechanism that permits an operator to input information to device300, such as a keyboard, a mouse, a pen, a microphone, voice recognition and/or biometric mechanisms, a touch screen, etc. Output device370may include a mechanism that outputs information to the operator, including a display, a printer, a speaker, etc. Communication interface380may include any transceiver-like mechanism that enables device300to communicate with other devices and/or systems. For example, communication interface380may include mechanisms for communicating with another device or system via a network, such as network150.

As described herein, device300may perform certain operations in response to processing unit320executing software instructions contained in a computer-readable medium, such as main memory330. The software instructions may be read into main memory330from another computer-readable medium, such as storage device350, or from another device via communication interface380. The software instructions contained in main memory330may cause processing unit320to perform processes described herein. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

AlthoughFIG. 3shows exemplary components of device300, in other implementations, device300may contain fewer, different, differently arranged, or additional components than depicted inFIG. 3. In still other implementations, one or more components of device300may perform one or more other tasks described as being performed by one or more other components of device300.

FIG. 4illustrates a diagram of exemplary interactions among components of an exemplary portion400of network100. As illustrated, exemplary network portion400may include user device110, provider device120, database130, and content provider device140. User device110, provider device120, database130, and content provider device140may include the features described above in connection with, for example,FIG. 1.

As further shown inFIG. 4, user device110may connect to provider device120, as shown by reference number410. For example, if user device110is accessing a web site generated by provider device120, user device110may connect to provider device120via a uniform resource locator (URL) associated with the web site. Provider device120may receive connection410, and may provide connection information420to database130. Connection410between user device110and provider device120may include a dedicated single logical or physical port connection per each customer (e.g., each user device110), a shared access connection (e.g., a broadcast domain for a set of customers), a mobile or Wi-Fi connection, etc. Each of these connection types may have a different level of accuracy for a specific location, but other mechanisms (e.g., triangulation mechanisms, heartbeat/network time protocol (NTP)/round trip time (RTT) mechanisms, etc.) for increasing accuracy for shared and mobile customers may also be implemented.

Connection information420may include information associated with user device's110connection410with provider device120. For example, connection information420may include network attachment point information or metadata (e.g., information about network devices of network150used to connect user device110to provider device120) that may be initialized on deployment of provider device120, user device110attachment point information or metadata that may be initialized on deployment of a service (e.g., a new service, a changed service, etc.) provided by provider device120, etc. In one implementation, each device of network100may embed a location and/or other location-relevant metadata in selective datagrams. For example, connection410may include datagrams that embed location information (e.g., a geographical location, a zip code, etc.) associated with user device110.

In response to connection410and/or connection information420, provider device120may retrieve user device information430from database130(e.g., via a query or some other data retrieval mechanism). User device information430may include information (e.g., metadata) about user device110, a user of user device110, a connection point of user device110(e.g., to network150), etc. For example, user device information430may include attachment point information (e.g., a connection point of user device110to network150); a geographical location of user device110; a zip code associated with user device110; a speed (e.g., in gigabits per second) of user device110; a type (e.g., a brand, a manufacturer, etc.) of user device110; a timestamp associated with user device110(e.g., when user device110connects to provider device120); congestion information associated with connection410; a load (e.g., a bandwidth) associated with provider device120; registration information (e.g., a user name, a user address, a user telephone number, etc.) associated with a user; other database130information (e.g., information about third party content providers, such as a content provider associated with content provider device140); other measurements and/or characteristics associated with network150; etc.

As further shown inFIG. 4, user device110may provide a trigger440to provider device120and/or another trigger450may be provided to provider device120(e.g., by content provider device140or other sources). Triggers440/450may be received by provider device120, and may direct provider device120(e.g., via the postmark protocol associated with network100) to provide user device information430to third parties, such as a third party content provider associated with content provider device140. Triggers440/450may include network event-based triggers (e.g., a trigger for every packet, a trigger for every Transmission Control Protocol (TCP) open, a trigger for every TCP close, a port-based trigger, etc.), customer-specified triggers (e.g., a customer may want bandwidth specified for remote devices, such as content provider device140), destination-specified triggers (e.g., content providers may wish to provide real-time localized content to user device110), provider-specified triggers (e.g., provider device120may provide enhanced 911 (or “e911”) emergency services), etc.

The postmark protocol (e.g., and provider device120) may not convey user device information430to third parties until triggers440/450are received. If triggers440/450are not received by provider device120, the transmission of information may occur only between a user (e.g., via user device110) and a provider (e.g., via provider device120). If triggers440or450are received by provider device120, user device information430may be conveyed, by provider device120, to authorized content providers (e.g., content provider device140). Thus, the postmark protocol (e.g., and provider device120) may not create any specialized privacy concerns for customers. Prior to providing user device information430to content provider device140, provider device120may verify the content provider associated with content provider device140, as indicated by reference number460. For example, provider device120may search database130to determine whether the content provider is a subscriber to user device information430(e.g., a location service). Other security mechanisms may be used to verify the content provider, such a public key encryption mechanisms, private key encryption mechanisms, etc. If the content provider is verified, as indicated by reference number470, provider device120may provide user device information430to content provider device140.

In one exemplary implementation, the postmark protocol may include a requirement to log in to provider device120(e.g., by the content provider) to verify and authenticate the content provider and to prevent anti-spoofing. The postmark protocol may be extended to replace or enhance other location identification services, such as the Internet control message protocol (ICMP) (e.g., the echo or ping protocol) and traceroute functionality.

As further shown inFIG. 4, if content provider device140receives user device information430, content provider device140may provide custom content480to user device110. Custom content480may include a variety of information customized based on user device information430(e.g., based on a location associated with user device110). For example, custom content480may include advertisements or other content that is localized based on the location associated with user device110; marketing information targeted to the location associated with user device110(e.g., content provider device140may determine marketing information based on demographic statistics calculated based on the locations of several user devices110); content redirected to a local content provider based on the location associated with user device110(e.g., a network news request may be redirected to a local affiliate of the network news); restriction of financial transactions to the location associated with user device110; prevention of illegal content delivery to the location associated with user device110; etc. Further details of custom content480are provided below in connection with, for example,FIG. 8.

Provider device120may also provide user device information430to law enforcement services and/or emergency services. For example, law enforcement services and/or emergency services (e.g., e911 services) may utilize user device information430to make a quicker determination of a location of a user associated with user device110. This may enable law enforcement services and/or emergency services to respond to emergencies (e.g., associated with the user) in a quicker manner. As further shown inFIG. 4, provider device120(e.g., via the postmark protocol) may track an establishment of a session between content provider device140and user device110(e.g., to provide custom content480), as indicated by reference number490. The tracking of the session between content provider device140and user device110may provide increased security for both the user of user device110and the content provider.

AlthoughFIG. 4shows exemplary components of network portion400, in other implementations, network portion400may contain fewer, different, differently arranged, or additional components than depicted inFIG. 4. In still other implementations, one or more components of network portion400may perform one or more other tasks described as being performed by one or more other components of network portion400.

FIG. 5depicts a diagram of exemplary functional components of provider device120. In one implementation, the functions described in connection withFIG. 5may be performed by processing unit320(FIG. 3). As shown inFIG. 5, provider device120may include a connection receiver500, a trigger generator510, a content provider verifier520, and a user device information receiver530.

Connection receiver500may include hardware or a combination of hardware and software that may receive connection410by user device110(e.g., with provide device120), and may provide connection information420to database130, as described above in connection withFIG. 4. Provider device120(e.g., user device information receiver530) may receive, from database130, user device information430in response to providing connection information420to database130. In one implementation, connection information420may be used to perform a search (or query) of database130for user device information430.

Trigger generator510may include hardware or a combination of hardware and software that may receive trigger440from user device110, and may receive trigger450from content provider device140or other sources. Triggers440/450may instruct provider device120(e.g., trigger generator510) to provide triggers440/450to content provider verifier520so that a content provider may be verified before receiving user device information430.

Content provider verifier520may include hardware or a combination of hardware and software that may receive triggers440/450from trigger generator510. Triggers440/450may instruct content provider verifier520to verify a content provider (e.g., as indicated by reference number460) associated with content provider device140. Content provider verifier520may perform a search (or query) of database130to determine whether the content provider is authorized to receive user device information430. If the content provider is verified, content provider verifier520may receive verification470from database130and may provide verification470to user device information receiver530.

User device information receiver530may include hardware or a combination of hardware and software that may receive verification470from content provider verifier520. Verification470may indicate, to user device information receiver530, that it is acceptable to provide user device information430to content provider device140, and user device information receiver530may provide user device information430to content provider device140.

AlthoughFIG. 5shows exemplary functional components of provider device120, in other implementations, provider device120may contain fewer, different, differently arranged, or additional functional components than depicted inFIG. 5. In still other implementations, one or more functional components of provider device120may perform one or more other tasks described as being performed by one or more other functional components of provider device120.

FIG. 6illustrates a diagram of an exemplary portion600of database130. As shown, database portion600may include a registration information field610, a network/user device (UD) attachment point field620, a user device type field630, a user device speed field640, a user device zip code field650, an user device location field660, an provider load field670, an other information field680, and/or a variety of entries690associated with fields610-680.

Registration information field610may include registration information (e.g., a user name, a user address, a user telephone number, a password associated with a user, etc.) associated with users of user devices (e.g., user device110) connected to network150. For example, as shown inFIG. 6, registration information field610may include registration information associated with a first user (e.g., “User1”), a second user (e.g., “User2”), and a third user (e.g., “User3”).

Network/UD attachment point field620may include information associated with a network attachment point and/or information associated with a user device attachment point. For example, network/UD attachment point field620may include an identifier for a network device (e.g., of network150) connected to user device110, an identifier for a network device connected to provider device120, etc. As shown inFIG. 6, network/UD attachment point field620may include information associated with a first attachment point (e.g., “Attachment Point1”), a second attachment point (e.g., “Attachment Point2”), and a third attachment point (e.g., “Attachment Point3”).

User device type field630may include information associated with types (e.g., a personal computer) of user devices110connected to network150. For example, as shown inFIG. 6, user device type field630may include information identifying a user device110as a cell phone, a STB, a laptop computer, etc.

User device speed field640may include information associated with bandwidth or speeds (e.g., in gigabits per second) of user devices110connected to network150. For example, as shown inFIG. 6, user device speed field640may include information associated with a first speed (e.g., “Speed1”), a second speed (e.g., “Speed2”), and a third speed (e.g., “Speed3”).

User device zip code field650may include zip code information (e.g., postal zip codes) of user devices110connected to network150. For example, as shown inFIG. 6, user device zip code field650may indicate that the cell phone (e.g., provided in user device type field630) is located at zip code “99999,” that the STB (e.g., provided in user device type field630) is located at zip code “88888,” and that the laptop computer (e.g., provided in user device type field630) is located at zip code “77777.”

User device location field660may include geographical location information (e.g., city, county, state, etc.) of user devices110connected to network150. For example, as shown inFIG. 6, user device location field660may indicate that the cell phone (e.g., provided in user device type field630) is located in “New York, N.Y.,” that the STB (e.g., provided in user device type field630) is located in “Philadelphia, Pa.,” and that the laptop computer (e.g., provided in user device type field630) is located in “Wilmington, Del.”

Provider load field670may include information associated with a load (e.g., an amount of bandwidth currently in use between each device in network100) capable of being handled by provider device120for the user device (e.g., provided in user device type field630). A provider (e.g., provider device120) may provide information associated with an amount of load provisioned for a customer, a current amount of load being used by a customer, and/or a remainder amount of load available. A load may be expressed as a percentage of a total provisioned load, a load indicated between each device in network100, etc. For example, as shown inFIG. 6, provider load field670may include information associated with a first bandwidth (e.g., “Bandwidth1”), a second bandwidth (e.g., “Bandwidth2”), and a third bandwidth (e.g., “Bandwidth3”).

Other information field680may include information associated with other measurements and/or characteristics of network150.

AlthoughFIG. 6shows exemplary information that may be provided in database portion600, in other implementations, database portion600may contain less, different, differently arranged, or additional information than depicted inFIG. 6.

FIG. 7depicts a diagram of exemplary elements of a datagram700capable of being utilized in network100. In one implementation, datagram700may be generated, transmitted, and/or received by one or more of user device110, provider device120, database130, content provider device140, and/or network devices associated with network150. The postmark protocol associated with network100may transmit one or more datagrams700to establish communications between different devices of network100. As shown inFIG. 7, datagram700may include a network device identification (ID) element705, a user device SIP element710, and multiple type-length-value (TLV) structure elements715.

Network device ID element705may include information identifying a device (e.g., provider device120) associated with network150. For example, network device ID element705may include an address (e.g., an IP address) or other location-relevant information of a device associated with network150.

User device SIP element710may include information identifying user device110. For example, user device SIP element710may include an address (e.g., an IP address) or other location-relevant information associated with user device110.

Each of TLV elements715may include type and length fields that are fixed in size (e.g., one to four bytes) and a value field that is of variable size. The type field may include a numeric code that indicates a kind of field that this portion of TLV element715represents. The length field may include a size of the value field (e.g., in bytes). The value field may include a variable-sized set of bytes that contains data for this portion of TLV element715. As further shown inFIG. 7, each of TLV elements715may include one or more of a registration data element720, a network data element725, a user device type element730, a user device speed element735, a zip code element740, a provider load element745, and a location/geocode element750.

Registration data element720may include registration information (e.g., a user name, a user address, a user telephone number, a password associated with a user, etc.) associated with users of user devices (e.g., user device110) connected to network150. Network data element725may include information associated with a network attachment point and/or information associated with a user device attachment point. For example, network data element725may include an identifier for a network device (e.g., of network150) connected to user device110, an identifier for a network device connected to provider device120, etc.

User device type element730may include information associated with types (e.g., a personal computer, a cell phone, a STB, a laptop computer, etc.) of user devices110connected to network150. User device speed element735may include information associated with speeds (e.g., in gigabits per second) of user devices110connected to network150. Zip code element740may include zip code information (e.g., postal zip codes) of user devices110connected to network150.

Provider load element745may include information associated with a load (e.g., an amount of bandwidth currently in use between each device in network100) capable of being handled by provider device120for user device110. Location/geocode element750may include geographical location information (e.g., city, county, state, etc.) of user devices110connected to network150.

AlthoughFIG. 7shows exemplary information that may be provided in datagram700, in other implementations, datagram700may contain less, different, differently arranged, or additional information than depicted inFIG. 7.

FIG. 8illustrates a diagram of exemplary content800that may be generated by content provider device140. Content provider device140may include the features described above in connection with, for example,FIGS. 1 and 4.

As further shown inFIG. 8, if content provider device140receives user device information430(e.g., from provider device120), content provider device140may generate custom content480. Custom content480may include local advertisements (ads)810, demographic statistics820, localized content delivery830, location sensitive content840, e911 services information850, financial transactions information860, legal filtering information870, and/or law enforcement information880.

Local ads810may include advertisements specific to a geographic location associated with user device110(e.g., as determined from user device information430). Local ads810may be provided at a neighborhood level (e.g., ads for neighborhood services) or a customer premises level. For example, local ads810may include information associated with homeowners association content, local firehouses, local police departments, local elections, etc. Local ads810may also include information associated a bandwidth (e.g., a high-bandwidth, a low-bandwidth, etc.) provided by provider device120(or content provider device140), and congestion information associated with provider device120(or content provider device140).

Demographic statistics820may include statistical information determined based on user device information430. For example, demographics statistics820may include a number of web transactions (e.g., a number of webpage hits, a number of content hits, a number of sales, a number of click-through events, types of connections, etc.) per neighborhood, per town, etc. Demographic statistics820may be used (e.g., by other third parties) for distribution and warehousing of products, for brick-and-mortar expansion decisions, etc.

Localized content delivery830may include content whose delivery may be redirected to a specific locale's content (e.g., a locale determined based on user device information430). For example, if user device110is located in Atlanta, Ga. and requests network news content (e.g., from CNN), content provider device140may redirect the request to a local news service affiliated with CNN (e.g., to “atlanta.cnn.com”). In another example, if user device110is located in Arlington, Va. and requests the weather channel, content provider device140may redirect the request to a local weather affiliated with the weather channel (e.g., to “arlington.weather.com”). This may permit user device110to view weather-related warnings that are local to user device110.

Location sensitive content840may include content specific to a geographic location associated with user device110(e.g., as determined from user device information430). For example, location sensitive content may include movie, weather, traffic, business, etc. information specific to the geographic location associated with user device110.

e911 services information850may include information (e.g., as determined from user device information430) that enables user device110to receive e911 services.

Financial transactions information860may include information (e.g., as determined from user device information430) that enables user device110to restrict financial transactions (e.g., credit cards, account inquiries, or other online transactions) to a specific geographic location associated with user device110. When traveling, new geographic locations of user device110may be predetermined from a “home” location associated with user device110. Financial transactions information860may reduce credit card theft by offering another layer of embedded authentication that may be difficult to spoof. For example, banks could use financial transactions information860for fraud detection.

Legal filtering information870may include information (e.g., as determined from user device information430) that enables user device110to satisfy national or state legal requirements if the location of user device110is ascertained by content provider device140(or by network devices of network150) to prohibit certain content. For example, if content from a national content provider is illegal in a particular state, legal filtering information870may prevent the national content provider from providing the content to the particular state.

Law enforcement information880may include information (e.g., as determined from user device information430) that enables law enforcement to quickly determine a location of user device110.

AlthoughFIG. 8shows exemplary content800that may be generated by content provider device140, in other implementations, content provider device140may generate less, different, differently arranged, or additional content than depicted inFIG. 8.

FIGS. 9-13depict flow charts of an exemplary process900for providing user device information to a third party content provider according to implementations described herein. In one implementation, process900may be performed by provider device120. In other implementations, some or all of process900may be performed by another device or group of devices (e.g., communicating with provider device120), such as database130.

As illustrated inFIG. 9, process900may begin with receiving a connection by a user device to a provider device associated with a network (block910), and providing connection information associated with the user device to a database (block920). For example, in implementations described above in connection withFIG. 4, user device110may connect to provider device120, as shown by reference number410. Provider device120may receive connection410, and may provide connection information420to database130. Connection information420may include information associated with user device's110connection410with provider device120.

As further shown inFIG. 9, user device information may be received, from the database, based on the connection information (block930), and a trigger for providing the user device information to a content provider device may be received (block940). For example, in implementations described above in connection withFIG. 4, user device110may provide trigger440to provider device120and/or another trigger450may be provided to provider device120(e.g., by content provider device140or other sources). Triggers440/450may be received by provider device120, and may direct provider device120(e.g., via a postmark protocol associated with network100) to provide user device information430to third parties, such as a third party content provider associated with content provider device140.

Returning toFIG. 9, the content provider may be verified, via the database, when the trigger is received (block950), and the user device information may be provided to the content provider device when the content provider is verified (block960). For example, in implementations described above in connection withFIG. 4, if triggers440or450are received by provider device120, user device information430may be conveyed, by provider device120, to authorized content providers (e.g., content provider device140). Prior to providing user device information430to content provider device140, provider device120may verify the content provider associated with content provider device140, as indicated by reference number460. For example, provider device120may look up in database130to determine whether the content provider is a subscriber to user device information430(e.g., a location service). If the content provider is verified, as indicated by reference number470, provider device120may provide user device information430to content provider device140.

Process block910may include the process blocks depicted inFIG. 10. As shown inFIG. 10, process block910may include one or more of receiving a single port connection by the user device (block1000), receiving a shared access connection by the user device (block1010), and receiving a mobile connection by the user device (block1020). For example, in implementations described above in connection withFIG. 4, connection410between user device110and provider device120may include a dedicated single logical or physical port connection per each customer (e.g., each user device110), a shared access connection (e.g., a broadcast domain for a set of customers), a mobile or Wi-Fi connection, etc. Each of these connection types may have a different level of accuracy for a specific location, but other mechanisms (e.g., triangulation mechanisms, heartbeat/NTP/RTT mechanisms, etc.) for increasing accuracy for shared and mobile customers may also be implemented.

Process block920may include the process blocks depicted inFIG. 11. As shown inFIG. 11, process block920may include providing, to the database, information associated with a network attachment point of the user device (block1100), and providing, to the database, information associated with a user device attachment point (block1110). For example, in implementations described above in connection withFIG. 4, connection information420may include information associated with user device's110connection410with provider device120. In one example, connection information420may include network attachment point information or metadata (e.g., information about network devices of network150used to connect user device110to provider device120) that may be initialized on deployment of provider device120, user device110attachment point information or metadata that may be initialized on deployment of a service (e.g., a new service, a changed service, etc.) provided by provider device120, etc.

Process block930may include the process blocks depicted inFIG. 12. As shown inFIG. 12, process block930may include receiving one or more of registration information associated with the user device (block1200), information associated with the provider device (block1210), attachment point information associated with the user device (block1220), location information associated with the user device (block1230), zip code information associated with the user device (block1240), speed information associated with the user device (block1250), type information associated with the user device (block1260), and load information associated with the provider device (block1270).

For example, in implementations described above in connection withFIG. 4, user device information430may include information (e.g., metadata) about user device110, a user of user device110, a connection point of user device110(e.g., to network150), etc. In one example, user device information430may include attachment point information (e.g., connection point of user device110to network150); a geographical location of user device110; a zip code associated with user device110; a speed (e.g., in gigabits per second) of user device110; a type (e.g., a brand, a manufacturer, etc.) of user device110; a timestamp associated with user device110(e.g., when user device110connects to provider device120); congestion information associated with connection410; a load (e.g., a bandwidth) associated with provider device120; registration information (e.g., a user name, a user address, a user telephone number, etc.) associated with a user; other database130information (e.g., information about third party content providers, such as a content provider associated with content provider device140); other measurements and/or characteristics associated with network150; etc.

Process block940may include the process blocks depicted inFIG. 13. As shown inFIG. 13, process block940may include receiving network event-based trigger(s) (block1300), receiving customer-specified trigger(s) (block1310), receiving content provider-specified trigger(s) (block1320), and/or receiving provider-specified trigger(s) (block1330). For example, in implementations described above in connection withFIG. 4, triggers440/450may include network event-based triggers (e.g., a trigger for every packet, a trigger for every Transmission Control Protocol (TCP) open, a trigger for every TCP close, a port-based trigger, etc.), customer-specified triggers (e.g., a customer may want bandwidth specified to remote devices, such as content provider device140), destination-specified triggers (e.g., content providers may wish to provide real-time localized content to user device110), provider-specified triggers (e.g., provider device120may provide enhanced 911 (or “e911”) emergency services), etc.

FIG. 14depicts a flow chart of an exemplary process1400for generating custom content based on user device information according to implementations described herein. In one implementation, process1400may be performed by content provider device140. In other implementations, some or all of process1400may be performed by another device or group of devices (e.g., communicating with content provider device140).

As illustrated inFIG. 14, process1400may begin with receiving, from a provider device associated with a network, user device information (block1410), and providing advertisements localized for a user device based on the user device information (block1420). For example, in implementations described above in connection withFIGS. 4 and 8, if content provider device140receives user device information430, content provider device140may provide custom content480to user device110. Custom content480may include a variety of information customized based on user device information430(e.g., based on a location associated with user device110). Custom content480may include local advertisements (ads)810that may include advertisements specific to a geographic location associated with user device110(e.g., as determined from user device information430). Local ads810may be provided at a neighborhood level (e.g., ads for neighborhood services) or a customer premises level.

As further shown inFIG. 14, demographic statistics may be calculated based on the user device information (block1430), content delivery may be redirected to specific local content based on the user device information (block1440), and content that is localized for the user device, based on the user device information, may be provided (block1450). For example, in implementations described above in connection withFIG. 8, custom content480may include demographic statistics820, localized content delivery830, and location sensitive content840. Demographic statistics820may include statistical information determined based on user device information430. In one example, demographics statistics820may include a number of web transactions (e.g., a number of webpage hits, a number of content hits, a number of sales, a number of click-through events, types of connections, etc.) per neighborhood, per town, etc. Localized content delivery830may include content whose delivery may be redirected to a specific locale's content (e.g., a locale determined based on user device information430). Location sensitive content840may include content specific to a geographic location associated with user device110(e.g., as determined from user device information430). In one example, location sensitive content may include movie, weather, traffic, business, etc. information specific to the geographic location associated with user device110.

Returning toFIG. 14, financial transactions may be restricted to a specific location based on the user device information (block1460), content delivery to illegal locations may be prevented based on the user device information (block1470), and a user device location may be provided to law enforcement based on the user device information (block1480). For example, in implementations described above in connection withFIG. 8, custom content480may include e911 services information850, financial transactions information860, legal filtering information870, and law enforcement information880. e911 services information850may include information (e.g., as determined from user device information430) that enables user device110to receive e911 services. Financial transactions information860may include information (e.g., as determined from user device information430) that enables user device110to restrict financial transactions (e.g., credit cards, account inquiries, or other online transactions) to a specific geographic location associated with user device110. Legal filtering information870may include information (e.g., as determined from user device information430) that enables user device110to satisfy national or state legal requirements if the location of user device110is ascertained by content provider device140(or by network devices of network150) to prohibit certain content. Law enforcement information880may include information (e.g., as determined from user device information430) that enables law enforcement to quickly determine a location of user device110.

Implementations described herein may provide systems and/or methods that retrieve information (e.g., customer information, device configuration information, location information, etc.) about a user device attached to a provider device via a network. The systems and/or methods may provide specific or general information about the customer and/or the user device based on the retrieved information. Information may be retrieved and/or provided via a postmark protocol. The postmark protocol may permit network devices associated with the network to provide information (e.g., metadata) regarding their locations, which may permit end-to-end geo-location path discovery. Alternatively, the network devices may hide their geographic topologies from external entities (e.g., third party content providers not associated with the network). The postmark protocol may be used to restrict or allow network flows, identify locations of user devices or network devices, allow localized differentiation for transactions, etc.

The foregoing description of implementations provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. For example, while series of blocks have been described with regard toFIGS. 9-14, the order of the blocks may be modified in other implementations. Further, non-dependent blocks may be performed in parallel.