This a generic network question, that applies to any device inside a private LAN with desired public external access. 
 
You have a few options, depending if this is for private or commercial grade use.

 - Manually do '_port forwarding_' on your router, sometimes referred as '_Nat/gaming_', '_pin hole_' and others: you  need a fix/static LAN **ip** for
   your RPidevice; this config is highly router/vendor dependent.
 - [upnp][1] (Linux) 
 - [Portmapper][2] (Linux)
 - Third party cloud service, with a published **ip address** (very off topic): your device 'publish' on a known location and your
   clients access a known place.

On either case, you will need to [find][3] (and track) your router's **public ip address**, often randomly changed by your vendor.  

Notification when someone connect the device to the internet is a complete different story....


  [1]: http://elinux.org/UPnP
  [2]: https://github.com/kaklakariada/portmapper
  [3]: http://www.myipnumber.com/