METHOD FOR UPDATING A DATABASE OF A VOICE OVER IP NETWORK

20210234828 · 2021-07-29

    Inventors

    Cpc classification

    International classification

    Abstract

    A method for updating a database of a Voice over IP network by a gateway of a local network allowing access to the VoIP network. The method includes: receiving a message to initiate a VoIP call on the VoIP network coming from a terminal connected to the local network; determining a hardware identifier of the terminal from an IP address on the local network contained in the message; if the identifier is paired in the database with a telephone identity, transferring the message to the VoIP network; otherwise: setting up a VoIP channel between the terminal and a voice server hosted by the access gateway; obtaining by the voice server, via this channel, an authentication code of a user of the terminal; if the code is associated with a telephone identity allocated by the VoIP network, updating the database by pairing the identifier of the terminal with this telephone identity.

    Claims

    1. An updating method for updating a database of a Voice over IP network by an access gateway of a local network allowing access to the Voice over IP network, the method comprising: receiving a call initiation message to initiate a Voice over IP call on the Voice over IP network coming from a terminal connected to the local network; determining a hardware identifier of the terminal from an IP address used by the terminal on the local network and contained in the call initiation message, said hardware identifier uniquely identifying the terminal; if the hardware identifier is paired in the database of the Voice over IP network with a telephone identity allocated by the Voice over IP network, transferring the call initiation message to the Voice over IP network for setting up the call on the Voice over IP network with a recipient of the call initiation message; otherwise; setting up a Voice over IP channel between the terminal and a voice server hosted by the access gateway; obtaining by the voice server, via the channel set up, an authentication code of a user of the terminal; in response to the obtained authentication code being associated at Voice over IP network level with a telephone identity allocated by the Voice over IP network, updating the database by pairing, in the database, the hardware identifier of the terminal with this telephone identity.

    2. The updating method as claimed in claim 1 wherein the hardware identifier of the terminal is determined by issuing over the local network a request according to an ARP (Address Resolution Protocol) using as parameter the IP address of the terminal.

    3. The updating method as claimed in claim 1 comprising before the updating of the database, if the authentication code supplied is associated at Voice over IP network level with a telephone identity allocated by the Voice over IP network, receiving this telephone identity coming from the Voice over IP network.

    4. The updating method as claimed in claim 1 wherein the telephone identity allocated by the Voice over IP network and used during the updating supplied to the voice server by the user during obtaining of the authentication code.

    5. The updating method as claimed in claim 1 comprising, following the updating, transferring the initiation message to the Voice over IP network for setting up the call over the Voice over IP network with a recipient of the call initiation message.

    6. The updating method as claimed in claim 1, comprising, following the updating, prompting the user by the voice server to re-issue the call initiation message over the Voice over IP network.

    7. The updating method as claimed in claim 1 wherein the call initiation message is a message in accordance with a SIP (Session Initiation Protocol).

    8. The updating method as claimed in claim 1 wherein the hardware identifier of the terminal is a MAC (Medium Access Control) address of the terminal.

    9. The updating method as claimed in claim 1 comprising: receiving an unpairing command coming from the terminal; and deleting the hardware identifier of the terminal in the database.

    10. (canceled)

    11. A non-transitory computer-readable recording medium on which is recorded a computer program including instructions for executing an updating method for updating a database of a Voice over IP network by an access gateway of a local network allowing access to the Voice over IP network, when the instructions are executed by a processor of the access gateway, wherein the instructions configure the access gateway to: receive a call initiation message to initiate a Voice over IP call on the Voice over IP network coming from a terminal connected to the local network; determine a hardware identifier of the terminal from an IP address used by the terminal on the local network and contained in the call initiation message, said hardware identifier uniquely identifying the terminal; if the hardware identifier is paired in the database of the Voice over IP network with a telephone identity allocated by the Voice over Ip network, transfer the call initiation message to the Voice over Ip network for setting up the call on the Voice over IP network with a recipient of the call initiation message; otherwise: set up a Voice over IP channel between the terminal and a voice server hosted by the access gateway; obtain by the voice server, via the channel set up, an authorization code of a user of the terminal; in response to the obtained authentication code being associated at Voice over IP network level with a telephone identity allocated by the Voice over IP network, update the database by pairing, the in the database, the hardware identifier of the terminal with this telephone identity.

    12. An access gateway a voice over IP network, connected to a local network and comprising: a processor; a non-transitory computer-readable medium comprising instructions stored thereon which when executed by the processor configure the access gateway to; receive a message to initiate a Voice over IP call over the Voice over IP network coming from a terminal connected to the local network; determine a hardware identifier of the terminal from an IP address used by the terminal on the local network and contained in the call initiation message, this hardware identifier uniquely identifying the terminal; if the hardware identifier is paired in a database of the Voice over IP network with a telephone identity allocated by the Voice over IP network, transfer the call initiation message to the Voice over IP network for setting up the call over the Voice over IP network with a recipient of the call initiation message; otherwise: set up a Voice over IP call between the terminal and a voice server hosted by the access gateway; obtain via the voice server and the channel set up an authentication code of a user of the terminal; the obtained authentication code being associated at Voice over IP network level with a telephone identity allocated by the Voice over IP network, update the database by pairing, in the database, the hardware identifier of the terminal with this telephone identity.

    13. The access gateway as claimed in claim 12 wherein the voice server comprises a voice synthesis module, and/or a voice recognition module, and/or a conversational agent.

    14. (canceled)

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0060] Other features and advantages of the present invention will become apparent from the description given below, with reference to the appended drawings which illustrate an exemplary embodiment thereof devoid of any limitation. In the figures:

    [0061] FIG. 1 schematically represents a communication system in accordance with the invention in a particular embodiment;

    [0062] FIG. 2 illustrates an example of hardware architecture of an access gateway of the communication system of FIG. 1, in accordance with the invention; and

    [0063] FIG. 3 represents, in the form of a flow diagram, the main steps of an updating method as implemented in a particular embodiment by the gateway of FIG. 2.

    DETAILED DESCRIPTION OF THE INVENTION

    [0064] FIG. 1 shows, in its environment, a communication system 1 in accordance with the invention, in a particular embodiment.

    [0065] In the example illustrated in FIG. 1, the communication system 1 makes it possible to simplify the collection of the hardware identifier of a terminal 2 of a user U by a Voice over IP telephony network 3 to which the user U has taken out a subscription. Here we are interested in a fixed telephone network implementing Voice over IP technology based on the SIP (Session Initiation Protocol). This latter hypothesis is however not limiting in itself, and the invention can be applied to other protocols suitable for Voice over IP, such as for example to proprietary protocols.

    [0066] When the user takes out his subscription to the operator of the network 3, a public telephone identity IDPub3 is supplied by the operator of the network 3 to the user U. This telephone identity identifies the user U on the Voice over IP network 3 and allows him to communicate via this network with other users. It is for example a telephone number, an address of SIP URI (Uniform Resource Identifier) type, an address of URL (Uniform Resource Locator) type, etc.

    [0067] In accordance with the invention, the operator of the network 3 supplies to the user U, for example when he takes out the aforementioned subscription, an authentication code AUTH3 associated in a database 4 of the network 3 with the public telephone identity IDPub3. No limitation is attached to the form that this authentication code takes, or how it is generated or exchanged between the network 3 and the user U (though preferably securely): it can for example be a string of alphanumeric characters or only numeric characters, a login/password pair agreed with the user U, etc.; this code can be supplied by mail, by electronic message, by SMS (Short Message Service) or by any other means to the user U.

    [0068] In the example envisioned in FIG. 1, we consider a residential context, wherein one or more users U possess one or more terminals 2, connected to a local network 5 managed by a residential gateway or box 6, in accordance with the invention. For the sake of simplification, it is supposed here that each of the terminals 2 is capable of implementing a Voice over IP (VoIP) communication technique. However, this hypothesis is in no way limiting. Moreover, no limitation is attached to the nature of the terminals: they can be telephones, hardware or software, computers equipped with Voice over IP software, etc. It is supposed here that the terminals 2 are equipped with input/output means allowing them to interact with the user U such as for example a keyboard, a microphone and a loudspeaker etc.

    [0069] The gateway 6 allows the terminals 2 to access networks external to the local network 5, such as for example the public Internet network or else the Voice over IP fixed telephone network 3. In other words, to issue a call over the network 3 or to receive a call via this network 3, the terminals 2 go through the gateway 6.

    [0070] The functionality of such a gateway is known per se and is not described in detail here. It is for example the gateway 6 that allows the terminals 2 to access these networks external to the local network 5, such as for example the public Internet network or else the fixed Voice over IP telephone network. In other words, to issue a call over the network 3 or receive a call via this network 3, the terminals 2 go through the gateway 6.

    [0071] The functionality of such a gateway are known per se and is not described in detail here. It is for example the gateway 6 that attributes to each of the terminals 2 a separate IP address for communicating over the local network 5. With each attribution of an IP address denoted @IP2, to a terminal 2, the gateway 6 obtains from this terminal a hardware identifier uniquely identifying it, namely here its MAC address, denoted @MAC2. For this purpose, the gateway 6 can issue a request according to for example the ARP (Address Resolution Protocol) over the local network 5 using as parameter the IP address @IP2 allocated to the terminal 2. Such a request is known to those skilled in the art. Once the MAC address of the terminal 2 is obtained, this is stored by the gateway 6 in a so called “ARP” table 7 in correspondence with the IP address @IP2 allocated to the terminal 2. This table ARP 7 is kept updated by the gateway 6, each time a new IP address is attributed to a terminal in the local network 5.

    [0072] In the embodiment here, the gateway 6 has the hardware architecture of a computer, as shown in FIG. 2. It particularly comprises a processor 8, a read-only memory 9, a random-access memory 10, a non-volatile memory 11 (wherein is notably stored, here, the ARP table 7), and communication means 12. These communication means 12 allow the gateway 6 to communicate with the terminals 2 of the local network 5 (via wired or wireless connectivity), but also with items of equipment belonging to the remote networks, such as for example with the Voice over IP telephone network. 3. They particularly include here a network card and a VoIP protocol stack suitable for implementing a Voice over IP communication technique according to the SIP protocol.

    [0073] The read-only memory 9 of the gateway 6 constitutes a recording medium in accordance with the invention, readable by the processor and on which is recorded a computer program PROG in accordance with the invention, including instructions for executing an updating method according to the invention. This method is intended, in accordance with the invention, to update (i.e. to provide) a database 13 of the Voice over IP network 3 wherein is stored, in association with each public telephone identity allocated by the network 3 to a user, a hardware identifier of a terminal that the user in question uses to make his calls on the network 3. The hardware identifiers which are paired in the database 13 with the public telephone identities allocated by the network 3 uniquely identify the terminals to which they relate. In the embodiment described here, these hardware identifiers are MAC addresses, as previously discussed. Moreover, it is supposed here that when the operator of the network 3 allocates a public telephone identity to a user, it enters this telephone identity into the database 13. Consequently, when the user U has taken out his subscription to the operator of the network 3, the operator has added to the database 13 the telephone identity IDPub3 that it has allocated to the user U. however, at this stage, no hardware identifier is paired with this telephone identity.

    [0074] The program PROG defines various functional and software modules of the gateway 6 able to implement the steps of the updating method according to the invention of the database 13 and relying on the hardware elements 8-12 of the gateway 6. These modules here particularly comprise: a receiving module 6A, able to receive a message to initiate a Voice over IP call over the Voice over IP network 3 coming from a terminal 2 of a user U connected to the local network 5. Such a message is, in the example envisioned here of a Voice over IP telephone network implementing the SIP protocol, a SIP INVITE message comprising in the TO field of its header the recipient of the Voice over IP call; [0075] a determining module 6B, configured to determine a hardware identifier of the terminal 2 (in the example envisioned here its MAC address @MAC2) which originated the SIP INVITE message received by the receiving module 6A on the basis of the IP address used by the terminal 2 on the local network 5 and contained in the SIP INVITE message; [0076] a transferring module 6C, enabled if the hardware identifier (@MAC2 here) determined by the determining module 6B is paired in the database 13 of the Voice over IP network 3 with a telephone identity allocated by the network 3 to a user, and configured to transfer the SIP INVITE initiation message received by the receiving module 6A to the network 3 for setting up the call with the recipient of this call (for example to a Voice over IP platform 14 of the network 3 able to manage this call for the purpose of setting it up); [0077] modules 6D-6F, otherwise enabled, and comprising: [0078] a setting-up module 6D, configured to set up a Voice over IP channel between the terminal 2 and an interactive voice server 15 hosted by the gateway 6. In the embodiment described here, the interactive voice server 15 comprises a voice recognition module (not shown) known per se, allowing it to interact with the user U. In a variant, the interactive voice server 15 can comprise a conversational agent and/or a voice synthesis module, also known per se and not described in detail here; [0079] an obtaining module 6E, configured to obtain from the user U of the terminal 2 via the voice server 15, and more specifically the Voice over IP channel set up between the terminal and the interactive voice server 15, an authentication code of this user, namely the authentication code AUTH3 which here has been supplied to it by the network 3 when the user took out a subscription to be able to communicate over the network 3 using the telephone identity IDPub3. Note that the user U can supply this authentication code in different ways, for example vocally or by inputting the authentication code on the keyboard of his terminal, in which case the authentication code thus inputted is then transmitted by the terminal in the Voice over IP channel using vocal frequencies or DTMF (Dual Tone Multi Frequency). The module 6E following the chosen implementation can therefore comprise the aforementioned voice recognition module of the interactive voice server 15, and/or a module for receiving DTMF signals also contained here in the interactive voice server 15, and able to extract from the DTMF signal received from the terminal the authentication code conveyed by this signal; [0080] an updating module 6F, enabled if the authentication code supplied by the user U via the voice server 15 is associated at Voice over IP network 3 level (in its database 4 here) with a telephone identity allocated by the Voice over IP network 3, and configured to update the database 13 by pairing therein the hardware identifier of the terminal 2 with this telephone identity. Note that in the database 13, one and the same telephone identity can be paired with several hardware identifiers of different terminals.

    [0081] The functions of the modules 6A-6F are now described with reference to the steps of the updating method according to the invention.

    [0082] FIG. 3 shows the main steps of the updating method according to the invention, as updated in a particular embodiment by the gateway 6.

    [0083] It is supposed here that the user U wishes to use one of his terminals 2 to make a Voice over IP call over the fixed telephone network 3 and that this terminal 2 (and not, here, any other terminal of the user U) has until now never been paired with the telephone identity IDPub3 received by the user U when he took out his subscription to the operator of the network 3. In other words, in the example envisioned here, the database 13 kept by the network 3 contains no terminal hardware identifier paired with the telephone identity IDPub3.

    [0084] This hypothesis is however not limiting: in an alternative hypothesis it could be envisioned that the telephone identity IDPub3 is paired in the database with one or more hardware identifiers of terminals separate from the terminal 2. To issue a call over the network 3, the terminal 2 sends a SIP INVITE message addressed to the network 3 containing, in its header (in the TO field), the telephone identity of the recipient DEST1 that the user U is seeking to connect with, denoted IDPubDEST1 here (step E10). The SIP INVITE message also contains in its header, in the FROM field, its IP address @IP2 on the local network 5. The SIP INVITE message issued by the terminal 2 transits via the gateway 6 and is received by its receiving 6A module (step E20).

    [0085] The determining module 6B of the gateway 6 extracts the address @IP2 contained in the SIP INVITE message and polls the ARP table 7 kept by the gateway 6 with this address @IP2 to determine a hardware identifier of the terminal 2. It obtains in response the MAC address @MAC2 of the terminal 2 (step E30).

    [0086] In a variant, if the gateway 6 does not keep such an ARP table updated, the determining module 6B can poll the terminal 2 after receiving the SIP message by sending it a request in accordance with the ARP protocol comprising as a parameter the IP address @IP2 of the terminal 2, a request to which the terminal 2 replies by transmitting its MAC address @MAC2.

    [0087] Then the gateway 6, here via its determining module 6B, polls the network 3 and more specifically its database 13 to determine whether or not the hardware identifier @MAC2 of the terminal 2 is paired in this database with a telephone identity allocated by the network 3 to a user (step E40).

    [0088] In the example envisioned here, the hardware identifier @MAC2 is not paired with any telephone identity on the network 3 in the database 13.

    [0089] Consequently, the determining module 6B receives a negative reply from the database 13 of the network 3 (step E50). This negative reply triggers the enabling of modules 6D to 6F of the gateway 6.

    [0090] More precisely, the gateway 6, via its module 6D, then triggers the setting up of a Voice over IP channel between the terminal 2 and the interactive voice server 15 via the local network 5, in a manner known per se (step E60). More specifically for this purpose, in the embodiment described here and the SIP context envisioned, the module 6D sends to the interactive voice server 15 a message SIP INVITE message to which the latter replies with a 200 OK message containing its media information for setting up a media stream (RTP stream for Real Time Protocol). The module 6D responds to the SIP INVITE message issued by the terminal 2 by sending it a 200 OK acceptance message containing the media information of the voice server 15.

    [0091] On receiving this reply message, a Voice over IP channel is set up between the terminal 2 and the voice server 15 (note that the signaling relating to this Voice over IP channel is not exchanged directly between the terminal 2 and the voice server 15 but goes through the gateway 6, the signaling and the media streams being managed separately in the SIP protocol).

    [0092] Once this call has been set up, the interactive voice server 15 interacts with the user U, and particularly prompts him to supply the authentication code that he has received from the network 3 in association with his telephone identity on taking out his subscription to the operator of the network 3.

    [0093] In reply to this prompt, the user U supplies via his terminal 2 the authentication code AUTH3 that the operator of the network 3 gave him when he took out his subscription (step E70). For this purpose, he can either pronounce the authentication code AUTH3 via the microphone of his terminal 2, or more discreetly, supply this authentication code via the keyboard of his terminal 2. In the latter hypothesis, the authentication code is then transmitted over the Voice over IP channel via a signal using vocal frequencies (DTMF) and is received by the receiving module of the interactive voice server 15.

    [0094] The authentication code AUTH3 is recognized by the interactive voice server 15 by way of its voice recognition module or by way of its DTMF signal receiving module (as a reminder, included here in the module 6E for obtaining the gateway 6) (step E80). Note that the prompting of the user U to supply his authentication code and the obtaining of the code constitute a step of obtaining the authentication code of the user U within the meaning of the invention.

    [0095] Then the gateway 6, here by way of its determining module 6B, checks with the network 3 whether or not the authentication code AUTH3 supplied by the user U corresponds to a telephone identity previously allocated by the network 3 to a user. For this purpose, the determining module here 6B polls the database 4 of the network 3 by transmitting to it the authentication code AUTH3 received from the user U via the interactive voice server (step E80).

    [0096] In the example envisioned here, the authentication code AUTH3 is associated in the database 4 with a telephone identity, namely the telephone identity IDPub3 allocated by the network 3 to the user U. The database 4 returns a positive answer to the gateway 6 including the telephone identity IDPub3 (step E90).

    [0097] On receiving the positive answer from the database 4 and the public telephone identity IDPub3, the gateway 6 via its updating module 6F updates the database 13 of the network (step E100). For this purpose, the updating module 6F sends an updating message to the database 13 comprising the public telephone identity IDPub3 of the user U paired with the MAC address @MAC2 of his terminal 2.

    [0098] On receiving this message, the database 13 is updated with the address @MAC2 of the terminal 2 (step E110): after this update, the address @MAC2 is paired in the database with the public telephone identity @IDPub3. In the embodiment described here, the gateway 6, after this update, ends the call set up between the terminal 2 and the interactive voice server 15 (step E120), and transfers the call initiation SIP INVITE message received in step E10 to the network 3 (and more specifically to its VoIP platform 14) for setting up the call on the Voice over IP network 3 with the recipient corresponding to the public identity IDPubDEST1 (step E130).

    [0099] In another embodiment, the gateway 6, before ending the call set up between the terminal 2 and the interactive voice server 15, prompts the user U, via the interactive voice server 15, to reissue his call addressed to the network 3.

    [0100] Note that in the embodiment described here, the public identity IDPub3 that the gateway 6 pairs with the hardware identifier of the terminal 2 is transmitted by the Voice over IP network. In another embodiment, this public identity can be supplied by the user at the time of his interaction with the interactive voice server, for example when the user supplies his authentication code AUTH3. The public identity can then be transmitted by the gateway 6 to the database 4 to make an additional check, namely that in the database this public identity is indeed associated with the authentication code supplied by the user.

    [0101] It is now supposed that the user U wishes to issue a new call via his terminal 2, for example to another recipient, the telephone identity of which is IDPubDEST2.

    [0102] The terminal 2 sends a SIP INVITE message addressed to the network 3 containing in the TO field of its header the public telephone identity IDPubDEST2 and, in its FROM field, the IP address of the terminal 2 @IP2 (step E140).

    [0103] The SIP INVITE message issued by the terminal 2 transits via the gateway 6 and is received by its receiving module (step E150).

    [0104] As previously described in step E30, the determining module 6B of the gateway 6 extracts the address @IP2 contained in the SIP INVITE message and polls the ARP table 7 kept by the gateway 6 with this address @IP2 to determine a hardware identifier of the terminal 2. It obtains in reply the MAC address @MAC2 of the terminal 2 (step E160).

    [0105] In a variant, if the gateway 6 does not keep such an ARP table updated, the determining module 6B can poll the terminal 2 by sending it a request in accordance with the ARP protocol as described previously.

    [0106] Then the gateway 6, here via its determining module 6B, polls the network 3 and more specifically its database 13 to determine whether or not the hardware identifier @MAC2 of the terminal 2 is paired in this database with a telephone identity allocated by the network 3 to a user (step E170). Following the updating step E100, the hardware identifier @MAC2 is paired in the database 13 with the telephone identity IDPub3. The database 13 therefore gives the determining module 6B a positive answer (step E180). This positive answer triggers the enabling of the transferring module 6C of the gateway 6, which transfers the SIP INVITE message received in step E150 to the network 3 (and more specifically to the VoIP platform 14) for setting up the call (step E190). The way in which the call is set up is known per se, and not described here.

    [0107] In the embodiment described here, the user of the terminal 2 is given the possibility of unpairing this terminal 2 from the public identity IDPub3, for example since it no longer uses this terminal. For this purpose, a dedicated technical number can be supplied to the user, for example 1234 that the latter can compose via its terminal 2 by sending a SIP INVITE message addressed to the number 1234. This SIP INVITE message transits via the gateway 6 as mentioned previously which, on detection of the dedicated technical number 1234 to which the SIP INVITE is addressed, interprets this SIP INVITE message as a command to delete the pairing of the terminal 2 stored in the database 13.

    [0108] In response to this message it therefore deletes from the database 13 the pairing of the hardware identifier @MAC2 with the public identity IDPub3. Note that if other hardware identifiers are associated in the database 13 with the public identity IDPub3, this deletion has no effect on these identifiers.

    [0109] The example envisioned here concerns the pairing of a terminal 2 of a user when the terminal is directly connected to the gateway. This can be the case for example in a domestic or residential environment. The invention can however be applied to other contexts: typically, the user can be a legal entity, such as a company, and the terminal paired with the public identity can be a platform of IPBX type in charge of connecting a plurality of company users (e.g. employees) to a Voice over IP network via an access gateway 6 to the Voice over IP network. In this case, it is the hardware identifier of the IPBX platform which is paired in the Voice over IP network with the public identity (i.e. the terminal within the meaning of the invention is an IPBX platform). Many other contexts can also be envisioned.

    [0110] Although the present disclosure has been described with reference to one or more examples, workers skilled in the art will recognize that changes may be made in form and detail without departing from the scope of the disclosure and/or the appended claims.