I'd like to start by apologizing for not doing a thorough research on this subject, but after talking to a work mate VOIP came up.
I know very roughly how it works (most basic knowledge you can imagine), but then I thought. VOIP calls from PC to PC (skype or any other softwares alike) are free, but calls to or from telephones (land lines) and cellphones are paid.
Why is that? What is preventing me from coding my own VOIP client, or building my own VOIP server to do the exact same thing I'm being charged by other softwares? Does it change from one physical media to another? Is it because we are using the phone company's infrastructure for it? I really need to know this, because I have been thinking about it almost non stop since thursday and I need to get this doubt out of my head.
PS: Sorry for any english mistakes. It isn't my first language. And also, I'm almost certain that the company that provides my internet, phone and cable uses some kind of VOIP client or something (I don't know if that's a thing, or if it is possible or legal to do it without the client's consent, but it seemed a pertinent observation that might assist with your answers)