Method for setting up a WebRTC session
11558433 · 2023-01-17
Assignee
Inventors
Cpc classification
H04L65/65
ELECTRICITY
H04W80/10
ELECTRICITY
H04L67/02
ELECTRICITY
H04L67/10
ELECTRICITY
International classification
H04L65/65
ELECTRICITY
H04L67/02
ELECTRICITY
Abstract
Some embodiments relate to a method implemented by a first terminal for setting up a session with a second terminal. An identifier of a session server is obtained at least from a subscriber device in the first terminal which comprises a subscriber identifier and an operator identifier. A session request and an identifier of the second terminal are sent to the server. At least one instruction is received from the server and a message comprising a first set, relative to the first terminal, of at least one characteristic parameter of the requested session is generated in accordance with at least one instruction received and sent to the server. A message is received from the server comprising a second set of at least one characteristic parameter of the requested session, the second set relating to the second terminal and having a non-zero overlap with the first set.
Claims
1. A method for establishing a session between a first mobile terminal and a second terminal, comprising the following processes implemented by the first terminal: obtaining an address of a Web Real-Time Communication (WebRTC) server; transmitting a request for access to a WebRTC service to the WebRTC server, using the address of the server; receiving at least one instruction from the WebRTC server; generating, according to the at least one received instruction, a session request containing a first set, relating to the first terminal, of at least one characteristic parameter of the requested session; transmitting the generated session request to the second terminal; receiving, from the second terminal, a message containing a second set of at least one characteristic parameter of the requested session, the second set of at least one characteristic parameter relating to the second terminal and having a non-zero intersection with the first set; and establishing the session between the first mobile terminal and the second terminal, at least using the second set of at least one characteristic parameter; wherein the address of the WebRTC server is obtained at least from a subscriber identity module managed by a mobile electronic communications operator, included in the first terminal, the subscriber identity module containing an identifier of a subscriber and an identifier of the operator.
2. The method for establishing a session as claimed in claim 1, wherein the subscriber identity module is a SIM card.
3. The method for establishing a session as claimed in claim 1 wherein the address of the WebRTC server is a URL comprising at least one prefix, a country code MCC, an operator code MNC, and a home network domain name.
4. The method for establishing a session as claimed in claim 3 wherein the at least one prefix is “ims”.
5. The method for establishing a session as claimed in claim 3 wherein the at least one prefix is “webrtc”.
6. The method for establishing a session as claimed in claim 1 wherein the method further comprises selecting an identifier of the second terminal from an address book.
7. The method for establishing a session as claimed in claim 6, wherein the process for selecting the identifier of the second terminal triggers the step for obtaining the address of the WebRTC server.
8. A device for establishing a session between a first mobile terminal and a second terminal, wherein said device is configured to: obtain an address of a Web Real-Time Communication (WebRTC) server, at least from a subscriber identity module managed by a mobile electronic communications operator, included in the first terminal, the subscriber identity module comprising an identifier of a subscriber and an identifier of the operator; transmit a request for access to a WebRTC service to the WebRTC server, using the address of the WebRTC server; receive at least one instruction from the WebRTC server; generate, according to the at least one received instruction, a session request containing a first set, relating to the first terminal, of at least one characteristic parameter of the requested session; transmit the generated session request to the second terminal; receive, from the second terminal, a message containing a second set of at least one characteristic parameter of the requested session, the second set of at least one characteristic parameter relating to the second terminal and having a non-zero intersection with the first set; and establish the session between the first mobile terminal and the second terminal, at least using the second set of parameter.
9. A mobile terminal comprising a device for establishing a session between a first mobile terminal and a second terminal, in accordance with claim 8.
10. A non-transitory computer readable medium having stored thereon instructions which when executed by a processor, cause a mobile terminal to perform a method for establishing a session between a first mobile terminal and a second terminal, wherein said method comprises: obtaining an address of a Web Real-Time Communication (WebRTC) server; transmitting a request for access to a WebRTC service to the WebRTC server, using the address of the server; receiving at least one instruction from the WebRTC server; generating, according to the at least one received instruction, a session request containing a first set, relating to the first terminal, of at least one characteristic parameter of the requested session; transmitting the generated session request to the second terminal; receiving, from the second terminal, a message containing a second set of at least one characteristic parameter of the requested session, the second set of at least one characteristic parameter relating to the second terminal and having a non-zero intersection with the first set; and establishing the session between the first mobile terminal and the second terminal, at least using the second set of parameter; wherein the address of the WebRTC server is obtained at least from a subscriber identity module managed by a mobile electronic communications operator, included in the first terminal, the subscriber identity module containing an identifier of a subscriber and an identifier of the operator.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Other advantages and features of the invention will become clearer upon reading the following description of a particular embodiment of the invention, which embodiment is given by way of simple illustrative and nonlimiting example, and from the appended drawings in which:
(2)
(3)
DETAILED DESCRIPTION
(4) Hereafter in the description, examples of several embodiments of the invention are presented, based on the 3GPP LTE/EPC standard, but the invention also applies to other former or later 3GPP standards, such as UMTS (Universal Mobile Telecommunications System, also known as 3G) or 5G.
(5)
(6) In this example, the user of a mobile terminal T1 calls the user of another terminal T2, for a voice or video communication with him/her by means of the terminals.
(7) The terminal T1 is a mobile terminal including a subscriber module, i.e. a SIM card containing an identifier of a subscriber to a mobile electronic communications operator, as well as an identifier of the operator. With such a module, the terminal T1 can establish a “real-time” session to transport voice or video between this terminal and another terminal T2, using the resources of this operator or those of another operator having established roaming agreements therewith. This real-time session uses one or more codecs to change the voice/video from analog form to digital form and vice versa. The terminal T1 is capable of using a set of codecs which is not necessarily the same as that of T2. A negotiation must therefore have taken place between the terminals T1 and T2 in order to determine the codec or codecs to be used.
(8) The terminal T1 is also suitable for establishing a WebRTC session, i.e. a communication session based for example on an SRTP, UDP and IP protocol stack between two applications hosted by the terminals T1 and T2 respectively. These applications are typically called web browsers. The transport resources of the operator of T1, which are used for such a session, such as those of its LTE access network and of its EPC core network, are determined by the choice of the WebRTC server which offers the web service enabling the terminal T1 to establish a communication session with the terminal T2. It is therefore beneficial for the operator to keep control over the establishment of the WebRTC session.
(9) During a step E1, the user of the terminal T1 selects an identifier of the terminal T2, i.e. generally a telephone number, generally from an address book which can be local or remote. If it is local, it can be hosted in the memory of the terminal or in that of the SIM card. If it is remote, the terminal T1 accesses it for example from a web browser or a dedicated application, according to a known procedure.
(10) The expression “to select an identifier” in the sense of step E1 also includes the case in which the user him/herself dials the telephone number of the terminal T2 if it is absent from the address book.
(11) During a step E2, which can be triggered automatically by step E1, the terminal T1 obtains the identifier of a WebRTC server, that of the server S, which must be used to establish the session with the terminal T2. Preferably, this identifier can be obtained from the SIM card of the terminal T1.
(12) For example, “http://webrtc.orange.com” is a string of characters representing a URL address corresponding to the WebRTC server of an operator called Orange, i.e. the server S. This string can be stored in SIM cards of mobile terminals managed by this operator in order to be read by the terminal during step E2.
(13) This string can also be obtained by adding a predefined prefix, predefined by standards or by the operator when the mobile is customized, to the home network domain name featuring in the SIM card.
(14) For example, if the domain name is “ims.orange.com” and the prefix is “webrtc”, the URL will be “http://webrtc.ims.orange.com”.
(15) This string can even be obtained by adding a predefined prefix to the home network domain name formed from a country code (MCC) and from an operator network code (MNC), for example as specified in the standard 3GPP TS 23.003.
(16) For example, for the operator Orange, the URL can be: “http://webrtc.ims.mnc015.mcc234.3gppnetwork.com” .
(17) During a step E3, the terminal T1 constructs an address containing both the identifier of the server S obtained during step E2 and the identifier of the terminal T2 selected during step E1. For example, if the identifier of the terminal T2 is the telephone number of the user associated with the terminal T2, +33299124167, the constructed URL can be: “http://webrtc.ims.orange.com/tel/0033299124167”.
(18) During steps E4 and E5, the terminal T1 connects to the server S.
(19) The terminal T1 transmits during step E4 a request for access to a WebRTC service offered by the server S, referred to as a session request to the server S, in the form of an HTTP request using the URL constructed during step E3. It is understood that in this embodiment of the invention, the session request to the server S contains the identifier of the terminal T2.
(20) The terminal T1 receives during step E5 an HTTP response from the server S, containing instructions in the form of JavaScript code, for example encapsulated in an HTML5 page. These instructions enable the terminal T1 to generate a message to be transmitted according to a protocol decided upon by the WebRTC server and in a manner transparent to the terminal, and by retrieving information from the terminal such as for example the available codecs, and/or by retrieving certain audio/video streams from the microphone and/or from the camera, in order to be able to transmit them to the outside.
(21) During a step E6, the terminal T1 generates a session request to the terminal T2 according to the content of the JavaScript code received during step E5. For example, if the protocol used by the WebRTC service provider is SIP, a SIP over WebSocket message “INVITE tel:0033299124167 SIP 2.0” can be generated by the terminal T1, if the JavaScript code contains the identifier of T2. WebSocket is a protocol providing for obtaining a channel for simultaneous bidirectional communications above the TCP (Transmission Control Protocol) layer. This SIP message also contains the SDP (Session Description Protocol) offer of the terminal T1, i.e. a set of codecs that can be used by the terminal T1, and its ports and addresses for the media streams (voice, video, etc.).
(22) Alternatively, if the WebRTC service provider does not use the SIP protocol, an HTTP request can be generated during step E6, containing the identifier of the terminal T2 and the codecs, addresses and ports of T1.
(23) If the JavaScript code received during step E5 does not contain the identifier of the terminal T2, this identifier must be retrieved one way or another by the terminal in order to be inserted into the HTTP request generated during step E6. In that case, the HTML5 page will typically have, in addition to the JavaScript code, a form to enter the identifier, for example a telephone number.
(24) Alternatively, protocols other than SIP or HTTP can be used. In these cases, it is also the JavaScript code instructions which will indicate to the browser of the terminal T1 how to generate the session request, and in how many messages.
(25) During a step E7, the session request generated during step E6 is transmitted by the terminal T1 to the server S.
(26) During a step F1, the server S receives this request.
(27) During a step F2, the server S transmits to the terminal T2 an identical or equivalent request, containing the same information as the request transmitted by the terminal T1 during step E7. There can be one or more intermediate servers between the server S and the terminal T2. The protocol or protocols used between the server S and the terminal T2 can also differ from that or those used between the server S and the terminal T1, if they allow a negotiation of the SDP offer between the terminals T1 and T2.
(28) During a step F3, the terminal T2 transmits in response to the server S a session request to T1, containing an SDP answer, i.e. a subset of the codecs proposed by the terminal T1, or their equivalent. This subset contains the codecs proposed by the terminal T1 which the terminal T2 is capable of using.
(29) During a step F4, the server S transmits to the terminal T1 an identical or equivalent request, containing the same information as the request transmitted by the terminal T2 during step F3.
(30) During a step E8, the terminal T1 receives the session request of the terminal T2. This request can take the form of a “180 Ringing” or “200 OK” SIP message, containing the SDP answer, i.e. the subset of the codecs proposed by the terminal T1 which the terminal T2 is capable of using, as well as an address and a port on which the terminal T2 expects the media streams transmitted by the terminal T1.
(31) Lastly, during a step E9, the communication session between the terminals T1 and T2 is established using one or more of the codecs compatible with the terminal T2.
(32) In an alternative embodiment, step E3 is replaced by a step G3 (not illustrated) for constructing an address containing the identifier of the server S and one or more possible prefixes, but not the identifier of the terminal T2. This provides for covering the case in which the user him/herself dials a number which is not in his/her address book.
(33) Step E4 is replaced by a step G4 (not illustrated) for transmitting a session request to the server S, but in which the session request to the server S does not contain the identifier of the terminal T2.
(34) Step E1 for selecting the identifier of the terminal T2 can be replaced by a step G1 (not illustrated) for obtaining the identifier of the terminal T2, for example by the user dialing the number. Step E1, or step G1, can in this embodiment take place after step E2 for obtaining the identifier of the server S.
(35) Step E6 then awaits completion of step E1, or step G1, and it is only during step E7 for transmitting the session request when the identifier of the terminal T2 is transmitted.
(36) With reference to
(37) The device 100 implements the method for establishing a session between a first mobile terminal and a second terminal, various embodiments of which have just been described.
(38) Such a device 100 can be implemented in a mobile terminal suitable for establishing an IP connection with a node of an access network, conveyed by a radio connection.
(39) For example, the device 100 comprises a processing unit 130, equipped for example with a microprocessor μP, and driven by a computer program 110 stored in a memory 120 and implementing the method for establishing a session between a first mobile terminal and a second terminal according to the invention. Upon initialization, the code instructions of the computer program 110 are for example loaded into a RAM memory before being executed by the processor of the processing unit 130.
(40) Such a device 100 comprises:
(41) a selection module 141, suitable for selecting an identifier of a remote terminal from an address book C,
(42) an obtaining module 142, suitable for obtaining an identifier of a WebRTC server from a subscriber module SIM, or SIM card,
(43) a construction module 143, suitable for constructing an identifier, such as for example a URL address, by combining the identifier of the selected remote terminal, the identifier of the WebRTC server and if necessary another identifier such as a predetermined prefix,
a transmission module 151, suitable for transmitting a session request to a WebRTC server, in the form of an HTTP request containing the constructed URL address,
a reception module 152, suitable for receiving an instruction from the WebRTC server, for example an HTTP response,
a generation module 153, suitable for generating a session request to the remote terminal based on the instruction received from the WebRTC server, for example in the form of an SIP message or an HTTP request containing an SDP offer,
a transmission module 154, suitable for transmitting the generated session request to the WebRTC server,
a reception module 155, suitable for receiving from the WebRTC server a session request on behalf of the selected remote terminal, for example in the form of an SIP message or an HTTP response containing an SDP answer,
an establishment module 156, suitable for establishing a WebRTC session with the selected remote terminal, for example using information contained in the received SDP answer.
(44) The modules 141, 142 and 143 can be included in a first application APP1 running on the SIM card of the mobile terminal implementing the device 100. The address book C can be stored in the SIM card, in a memory of the mobile terminal outside the SIM card or in separate equipment outside the mobile terminal, accessible using a dedicated application. The application APP1 can also run on the mobile terminal outside the SIM card. This application APP1 can be pre-installed by the manufacturer of the mobile or the operator, or installed by the subscriber by downloading from an Internet site such as for example an app store.
(45) The modules 151 to 156 can be included in a second application APP2 acting as WebRTC client. This application APP2 can be a WebRTC-compatible browser running on the mobile terminal, such as Chrome, Firefox, Opera, Internet Explorer, Safari, etc. or a dedicated WebRTC-compatible application able to be executed outside the browser and installed on the mobile terminal. This application APP2 can be pre-installed by the manufacturer of the mobile or the operator, or installed by the subscriber by downloading from an Internet site such as for example an app store.
(46) The modules described with reference to
(47) By virtue of the device for establishing a session between a first mobile terminal and a second terminal according to the invention, several ergonomic features are possible for establishing a call in WebRTC mode, in particular: either the application APP1 is started from the address book C by selecting therein an identifier, or contact, and by pressing on an icon or a key of the mobile terminal to start the application APP2 and thus establish the session, i.e. the call, or the application APP1 is started from the home screen of the mobile terminal, by pressing on a key or an icon to open the address book C, select a contact in it, start the application APP2 and thus establish the session, i.e. the call.
(48) The application APP1 is associated with an icon or a key of the mobile terminal when the application APP1 is initialized, for example when the terminal is put into operation with the SIM card inserted, according to a method which depends on the terminal and on the operating system used.
(49) The example embodiments of the invention which have just been presented are only some of the conceivable embodiments. They show that the invention enables a subscriber to a mobile telecommunication service to benefit from the WebRTC service best adapted to the network of his/her operator, in a manner transparent to him/her, simply by selecting or entering the telephone number of his/her correspondent on his/her mobile terminal.