Can you elaborate a bit more on your second question? Call? As in webRTC?
The first part you could set a cookie/something in storage to check, or you can keep a DB of IP addresses and check/update requests per IP.
Both aren't a great solution as they can easily be navigated around, so I would suggest requiring users to be logged in so you have associated accounts with requests.