Getting started

12 views
Skip to first unread message

Kris Coppieters

unread,
Aug 27, 2010, 5:48:38 PM8/27/10
to village-telco-dev
Hi all,

I've been lurking for a while - trying to get my head around
everything. I am a team member of the New Zealand Red Cross IT&T ERU,
and we're interested in these technologies as one of the solutions we
might be able to use to rapidly deploy telecommunication capability
after a disaster has ravaged existing infrastructure.

I am still wandering around, feeling like a stranger in a strange
land, but I think I am slowly coming to terms with things. I'd like to
put down in this post a distilled version of what my current
understanding is of how things work, and I'd love to hear what I got
wrong.

1) Blanket the area in Wifi.

As far as I understand it, one part of the solution is to put a Wifi
blanket over a certain area - a Wifi mesh. To do so, one tries to grab
any device that has Wifi capability, and, through reprogramming, make
it into a willing participant in the mesh.

Willing participants are: Mesh Potatoes, reprogrammed Wifi routers
like the WRT54G with OpenWRT, reprogrammed Android-based phones like
the Batphone,...

If my understanding is correct, there might be two kinds of players in
the Wifi picture: some devices used might only be 'passive' and simply
use the facilities of the Wifi network, but ideally, as many devices
as possible should be 'active' and be both acting as Wifi access
points as well as Wifi clients.

So, assuming there's an Internet gateway somewhere, I suppose someone
with a laptop could simply use the Wifi blanket to connect to the
internet, correct?

2) Blanket the area in Asterisk nodes

Once we have ourselves a Wifi blanket, we set ourselves up with a
whole lot of Asterisk nodes on top of that. Again, we try to run these
nodes on any device that's sufficiently capable of doing so - Mesh
Potato, Batphone, reprogrammed Wifi routers...

Essentially, every device and its dog is running an Asterisk node -
and there is something that is keeping things coordinated. I suspect
that the DNA software is involved here - need to figure that out.

Asterisk + something else is taking care of number portability etc...?

Question: if that's all correct, assume I have a Wifi-enabled SIP
phone (e.g. an iPhone or Android Phone with a SIP client on it). Could
such device also make calls, even though it's not acting as an
'active' node in the mesh?

3) Possibly add a gateway to the outside world

Some of the nodes on the mesh can be connected to the outside world
with some Internet connect - and then the SIP-connected world is your
oyster.

So, that's about as far as I got with figuring things out.

My question: am I far off track with how I think it works? If so, care
to put me straight?

A few minor questions:

- I am assuming the SIP protocol plays an important role, is that
correct?

- I've been browsing and googling all over the 'intarwebs' and the
Village Telco web site, and picked up little scraps of info one at a
time, here and there. I was wondering if someone could point me to
what the 'focal' points are where I could find the highest
concentration of relevant info?

- I've been looking for source code - is there any kind of source code
repository or repositories? Probably I've missed them.

I am a 'hands on' kind of guy, and as a learning experience, nothing
beats starting from bare source code, setting up the various bits and
pieces, compiling and cross-compiling, right up to getting it all
working.

Of course, pre-compiled and canned installers are great, but they tend
to leave too much up to 'magic' - i.e. things happening that I don't
understand - I hate that.

I've got myself a shiny new WRT54GL to play with (I read Elektra's
post about the DIR-300, but nobody is stocking that one any more, and
the WRT54GL was not much more expensive), and I've got two HTC Dream
phones on the way - play time! So if anyone could take out a few hours
of Google time for me by pointing me to the most important 'go-to'
places on the intarwebs, that'd be great!

Oh, and I am building a small Wiki 'Grassroots Teleco for Dummies' - I
am trying to record what I know and what I am learning, as I go, as to
help whoever else needs to suffer through the same process of rapid
(in)digestion of a lot of info.

It's not much yet, but the answers to this plea will certainly end up
here:

http://rwf.co/dokuwiki

I also intend to add step-by-step logs of how things went during any
successful attempts to get something working.

Cheers,

Kris

Paul Gardner-Stephen

unread,
Aug 28, 2010, 6:26:47 AM8/28/10
to village-telco-dev
Hi Kris,

On Aug 28, 6:48 am, Kris Coppieters <zwettem...@gmail.com> wrote:
> Hi all,
>
> I've been lurking for a while - trying to get my head around
> everything.

Nice to see you on the list :)

> I am a team member of the New Zealand Red Cross IT&T ERU,
> and we're interested in these technologies as one of the solutions we
> might be able to use to rapidly deploy telecommunication capability
> after a disaster has ravaged existing infrastructure.
>
> I am still wandering around, feeling like a stranger in a strange
> land, but I think I am slowly coming to terms with things. I'd like to
> put down in this post a distilled version of what my current
> understanding is of how things work, and I'd love to hear what I got
> wrong.

... snip ...

> So, assuming there's an Internet gateway somewhere, I suppose someone
> with a laptop could simply use the Wifi blanket to connect to the
> internet, correct?

Yes, you might need to put the right mesh software onto the laptop,
but you would certainly be able to use the mesh for data and internet
connection.

> 2) Blanket the area in Asterisk nodes
>
> Once we have ourselves a Wifi blanket, we set ourselves up with a
> whole lot of Asterisk nodes on top of that. Again, we try to run these
> nodes on any device that's sufficiently capable of doing so - Mesh
> Potato, Batphone, reprogrammed Wifi routers...
>
> Essentially, every device and its dog is running an Asterisk node -
> and there is something that is keeping things coordinated. I suspect
> that the DNA software is involved here - need to figure that out.

DNA is what Serval uses, and we are in the process of merging it into
the Mesh Potato main-line firm ware if people wish to use it.
However, even without DNA, the mesh potatoes support dialing by IP.
It is not so transparent for the user. Certainly they will end up with
a different phone number to normal, but this is okay in many
situations. Also, they have to allocate their IP address themselves,
although I believe there is plotting afoot to automate this.

> Asterisk + something else is taking care of number portability etc...?

BATMAN provides a good degree of mobility by maintaining the mesh and
reachability of your IP (and hence phone number) wherever it might be
on the mesh.
DNA adds to this, if activated, by allowing you to have your number
follow you from phone to phone if necessary, and separating your phone
number from IP.

> Question: if that's all correct, assume I have a Wifi-enabled SIP
> phone (e.g. an iPhone or Android Phone with a SIP client on it). Could
> such device also make calls, even though it's not acting as an
> 'active' node in the mesh?

It would be possible to have it get mesh services from a mesh node.
This is not currently implemented, but is on Serval's list, because
this is exactly how GSM phones appear when using OpenBTS.

> 3) Possibly add a gateway to the outside world
>
> Some of the nodes on the mesh can be connected to the outside world
> with some Internet connect - and then the SIP-connected world is your
> oyster.

Correct.

> So, that's about as far as I got with figuring things out.
>
> My question: am I far off track with how I think it works? If so, care
> to put me straight?
>
> A few minor questions:
>
> - I am assuming the SIP protocol plays an important role, is that
> correct?

Yes, SIP is used. Although it could use IAX or some other trunk
protocol instead.

> - I've been browsing and googling all over the 'intarwebs' and the
> Village Telco web site, and picked up little scraps of info one at a
> time, here and there. I was wondering if someone could point me to
> what the 'focal' points are where I could find the highest
> concentration of relevant info?

This is something that we are a little poor on at present. This list
is probably the best source of info.

> - I've been looking for source code - is there any kind of source code
> repository or repositories? Probably I've missed them.

The Village Telco source code is at http://villagetelco.svn.sourceforge.net/viewvc/villagetelco/

Serval's source code can be found in the files section of this google
group.
The DNA source is also now online via http://code.google.com/p/serval-dna/
Feel free to contribute!

> I am a 'hands on' kind of guy, and as a learning experience, nothing
> beats starting from bare source code, setting up the various bits and
> pieces, compiling and cross-compiling, right up to getting it all
> working.

A good approach if you want to learn :)

> Of course, pre-compiled and canned installers are great, but they tend
> to leave too much up to 'magic' - i.e. things happening that I don't
> understand - I hate that.
>
> I've got myself a shiny new WRT54GL to play with (I read Elektra's
> post about the DIR-300, but nobody is stocking that one any more, and
> the WRT54GL was not much more expensive), and I've got two HTC Dream
> phones on the way - play time! So if anyone could take out a few hours
> of Google time for me by pointing me to the most important 'go-to'
> places on the intarwebs, that'd be great!
>
> Oh, and I am building a small Wiki 'Grassroots Teleco for Dummies' - I
> am trying to record what I know and what I am learning, as I go, as to
> help whoever else needs to suffer through the same process of rapid
> (in)digestion of a lot of info.
>
> It's not much yet, but the answers to this plea will certainly end up
> here:
>
> http://rwf.co/dokuwiki

Thank you for doing that valuable task of collecting and collating the
VT and Serval wisdom.

Paul.

Rudolf Meijering

unread,
Aug 29, 2010, 6:47:17 AM8/29/10
to village-...@googlegroups.com
Hi Kris,

I think you have a good general idea but I think it might help defining some of the components of the village telco more clearly. I will start at the hardware (lowest) level and make my way up. It should also be noted that the nature of linux and openwrt along with all the software packages that are available allows for extreme flexibility. The way a mesh potato is configured out of the box is not the only possible solution but I will try to explain the way a mesh would work if you bought pre-configured mesh potatoes.

The hardware typically consists of a Wireless SoC (System on Chip) - that means the processor and all wireless functionality is combined in a single chip which is why you can buy these routers for 50USD. The wireless hardware supports all the 802.11g functions but of those the mesh potato only uses the ad-hoc demo profile. (It is slightly different from normal ad-hoc in order to get around some bugs) The ad-hoc profile allows any wireless node to connect to any other node within range which forms the wireless blanket or cloud. The problem however is ad-hoc mode doesn't provide a means for a data packet to travel from a node at one end of the blanket to a node at the other end through a number of intermediate nodes - packets can only travel to their nearest neighbor. A typical situation would look as follows:

'Node A' - - - - 'Node B' - - - - 'Node C' - - - - 'Node D'

A can speak to B. B can Speak to A and C. C can speak to B and D, but A does not know how to use B and C in order to speak to D. So in order for all nodes to be able to communicate with each other the mesh potato uses a protocol called BATMAN (Better Approach To Mobile Adhoc Networking). The BATMAN deamon that runs on every node keeps a list of all its neighbors and its neighbours neigbours etc. Node A might not know how to reach Node B, but Node B might know that he can use Node C in order to send a packet to Node D. Node A would ask B if he knows the "route" to D and if he does node A would send its packet to B who will make sure it is delivered. BATMAN is therefore probably the most important part of the village telco architecture and everything else depends on it for communication. I assume this is the program that you suspected "keeps things coordinated".

Now that communication between devices is established you could use this network for anything you like, you could serve web pages, share files, do video conferencing use the Internet etc. In the mesh potatoes case we want to use it for voice communication (or Voice Over IP - VOIP). The way the mesh potato accomplishes this is to use SIP, but you could use IAX or any other VOIP protocol. In order to be able to call someone, they need to have a phone number at the moment this is the same as the IP of the device but DNA aims to improve on this.

For a node to be able to join the mesh and participate it has to connect via adhoc demo mode and run BATMAN, this is a problem for SIP phones (which do neither) and Windows laptops which cannot run BATMAN. One way around this is to configure the mesh potato to also act as an Access point which then connects dumb devices like SIP phones to the mesh. This is however not part of the default configuration.

By adding the Access point profile to the default configuration of a mesh potato putting up a network in a disaster area would look as follows: put several wireless devices in key points to provide coverage and form the wireless blanket (these could include mesh potatoes wrt's or any device capable of running openwrt). once they are powered on they will form a mesh and enable communication. You can then place mesh potatoes or sip phones every where communication is required. You use a normal phone connected to the mesh potato to set your telephone number and as soon as that is done you can start calling. Optionally you could put up a gateway so that workers with laptop that connect to the Access point profile can also connect to the Internet.

Hope this helps.

--
You received this message because you are subscribed to the Google Groups "village-telco-dev" group.
To post to this group, send email to village-...@googlegroups.com.
To unsubscribe from this group, send email to village-telco-...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/village-telco-dev?hl=en.




--
Rudolf Meijering

Corinna Elektra Aichele

unread,
Aug 29, 2010, 11:37:50 AM8/29/10
to village-...@googlegroups.com
Hi!

Great posts!

Just want to add that the MP firmware supports both ad-hoc and ad-hoc demo
mode, as well as infrastructure client and accesspoint mode. All modes are
stable. In a network consisting of MPs and other OpenWRT based devices with
Madwifi driver you can use ah-demo, which offers advantages like reduced MAC
layer overhead. But you can use normal ad-hoc IBSS mode as well. If you use
the normal ad-hoc IBSS mode, make sure to use the switch "option swmerge 1" in
the section config wifi-iface in /etc/config/wireless


config wifi-iface
...
option swmerge 1
...

This is in the default configuration of the Mesh-Potato firmware in
/etc/config/wireless. Add this to other OpenWRT devices, that use the Madwifi
driver, to avoid stuck beacon issues.

Cheers,
Elektra

David Rowe

unread,
Aug 31, 2010, 1:46:46 AM8/31/10
to village-...@googlegroups.com

> How do you "connect" a normal phone to a mesh potato?

You plug it into the telephone socket on the Mesh Potato. The Mesh
Potato is just like a regular router with a socket for plugging a
telephone in.

- David


Matthew Heath

unread,
Aug 30, 2010, 11:55:28 AM8/30/10
to village-...@googlegroups.com
Mr. Meijering,

Thank you for your recent contribution describing the village telco project. Would you please allow me to ask a few questions?


"For a node to be able to join the mesh and participate it has to connect via adhoc demo mode and run BATMAN, this is a problem for SIP phones (which do neither) and Windows laptops which cannot run BATMAN. One way around this is to configure the mesh potato to also act as an Access point which then connects dumb devices like SIP phones to the mesh. This is however not part of the default configuration.

By adding the Access point profile to the default configuration of a mesh potato putting up a network in a disaster area would look as follows: put several wireless devices in key points to provide coverage and form the wireless blanket (these could include mesh potatoes wrt's or any device capable of running openwrt). once they are powered on they will form a mesh and enable communication. You can then place mesh potatoes or sip phones every where communication is required
. You use a normal phone connected to the mesh potato to set your telephone number and as soon as that is done you can start calling. Optionally you could put up a gateway so that workers with laptop that connect to the Access point profile can also connect to the Internet."

How do you "connect" a normal phone to a mesh potato?

Would a wireless blanket that wasn't connected to the internet still be capable of providing SIP phone communication between users operating inside the cloud?

I'm a businessman and not very technical. Please forgive me if these questions seem very ignorant.


Thank you,

Matt Heath


Steve Song

unread,
Aug 31, 2010, 4:19:41 AM8/31/10
to village-...@googlegroups.com
Hi Matt,

On 30 August 2010 17:55, Matthew Heath <mjhe...@hotmail.com> wrote:
[snip]


>
> How do you "connect" a normal phone to a mesh potato?

This is the essence of the Mesh Potato. We have built a device that
combines a meshed WiFi access point with an Analogue Telephony Adaptor
which is a devices that translates the analogue voice signal of an
ordinary telephone into digital communication that can be understood
by the wireless access point. That is what allows you to plug an
ordinary phone into the Mesh Potato.

> Would a wireless blanket that wasn't connected to the internet still be
> capable of providing SIP phone communication between users operating inside
> the cloud?

Each device runs a version of the popular Open Source telephony
software Asterisk. This means that you can do SIP and a lot of other
creative things besides without requiring a server.

As an out-of-the-box solution, the Mesh Potato is capable of calling
other Mesh Potatoes simply by dialling the last three numbers of the
IP address of the other Mesh Potato. By adapting the Asterisk
dialplan, you can create a variety of scenarios for peer-to-peer
calling.

Cheers... Steve

Rudolf Meijering

unread,
Aug 31, 2010, 11:59:47 AM8/31/10
to village-...@googlegroups.com
Hi Matt,

Ultimately the village telco is useless if business men like you, who have the vision but not the technical background cannot use it with reasonable ease. This is one of the goals of the village telco and although a great deal has been accomplished, we still need more good documentation. It helps us if you ask questions cause then we know where we haven't been clear enough. The very fact that you needed to come ask these questions on the list and that it wasn't very clear on the website means we are not living up to our goal (yet).

With regard to your questions, sometimes a picture speaks a thousand words: mesh potato. From left to right there is the reset button, power cord, standard telephone plug, network plug (for access to the internet for instance) and the antenna. The technical details behind the village telco are very complex, but if you buy a couple of mesh potatoes you put in the power cord, plug in your telephone, call a special number, follow a few very easy voice prompts and you can start calling each other. I was really amazed when I set up mine cause doing the same on for instance a linksys requires much more know how.

Steve, is it possible to still buy a few pre-production units? I would really recommend getting a few units just to get you started.

Regards,

--
You received this message because you are subscribed to the Google Groups "village-telco-dev" group.
To post to this group, send email to village-...@googlegroups.com.
To unsubscribe from this group, send email to village-telco-...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/village-telco-dev?hl=en.




--
Rudolf Meijering

Paul Gardner-Stephen

unread,
Aug 31, 2010, 5:05:40 PM8/31/10
to village-telco-dev
Hi Matt,

On Aug 31, 12:55 am, Matthew Heath <mjheat...@hotmail.com> wrote:
> "For a node to be able to join the mesh and participate it has to
> connect via adhoc demo mode and run BATMAN, this is a problem for SIP
> phones (which do neither) and Windows laptops which cannot run BATMAN.
> One way around this is to configure the mesh potato to also act as an
> Access point which then connects dumb devices like SIP phones to the
> mesh. This is however not part of the default configuration.

There is another solution that will be available soon: I intend to
hack BATMAN to add a couple of features:
1. Allow BATMAN to carry data in its announcement packets. This has
some interesting value for improving maximum call density, reducing
jitter for voice calls among other things.
2. Once (1) has been done, it is possible to make a purely user-land
non-root BATMAN that can carry data in this way, using broadcast UDP
as the transport medium. This allows the participation of Windows,
non-rooted mobile telephones and all manner of other devices in a
BATMAN mesh.

This also lets us get away from the IP allocation problem, because
each node can just roll its own random node ID, whether that be a
"virtual IP" or, say, a 64bit unique node id. In fact, you could have
an entire mesh using the same IP address, and it would just work,
because the broadcast UDP packets would still get delivered, and the
IP address would otherwise be completely ignored.

Paul.

Antoine van Gelder

unread,
Aug 31, 2010, 6:05:05 PM8/31/10
to village-...@googlegroups.com
On 31 Aug 2010, at 23:05 , Paul Gardner-Stephen wrote:
> 2. Once (1) has been done, it is possible to make a purely user-land
> non-root BATMAN that can carry data in this way, using broadcast UDP
> as the transport medium. This allows the participation of Windows,
> non-rooted mobile telephones and all manner of other devices in a
> BATMAN mesh.
>
> This also lets us get away from the IP allocation problem, because
> each node can just roll its own random node ID, whether that be a
> "virtual IP" or, say, a 64bit unique node id. In fact, you could have
> an entire mesh using the same IP address, and it would just work,
> because the broadcast UDP packets would still get delivered, and the
> IP address would otherwise be completely ignored.


http://www1.cs.columbia.edu/~salman/peer/ ?

- antoine

Matthew Heath

unread,
Aug 31, 2010, 6:28:45 PM8/31/10
to village-...@googlegroups.com, Steve Song, Rudolf Meijering, Paul Gardner-Stephen (telco)
Steve, Rudolf and Paul,

The three wise men :) Thanks to everybody for being so helpful to a new guy!

I'm looking forward to getting a few Mesh Potatos and experimenting with them. I have been brainstorming a commercial application in the United States. However telephony is probably more important to my envisioned application than anything else would be. That leads me to Steve's post...

"In terms of wireless handsets compatible with the Mesh Potato, I would
recommend a DECT wireless handset.  They are pretty popular these days
and quite spectrum efficient and are sure not to interfere with the
Mesh Potato.  Something like
http://www.amazon.com/Panasonic-Dual-Handset-Cordless-Answering-KX-TG1032S/dp/B000LYA8UW
is what I'm thinking of."

I was actually looking for information about mobile phones. Which Paul introduced me to with

"2. Once (1) has been done, it is possible to make a purely user-land
non-root BATMAN that can carry data in this way, using broadcast UDP
as the transport medium.  This allows the participation of Windows,
non-rooted mobile telephones and all manner of other devices in a
BATMAN mesh."

As I understand it, that
means non-rooted mobile phones (running a windows operating system) would be able to make calls through an MP running a BATMAN routing daemon (program?)

Now my next question is, what is the field experience running MP's from solar panel arrays, and what type of battery setups have proven successful?

Thanks for the picture Rudolf, that antenna could be replaced with a directional antenna right?

And finally, does anybody have a guess on what the maximum distance a mobile phone would be able to make a call through a MP under optimum conditions?

Eagerly awaiting my next lesson in the Village Telco Project!


warm regards,

Matt Heath

Paul Gardner-Stephen

unread,
Aug 31, 2010, 8:23:18 PM8/31/10
to Matthew Heath, village-...@googlegroups.com, Steve Song, Rudolf Meijering
Hi Matt,

On Wed, Sep 1, 2010 at 7:58 AM, Matthew Heath <mjhe...@hotmail.com> wrote:
> Steve, Rudolf and Paul,
>
> The three wise men :) Thanks to everybody for being so helpful to a new guy!
>
> I'm looking forward to getting a few Mesh Potatos and experimenting with
> them. I have been brainstorming a commercial application in the United
> States. However telephony is probably more important to my envisioned
> application than anything else would be. That leads me to Steve's post...
>
> "In terms of wireless handsets compatible with the Mesh Potato, I would
> recommend a DECT wireless handset. They are pretty popular these days
> and quite spectrum efficient and are sure not to interfere with the
> Mesh Potato. Something like
> http://www.amazon.com/Panasonic-Dual-Handset-Cordless-Answering-KX-TG1032S/dp/B000LYA8UW
> is what I'm thinking of."
>
> I was actually looking for information about mobile phones. Which Paul
> introduced me to with
>
> "2. Once (1) has been done, it is possible to make a purely user-land
> non-root BATMAN that can carry data in this way, using broadcast UDP
> as the transport medium. This allows the participation of Windows,
> non-rooted mobile telephones and all manner of other devices in a
> BATMAN mesh."
>
> As I understand it, that means non-rooted mobile phones (running a windows
> operating system) would be able to make calls through an MP running a BATMAN
> routing daemon (program?)

Yes, this would be possible. There is some magic to do in terms of
coding, but it is absolutely on my queue, along with a pile of other
tasks that, together, I hope will make mobile mesh telephony something
that everyone uses in a few years time.

We are still cooking up the documentation for the Serval Project (my
not-for-profit organisation) technology roadmap, which we will make
available once it is in a fit state, but I am happy to make internal
drafts available to individuals without signing any silly paper work,
I just don't want them published on the net at this time. Serval is
also happy to explore partnerships with commercial entities, provided
the technology remains open -- we already have on MOU in the process
of being signed.

> Now my next question is, what is the field experience running MP's from
> solar panel arrays, and what type of battery setups have proven successful?

David Rowe and Steve will probably have the best insight here. I have
run MPs on LiPo batteries, but not with solar panels.

> Thanks for the picture Rudolf, that antenna could be replaced with a
> directional antenna right?

Yes, it can be replaced with any antenna.

> And finally, does anybody have a guess on what the maximum distance a mobile
> phone would be able to make a call through a MP under optimum conditions?

Not sure. I could do mobile-phone to mobile-phone over 175m
line-of-sight in my urban area full of 2.4GHz interference. The MPs
have probably a few db gain compared with the mobile phones, and other
trials we have performed seem to indicate that 1km-2km under VERY
optimal conditions would be feasible. By that I mean something like
from ridge top to ridge top in the middle of the Australian Outback,
which is very nearly what we did a couple of months ago, but didn't
have the time to accurately determine the maximum range.

> Eagerly awaiting my next lesson in the Village Telco Project!

Hope that helps,

Paul.

>
> warm regards,
>
> Matt Heath
>

Bretton Vine

unread,
Sep 1, 2010, 4:57:00 AM9/1/10
to village-...@googlegroups.com
On 2010/09/01 12:28 AM, Matthew Heath wrote:
> Now my next question is, what is the field experience running MP's from
> solar panel arrays, and what type of battery setups have proven successful?

See David Carman's post from Afrikaburn
http://groups.google.com/group/village-telco-dev/browse_thread/thread/e42b02ef42d60348

--
Bretton
openpgp: http://bretton.hivemind.net/bretton_vine.asc

When you get an indignant scowl from the lady who backed-into you while
talking on her phone?
Yeah. THAT's when you know society's working. @hotdogsladies

Reply all
Reply to author
Forward
0 new messages