Files
hpr-knowledge-base/hpr_transcripts/hpr2627.txt

395 lines
16 KiB
Plaintext
Raw Normal View History

Episode: 2627
Title: HPR2627: Home Phone Setup!!
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr2627/hpr2627.mp3
Transcribed: 2025-10-19 06:45:55
---
This is HPR Episode 2627, titled Phone Phone Setup, exclamation.
It is hosted by ZIGFLAB and is about 23 minutes long and currently in a clean flag.
The summary is, this episode we set up a small phone system.
This episode of HPR is brought to you by archive.org.
Support universal access to all knowledge by heading over to archive.org, forward slash donate.
Support universal access to all knowledge by heading over to archive.org.
Greetings.
Greetings.
Nerds.
This is ZIGFLAB to this level.
Coming to you on HackerPublic Radio.
This particular episode I am talking to you through a phone line.
A phone line that I set up.
This is our house phone system with Camelio.
A SIP program.
A SIP server.
And then I'll try and pronounce again.
That is Camelio.
Not sure how it's pronounced.
But it's cool.
Let's start.
So my neighbor has the Cisco 79940 VoIP telephone.
We share garage.
And I snoop around.
And I sell them.
I'm like, oh my God, this is awesome.
Let's make use of them.
And so they gave me the clear.
And I got all the telephones.
And the first thing I did was I connected by a DHCP.
And on the settings button.
And toward the options.
And I thought there's a settings button on the phone.
And it displayed all the configuration options.
And so it's like, clearly this is how you set it up.
I thought, well, you couldn't really edit the options.
At least most of them.
So the important ones, you couldn't change.
So I found the manual.
And apparently it gets its configuration through tiny FTP.
That's TFTP.
So let's set up a TFTP server.
The only thing I had free is this MACPPC warning devian.
So I did an app install on TFTP and TFTPD.
It actually took me a long time to figure out that TFTP is actually an X in its D service.
X in its D gets its configuration from fc-x in its D dot D.
Where every file in the structure is quote-unquote ran, so to speak.
So I open a file in that directory and I call it TFTP.
The grammar of the config files is actually pretty simple.
It goes something like this.
Service name, open brackets, options, close bracket.
So for the options, I found a nice help file on the internet.
And you're supposed to populate the options with this.
Or call equals UDP.
Port equals 69.
Now it sounds like I just made up that port, but that's actually the port for tiny HTTP.
Oh, it's tripping a lot of TP rather.
Socket type, hologram, weight, yes.
User, nobody.
Server, user, slash Sbin, slash in.tftpd.
Server args, this is the important one.
Slash, TFTP, B-O-O-T-T-F-D-P boot.
Disabled, no.
And per source equals 11.
And then TCPS equals 102.
Flags, IPV4.
All right, all right, all right.
So notice the server args option.
This is a directory.
In that directory, you're supposed to have your...
That's where you put all your TFTP files.
So I make sure that.
And they're...
Okay, so they're two files.
When it comes to Cisco, seven, nine, four, zeroes,
there's one file called CIP defaults.cns.
And there's another CIP MAC address.
That's C&F.
CIP default.
CIP, I'm sorry, CIP default, let's see.
And F contains global settings.
And CIP MAC address.
C&F contains local settings.
That's local to the phone.
So, okay, this is right, awesome.
I need to test this as a more part of the VoIP provider.
I looked around and found one called VoIPbuster.
That was pretty easy.
The protocol, the VoIP protocol is called CIP.
Now they're different firmware to Cisco phones to do different things.
The CIP firmware was already on them.
You can talk about looking at the upper right of the screen and it says CIP.
So I didn't have to slash a new firmware.
Thank God.
Looking at the manual, I chose my default to be if that is in CIP defaults.cns.
So I'm going to go ahead and click on that, underscore enable, one.
Since I see behind a net and as for the IP address and all that jazz,
the phone will do a DHCP request when it boots up.
So I found a spare router and had that DHCP running,
DHCP server running connecting to my phone and my computer to it.
For the CIP MAC address, C&F file.
So it's just the hacks of the MAC address.
My particular CIP MAC address.c&F file.
For just one connected phone,
contains Foxy1 address.
CIP.voIPbuster.com.
That is the CIP server.
And then we have a name.
I call it outside.
We have awesome name.
That is my VoIPbuster user.
Just plain name, outside.
And then finally password.
And that is my password.
All these are the prefix call.
These is line one underscore.
Now, I got these settings from VoIPbuster.
Let's pause on the phones and make some calls.
So the phone goes through two stages.
It seems.
The first stage is getting the DHCP settings and looking for firmware,
or a file.
If you can't find one, it resets after getting the DHCP settings.
This time it completes booting up.
I picked up a handset.
Getting ready?
Behold.
Not a thing.
So I looked at the settings by the phone.
Settings interface.
Nothing from my config files are found.
Now, I went to this thinking that TFTP replies to Brawcaster request.
So the phone is not really needing an address.
I was wrong.
It turns out the phone needed the TFTP's IP address.
So that's a long time.
I finally found out that you can change the TFTP address in the settings dialog.
Right on the phone.
This is one thing you can change in the configuration of the phone.
First, you need to unlock it.
This is done by pressing settings and going to the bottom where it says unlock settings.
Choose that.
And when you're prompted for a password, the total password is Cisco.
Who has thought?
After things are unlocked, go up to the network configuration menu.
Inside, go to alternate TFTP.
It should be set to no.
You want to change that to yes.
Now you can go up to TFTP server option on enter the address of your TFTP server.
Okay.
And so reset it.
We boot up.
It looks nice.
Let's see if we can dial out.
So I picked up the handset and entered 001.
Plus, my cell phone number, as Boy Buster told me to do, you press pound to initiate a call.
So I push pound.
Two seconds later, I was calling my phone.
It's bloody work.
Oh, it's great.
Now, the caller ID number, you get depends on how you set up your account on Boy Buster.
I chose my Google Voice number.
So if you get an incoming call from one of the seven nine four zeroes, you can't get any kind of calls from the seven nine four zero
about some sort of tunneling.
Or if you're on a DMZ or something like that.
I have these phones.
So let's set up a voice system.
I have a few of these phones.
Now, the Mac, EPC computer needs some sort of SIP server running.
I opted out of using asterisk because of the learning curve.
I found one called chamomileo.
Now, chamomileo is in the Open BSD port tree.
So that's cool.
This is Debbie and however.
I apt installed chamomileo.
It's not bad if you need a database engine type configured in one of the configuration files.
The files are located in Etsy slash chamomileo.
I don't really do know how to pronounce that.
After crepping a bit of the configuration files, I finally set the database type.
In a file called chamomileo.rc.
There's a variable there called DB engine.
I set this to PB text.
If I didn't want to set up an SQL server or anything like that, text is just fine for me.
Another setting I changed was SIP domain.
I changed this to the address of my Mac, EPC computer.
Now, Etsy slash in a D slash chamomileo.
Research.
Research.
Work just fine.
That's how I got the server running.
So I end my computer, my local host.
And I found that part 5060 is listening.
So that's the SIP server address.
Success.
Now we need to add lines.
During the chamomileo help, I found that the right command to add lines,
quote-unquote, are users, as they're known, to chamomileo.
It is camctl add, user name, and then password.
So I typed that in.
It complained about needing an e-mail address.
And I looked at the documentation.
I can figure out it's enter the e-mail address.
So to this day, I don't really know what I needed to do instead.
I typed it.
I found a database location to be user slash short shares,
slash chamomileo, slash dbtext slash chamomileo.
And I removed the e-mail address string line from the subscribers file.
And after that, I could add lines willingly with the camcTO.
I added 1,000 and 1,0001 to test.
After setting the phone's zip files to the right proxy address,
in various line 1 variables, I reset the phones,
cross my fingers, and dialed on the phone.
And it worked.
I could dial 1,0001 on the 1,0001 phone and it called.
It actually rang.
It was awesome.
So now I need voicemail.
I don't need a voicemail for every line,
just a virtual line that you can call to leave voicemail.
After googling the shit out of the internet,
I found a promising project I can get a hub called zippy.
Now this is meant for Raspberry Pi,
but I decided to just run it on my Mac PPC computer.
The address for this is github.com.
Flashbabbian.hu.
Flashzip underscorepy to be exact.
The zippy to the library called pdacip,
which as per the zippy readme says,
I did this.
WGithub.com for pdacip.
Go into the directory.
Just do a simple make up.
Make, make, make, make and go.
And compile a lot of files without a hitch,
which makes me sick club very happy when things compile.
Now to get zippy working,
the program I'm interested in to Puy repo is a particular program
called zip serve.
I typed make and made it right away.
I ran it and I've got a bloody seg bolt.
I was so close.
I added the manager settings,
that is sd, su, sp,
ln.
These correspond to the line credentials they have on your
camellio line.
I ran the zip serve again,
and this time with the file,
the configuration file specified with config file equals block.
Next seg bolt.
Another seg bolt.
So look at the make file.
I added the IDB option to cc and the linker stage.
And then round zip serve in ddb.
The new debugger that is.
After crashed, I did a backtrace command to see the path.
It took to the fault.
And I found that it was crashing in a line in main,
where it was doing a string compare in the argument parser.
I couldn't really figure out why it was crashing.
So I added the entire parser.
And hard coded the gink big file manually.
The location of the config file manually.
And we did it or not.
That is a bit of a lot of work.
I call the line that the zip pi program,
this zip serve rather.
Program is connected to.
It beeps.
Kind of like a phone ringing.
Then this German guy got on the line and said hello.
So I was shaking.
What the fuck just happened?
I called him again and got the same guy.
He didn't see anything different.
So I searched the zip pi directory for any waves or audio files.
And some log called and sage.
That was wab.
That contained the German guy.
It wasn't a really poorly person that I called somebody recording.
So I noticed in the directory when I was searching for this,
there were a lot of times that wave in mb3 files.
Those were the messages I left.
So it works.
So I probably not what you're supposed to do.
I changed the end sage that wave file to a nice greeting.
Okay.
So got that working.
That's good.
One last, well actually two last things.
But now what I want to do is set up the system in such a way
that it makes a Facebook message to our house's Facebook message group
that all my housemates are a part of once a message is left.
So I found out that after sipserve answer calls,
it runs a group called mail.sh.
Excuse me, with $1.2 as a message wave file.
That's our hook.
Now, this is about the time when I was searching for a Facebook messenger app
that worked on the command line for Linux.
I found a few and none of them worked.
And one of them was way too complicated.
So I settled on one called messenger CLI.
That is gethugs.com, after CB, slash messenger CLI.
All this is in the show notes, by the way.
It looks simple as hell.
It's based on the Facebook chat API, both of which ran in top of node.
I know node.
So I clone the repo and went to it and installed text from text.
And in the end it completed the command line messenger.
So I ran it.
That's me for my Facebook credentials.
It looks promising as hell, but I couldn't actually figure out how to send messages.
I thought for a second that maybe this is the password dealer.
My girlfriend message me.
It popped out in my terminal.
Yes.
I still couldn't figure out how to message someone.
So I tried to hack it.
Looking at the program's index.js file, I found that it's really a simple wrapper.
So I decided to look at the readnate for that, which contained a simple node program to log in.
And echo messages sent to it.
That program is in the show notes.
Basically you start with a variable called log in that requires Facebook chat.app.
It does a log in call with your credentials.
And it runs ap.
I don't listen.
API is a variable that log in populate.
So you listen for a message.
And then you send the message.
The message that gets received has a body to it and a thread ID.
And I think that's the reason why I couldn't figure it out.
Because you can't really resolve a person's thread ID from their name.
So you have to have them text you.
I message you.
So I, uh, I just want to blow it up on the one variable, a thread ID.
I had no idea what that was.
So I put a console.log into the dump to log out the thread ID.
Whoever messages me.
So I went to the house messenger group and I typed Marco.
And one of my mates replied, was that reply?
No.
I'm announced to them.
The note script logs the thread ID.
Just a bit of a secret info I needed.
So I wrote a note script to take a file, written in a configuration file,
and message the house group with something like the new voicemail at 1109 Fund door.
Here's our MP3 link.
Now, 1109 is the house address.
I need to run this on my OpenBSDBPS.
Because the MP3 files will be hosted there.
So I want to log into my server with a script.
So I set up an SSHT gun pair and I'll label log in about a password or pass phrase.
That's good.
The script can do that.
Then I changed my mail.
That SSH file to contain.
I've been SSH in name.
I'll upload 2.
You are saying, one is.
You will find two that the MP3.
That's just converting the wait version but three.
Then you are issuing a secure CPC to my OpenBSDBPS.
Then I send a username to it just to run the program called runner.
the script on the Open Beasty machine. From there, it runs a script called Runner on the
server. This is what Runner looks like. Basically it's been plus FH. I go all the arguments
to said expression, find and change space to underscore. I'll put that to Runner underscore
to the web root directory and then run node running the 0.0.js dot script.
Set the spaces out of the file and put it right in the place on the server. Notice the
script. The option to never ask for a password. That's good. Now let's get to the 0.0.js
node script. Basically it reads the file. Runner.tmp saves it in the variable. It logs in the
Facebook cat API. It doesn't listen to anything. It sends a message saying new voice mail at
11.09. Here's the link. All this does is send out a message with the
URL of the voice mail. I wanted to put a phone out by the stoop. I didn't want to know
I don't want to care if it was stolen or damaged. This means I need a separate regular
online device. It turns out these things are called AIDAS. I found one on Amazon for $30. It's the
Cisco SPA-112. The manual says that I can connect my browser to the IP to the
sign to to configure it by a web interface. I tried that and it didn't work. Now it turns out that you need to use the
alternate ethernet jack on it. There's one jack called ethernet. You connect directly to your
computer's nix. It's a ethernet port. It gives you a 192.168.16-24 address. From there you connect the 192.168.16.1 and log in as
admin, password, admin. The configuration web tool is
dirt simple. You're done. It's working. You can call in from the stoop and leave a
message for us if you want to. We can call the stoop in case someone's there. The next step is to
take a snapshot of security camera at the stoop and send it in the Facebook Messenger so you can see who's
there as well. That's for another day. Thank you for listening. Everyone take care. Bye-bye.
Music
Music
Music