WO2016203110A1 - Enhancing monitoring of connections - Google Patents

Enhancing monitoring of connections Download PDF

Info

Publication number
WO2016203110A1
WO2016203110A1 PCT/FI2016/050429 FI2016050429W WO2016203110A1 WO 2016203110 A1 WO2016203110 A1 WO 2016203110A1 FI 2016050429 W FI2016050429 W FI 2016050429W WO 2016203110 A1 WO2016203110 A1 WO 2016203110A1
Authority
WO
WIPO (PCT)
Prior art keywords
peer
connection
peers
logical connection
session
Prior art date
Application number
PCT/FI2016/050429
Other languages
French (fr)
Inventor
Jarkko PYYKKÖNEN
Henri PELKONEN
Original Assignee
Near Real Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Near Real Oy filed Critical Near Real Oy
Publication of WO2016203110A1 publication Critical patent/WO2016203110A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Definitions

  • the invention relates to connections between peers. More particularly, the invention relates to monitoring of connections between the peers.
  • data may be transferred between the peers.
  • Providing solutions to measure the data transfer between the peers may be beneficial in order to enhance the monitoring of the connections.
  • Figure 1 illustrates an example of a communication system to which embodiments of the invention may be applied
  • Figure 2 illustrates a block diagram according to an embodiment
  • Figures 3A to 3B illustrate some embodiments
  • FIG. 4 illustrates an embodiment
  • FIG. 5A to 5C illustrate some embodiments
  • FIG. 6 illustrates an embodiment
  • Figure 7 illustrates a signal diagram according to an embodiment of the invention
  • Figure 8 illustrates an apparatus according to an embodiment
  • Figure 9 illustrates an embodiment of the invention.
  • Figure 1 shows an example of a communication system to which embodiments of the invention may be applied.
  • the communication system may enable a plurality of devices 1 10, 120 to be in communication with each other, e.g. exchange data with each other.
  • the communication may be enabled by a network 130 and/or by a peer-to-peer connection between the devices 1 10, 120. In some cases, the establishment of the peer-to-peer connection may require signaling between network and the to-be-connected peers.
  • Web- Real-Time Communication may be Web- Real-Time Communication (WebRTC) interface.
  • the WebRTC may enable the peer-to-peer connection by enabling browser-to-browser communication.
  • modern browsers such as Google Chrome, Mozilla Firefox, Opera, may support WebRTC connections, thus enhancing the communication between peers.
  • WebRTC may not require any additional browser extensions to work, and thus it may be rather easy for a user to use.
  • additional extension may be used in order to enable WebRTC support for browsers not natively supporting WebRTC, or to other applications that may be wanted to use in WebRTC communication system.
  • a mobile app may be developed with a support for WebRTC connections.
  • a first peer 1 10 and a second peer 120 may be shown to be connected 1 12, 122 to a network 130.
  • the connections may be enabled by wireless connection, such as Wireless Local Area Network (WLAN), wired connection such as, LAN, and/or cellular connection, such as 2G, 3G, LTE, LTE-A, 4G or 5G technologies.
  • WLAN Wireless Local Area Network
  • the peers 1 10, 120 may have access to the network 130.
  • the peers 1 10, 120 may be and/or comprise a tablet, a smart phone, a mobile phone, a computer, a laptop, a television, a smart watch, a wrist device, to name a few examples.
  • the peers 1 10, 120 comprise an Internet of
  • loT device may be, for example, any device capable of transmitting and/or receiving data, and capable of connecting to the network 130 and to other devices (e.g. peers).
  • the loT device may comprise at least one sensor device.
  • the at least one sensor may comprise, but not limited to, an accelerometer, sphygmomanometer, SpO2 sensor (e.g. pulse and oxygen in blood sensor), temperature sensor, galvanic skin response sen- sor, electromyography sensor, electrocardiogram sensor, airflow sensor (i.e. measuring breathing).
  • the at least one sensor may be used to, for example, measure and/or monitor biometric values of a user.
  • the network 130 may be referred to as a cloud network.
  • the net- work 130 may be accessible by the peers 1 10, 120 through normal Internet connections, meaning that the network 130 may be a part of public and/or accessible Internet. It may also be possible that the network 130 is a private network, for example, used within a company to enable company workers to use peers 1 10, 120 to access the network 130.
  • the network 130 may be used to enable the peers 1 10, 120 to establish peer-to-peer connections and/or it may be used to enable the peers 1 10, 120 to be in communication with each other by conveying information between the peers 1 10, 120.
  • the peers 1 10, 120 may be connected to each other directly and/or via the network 130.
  • the peers 1 10, 120 may be connected to a web service of the network 130.
  • the web service may enable signaling between the peers 1 10, 120.
  • Session Description Protocol (SDP) format may be used provided information of a setup of the peer to other peers.
  • the first peer 1 10 may signal IP-address, Firewall information, and/or Network Address Translation (NAT) information to the second peer in order to enable the peer-to-peer-connection.
  • NAT Network Address Translation
  • the signaling through the web service may be used to exchange information between the peers 1 10, 120 so that they may have knowledge how to establish a direct connection between the peers 1 10, 120.
  • the direct connection between the peers 1 10, 120 e.g. peer-to- peer
  • Interactive Connectivity Establishment (ICE) framework may be used to enhance and/or to enable the forming of connection between the first and second peers 1 10, 120.
  • the ICE may be used to find a best possible connection path between the peers 1 10, 120.
  • the direct connection may be established.
  • the forming of direct connection may sometimes fail.
  • the peers 1 10, 120 may try to reconnect and/or to use Session Traversal Utilities for NAT (STUN) server(s) to acquire an external net- work address of the peers 1 10, 120 respectively.
  • STUN Session Traversal Utilities for NAT
  • STUN Session Traversal Utilities for NAT
  • the IP-address it informs in the signaling phase may be an internal IP-address, and thus external devices may not really know how to find the first peer 1 10.
  • the STUN server(s) may be used to acquire the public IP-address of the first peer 1 10.
  • the STUN server(s) may enable the first and second peers 1 10, 120 to find each other and to form the peer-to-peer connection.
  • the IP-address may comprise a port number.
  • a firewall or similar protection is used by at least one of the peers 1 10, 120.
  • the normal RTCPeerconnec- tion may fail even though the STUN server(s) would be used.
  • the peers 1 10, 120 first tries to establish connection over User Datagram Protocol (UDP). If that fails, the peers 1 10, 120 may try again over Transmission Control Protocol (TCP).
  • TCP Transmission Control Protocol
  • at least one Traversal Using Relays around NAT (TURN) server is used to overcome problems caused by NAT and/or firewall(s).
  • the at least one TURN server may have a public addresses, so they can be contacted by the peers 1 10, 120 even if the peers 1 10, 120 are behind firewalls and/or proxies.
  • the at least one TURN server may be used to relay, for example, a data, audio and/or video stream between the peers 1 10, 120. It may also be possible to use more than one TURN servers. In such case, the TURN servers may be in communication with each other in order for the stream to transfer from one peer to another.
  • the network 130 may comprise at least on server 132, at least one database 134 and/or at least one terminal device 136.
  • the at least one server 132 may comprise webserver(s), STUN server(s), and/or TURN server(s). However, other servers and/or server types may be used.
  • the webserver may comprise, for example, application server configured to provide users the web service.
  • the application server may be physical and/or virtual part of the webserver, and thus the application server may not necessarily be required to provide the web service.
  • the webserver may comprise, for example, Node.js -server. It needs to be noted that the functionalities of the at least one server 132 may be comprised in one network el- ement and/or server.
  • one server may handle all functions of the webservers), TURN server(s) and/or STUN server(s).
  • TURN server(s) may handle all functions of the webservers
  • STUN server(s) may handle more than one server.
  • the at least one server 132, at least one databased and/or the at least one terminal device 136 may physically re- side in any part of the network 130.
  • the functions of the at least one server 132 may be performed virtually meaning that actual computation is happening in different physical server(s).
  • the virtual server may look similar to a physical server, and the peer may not be aware of how the actual computation is performed.
  • Actual implementation of the virtual servers and/or network elements in a network are obvious for a skilled person.
  • the at least one database 134 may be used to store data, such as peer addresses, session identifiers, to name a couple examples.
  • the at least one database 134 and the at least one server 132 may be connected to each other in order to transfer data between the at least one database 134 and the at least one server 132.
  • the at least one terminal device 136 may be used to monitor the network 130, such as the server(s) 132 and/or the database(s) 134. It may be possible that the at least one terminal device 136 is comprised in the server 132, for example.
  • These communication links 1 12, 122 may be wireless and/or wired.
  • the peers 1 10, 120 may be connected to each other. This may mean that the peers 1 10, 120 are in a session with each other.
  • the session here may mean that the peers 1 10, 120 are, for example, participating in a same virtual meeting room.
  • the session between the first and second peers 1 10, 120 may mean that the two are in connection with each other that is accepted by both peers 1 10, 120.
  • the session may comprise one or more logical connections between the first and second peers 1 10, 120.
  • the logical connections may be peer-to-peer connections and/or connections relayed by at least one network element of the network 130.
  • the logical connections may be used to transfer data, video, audio etc. between the peers 1 10, 120.
  • Each of the logical connections may be needed to be accepted by both peers 1 10, 120.
  • Monitoring the transferred data between the peers 1 10, 120 may be used to, for example, used to generate billing of a service used.
  • the service may be a conference call service, wherein the peers 1 10, 120 are using the service.
  • the service provider may, for example, want to bill the users of the service based on the usage of the service.
  • the monitoring of the data transfer between the peers may need to be enhanced.
  • different data types may have individual fees and/or different logical connections may have logical connection specific fees. Further, the fees may also vary between similar logical connections within the same session.
  • a first video connection costs 0.02 €/minute whereas a second video connection costs 0.01 €/min, wherein the first and second video connections may be connections of the same session.
  • FIG. 2 illustrates a block diagram according to an embodiment of the invention.
  • a network element may receive information from the first and second peers 1 10, 120 respectively, the information relating to at least one logical connection of a session between the first and second peers 1 10, 120.
  • the network element may comprise at least one of the at least one server 132, at least one database 134, for example.
  • the first and second peers 1 10 may transmit information related to the at least one logical connection.
  • the network element may determine, based on the re- ceived information from the first and second peers 1 10, 120, that the at least one logical connection between the first and second peers is open, or that at least one data packet has been transferred between the first and second peers 1 10, 120 using the at least one logical connection. For example, if there are two logical connections (i.e. video and audio) between the peers 1 10, 120, the information from the first peer 1 10 may indicate that video connection is open but the audio connection is closed. The second peer 120 may indicate that both connections are open. Based on the peer-specific information, the network element may determine that the video connection is open and the audio connection is closed because it is not open at both peers 1 10, 120.
  • the network element may determine, based on the re- ceived information from the first and second peers 1 10, 120, that the at least one logical connection between the first and second peers is open, or that at least one data packet has been transferred between the first and second peers 1 10, 120 using the at least one logical connection. For example, if there are two logical
  • the at least one logical connection may be open if both peers indicate it to be open at their respective sides. It is also possible that the peers indicate that the at least one data packet is transferred from one peer to another, as described above. In such case the at least one connection, used to transmit the at least one data packet, may not necessarily be open after the packet(s) are transmitted. For example, there may be and/or may have been a chat connection and sensor connection between the peers 1 10, 120.
  • the first peer 1 10 may indicate (e.g. transmit information to network element) that a chat data packets and sensor data packets have been transmitted. However, the second peer 120 may indicate that the chat data packets have been received, but the sensor data packets are not received.
  • Indication of not receiving something may actually be the absence of indicating that something is received as the second peer 120 may not necessarily be aware that the first peer 1 10 has transmitted something.
  • the network element may determine that the chat data packets have been transferred, but the sensor data packets have not been transferred based on the information received from the peers.
  • a logical connection may be open if it is open at both peers.
  • the term open may mean that the logical connection is formed between the first and second peers 1 10, 120, that is, the logical connection may be accepted by both by the first and second peers 1 10, 120.
  • Open logical connection may not necessarily require the logical connection to be active or used to transfer data. More broadly, it may mean that the logical connection is accepted by both participants and/or that it is possible to use the open logical connection for data transfer.
  • step 220 the determination of step 220 that the at least one logical connection is open further requires the at least one logical connection is active. This means that at least some control information and/or actual data is transferred via the at least one logical connection regularly. Naturally, also in this case the, there may be times when the connection is actually active but no data is transmitted. Such pauses in data transmission may be required, for example, by the system requirements.
  • step 220 that the at least one logical connection is open further requires that at least some data is transferred continuously.
  • video stream may be continuously transmit- ted from the first peer to the second peer 120.
  • the network element may in response to the determin- ing of step 220, increment a logical connection-specific counter of the at least one logical connection. For example, if the audio connection is determined to be open, a counter specific to that audio connection may be incremented. Similarly, for example, if a data packet has been transmitted using a video connection, a counter specific to that video connection may be incremented.
  • the logical connection-specific counter may comprise, for example, a logical connection-specific timer and/or logical connection-specific data counter. That is, a timer may be incremented if a logical connection is open, or the data counter may be incremented if the data packet has been transferred.
  • the logical connection-specific counter comprises both the timer and the data counter. That is, for a single logical connection there may be a timer and a data counter, wherein one or both may be updated by the network element based on the information received from the peers 1 10, 120.
  • Fig- ures 3A to 3B illustrate some embodiments of the invention.
  • the first and second peers 1 10, 120 may signal with a network element 300, such as the network element of Figure 2.
  • the signaling may be used to transfer information needed for the peers 1 10, 120 to establish a session (step 306).
  • the signaling is used to provide knowledge how to reach the other peer (i.e. IP address), wherein, in step 306, a RTCPeerConnection may be performed.
  • the second peer 120 may signal with the network element that the sales assistant is online.
  • a customer using the first peer 1 10 may enter a web- site and request assistance. This may be enabled by the signaling between the first peer 1 10 and the network element 300.
  • the required information for the session may be transmitted via the network element 300 between the first and second peers 1 10, 120, and the peers 1 10, 120 may start the session.
  • the session request may be performed by one of the peers and the other may accept or decline the request. If the session request is declined, session is not established.
  • the service is integrated as an entity on a website. This may mean that when a user using a peer browses the website, the service providing, for example, conference call service may be initiated from the website.
  • a website element may be used to initiate a session (i.e. RTCPeerConnectionRequest).
  • RTCPeerConnectionRequest i.e. RTCPeerConnectionRequest
  • the at least one logical connection may comprise audio connection(s), video connection(s), screen sharing connection(s), message connection(s), co-browsing connection(s), file-sharing connection(s), and/or sensor data connection(s), as shown in an example Figure 3B.
  • the co-browsing connection(s) may be used to transmit data between the peers 1 10, 120 in order for them to seemingly navigate at the same website at the same time.
  • a sales assistant may help the cus- tomer to find certain product by making his/her browser to navigate to a certain page or section of a page.
  • the sensor data connection(s) may be used to transmit data from sensor(s) coupled with one of the peers.
  • a health sensor may be coupled with the first peer used by a patient, wherein the data from the health sensor may be transmitted from the sensor to the first peer 1 10, and eventually to the second peer 120 used by a healthcare professional (i.e. doctor, nurse). Later it is explained that an loT device may join the session such that it may directly transfer data between the loT device and at least one of the first peer 1 10, second peer 120.
  • the information relating to the at least one logical connection between the first and second peers 1 10, 120 is comprised in a connection report received, by the network element 300, from the first and second peers 1 10, 120 respectively (steps 308, 310).
  • the connection reports may be transmitted periodically (i.e. one second interval, ten second interval, one minute interval).
  • the incrementing of the coun- ter(s), by the network element 300 may be performed at certain interval, after receiving the information from both peers 1 10, 120, and/or after the session has ended, to name a few examples.
  • the connection report further comprises a session identifier, a peer identifier, a service identifier, a randomly generated number (e.g. a TOKEN), sequence number of the connection report, and/or an IP-address of the peer.
  • the first peer 1 10 may transmit a connection report that may have the following form: [ ⁇ first peer ID>, ⁇ random number>, ⁇ sequence number of the report>, ⁇ IP address>, ⁇ first logical connection: open>, ⁇ second logical connection: closed>, ⁇ third logical connection: 10 kilobits received>].
  • the second peer 120 may transmit the following report: [ ⁇ second peer ID>, ⁇ random number>, ⁇ sequence number of the report>, ⁇ IP address>, ⁇ first logical connection: open>, ⁇ second logical connection: open>, ⁇ third logical connection: 20 kilobits transmitted> ⁇ fourth logical connection: open].
  • the session identifier may refer to the session be- tween first and second peers 1 10, 120.
  • the service identifier may comprise information of what service the service ordered (i.e. online shop helpdesk) is using.
  • the service identifier may indicate that in said session between the first and second peers 1 10, 120, one video connection, two audio connections and two chat connections are used.
  • the network element 300 may determine the service used based on the service identifier and/or the peers may transmit information indicating what or which logical connections are used in said session.
  • the connection report comprises logical connection-specific information indicating whether at least a part of the at least one logical connection is archived and/or should be archived.
  • the first and/or second peers 1 10, 120 may indicate in the connection report that a video connection is archived by at least one of the first peer 1 10, the second peer 120. Further, at least one of the first peer 1 10, second peer 120 may request the network element 300 to archive the video connection if the video connection is relayed by the network element 300. The video ar- chived may be later viewable from the network 130, such as from the database 134, for example. In another example, the first peer 1 10 and/or the second peer 120 archives the video or some other logical connection data to its own database and/or memory. In an embodiment, the network element 300 may determine that a logical connection is archived if the connection report re- ceived both from the transmitter and receiver of the logical connection indicates that the logical connection is archived.
  • the randomly generated number (e.g. TOKEN) may be used to determine expiration of a session.
  • the network element 300 may receive the TOKENs and update a timestamp of the received TOKENS. If the previously received timestamp is older than a predetermined threshold (i.e. 1 hour, 2 hours, 3 hours, to name a few), the network element 300 may request the peer to authenticate again, for example.
  • the network element 300 may determine (step 312) is the at least one logical connection open or has at least one data packet been transferred. The determination, by the network element 300, that at least one data packet has been transferred may also comprise determining how much data is transmitted.
  • the network element 300 may increment the data counter based on the determination how much data has been transferred. For example, based on the above-mentioned reports, the network element 300 may determine that the first logical connection is open, second logical connection is closed, 10 kilobits of data using the third logical connection has been transferred, and that the fourth logical connection is closed. As shown, the first peer 1 10 may not even be aware of the fourth logical connection, or it may save resources by simply not sending anything meaning that the fourth logical connection may be closed at the first peer side.
  • the determining, by the network element 300, of step 220 of Figure 2 and/or step 312 of Figure 3A comprises determining that the at least one logical connection is open if the at least one logical connection is open both at the first peer side and at the second peer side.
  • the determining, by the network element 300, that the at least one data packet has been transferred comprises determining that the at least one data packet has been transmitted by one peer and has been received by another peer. For example, first peer 1 10 indicates that a data packet has been transmitted and the second peer indicates that said data packet has been received.
  • the determining, by the network element 300 comprises determining that the at least one logical connection is open, and that the at least one data packet has been transferred using the at least one logical connection. This may mean that the peers 1 10, 120 indicate that a logi- cal connection is open and that at least one data packet is transferred using said logical connection.
  • the accuracy of the logical connection based monitoring may be enhanced as both indication of openness of the connections and indication that data has been transferred using the open connection may be required.
  • FIG. 4 illustrates an embodiment of the invention.
  • the first and second peers may be in a session with each other.
  • the session may comprise, for example, a conference call, a sales assistance, virtual meeting to name a few examples.
  • first and second logical connections are relayed by the network element 300 from the second peer 120 to the first peer 1 10.
  • Third and fourth logical connections may be peer-to-peer connections.
  • the third and fourth logical connections may be chat connections from one peer to another, whereas the first and second connections may be video and audio streams from the second peer 120 to the first peer 1 10.
  • connection-specific counter(s) of the connection ⁇ ) relayed by the network element 300 are incremented by the network element 300 based on the state of the connection(s) determined by the network element 300. That is, it may not be necessary to receive information from the peers 1 10, 120 whether the relayed connection(s) are open, as the network element 300 may determine that the connection(s) are open if they are relayed. Further, the network element 300 may be aware how much data has been transferred, and increment the connection-specific counter(s) based on the data amount transferred.
  • the at least one logical connection comprises a logical connection relayed, by the network element 300, between the first and the second peers 1 10, 120, and/or a peer-to-peer logical connection between the first and the second peers 1 10, 120.
  • the relayed logical connection may comprise, for example, the first and/or second connections
  • the peer-to-peer logical connection may comprise, for exam- pie, the third and/or fourth connections.
  • Figures 5A to 5C illustrate some embodiments of the invention.
  • the first peer and second peers 1 10, 120 may be in connection with each other, meaning that they may be participating in a same session 502.
  • the session may comprise and/or consists of one or more logical connections, such as first and second logical connections 510, 520, for example.
  • session timeline 504 may be illustrated. This may mean the time from start of the session (i.e. RTCPeerConnection started and/or accepted) to the end of the session.
  • start of the session i.e. RTCPeerConnection started and/or accepted
  • One example of such may be starting of a conference call and ending of the conference call, and thus events be- tween these points in time may be shown in the example.
  • the first and second logical connections 510, 520 may illustrate logical connections from the second peer 120 to the first peer 1 10, for example.
  • the monitoring, by the network element 300 for example, may determine whether the logical connections 510, 520 are open at certain points in time, for example.
  • the network element 300 may determine that the second logical connection 520 is and/or has been open from start to end.
  • the network element 300 may determine that the first logical connection 510 has been open 512 and close 514.
  • the open time may be illustrated with a line fill within the arrow describing the first and second logical connections 510, 520.
  • one logical connection between the first and second peers 1 10, 120 may be illustrated with tree arrows 530A, 530B, 530C.
  • the logical connection 530A, 530B, 530C may be illustrated for the duration of the session between the first and second peers 1 10, 120. This does not, however, mean that the logical connection 530A, 530B, 530C would be necessarily open and/or even exists for the duration of the whole session.
  • the second peer 120 may transmit, for example, a video stream using the logical connection 530A, 530B, 530C.
  • the first and second peers 1 10, 120 may transmit information about the logical connection 530A, 530B, 530C to the network element 300, for example.
  • the network element 300 may determine that whether the connection is and/or has been open. For example, at the side of the second peer 120, the logical connection 530A has been open for the duration of the session, whereas at the side of the first peer 1 10, the logical connection 530B has been open and closed during the session. Using this information, the network element 300 may determine when the logical connection 530C has been open.
  • the first and/or second peers 1 10, 120 transmit regularly information about the state of the logical connection(s).
  • the connection report may be transmitted regularly after every 10 seconds.
  • the network element 300 may receive the information, and determine the openness of the logical connection 530C. As shown in Figure 5B, as the determination and/or the receiving of the connection reports may be regular, there may be some delay 532 in determining whether the logical connection 530C is open or closed.
  • a logical connection 540A, 540B, 540C between the first and second peers 1 10, 120 may be shown.
  • the peers 1 10, 120 may transmit information about the logical connection (i.e. the connection reports) when the state of the logical connection 540A, 540B, 540C changes.
  • the first peer 1 10 may transmit information to the network element 300 when the logical connection 540B, as received by the first peer 1 10, changes state at the first peer 1 10 from open to closed, and/or vice versa.
  • the delays such as delay 532, may be reduced and/or avoided, and the network element 300 may thus even more precisely monitor the state of the logical connection(s).
  • the peers 1 10, 120 may transmit information after transmitting and/or receiving of a data entity comprising at least one data packet.
  • the peers 1 10, 120 may transmit information after transmitting and/or receiving of a data entity comprising at least one data packet.
  • the first peer 1 10 may transmit information to the network element 300 that the message has been received.
  • the logical connection 530A, 530B, 530C and the logical connection 540A, 540B, 540C are illustrated such that the arrows 530A, 540A illustrate the determination, by the network element 300, about the openness of the logical connections at the second peer side based on the information received from the second peer 120.
  • the arrows 530B, 540B illustrate the determination, by the network element 300, about the openness of the logical connections at the first peer side based on the information received from the first peer 1 10.
  • the arrows 530C, 540C illustrate the determination, by the network element 300, about the openness of the logical connections based on the information from the first and the second peers 1 10, 120.
  • FIG. 6 illustrates and embodiment of the invention.
  • the network element 300 may determine, based on connection reports 624, 622 received from the second peer 120 and a third peer 620 respectively, that the second and third peers 120, 620 have the same peer identifier and IP-address. Further, the network element 300 may perform an action con- cerning session(s) to which the second peer 120 is participating and/or sessions) to which the third peer 620 is participating. The action may comprise, for example, terminating the session(s), terminating at least one logical connection of the session(s) and/or transmitting a control message to the second peer 120 and/or third peer 620 that causes the receiving peer (i.e. second peer 120, third peer 620) to terminate the session(s) and/or the at least one logical connection.
  • the action may comprise, for example, terminating the session(s), terminating at least one logical connection of the session(s) and/or transmitting a control message to the second peer 120 and/or third peer 620 that causes the receiving peer (i.e. second peer 120, third peer
  • the at least one connection between the peers 1 10, 120 is encrypted.
  • DTLS Datagram Transport Layer Security
  • the information transferred by the peers 1 10, 120 to the network element 300, such as the connection reports, are encrypted.
  • the network element 300 may be configured to decrypt the received information.
  • at least some signaling between the network element 300 and the peers 1 10, 120 is encrypted.
  • the signaling prior RTCPeerConnection may be encrypted.
  • the at least one connection comprises High Definition (HD) video connection (i.e. 720p, 1080p, 4K).
  • HD High Definition
  • the network element 300 may be configured to relay the HD video connection between the peers 1 10, 120.
  • the at least one connection comprises HD audio.
  • more than two peers may be used.
  • the network element 300 may monitor a session between more than two peers.
  • the network element 300 may be configured to monitor more than one session at a time. This may mean that, for example, the network element 300 may monitor the session between the first and second peers, a second session between third and fourth peers, and/or a third session between second and fourth peers, for example.
  • license agreement may state that service provider may use only one peer to serve customer peers 61 1 -614.
  • the customer peers 61 1 -614 may be, for example, online shop customers that are served by an online assistant using the second peer 120. If the online shop tries to use more than one peer (i.e. third peer 620) to assist their customers, the misuse may be detected by the network element 300 and an action may be taken accordingly.
  • Figure 7 illustrates a signal diagram according to an embodiment of the invention.
  • the network element 300 may receive a request 704 from the first peer 1 10 and/or the second peer 120 (in Figure 7 request is received from the second peer 120), the request requesting an ex- ternal device 700 to share data with the first peer 1 10 and/or the second peer 120.
  • the first and second peers 1 10, 120 are in a session (block 702) when the request is transmitted and/or received.
  • the network element 300 may obtain an identifier referring to the session 702 between the first and second peers (block 706). This may enable the external device 700 to be able to join the session, for example. However, joining in to the session may not necessarily be required.
  • the network element 300 may further cause the first peer 1 10 and/or the second peer 120 to indicate the identifier, such as the session identifier, to the external device 700 enabling the external device 700 to share data between the external device 700 and at least one of the first peer 1 10, second peer 120.
  • the network element 300 may transmit a request to the first peer 1 10 (block 708) that causes the first peer 1 10 to indicate the session identifier to the external device 700 (block 710).
  • the first and/or second peers 1 10, 120 may be aware of the session identifier, and thus such identifier may not necessarily be required to be received from the network element 300.
  • the network element 300 may generate such relative identifier.
  • the purpose of the relative identifier may be to hide the session identifier from the external device 700.
  • the network element 300 may indicate the relative identifier to the external device 700 (i.e. directly, using first peer 1 10, using second peer 120 for the indication).
  • the external device 700 may then transmit data to the network element 300, wherein the data may be associated with the relative identifier.
  • the network element 300 receives the data, it may know to which session the data belongs to. Thus, it may transfer the received data to at least one of the session participants.
  • the external device 700 may transmit data directly to the first and/or second peers 1 10, 120. However, in such case the external device 700 may need the session identifier and/or IP-address of the peer(s).
  • the external device 700 may join the session, and ex- change data between the first and/or second peers 1 10, 120. However, as described above this may not necessarily be required.
  • the external device 700 such as a sensor device (i.e. loT device with at least one sensor), may receive the identifier related to the session between the first and second peers 1 10, 120 (i.e. relative identifier). The identifier may be received from the first peer 1 10, the second peer 120, and/or the network element 300.
  • the external device 700 transmits data to the network element 300, it may associate the transmitted data with the received identifier.
  • the network element 300 receives the data, it may convey it to the right session, for example.
  • the first peer 1 10 and/or the second peer 120 indicates the identifier related to the session between the first and second ses- sion using a Quick Response (QR) code.
  • QR Quick Response
  • Another example may be to use NFC connection and/or Bluetooth connection to indicate the identifier to the external device 700.
  • the receiving, by the external device 700, of the identifier (i.e. session identifier, relative identifier) relating to the session between the first and second peers 1 10, 120 may be used even after the session between first and second peers 1 10, 120 has been terminated.
  • the external device 700 may acquire the identifier from the first peer 1 10 used by the patient.
  • the first and second peers 1 10, 120 may terminate the session between them but the doctor (using the second peer 120) may instruct the patient to measure his/her blood pressure once a day.
  • the patient may use the external device 700 to measure his/her blood pressure, wherein the external device 700 may transmit the data to the network element 300.
  • the transmitted data may be associated with the identifier, such as the relative identifier, and thus, the network element 300 may associate the received data with the right peer(s) and/or right session. Further, the network element 300 may store the received data for later view. Therefore, the doctor may view the results when he/she so wishes.
  • the relative session identifier may bring some benefits. For example, peer identifiers and/or user identifiers are not needed to be stored to the external device 700. Thus, for example, the external device 700 may be more securely used by a number of patients.
  • the second peer 120 transmits an indication to the network element 300 whether further data is allowed to the closed and/or terminated session between the peers 1 10, 120.
  • the second peer 120 may indicate that the external device 700 data may be allowed to be stored to the session data after the session has been closed (i.e. blood pressure measurements).
  • the network ele- ment 300 may receive the indication, and based on the indication allow or decline further data to be associated (i.e. stored) with the session.
  • the external device 700 transmits data to first and/or second peers 1 10, 120 via the network element 300.
  • the network element 300 may receive data from the external device 700, and de- termine to which peer it should convey the data to.
  • the external device 700 data may comprise an identifier relating to the external device 700 (i.e. user identifier, device identifier).
  • the network element 300 may use this identifier to determine to which session the data belongs to.
  • the connection report(s) may comprise information about used sensor device(s) that relate to a certain user and/or peer (i.e. user identifier, sensor device iden- tifier(s)).
  • the external device 700 comprises and/or is an loT device. Thus, it may be able to communicate with the network via cellular, wired and/or wireless data connection.
  • the second peer 120 controls to who the external device 700 data is allowed to be shown.
  • the external device 700 may transmit weight information of a person to the network element 300.
  • Host of the session such as the second peer 120, may indicate to the network element 300 that first peer 1 10, third peer and fourth peer may have access to said weight information.
  • the first, third and fourth peers may be comprised in a weight management group. Thus, they all may be given access to that information to promote peer pressure etc.
  • the weight information may be measured from the user of the first peer 1 10.
  • the same external device 700 may be used by all different peer users (i.e. third peer, fourth peer).
  • the external device 700 comprises at least one of a camera, microphone, speaker, keyboard. Therefore, the external device 700 may be used, for example, to offer an enhanced user experience for a user of a peer. For example, HD video and/or audio may be acquired using the external device 700. Also keyboard may offer, for example, for a mobile user more enhanced way of typing in information.
  • the external device 700 authenticates to the network element 300 using the information received from the QR code, NFC and/or Bluetooth.
  • the QR code may comprise, for example, the relative identifier and/or a password.
  • the network element 300 may respond with a message comprising a TOKEN.
  • the TOKEN may expire if too much time has passed without communication. Therefore, if the peer transmits data (i.e. control data, data packets) to the network element 300, the TOKEN may not expire. However, the TOKEN may expire if no data is transmitted for a certain time and/or if the peer ends the session (i.e. dedicated session end button and/or turning off the browser).
  • the peer may transmit a control message to the network element 300 and/or to other peers in the session that it has terminated the session.
  • termination in this case may mean that the peer leaves the session, but the session may still be on for some other peers (i.e. multipar- ty session).
  • the peer may not be able to force termination of the whole session.
  • the network element 300 terminates the session based on the expiration of at least one TOKEN received from the session participants. For example, if there are two peers in the session and one TOKEN is expired, the network element 300 may terminate the session.
  • the network element 300 based on the logical connection-specific counter of the at least one logical connection, provides connection resources to at least one of the first peer 1 10, the second peer 120.
  • Communication resources may mean, for example, more band(s) to transfer data and/or to use more logical connections. For example, if some peer uses normally only audio and not video, it may require less band compared to a peer which uses both.
  • the network element 300 may actually use history information about connections of peers in order to serve all peers accordingly, when at the same time not having too much excess communication resources. This may enhance the performance of the network as whole.
  • One other example may be to use the above described solution to enable charging service users based on the actual usage of the service.
  • One example of such may be to base the charges on openness and/or activeness of logical connection(s). For example, if it is possible to use video and audio streams, but the service user doesn't always want to use video connection, the service charge may only comprise the services (i.e. connections) that are actually used. Hence, the charging may be fairer.
  • the network element 300 comprises a charging engine (i.e. server).
  • the charging engine may be responsible of generating bills to service users based on the logical connection-specific counter of the at least one logical connection.
  • FIG 8 illustrates an apparatus according to an embodiment of the invention.
  • the apparatus 800 may be and/or comprise the network element 300, for example.
  • the apparatus 800 is a server.
  • the apparatus 800 comprises a server and/or a database.
  • the apparatus 800 comprises a circuitry (CTRL) 810, such as at least one processor, and at least one memory 830 including a computer program code (software) 832, wherein the at least one memory and the computer program code (software) 832, are configured, with the at least one processor, to cause the respective apparatus 800 to carry out any one of the embodiments of Figures 1 to 7, or operations thereof.
  • CTRL circuitry
  • software software
  • the memory 830 may be implemented using any suitable data storage technology, such as semiconductor based memory devices, flash memory, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory.
  • the memory 830 may comprise a database 834 for storing data, such as the received connection reports. Further, database 834 may be and/or comprise at least one of the databases 134 of Figure 1 , for example.
  • the apparatus 800 may further comprise communication circuitry 820 comprising hardware and/or software for realizing communication connectivity according to one or more communication protocols, such as WLAN, cellular protocols and/or LAN.
  • the communication circuitry may provide the apparatus with communication capabilities to access the network 130 in order to enable communication with peers 1 10, 120, for example.
  • the TRX may com- prise standard well-known components such as an amplifier, filter, frequency- converter, (de)modulator, and encoder/decoder circuitries and one or more antennas.
  • the communication circuitry 820 is and/or comprises a wireless communication circuitry.
  • the apparatus 800 may also comprise user interface 840 compris- ing, for example, at least one keypad, a microphone, a touch display, a display, a speaker, etc.
  • the user interface 840 may be used to control the respective apparatus by a user of the apparatus 800.
  • the apparatus 800 comprises the control circuitry 810 comprising a receiver circuitry 812, a determiner circuitry 814 and/or an incrementer circuitry 816.
  • the receiver circuitry 812 may be configured to receive information from the first and second peers 1 10, 120 respectively, the information relating to at least one logical connection of a session between the first and second peers 1 10, 120.
  • the determiner circuitry 814 may be configured to determine, based on the received information from the first and second peers 1 10, 120, that the at least one logical connection between the first and second peers 1 10, 120 is open, or that at least one data packet has been transferred between the first and second peers 1 10, 120 using the at least one logical connection.
  • the incrementer circuitry 816 may be configured to in a response to the determining by the determiner circuitry 814, increment a logical connection-specific counter of the at least one logical connection.
  • an apparatus comprising at least one processor and at least one memory including a computer program code, wherein the at least one memory and the computer program code are configured, with the at least one processor, to cause a network element to perform operations comprising: receiving, by a network element, information from a first and second peers respectively, the information relating to at least one logical connection of a session between the first and second peers; determining, based on the received information from the first and second peers, that the at least one logical connection between the first and second peers is open, or that at least one data packet has been transferred between the first and sec- ond peers using the at least one logical connection; and in a response to the determining, incrementing a logical connection-specific counter of the at least one logical connection.
  • Figure 9 illustrates an embodiment of the invention.
  • a session between the first and second peers 1 10, 120 may comprise further peer(s) such as a third peer 910. That is, as described above, there may be plurality of devices in the session that may have a number of peer-to- peer connections and/or number of relayed connections by the network element 300.
  • the second peer 120 may broadcast (i.e. one-to-many connection) data to the first and third peers 1 10, 910.
  • a first logical connection may be from second peer 120 to the first and third peers 1 10, 120, for example.
  • Monitoring the one-to-many logical connection may require all participants of that connection to transmit information regarding said connection to the network element 300.
  • the third peer 910 may indicate that the first connection is closed, and thus, the network element 300 may determine that the first connection is open only between the first and second peers 1 10, 120.
  • the network element 300 may determine that the first connection is not open at all.
  • the multiparty session may further comprise one-to-one logical connections, such as a second, third and fourth logical connections as shown in Figure 9. Further, there may be logical connection(s) between the first and third peers 1 10, 910 also.
  • the session described in relation to Figure 2 may comprise a plurality of peers (i.e. 2 peers, 10 peers, 100 peers, 1000 peers to name a few examples).
  • the determination of openness and/or determination that a data packet has been transferred may be based on the information from the trans- mitter and the receiver.
  • the determination may be first of all based on the transmitter.
  • the receivers may indicate whether the broadcast connection is open at their side. If the broadcast connection is open at both sides, i.e. transmitter and a first receiver, the broadcast connection may be considered to be open between the transmitter and the first receiver. However, if a second receiver indicates that the broadcast connection is not open, the broadcast connection may be considered to be closed between the transmitter and the second receiver. Such situation may happen, for example, if the transmitter broadcasts a stream and it is received by the first receiver but not by the second receiver.
  • a meeting and/or conference session such as a WebRTC session
  • peers may, for example, comprise many-to- many and/or one-to-many logical connections between the peers.
  • the connections may be monitored, by the network element 300, based on the information from the peers.
  • a number of transmitters and receivers may be determined by the network element 300 respectively.
  • the counter(s) may be increased and/or communication resources may be distributed.
  • the apparatus carrying out the embodiments comprises a circuitry including at least one processor and at least one memory including computer program code. When activated, the circuitry causes the apparatus to perform at least some of the functionalities according to any one of the embodiments of Figures 1 to 7 and Figure 9, or operations thereof.
  • the term 'circuitry' refers to all of the following: (a) hardware-only circuit implementations, such as implementations in only analog and/or digital circuitry, and (b) combinations of circuits and software (and/or firmware), such as (as applicable): (i) a combination of processors) or (ii) portions of processor(s)/software including digital signal processors), software, and memory(ies) that work together to cause an apparatus to perform various functions, and (c) circuits, such as a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation, even if the software or firmware is not physically present.
  • This definition of 'circuitry' applies to all uses of this term in this application.
  • the term 'circuitry' would also cover an implementa- tion of merely a processor (or multiple processors) or a portion of a processor and its (or their) accompanying software and/or firmware.
  • At least some of the processes described in connection with Figures 1 to 7 and Figure 9 may be carried out by an apparatus comprising corresponding means for carrying out at least some of the de- scribed processes.
  • Some example means for carrying out the processes may include at least one of the following: detector, processor (including dual-core and multiple-core processors), digital signal processor, controller, receiver, transmitter, encoder, decoder, memory, RAM, ROM, software, firmware, display, user interface, display circuitry, user interface circuitry, user inter- face software, display software, circuit, antenna, antenna circuitry, and circuitry.
  • the at least one processor, the memory, and the computer program code form processing means or comprises one or more computer program code portions for carrying out one or more operations according to any one of the embodiments of Figures 1 to 7 and Figure 9 or op- erations thereof.
  • the techniques and methods described herein may be implemented by various means. For example, these techniques may be implemented in hardware (one or more devices), firmware (one or more devices), software (one or more modules), or combinations thereof.
  • the apparatus(es) of embodiments may be implemented within one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, other electronic units designed to perform the functions described herein, or a combination thereof.
  • ASICs application-specific integrated circuits
  • DSPs digital signal processors
  • DSPDs digital signal processing devices
  • PLDs programmable logic devices
  • FPGAs field programmable gate arrays
  • processors controllers, micro-controllers, microprocessors, other electronic units designed to perform the functions described herein, or a combination thereof.
  • the implementation can be carried out through modules of at least one
  • the software codes may be stored in a memory unit and executed by processors.
  • the memory unit may be implemented within the processor or externally to the processor. In the latter case, it can be communicatively coupled to the processor via various means, as is known in the art.
  • the components of the systems described herein may be rearranged and/or complemented by additional components in order to facilitate the achievements of the various aspects, etc., described with regard thereto, and they are not limited to the precise configurations set forth in the given figures, as will be appreciated by one skilled in the art.
  • Embodiments as described may also be carried out in the form of a computer process defined by a computer program or portions thereof. Embodiments of the methods described in connection with Figures 1 to 7 and Figure 9 may be carried out by executing at least one portion of a computer program comprising corresponding instructions.
  • the computer program may be in source code form, object code form, or in some intermediate form, and it may be stored in some sort of carrier, which may be any entity or device capable of carrying the program.
  • the computer program may be stored on a computer program distribution medium readable by a computer or a processor.
  • the computer program medium may be, for example but not limited to, a record medium, computer memory, read-only memory, electrical carrier signal, telecommunications signal, and software distribution package, for example.
  • the computer program medium may be a non-transitory medium. Coding of software for carrying out the embodiments as shown and described is well within the scope of a person of ordinary skill in the art.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

There is provided a method comprising: receiving, by a network element, information from a first and second peers respectively, the information relating to at least one logical connection of a session between the first and second peers; determining, based on the received information from the first and second peers, that the at least one logical connection between the first and second peers is open, or that at least one data packet has been transferred between the first and second peers using the at least one logical connection; and in a response to the determining, incrementing a logical connection-specific counter of the at least one logical connection.

Description

ENHANCING MONITORING OF CONNECTIONS
TECHNICAL FIELD
The invention relates to connections between peers. More particularly, the invention relates to monitoring of connections between the peers. BACKGROUND
In a connection between peers, data may be transferred between the peers. Providing solutions to measure the data transfer between the peers may be beneficial in order to enhance the monitoring of the connections.
BRIEF DESCRIPTION
According to an aspect, there is provided the subject matter of the independent claims. Some embodiments are defined in the dependent claims.
One or more examples of implementations are set forth in more detail in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.
BRIEF DESCRIPTION OF DRAWINGS
In the following embodiments will be described in greater detail with reference to the attached drawings, in which
Figure 1 illustrates an example of a communication system to which embodiments of the invention may be applied;
Figure 2 illustrates a block diagram according to an embodiment; Figures 3A to 3B illustrate some embodiments;
Figure 4 illustrates an embodiment;
Figures 5A to 5C illustrate some embodiments;
Figure 6 illustrates an embodiment;
Figure 7 illustrates a signal diagram according to an embodiment of the invention;
Figure 8 illustrates an apparatus according to an embodiment; and Figure 9 illustrates an embodiment of the invention.
DETAILED DESCRIPTION OF SOME EMBODIMENTS
The following embodiments are exemplifying. Although the specification may refer to "an", "one", or "some" embodiment(s) in several locations of the text, this does not necessarily mean that each reference is made to the same embodiment(s), or that a particular feature only applies to a single embodiment. Single features of different embodiments may also be combined to provide other embodiments.
Figure 1 shows an example of a communication system to which embodiments of the invention may be applied. The communication system may enable a plurality of devices 1 10, 120 to be in communication with each other, e.g. exchange data with each other. The communication may be enabled by a network 130 and/or by a peer-to-peer connection between the devices 1 10, 120. In some cases, the establishment of the peer-to-peer connection may require signaling between network and the to-be-connected peers.
One example of peer-to-peer enabling technologies may be Web- Real-Time Communication (WebRTC) interface. The WebRTC may enable the peer-to-peer connection by enabling browser-to-browser communication. For example, modern browsers, such as Google Chrome, Mozilla Firefox, Opera, may support WebRTC connections, thus enhancing the communication between peers. WebRTC may not require any additional browser extensions to work, and thus it may be rather easy for a user to use. However, additional extension may be used in order to enable WebRTC support for browsers not natively supporting WebRTC, or to other applications that may be wanted to use in WebRTC communication system. For example, a mobile app may be developed with a support for WebRTC connections.
Referring to Figure 1 , a first peer 1 10 and a second peer 120 may be shown to be connected 1 12, 122 to a network 130. The connections may be enabled by wireless connection, such as Wireless Local Area Network (WLAN), wired connection such as, LAN, and/or cellular connection, such as 2G, 3G, LTE, LTE-A, 4G or 5G technologies. Thus, the peers 1 10, 120 may have access to the network 130. For example, the peers 1 10, 120 may be and/or comprise a tablet, a smart phone, a mobile phone, a computer, a laptop, a television, a smart watch, a wrist device, to name a few examples.
In an embodiment, the peers 1 10, 120 comprise an Internet of
Things (loT) device. Such loT device may be, for example, any device capable of transmitting and/or receiving data, and capable of connecting to the network 130 and to other devices (e.g. peers). For example, the loT device may comprise at least one sensor device. The at least one sensor may comprise, but not limited to, an accelerometer, sphygmomanometer, SpO2 sensor (e.g. pulse and oxygen in blood sensor), temperature sensor, galvanic skin response sen- sor, electromyography sensor, electrocardiogram sensor, airflow sensor (i.e. measuring breathing). The at least one sensor may be used to, for example, measure and/or monitor biometric values of a user.
The network 130 may be referred to as a cloud network. The net- work 130 may be accessible by the peers 1 10, 120 through normal Internet connections, meaning that the network 130 may be a part of public and/or accessible Internet. It may also be possible that the network 130 is a private network, for example, used within a company to enable company workers to use peers 1 10, 120 to access the network 130.
The network 130 may be used to enable the peers 1 10, 120 to establish peer-to-peer connections and/or it may be used to enable the peers 1 10, 120 to be in communication with each other by conveying information between the peers 1 10, 120. Thus, the peers 1 10, 120 may be connected to each other directly and/or via the network 130.
If we consider WebRTC as an example, the peers 1 10, 120 may be connected to a web service of the network 130. The web service may enable signaling between the peers 1 10, 120. For example, Session Description Protocol (SDP) format may be used provided information of a setup of the peer to other peers. For example, the first peer 1 10 may signal IP-address, Firewall information, and/or Network Address Translation (NAT) information to the second peer in order to enable the peer-to-peer-connection. In a way it may be understood that the signaling through the web service may be used to exchange information between the peers 1 10, 120 so that they may have knowledge how to establish a direct connection between the peers 1 10, 120. In WebRTC the direct connection between the peers 1 10, 120 (e.g. peer-to- peer) may be enabled by using RTCPeerconnection which may try to establish the peer-to-peer connection using at least some of the signaled information.
Interactive Connectivity Establishment (ICE) framework may be used to enhance and/or to enable the forming of connection between the first and second peers 1 10, 120. The ICE may be used to find a best possible connection path between the peers 1 10, 120. For example, the direct connection may be established. However, the forming of direct connection may sometimes fail. In such case, the peers 1 10, 120 may try to reconnect and/or to use Session Traversal Utilities for NAT (STUN) server(s) to acquire an external net- work address of the peers 1 10, 120 respectively. For example, if the first peer 1 10 is behind a router, the IP-address it informs in the signaling phase may be an internal IP-address, and thus external devices may not really know how to find the first peer 1 10. The STUN server(s) may be used to acquire the public IP-address of the first peer 1 10. Thus, the STUN server(s) may enable the first and second peers 1 10, 120 to find each other and to form the peer-to-peer connection. The IP-address may comprise a port number.
Further, it may be possible that a firewall or similar protection is used by at least one of the peers 1 10, 120. Thus, the normal RTCPeerconnec- tion may fail even though the STUN server(s) would be used. In one example, in the WebRTC protocol the peers 1 10, 120 first tries to establish connection over User Datagram Protocol (UDP). If that fails, the peers 1 10, 120 may try again over Transmission Control Protocol (TCP). It is possible that at least one Traversal Using Relays around NAT (TURN) server is used to overcome problems caused by NAT and/or firewall(s). The at least one TURN server may have a public addresses, so they can be contacted by the peers 1 10, 120 even if the peers 1 10, 120 are behind firewalls and/or proxies. The at least one TURN server may be used to relay, for example, a data, audio and/or video stream between the peers 1 10, 120. It may also be possible to use more than one TURN servers. In such case, the TURN servers may be in communication with each other in order for the stream to transfer from one peer to another.
Still referring to Figurel , the network 130 may comprise at least on server 132, at least one database 134 and/or at least one terminal device 136. The at least one server 132 may comprise webserver(s), STUN server(s), and/or TURN server(s). However, other servers and/or server types may be used. The webserver may comprise, for example, application server configured to provide users the web service. The application server may be physical and/or virtual part of the webserver, and thus the application server may not necessarily be required to provide the web service. Further, the webserver may comprise, for example, Node.js -server. It needs to be noted that the functionalities of the at least one server 132 may be comprised in one network el- ement and/or server. That is, one server may handle all functions of the webservers), TURN server(s) and/or STUN server(s). Naturally, more than one server may be used also. For example, it may be beneficial to buy TURN server resources, when they are needed, from service providers to reduce own costs.
It further needs to be noted that the at least one server 132, at least one databased and/or the at least one terminal device 136 may physically re- side in any part of the network 130. Thus, the functions of the at least one server 132, for example, may be performed virtually meaning that actual computation is happening in different physical server(s). For a peer, the virtual server may look similar to a physical server, and the peer may not be aware of how the actual computation is performed. Actual implementation of the virtual servers and/or network elements in a network, are obvious for a skilled person.
The at least one database 134 may be used to store data, such as peer addresses, session identifiers, to name a couple examples. The at least one database 134 and the at least one server 132 may be connected to each other in order to transfer data between the at least one database 134 and the at least one server 132. The at least one terminal device 136 may be used to monitor the network 130, such as the server(s) 132 and/or the database(s) 134. It may be possible that the at least one terminal device 136 is comprised in the server 132, for example.
In the system of Figure 1 , there may be communication links 1 12,
122 between the first and second peers 1 10, 120 with the network 130. These communication links 1 12, 122 may be wireless and/or wired. Similarly, there may be peer-to-peer communication link(s) 140 between the first and the second devices 1 10, 120. These communication link(s) 140 may also be wireless and/or wired.
As described, the peers 1 10, 120 may be connected to each other. This may mean that the peers 1 10, 120 are in a session with each other. The session here may mean that the peers 1 10, 120 are, for example, participating in a same virtual meeting room. Naturally, there may be a multiple sessions between the first and second peers 1 10, 120, but in the sake of simplicity let us presume that these one or more sessions are actually sub-sessions of the session between the first and second peers 1 10, 120. That is, the session between the first and second peers 1 10, 120 may mean that the two are in connection with each other that is accepted by both peers 1 10, 120. Further, the session may comprise one or more logical connections between the first and second peers 1 10, 120. The logical connections may be peer-to-peer connections and/or connections relayed by at least one network element of the network 130. The logical connections may be used to transfer data, video, audio etc. between the peers 1 10, 120. Each of the logical connections may be needed to be accepted by both peers 1 10, 120.
Monitoring the transferred data between the peers 1 10, 120 may be used to, for example, used to generate billing of a service used. For example, the service may be a conference call service, wherein the peers 1 10, 120 are using the service. The service provider may, for example, want to bill the users of the service based on the usage of the service. However, in order for the bill- ing to be fair, the monitoring of the data transfer between the peers may need to be enhanced. For example, different data types may have individual fees and/or different logical connections may have logical connection specific fees. Further, the fees may also vary between similar logical connections within the same session. One example of this may be that a first video connection costs 0.02€/minute whereas a second video connection costs 0.01€/min, wherein the first and second video connections may be connections of the same session.
There is provided a solution to enhance the monitoring of the session between peers. Although the solution is described in relation to the first and second peers 1 10, 120, the solution may work similarly with more than two peers 1 10, 120.
Figure 2 illustrates a block diagram according to an embodiment of the invention. Referring to Figure 2, in step 210, a network element may receive information from the first and second peers 1 10, 120 respectively, the information relating to at least one logical connection of a session between the first and second peers 1 10, 120. The network element may comprise at least one of the at least one server 132, at least one database 134, for example. The first and second peers 1 10 may transmit information related to the at least one logical connection.
In step 220, the network element may determine, based on the re- ceived information from the first and second peers 1 10, 120, that the at least one logical connection between the first and second peers is open, or that at least one data packet has been transferred between the first and second peers 1 10, 120 using the at least one logical connection. For example, if there are two logical connections (i.e. video and audio) between the peers 1 10, 120, the information from the first peer 1 10 may indicate that video connection is open but the audio connection is closed. The second peer 120 may indicate that both connections are open. Based on the peer-specific information, the network element may determine that the video connection is open and the audio connection is closed because it is not open at both peers 1 10, 120. That is, the at least one logical connection may be open if both peers indicate it to be open at their respective sides. It is also possible that the peers indicate that the at least one data packet is transferred from one peer to another, as described above. In such case the at least one connection, used to transmit the at least one data packet, may not necessarily be open after the packet(s) are transmitted. For example, there may be and/or may have been a chat connection and sensor connection between the peers 1 10, 120. The first peer 1 10 may indicate (e.g. transmit information to network element) that a chat data packets and sensor data packets have been transmitted. However, the second peer 120 may indicate that the chat data packets have been received, but the sensor data packets are not received. Indication of not receiving something may actually be the absence of indicating that something is received as the second peer 120 may not necessarily be aware that the first peer 1 10 has transmitted something. The network element may determine that the chat data packets have been transferred, but the sensor data packets have not been transferred based on the information received from the peers.
Let us consider closer on what is meant by the at least one logical connection being open. As said, a logical connection may be open if it is open at both peers. The term open may mean that the logical connection is formed between the first and second peers 1 10, 120, that is, the logical connection may be accepted by both by the first and second peers 1 10, 120. Open logical connection may not necessarily require the logical connection to be active or used to transfer data. More broadly, it may mean that the logical connection is accepted by both participants and/or that it is possible to use the open logical connection for data transfer.
In an embodiment, the determination of step 220 that the at least one logical connection is open further requires the at least one logical connection is active. This means that at least some control information and/or actual data is transferred via the at least one logical connection regularly. Naturally, also in this case the, there may be times when the connection is actually active but no data is transmitted. Such pauses in data transmission may be required, for example, by the system requirements.
In an embodiment, the determination of step 220 that the at least one logical connection is open further requires that at least some data is transferred continuously. For example, video stream may be continuously transmit- ted from the first peer to the second peer 120.
In step 230, the network element may in response to the determin- ing of step 220, increment a logical connection-specific counter of the at least one logical connection. For example, if the audio connection is determined to be open, a counter specific to that audio connection may be incremented. Similarly, for example, if a data packet has been transmitted using a video connection, a counter specific to that video connection may be incremented. The logical connection-specific counter may comprise, for example, a logical connection-specific timer and/or logical connection-specific data counter. That is, a timer may be incremented if a logical connection is open, or the data counter may be incremented if the data packet has been transferred. In an embodiment, the logical connection-specific counter comprises both the timer and the data counter. That is, for a single logical connection there may be a timer and a data counter, wherein one or both may be updated by the network element based on the information received from the peers 1 10, 120.
Let us now look closer on some embodiments of the invention. Fig- ures 3A to 3B illustrate some embodiments of the invention. Referring to Figure 3A, in steps 302, 304 the first and second peers 1 10, 120 may signal with a network element 300, such as the network element of Figure 2. The signaling may be used to transfer information needed for the peers 1 10, 120 to establish a session (step 306). For example, in WebRTC scenario, the signaling is used to provide knowledge how to reach the other peer (i.e. IP address), wherein, in step 306, a RTCPeerConnection may be performed.
For example, if the second peer 120 is used by a network sales assistant, the second peer 120 may signal with the network element that the sales assistant is online. A customer using the first peer 1 10 may enter a web- site and request assistance. This may be enabled by the signaling between the first peer 1 10 and the network element 300. Now the required information for the session may be transmitted via the network element 300 between the first and second peers 1 10, 120, and the peers 1 10, 120 may start the session. The session request may be performed by one of the peers and the other may accept or decline the request. If the session request is declined, session is not established.
In an embodiment, the service is integrated as an entity on a website. This may mean that when a user using a peer browses the website, the service providing, for example, conference call service may be initiated from the website. For example, a website element may be used to initiate a session (i.e. RTCPeerConnectionRequest). As the session is established between the first and second peers 1 10, 120, they may use at least one logical connection between the first and second peers 1 10, 120. The at least one logical connection may comprise audio connection(s), video connection(s), screen sharing connection(s), message connection(s), co-browsing connection(s), file-sharing connection(s), and/or sensor data connection(s), as shown in an example Figure 3B.
The co-browsing connection(s) may be used to transmit data between the peers 1 10, 120 in order for them to seemingly navigate at the same website at the same time. For example, a sales assistant may help the cus- tomer to find certain product by making his/her browser to navigate to a certain page or section of a page. The sensor data connection(s) may be used to transmit data from sensor(s) coupled with one of the peers. For example, a health sensor may be coupled with the first peer used by a patient, wherein the data from the health sensor may be transmitted from the sensor to the first peer 1 10, and eventually to the second peer 120 used by a healthcare professional (i.e. doctor, nurse). Later it is explained that an loT device may join the session such that it may directly transfer data between the loT device and at least one of the first peer 1 10, second peer 120.
Still referring to Figure 3A, the information relating to the at least one logical connection between the first and second peers 1 10, 120 is comprised in a connection report received, by the network element 300, from the first and second peers 1 10, 120 respectively (steps 308, 310). For example, the connection reports may be transmitted periodically (i.e. one second interval, ten second interval, one minute interval). The incrementing of the coun- ter(s), by the network element 300, may be performed at certain interval, after receiving the information from both peers 1 10, 120, and/or after the session has ended, to name a few examples.
In an embodiment, the connection report further comprises a session identifier, a peer identifier, a service identifier, a randomly generated number (e.g. a TOKEN), sequence number of the connection report, and/or an IP-address of the peer. Thus, for example, the first peer 1 10 may transmit a connection report that may have the following form: [<first peer ID>, <random number>, <sequence number of the report>, <IP address>, <first logical connection: open>, <second logical connection: closed>, <third logical connection: 10 kilobits received>]. Similarly, related to the same session the second peer 120 may transmit the following report: [<second peer ID>, <random number>, <sequence number of the report>, <IP address>, <first logical connection: open>, <second logical connection: open>, <third logical connection: 20 kilobits transmitted> <fourth logical connection: open].
As described, the session identifier may refer to the session be- tween first and second peers 1 10, 120. The service identifier may comprise information of what service the service ordered (i.e. online shop helpdesk) is using. For example, the service identifier may indicate that in said session between the first and second peers 1 10, 120, one video connection, two audio connections and two chat connections are used. The network element 300 may determine the service used based on the service identifier and/or the peers may transmit information indicating what or which logical connections are used in said session. In an embodiment, the connection report comprises logical connection-specific information indicating whether at least a part of the at least one logical connection is archived and/or should be archived. For ex- ample, the first and/or second peers 1 10, 120 may indicate in the connection report that a video connection is archived by at least one of the first peer 1 10, the second peer 120. Further, at least one of the first peer 1 10, second peer 120 may request the network element 300 to archive the video connection if the video connection is relayed by the network element 300. The video ar- chived may be later viewable from the network 130, such as from the database 134, for example. In another example, the first peer 1 10 and/or the second peer 120 archives the video or some other logical connection data to its own database and/or memory. In an embodiment, the network element 300 may determine that a logical connection is archived if the connection report re- ceived both from the transmitter and receiver of the logical connection indicates that the logical connection is archived.
The randomly generated number (e.g. TOKEN) may be used to determine expiration of a session. The network element 300 may receive the TOKENs and update a timestamp of the received TOKENS. If the previously received timestamp is older than a predetermined threshold (i.e. 1 hour, 2 hours, 3 hours, to name a few), the network element 300 may request the peer to authenticate again, for example. The network element 300 may determine (step 312) is the at least one logical connection open or has at least one data packet been transferred. The determination, by the network element 300, that at least one data packet has been transferred may also comprise determining how much data is transmitted. Further, if we look at the example of Figure 2, in step 220 the at least one data packet may be determined to have been transferred, and in step 230, the network element 300 may increment the data counter based on the determination how much data has been transferred. For example, based on the above-mentioned reports, the network element 300 may determine that the first logical connection is open, second logical connection is closed, 10 kilobits of data using the third logical connection has been transferred, and that the fourth logical connection is closed. As shown, the first peer 1 10 may not even be aware of the fourth logical connection, or it may save resources by simply not sending anything meaning that the fourth logical connection may be closed at the first peer side.
In an embodiment, the determining, by the network element 300, of step 220 of Figure 2 and/or step 312 of Figure 3A comprises determining that the at least one logical connection is open if the at least one logical connection is open both at the first peer side and at the second peer side.
Similarly, in an embodiment, the determining, by the network element 300, that the at least one data packet has been transferred comprises determining that the at least one data packet has been transmitted by one peer and has been received by another peer. For example, first peer 1 10 indicates that a data packet has been transmitted and the second peer indicates that said data packet has been received.
In an embodiment, the determining, by the network element 300, comprises determining that the at least one logical connection is open, and that the at least one data packet has been transferred using the at least one logical connection. This may mean that the peers 1 10, 120 indicate that a logi- cal connection is open and that at least one data packet is transferred using said logical connection. By using this approach, the accuracy of the logical connection based monitoring may be enhanced as both indication of openness of the connections and indication that data has been transferred using the open connection may be required.
Figure 4 illustrates an embodiment of the invention. Referring to
Figure 4, the first and second peers may be in a session with each other. The session may comprise, for example, a conference call, a sales assistance, virtual meeting to name a few examples. As described, within the session there may be a number of logical connections between the peers 1 10, 120. In the example of Figure 4, first and second logical connections are relayed by the network element 300 from the second peer 120 to the first peer 1 10. Third and fourth logical connections may be peer-to-peer connections. For example, the third and fourth logical connections may be chat connections from one peer to another, whereas the first and second connections may be video and audio streams from the second peer 120 to the first peer 1 10.
In an embodiment, the connection-specific counter(s) of the connection^) relayed by the network element 300 are incremented by the network element 300 based on the state of the connection(s) determined by the network element 300. That is, it may not be necessary to receive information from the peers 1 10, 120 whether the relayed connection(s) are open, as the network element 300 may determine that the connection(s) are open if they are relayed. Further, the network element 300 may be aware how much data has been transferred, and increment the connection-specific counter(s) based on the data amount transferred.
In an embodiment, as shown in Figure 4, the at least one logical connection comprises a logical connection relayed, by the network element 300, between the first and the second peers 1 10, 120, and/or a peer-to-peer logical connection between the first and the second peers 1 10, 120. The relayed logical connection may comprise, for example, the first and/or second connections, and the peer-to-peer logical connection may comprise, for exam- pie, the third and/or fourth connections.
Figures 5A to 5C illustrate some embodiments of the invention. Referring to Figure 5A, the first peer and second peers 1 10, 120 may be in connection with each other, meaning that they may be participating in a same session 502. The session may comprise and/or consists of one or more logical connections, such as first and second logical connections 510, 520, for example. In the example of Figure 5A, session timeline 504 may be illustrated. This may mean the time from start of the session (i.e. RTCPeerConnection started and/or accepted) to the end of the session. One example of such may be starting of a conference call and ending of the conference call, and thus events be- tween these points in time may be shown in the example.
The first and second logical connections 510, 520 may illustrate logical connections from the second peer 120 to the first peer 1 10, for example. The monitoring, by the network element 300 for example, may determine whether the logical connections 510, 520 are open at certain points in time, for example. In the example of Figure 5A, the network element 300 may determine that the second logical connection 520 is and/or has been open from start to end. However, for the first logical connection, the network element 300 may determine that the first logical connection 510 has been open 512 and close 514. The open time may be illustrated with a line fill within the arrow describing the first and second logical connections 510, 520.
Referring to Figure 5B, one logical connection between the first and second peers 1 10, 120 may be illustrated with tree arrows 530A, 530B, 530C. As described in relation to Figure 5C, the logical connection 530A, 530B, 530C may be illustrated for the duration of the session between the first and second peers 1 10, 120. This does not, however, mean that the logical connection 530A, 530B, 530C would be necessarily open and/or even exists for the duration of the whole session.
Looking closer, the second peer 120 may transmit, for example, a video stream using the logical connection 530A, 530B, 530C. The first and second peers 1 10, 120 may transmit information about the logical connection 530A, 530B, 530C to the network element 300, for example. Based on the information from the peers 1 10, 120, the network element 300 may determine that whether the connection is and/or has been open. For example, at the side of the second peer 120, the logical connection 530A has been open for the duration of the session, whereas at the side of the first peer 1 10, the logical connection 530B has been open and closed during the session. Using this information, the network element 300 may determine when the logical connection 530C has been open.
In an embodiment, the first and/or second peers 1 10, 120 transmit regularly information about the state of the logical connection(s). For example, the connection report may be transmitted regularly after every 10 seconds. In the example of Figure 5B, the network element 300 may receive the information, and determine the openness of the logical connection 530C. As shown in Figure 5B, as the determination and/or the receiving of the connection reports may be regular, there may be some delay 532 in determining whether the logical connection 530C is open or closed.
Referring to Figure 5C, a logical connection 540A, 540B, 540C between the first and second peers 1 10, 120 may be shown. In this example, the peers 1 10, 120 may transmit information about the logical connection (i.e. the connection reports) when the state of the logical connection 540A, 540B, 540C changes. For example, the first peer 1 10 may transmit information to the network element 300 when the logical connection 540B, as received by the first peer 1 10, changes state at the first peer 1 10 from open to closed, and/or vice versa. By using this approach the delays, such as delay 532, may be reduced and/or avoided, and the network element 300 may thus even more precisely monitor the state of the logical connection(s). Similarly, the peers 1 10, 120 may transmit information after transmitting and/or receiving of a data entity comprising at least one data packet. Thus, for example, when and/or after the first peer 1 10 receives a chat message, it may transmit information to the network element 300 that the message has been received.
It needs to be noted that the logical connection 530A, 530B, 530C and the logical connection 540A, 540B, 540C are illustrated such that the arrows 530A, 540A illustrate the determination, by the network element 300, about the openness of the logical connections at the second peer side based on the information received from the second peer 120. Similarly, the arrows 530B, 540B illustrate the determination, by the network element 300, about the openness of the logical connections at the first peer side based on the information received from the first peer 1 10. Further, the arrows 530C, 540C illustrate the determination, by the network element 300, about the openness of the logical connections based on the information from the first and the second peers 1 10, 120.
Figure 6 illustrates and embodiment of the invention. Referring to
Figure 6, the network element 300 may determine, based on connection reports 624, 622 received from the second peer 120 and a third peer 620 respectively, that the second and third peers 120, 620 have the same peer identifier and IP-address. Further, the network element 300 may perform an action con- cerning session(s) to which the second peer 120 is participating and/or sessions) to which the third peer 620 is participating. The action may comprise, for example, terminating the session(s), terminating at least one logical connection of the session(s) and/or transmitting a control message to the second peer 120 and/or third peer 620 that causes the receiving peer (i.e. second peer 120, third peer 620) to terminate the session(s) and/or the at least one logical connection.
In an embodiment of the invention, the at least one connection between the peers 1 10, 120 is encrypted. For example, Datagram Transport Layer Security (DTLS) may be used for the encryption. In an embodiment, the information transferred by the peers 1 10, 120 to the network element 300, such as the connection reports, are encrypted. The network element 300 may be configured to decrypt the received information. In an embodiment, at least some signaling between the network element 300 and the peers 1 10, 120 is encrypted. For example, the signaling prior RTCPeerConnection may be encrypted.
In an embodiment, the at least one connection comprises High Definition (HD) video connection (i.e. 720p, 1080p, 4K). For example, the network element 300 may be configured to relay the HD video connection between the peers 1 10, 120. In an embodiment, the at least one connection comprises HD audio.
Although, the solution is described using the first and second peers
1 10, 120 as examples, more than two peers may be used. For example, the network element 300 may monitor a session between more than two peers. Further, the network element 300 may be configured to monitor more than one session at a time. This may mean that, for example, the network element 300 may monitor the session between the first and second peers, a second session between third and fourth peers, and/or a third session between second and fourth peers, for example.
The described situation may be beneficial, for example, to prevent misuse of a service. For example, license agreement may state that service provider may use only one peer to serve customer peers 61 1 -614. The customer peers 61 1 -614 may be, for example, online shop customers that are served by an online assistant using the second peer 120. If the online shop tries to use more than one peer (i.e. third peer 620) to assist their customers, the misuse may be detected by the network element 300 and an action may be taken accordingly.
Figure 7 illustrates a signal diagram according to an embodiment of the invention. Referring to Figure 7, the network element 300 may receive a request 704 from the first peer 1 10 and/or the second peer 120 (in Figure 7 request is received from the second peer 120), the request requesting an ex- ternal device 700 to share data with the first peer 1 10 and/or the second peer 120. In an embodiment, the first and second peers 1 10, 120 are in a session (block 702) when the request is transmitted and/or received.
The network element 300 may obtain an identifier referring to the session 702 between the first and second peers (block 706). This may enable the external device 700 to be able to join the session, for example. However, joining in to the session may not necessarily be required. The network element 300 may further cause the first peer 1 10 and/or the second peer 120 to indicate the identifier, such as the session identifier, to the external device 700 enabling the external device 700 to share data between the external device 700 and at least one of the first peer 1 10, second peer 120. In the example of Figure 7, the network element 300 may transmit a request to the first peer 1 10 (block 708) that causes the first peer 1 10 to indicate the session identifier to the external device 700 (block 710).
Naturally, the first and/or second peers 1 10, 120 may be aware of the session identifier, and thus such identifier may not necessarily be required to be received from the network element 300. However, for example, if a relative identifier is used, the network element 300 may generate such relative identifier. The purpose of the relative identifier may be to hide the session identifier from the external device 700. Thus, for example, the network element 300 may indicate the relative identifier to the external device 700 (i.e. directly, using first peer 1 10, using second peer 120 for the indication). The external device 700 may then transmit data to the network element 300, wherein the data may be associated with the relative identifier. When the network element 300 receives the data, it may know to which session the data belongs to. Thus, it may transfer the received data to at least one of the session participants.
In another example, the external device 700 may transmit data directly to the first and/or second peers 1 10, 120. However, in such case the external device 700 may need the session identifier and/or IP-address of the peer(s).
In block 712, the external device 700 may join the session, and ex- change data between the first and/or second peers 1 10, 120. However, as described above this may not necessarily be required. The external device 700, such as a sensor device (i.e. loT device with at least one sensor), may receive the identifier related to the session between the first and second peers 1 10, 120 (i.e. relative identifier). The identifier may be received from the first peer 1 10, the second peer 120, and/or the network element 300. When the external device 700 transmits data to the network element 300, it may associate the transmitted data with the received identifier. Thus, when the network element 300 receives the data, it may convey it to the right session, for example.
In an embodiment, the first peer 1 10 and/or the second peer 120 indicates the identifier related to the session between the first and second ses- sion using a Quick Response (QR) code. Another example may be to use NFC connection and/or Bluetooth connection to indicate the identifier to the external device 700.
It needs to be further noted that the receiving, by the external device 700, of the identifier (i.e. session identifier, relative identifier) relating to the session between the first and second peers 1 10, 120 may be used even after the session between first and second peers 1 10, 120 has been terminated. For example, if the external device 700 is used to measure blood pressure of a patient, the external device 700 may acquire the identifier from the first peer 1 10 used by the patient. The first and second peers 1 10, 120 may terminate the session between them but the doctor (using the second peer 120) may instruct the patient to measure his/her blood pressure once a day. Thus, for example, for a week the patient may use the external device 700 to measure his/her blood pressure, wherein the external device 700 may transmit the data to the network element 300. As described, the transmitted data may be associated with the identifier, such as the relative identifier, and thus, the network element 300 may associate the received data with the right peer(s) and/or right session. Further, the network element 300 may store the received data for later view. Therefore, the doctor may view the results when he/she so wishes.
The relative session identifier may bring some benefits. For example, peer identifiers and/or user identifiers are not needed to be stored to the external device 700. Thus, for example, the external device 700 may be more securely used by a number of patients.
In an embodiment, at least one of the first peer 1 10, the second peer 120 transmits an indication to the network element 300 whether further data is allowed to the closed and/or terminated session between the peers 1 10, 120. For example, the second peer 120 may indicate that the external device 700 data may be allowed to be stored to the session data after the session has been closed (i.e. blood pressure measurements). The network ele- ment 300 may receive the indication, and based on the indication allow or decline further data to be associated (i.e. stored) with the session.
In an embodiment, the external device 700 transmits data to first and/or second peers 1 10, 120 via the network element 300. In other words, the network element 300 may receive data from the external device 700, and de- termine to which peer it should convey the data to. For example, the external device 700 data may comprise an identifier relating to the external device 700 (i.e. user identifier, device identifier). The network element 300 may use this identifier to determine to which session the data belongs to. For example, the connection report(s) may comprise information about used sensor device(s) that relate to a certain user and/or peer (i.e. user identifier, sensor device iden- tifier(s)).
In an embodiment, the external device 700 comprises and/or is an loT device. Thus, it may be able to communicate with the network via cellular, wired and/or wireless data connection.
In an embodiment, at least one of the first peer 1 10, the second peer 120 controls to who the external device 700 data is allowed to be shown. For example, the external device 700 may transmit weight information of a person to the network element 300. Host of the session, such as the second peer 120, may indicate to the network element 300 that first peer 1 10, third peer and fourth peer may have access to said weight information. For exam- pie, the first, third and fourth peers may be comprised in a weight management group. Thus, they all may be given access to that information to promote peer pressure etc. For example, the weight information may be measured from the user of the first peer 1 10. Also the same external device 700 may be used by all different peer users (i.e. third peer, fourth peer).
In an embodiment, the external device 700 comprises at least one of a camera, microphone, speaker, keyboard. Therefore, the external device 700 may be used, for example, to offer an enhanced user experience for a user of a peer. For example, HD video and/or audio may be acquired using the external device 700. Also keyboard may offer, for example, for a mobile user more enhanced way of typing in information.
In an embodiment, the external device 700 authenticates to the network element 300 using the information received from the QR code, NFC and/or Bluetooth. The QR code may comprise, for example, the relative identifier and/or a password. When the authentication request has been received by the network element 300, the network element 300 may respond with a message comprising a TOKEN. As described above, the TOKEN may expire if too much time has passed without communication. Therefore, if the peer transmits data (i.e. control data, data packets) to the network element 300, the TOKEN may not expire. However, the TOKEN may expire if no data is transmitted for a certain time and/or if the peer ends the session (i.e. dedicated session end button and/or turning off the browser). When the session is deliberately termi- nated by a user of the peer, the peer may transmit a control message to the network element 300 and/or to other peers in the session that it has terminated the session. Naturally, termination in this case may mean that the peer leaves the session, but the session may still be on for some other peers (i.e. multipar- ty session). Thus, the peer may not be able to force termination of the whole session.
In an embodiment, the network element 300 terminates the session based on the expiration of at least one TOKEN received from the session participants. For example, if there are two peers in the session and one TOKEN is expired, the network element 300 may terminate the session.
Let us further consider how the enhanced monitoring of the session may be utilized. In an embodiment, the network element 300, based on the logical connection-specific counter of the at least one logical connection, provides connection resources to at least one of the first peer 1 10, the second peer 120. Communication resources may mean, for example, more band(s) to transfer data and/or to use more logical connections. For example, if some peer uses normally only audio and not video, it may require less band compared to a peer which uses both. Thus, the network element 300 may actually use history information about connections of peers in order to serve all peers accordingly, when at the same time not having too much excess communication resources. This may enhance the performance of the network as whole.
One other example may be to use the above described solution to enable charging service users based on the actual usage of the service. One example of such may be to base the charges on openness and/or activeness of logical connection(s). For example, if it is possible to use video and audio streams, but the service user doesn't always want to use video connection, the service charge may only comprise the services (i.e. connections) that are actually used. Hence, the charging may be fairer. In an embodiment, the network element 300 comprises a charging engine (i.e. server). The charging engine may be responsible of generating bills to service users based on the logical connection-specific counter of the at least one logical connection.
Figure 8 illustrates an apparatus according to an embodiment of the invention. The apparatus 800 may be and/or comprise the network element 300, for example. In an embodiment, the apparatus 800 is a server. In an em- bodiment, the apparatus 800 comprises a server and/or a database. In an embodiment, the apparatus 800 comprises a circuitry (CTRL) 810, such as at least one processor, and at least one memory 830 including a computer program code (software) 832, wherein the at least one memory and the computer program code (software) 832, are configured, with the at least one processor, to cause the respective apparatus 800 to carry out any one of the embodiments of Figures 1 to 7, or operations thereof.
Referring to Figure 8, the memory 830 may be implemented using any suitable data storage technology, such as semiconductor based memory devices, flash memory, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory. The memory 830 may comprise a database 834 for storing data, such as the received connection reports. Further, database 834 may be and/or comprise at least one of the databases 134 of Figure 1 , for example.
The apparatus 800 may further comprise communication circuitry 820 comprising hardware and/or software for realizing communication connectivity according to one or more communication protocols, such as WLAN, cellular protocols and/or LAN. The communication circuitry may provide the apparatus with communication capabilities to access the network 130 in order to enable communication with peers 1 10, 120, for example. The TRX may com- prise standard well-known components such as an amplifier, filter, frequency- converter, (de)modulator, and encoder/decoder circuitries and one or more antennas. In an embodiment, the communication circuitry 820 is and/or comprises a wireless communication circuitry.
The apparatus 800 may also comprise user interface 840 compris- ing, for example, at least one keypad, a microphone, a touch display, a display, a speaker, etc. The user interface 840 may be used to control the respective apparatus by a user of the apparatus 800.
In an embodiment, the apparatus 800 comprises the control circuitry 810 comprising a receiver circuitry 812, a determiner circuitry 814 and/or an incrementer circuitry 816. The receiver circuitry 812 may be configured to receive information from the first and second peers 1 10, 120 respectively, the information relating to at least one logical connection of a session between the first and second peers 1 10, 120. The determiner circuitry 814 may be configured to determine, based on the received information from the first and second peers 1 10, 120, that the at least one logical connection between the first and second peers 1 10, 120 is open, or that at least one data packet has been transferred between the first and second peers 1 10, 120 using the at least one logical connection. Further, the incrementer circuitry 816 may be configured to in a response to the determining by the determiner circuitry 814, increment a logical connection-specific counter of the at least one logical connection.
In an embodiment, there is provided an apparatus comprising at least one processor and at least one memory including a computer program code, wherein the at least one memory and the computer program code are configured, with the at least one processor, to cause a network element to perform operations comprising: receiving, by a network element, information from a first and second peers respectively, the information relating to at least one logical connection of a session between the first and second peers; determining, based on the received information from the first and second peers, that the at least one logical connection between the first and second peers is open, or that at least one data packet has been transferred between the first and sec- ond peers using the at least one logical connection; and in a response to the determining, incrementing a logical connection-specific counter of the at least one logical connection.
Figure 9 illustrates an embodiment of the invention. Referring to Figure 9, a session between the first and second peers 1 10, 120 may comprise further peer(s) such as a third peer 910. That is, as described above, there may be plurality of devices in the session that may have a number of peer-to- peer connections and/or number of relayed connections by the network element 300.
In the example of Figure 9, the second peer 120 may broadcast (i.e. one-to-many connection) data to the first and third peers 1 10, 910. Thus, a first logical connection may be from second peer 120 to the first and third peers 1 10, 120, for example. Monitoring the one-to-many logical connection may require all participants of that connection to transmit information regarding said connection to the network element 300. For example, it may be determined that the first connection is open at the second peer 120, open at the first peer 1 10 and open at the third peer 910. However, for example, the third peer 910 may indicate that the first connection is closed, and thus, the network element 300 may determine that the first connection is open only between the first and second peers 1 10, 120. Naturally, if the second peer 120 is the broadcaster and it is determined that the first connection is closed at the second peer side, the network element 300 may determine that the first connection is not open at all.
The multiparty session may further comprise one-to-one logical connections, such as a second, third and fourth logical connections as shown in Figure 9. Further, there may be logical connection(s) between the first and third peers 1 10, 910 also. To sum it up, the session described in relation to Figure 2 for example, may comprise a plurality of peers (i.e. 2 peers, 10 peers, 100 peers, 1000 peers to name a few examples). For a one-to-one logical connection the determination of openness and/or determination that a data packet has been transferred may be based on the information from the trans- mitter and the receiver. For one-to-many connections, the determination may be first of all based on the transmitter. If, for example, the transmitter indicates that a broadcast connection is open, the receivers may indicate whether the broadcast connection is open at their side. If the broadcast connection is open at both sides, i.e. transmitter and a first receiver, the broadcast connection may be considered to be open between the transmitter and the first receiver. However, if a second receiver indicates that the broadcast connection is not open, the broadcast connection may be considered to be closed between the transmitter and the second receiver. Such situation may happen, for example, if the transmitter broadcasts a stream and it is received by the first receiver but not by the second receiver.
To further clarification, a meeting and/or conference session, such as a WebRTC session, between peers may, for example, comprise many-to- many and/or one-to-many logical connections between the peers. In such case the connections may be monitored, by the network element 300, based on the information from the peers. Thus, for example, a number of transmitters and receivers may be determined by the network element 300 respectively. Based on the determination, the counter(s) may be increased and/or communication resources may be distributed.
According to yet another embodiment, the apparatus carrying out the embodiments comprises a circuitry including at least one processor and at least one memory including computer program code. When activated, the circuitry causes the apparatus to perform at least some of the functionalities according to any one of the embodiments of Figures 1 to 7 and Figure 9, or operations thereof.
As used in this application, the term 'circuitry' refers to all of the following: (a) hardware-only circuit implementations, such as implementations in only analog and/or digital circuitry, and (b) combinations of circuits and software (and/or firmware), such as (as applicable): (i) a combination of processors) or (ii) portions of processor(s)/software including digital signal processors), software, and memory(ies) that work together to cause an apparatus to perform various functions, and (c) circuits, such as a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation, even if the software or firmware is not physically present. This definition of 'circuitry' applies to all uses of this term in this application. As a further example, as used in this application, the term 'circuitry' would also cover an implementa- tion of merely a processor (or multiple processors) or a portion of a processor and its (or their) accompanying software and/or firmware.
In an embodiment, at least some of the processes described in connection with Figures 1 to 7 and Figure 9 may be carried out by an apparatus comprising corresponding means for carrying out at least some of the de- scribed processes. Some example means for carrying out the processes may include at least one of the following: detector, processor (including dual-core and multiple-core processors), digital signal processor, controller, receiver, transmitter, encoder, decoder, memory, RAM, ROM, software, firmware, display, user interface, display circuitry, user interface circuitry, user inter- face software, display software, circuit, antenna, antenna circuitry, and circuitry. In an embodiment, the at least one processor, the memory, and the computer program code form processing means or comprises one or more computer program code portions for carrying out one or more operations according to any one of the embodiments of Figures 1 to 7 and Figure 9 or op- erations thereof.
The techniques and methods described herein may be implemented by various means. For example, these techniques may be implemented in hardware (one or more devices), firmware (one or more devices), software (one or more modules), or combinations thereof. For a hardware implementa- tion, the apparatus(es) of embodiments may be implemented within one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, other electronic units designed to perform the functions described herein, or a combination thereof. For firmware or software, the implementation can be carried out through modules of at least one chip set (e.g. procedures, functions, and so on) that perform the functions described herein. The software codes may be stored in a memory unit and executed by processors. The memory unit may be implemented within the processor or externally to the processor. In the latter case, it can be communicatively coupled to the processor via various means, as is known in the art. Additionally, the components of the systems described herein may be rearranged and/or complemented by additional components in order to facilitate the achievements of the various aspects, etc., described with regard thereto, and they are not limited to the precise configurations set forth in the given figures, as will be appreciated by one skilled in the art.
Embodiments as described may also be carried out in the form of a computer process defined by a computer program or portions thereof. Embodiments of the methods described in connection with Figures 1 to 7 and Figure 9 may be carried out by executing at least one portion of a computer program comprising corresponding instructions. The computer program may be in source code form, object code form, or in some intermediate form, and it may be stored in some sort of carrier, which may be any entity or device capable of carrying the program. For example, the computer program may be stored on a computer program distribution medium readable by a computer or a processor. The computer program medium may be, for example but not limited to, a record medium, computer memory, read-only memory, electrical carrier signal, telecommunications signal, and software distribution package, for example. The computer program medium may be a non-transitory medium. Coding of software for carrying out the embodiments as shown and described is well within the scope of a person of ordinary skill in the art.
Even though the invention has been described above with reference to an example according to the accompanying drawings, it is clear that the invention is not restricted thereto but can be modified in several ways within the scope of the appended claims. Therefore, all words and expressions should be interpreted broadly and they are intended to illustrate, not to restrict, the embodiment. It will be obvious to a person skilled in the art that, as technology advances, the inventive concept can be implemented in various ways. Further, it is clear to a person skilled in the art that the described embodiments may, but are not required to, be combined with other embodiments in various ways.

Claims

Claims
1 . A method comprising:
receiving, by a network element (300), connection reports (308, 310) from a first and second peers (1 10, 120) respectively, the connection re- ports (308, 310) comprising information relating to at least one logical connection of a session between the first and second peers (1 10, 120);
determining, based on the received connection reports (308, 310), that the at least one logical connection between the first and second peers (1 10, 120) is open, or that at least one data packet has been transferred be- tween the first and second peers (1 10, 120) using the at least one logical connection; and
in a response to the determining, incrementing a logical connection - specific counter of the at least one logical connection.
2. The method of claim 1 , the determining comprises determining that the at least one logical connection is open if the at least one logical connection is open both at the first peer (1 10) side and at the second peer (120) side.
3. The method of any preceding claim, wherein the determining comprises determining that the at least one logical connection is open, and that the at least one data packet has been transferred using the at least one logical connection.
4. The method of any preceding claim, wherein the logical connection -specific counter comprises at least one of a logical connection-specific timer, logical connection-specific data counter.
5. The method of any preceding claim, wherein the connection re- ports further comprise at least one of a session identifier, a peer identifier, a service identifier, a randomly generated number, sequence number of the connection report, an IP-address of the peer, a logical connection-specific information indicating whether at least a part of the at least one logical connection is archived.
6. The method of claim 5, further comprising: determining, based on connection reports received from the second and a third peers (120, 910) respectively, that the second and third peers (120, 910) have the same peer identifier and IP-address; and
performing an action concerning at least one of sessions to which the second peer (120) is participating, sessions to which the third peer (910) is participating.
7. The method of any preceding claim, wherein the at least one logical connection comprises at least one of an audio connection, video connec- tion, screen sharing connection, message connection, co-browsing connection, file-sharing connection, sensor data connection.
8. The method of any preceding claim, wherein the at least one logical connection comprises at least one of a logical connection relayed, by the network element (300), between the first and the second peers (1 10, 120), a peer-to-peer logical connection between the first and the second peers (1 10, 120).
9. The method of any preceding claim, further comprising: receiving a request from at least one of the first peer (1 10), the second peer (120), the request requesting an external device (700) to share data between the external device (700) and at least one of the first peer (1 10), the second peer (120);
obtaining an identifier referring to the session between the first and second peers (1 10, 120); and
causing at least one of the first peer (1 10), the second peer (120) to indicate the identifier to the external device (700) to enable the external device (700) to share data between the external device (700) and at least one of the first peer (1 10), second peer (120).
10. An apparatus comprising at least one processor and at least one memory including a computer program code, wherein the at least one memory and the computer program code are configured, with the at least one processor, to cause a network element to perform operations comprising:
receiving connection reports from a first and second peers (1 10,
120) respectively, the connection reports comprising information relating to at least one logical connection of a session between the first and second peers (1 10, 120);
determining, based on the received connection reports, that the at least one logical connection between the first and second peers (1 10, 120) is open, or that at least one data packet has been transferred between the first and second peers (1 10, 120) using the at least one logical connection; and in a response to the determining, incrementing a logical connection- specific counter of the at least one logical connection.
PCT/FI2016/050429 2015-06-16 2016-06-14 Enhancing monitoring of connections WO2016203110A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20155466 2015-06-16
FI20155466A FI128026B (en) 2015-06-16 2015-06-16 Enhancing monitoring of connections

Publications (1)

Publication Number Publication Date
WO2016203110A1 true WO2016203110A1 (en) 2016-12-22

Family

ID=57546373

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FI2016/050429 WO2016203110A1 (en) 2015-06-16 2016-06-14 Enhancing monitoring of connections

Country Status (2)

Country Link
FI (1) FI128026B (en)
WO (1) WO2016203110A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088337A (en) * 1997-10-20 2000-07-11 Motorola, Inc. Method access point device and peripheral for providing space diversity in a time division duplex wireless system
EP1701500A1 (en) * 2005-03-08 2006-09-13 Praesidium Technologies Ltd Communications system with distributed risk management
US20080151834A1 (en) * 2006-12-20 2008-06-26 Motorola, Inc. Method and apparatus for maintaining traffic flow in a mesh network
US20150039687A1 (en) * 2013-07-31 2015-02-05 Avaya Inc. Acquiring and correlating web real-time communications (webrtc) interactive flow characteristics, and related methods, systems, and computer-readable media

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088337A (en) * 1997-10-20 2000-07-11 Motorola, Inc. Method access point device and peripheral for providing space diversity in a time division duplex wireless system
EP1701500A1 (en) * 2005-03-08 2006-09-13 Praesidium Technologies Ltd Communications system with distributed risk management
US20080151834A1 (en) * 2006-12-20 2008-06-26 Motorola, Inc. Method and apparatus for maintaining traffic flow in a mesh network
US20150039687A1 (en) * 2013-07-31 2015-02-05 Avaya Inc. Acquiring and correlating web real-time communications (webrtc) interactive flow characteristics, and related methods, systems, and computer-readable media

Also Published As

Publication number Publication date
FI20155466A (en) 2016-12-17
FI128026B (en) 2019-08-15

Similar Documents

Publication Publication Date Title
US11348685B2 (en) System and method for a telemedicine device to securely relay personal data to a remote terminal
EP3482554B1 (en) Methods and servers to monitor resources through http/2
CN103368937B (en) Communication system and the method for sending and receiving data in a communications system
US10356571B2 (en) Method and device for sharing enriched information associated with a call
EP2911432B1 (en) Sip based inter-mtc device secure communications method, device, and system
US10999289B2 (en) System and methods for achieving end-to-end security for hop-by-hop services
CN104506802B (en) The method of video monitoring system, passing through NAT monitor video data
CN112292708B (en) Presentation system and method with real-time feedback
US10419543B2 (en) Method and system for establishing a connection between a seeker device and a target device
KR101533489B1 (en) Method and system for implementing integrated voice over internet protocol in a cloud-based network
CN104602109B (en) A kind of video synchronization method, apparatus and system
CN109246172A (en) A kind of method, apparatus and computer storage medium for restoring session
WO2016126565A1 (en) Discovery and connection to a service controller
WO2014154108A1 (en) Media stream transfer method and user equipment
WO2017084417A1 (en) Method and apparatus for sending and receiving information in neighbour awareness networking
JP2016213670A (en) Communication device, communication system, communication method, and program
US11916970B2 (en) Security information exchange between a client and a server
JP2016072793A (en) Remote conference system, program, security server and application server
CN107534554A (en) Data transceiving method and system
FI128026B (en) Enhancing monitoring of connections
CN104363235A (en) Communication method, device and system and communication channel establishing method and device
JP2012222687A (en) Server device
US20240022614A1 (en) Information interaction method and apparatus
JP5607567B2 (en) Content distribution control server, system, method and program capable of distributing content to user terminals in real time in conjunction with video broadcasting
US20230328054A1 (en) Autonomous control and secure communications system and methods for sensors

Legal Events

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

Ref document number: 16811086

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16811086

Country of ref document: EP

Kind code of ref document: A1