PDA

View Full Version : DT-Talkie v2.1 = Walkie Talkie mode?


fatdat888
2009-07-22, 16:49
I was looking around the downloads today and notice this app:

DT-Talkie v2.1

http://maemo.org/downloads/product/OS2008/dttalkie/

If I read the description right, it sounds like you can communicate to other N8x0 with having a network connection. Does anyone have two N8x0 to try this out? And if it does work, what's the range on this?

Thanks.

qole
2009-07-22, 17:06
Wow, thanks for finding that! I have two N800s, I'll try it out soon!

I'm still a bit unclear myself... What kind of networking does it use? Ad-hoc WiFi?

From the website (http://www.netlab.tkk.fi/tutkimus/dtn/dttalkie/):


DT-Talkie is a DTN-based voice messaging application that enables mobile users to communicate over infrastructure-less and challenged environments in the walkie-talkie fashion. DT-Talkie supports both one-to-one and group communication. DT-Talkie is primarily implemented for Maemo based Nokia Internet Tablet. We port DT-Talkie application to heterogeneous endpoints like Mac, Linux PC and Openmoko based smartphone as well.


.... Aha, later on, they say they're using Bluetooth....

In the default dtnd configuration, we use filesysdb storage type, flood route type and Bluetooth convergence layer. So turn the Bluetooth connection on and make it visible for everyone to work dtnd properly.

So your walkie-talkies only work in BT range? Couldn't you just, you know, talk loudly?

fnordianslip
2009-07-22, 19:03
I've built the DTN2 reference implementation from the tip at sourceforge this week, for diablo, if anyone wants me to post some debs. They carry the Bundle Protocol used in DTNs directly over bluetooth and/or TCP/IP. Let me know if anyone wants them.

More info at dtnrg.org (http://dtnrg.org) and the source is at dtn.sourceforge.net (http://dtn.sourceforge.net)

I've not yet tried DTN-talkie properly, as I've not had anyone else to try it with, but I have got a 7 node DTN up and running, including an N800, an NSLU2 (running Debian), 2 Macs (PowerPC and Intel) and a bunch of other Linux nodes, and a dedicated server in a data-centre, at delaytolerant.net.

fnordianslip
2009-07-22, 19:58
I've uploaded a pair of debs for liboasys and DTN2 that seem to work fine on Diablo. These also are built against avahi, so bonjour discovery works for automatically connecting to peers with TCP/IP, and nodes offering bluetooth interfaces are automatically connected to when discovered. You will need to configure a bit of stuff in /etc/dtn.conf - I can provide some help if you need it.

As a networking technology, it is pretty cool, and there's plenty of interest in Finland, so maybe it will spread to Nokia.

This is the same protocol that NASA are starting to use for deep-space networks, and recently deployed on the ISS. See El Reg (http://www.theregister.co.uk/2009/07/07/dtn_node/)

Links:

EDIT. DT-Talkie doesn't seem to work with these debs. I think its down to a change to 64-bit timestamps in the sourceforge repo. Still they may be of some use, if you want the latest code for other purposes.
liboasys deb (http://homepage.mac.com/darren.long/filechute/liboasys_1.3.0-2_armel.deb)
DTN2 deb (http://homepage.mac.com/darren.long/filechute/dtn_2.5.1-1_armel.deb)

qole
2009-07-22, 20:44
This is the same protocol that NASA are starting to use for deep-space networks, and recently deployed on the ISS.

Considering that it can take a packet up to 20 minutes :eek: to go from Earth to Mars, you're certainly going to need some delay tolerance in your network!

fnordianslip
2009-07-22, 20:52
NASA have their own implementation of the Bundling Protocol, called ION, which is also open source, but you have (or had) to jump through some hoops to get it. It use LTP as deep-space protocol transport, and is I believe 'kinda' interoperable with the DTN2 reference implementation. LTP is geared up for light-speed induced delays. DTN2 doesn't really offer much for deep-space work, but has support for some other interesting protocols, such as the Nack Oriented Reliable Multicast (NORM) protocol and I've been slowly knocking up support for the AX.25 protocol used by radio hams, and supported by the Linux kernel.

qole
2009-07-22, 21:13
Ah, yes, I can see how light-speed induced delays are different than other kinds of delays. In my extreme-case example of 20 light minutes difference between nodes, the other node is online, but it takes 40 minutes to get back an acknowledgment that it received your message. That's different than the delays assumed by DTN; in "normal" cases, the other node is assumed to be offline if it doesn't acknowledge your request.

fnordianslip
2009-07-22, 21:20
That's different than the delays assumed by DTN; in "normal" cases, the other node is assumed to be offline if it doesn't acknowledge your request.

In space, there's also the predictable delays due to occlusions.

Edit - Oh, and the general case, doesn't really make assumptions about other nodes being offline. DTNs use late-binding for destination addresses, and route data incrementally towards their destination (hopefully), using a store-and-forward overlay network.

qole
2009-07-22, 21:30
fnordianslip:

How is your dtn 2.5.1 package different than the dtn 2.6.0 package (http://www.netlab.tkk.fi/tutkimus/dtn/dttalkie/dtn-2.6.0.deb) provided by the DT-Talkie group?

fnordianslip
2009-07-22, 21:46
Ah. Its probably my lazy and old hack to the debian control file that kept the old version number. The code in my debs is hot from the forge. They also don't claim to have built against avavhi, for bonjour discovery. Mine is built and configured (as per default) to use libdb4 for its bundle store, whereas they are (perhaps wisely in a minimalist sense) using a file-system based backing store. They also would appear to have a customised dtn.conf file, whereas my dtn deb ships the stock one. I didn't actually realise they'd posted debs for the DTN2 stuff on their page too. You might be better off with their one for use with DT-Talkie as per their guide.

Is there any sign of the source for DT-Talkie? I got a binary from Tarikal ages ago, but they still don't seem to mention source on their page.

qole
2009-07-22, 22:35
Well, I've installed it as per the instructions, but their instruction to start the dtn daemon with "dtnd -c /etc/dtn.conf -l info" is a bit weird, it leaves you at a "dtn%" prompt. Are you supposed to just sit at that prompt? That strikes me as very odd.

The other thing is that I'm not sure what my EID is supposed to be; is it "dtn://millenium-falcon" or "dtn://millenium-falcon.dtn"? The second one is used by the daemon when it says,


[1248301593.447814 /dtn/bundle/daemon info] REGISTRATION_ADDED 0 dtn://millenium-falcon.dtn
[1248301593.455322 /dtn/bundle/daemon info] REGISTRATION_ADDED 2 dtn://millenium-falcon.dtn/ping


I'll see if I can get things working when I bring my tablets together tonight...

fnordianslip
2009-07-22, 23:06
You can interact in the dtnd shell. For example:

% route dump

to show your routing table and links. Try "help" to see a list off commands to get more help on. You can daemonize the dtnd like so:

# dtnd -d -o dtnd.log

and then

# telnet localhost 5050

to get back into the dtnd shell.

A good first test is:

#dtnping localhost

There is also the other apps like dtntraceroute, dtnping, dtncat, etc. If you are feeling more adventurous, you could try adding a link (in the dtnd shell) or in the dtn.conf file (follwed by a dtnd restart) to my server, as below:

% link add tcp0 delaytolerant.net ONDEMAND tcp

then to set up a route,

% route add dtn://*.delaytolerant.net/* tcp0Whether you ad the link and route in the shell or edit the conf and restart the daemon, you'll need to run

% link open tcp0

To bring up the link.

My nodes run the Delay Tolerant Link State Router (dtlsr) instead of the Static router, so if you switch to that in the conf file, you should get a whole bunch of new routes added and be able to dtping and dtntraceroute to my nodes.

I'll see if I can get DT-Talkie working later. My N800 is at dtn://n800.delaytolerant.net

Appending .dtn is optional. I'd leave it off if your EID is for a host with a fully resolvable name that will offer an internet routable interface, but add it if its just a host on the local domain. In practice, it doesn't really matter.

Good luck.

fnordianslip
2009-07-22, 23:47
Uuurgh. I've noticed that DT-Talkie doesn't work with my debs. I think its down to a change to 64-bit timestamps in the XDR for the RPC API in the hg repo. Shame, as all my nodes are using the 64-bit timestamps code, and they don't work well with nodes that aren't.

Best stick with their debs. I've edited my earlier post to note this.

qole
2009-07-23, 05:42
Well, I would charitably call DT-Talkie 'proof-of-concept'.

Constantly segfaulting, no clear way to use items in the GUI, just over all not finished in any way.

DTN seems interesting, and I see the server discovering my tablets, but the talkie app isn't there yet. And without source code, I guess it won't be.

qwerty12
2009-07-23, 05:48
DTN seems interesting, and I see the server discovering my tablets, but the talkie app isn't there yet. And without source code, I guess it won't be.

https://garage.maemo.org/plugins/scmsvn/viewcvs.php/?root=dttalkie

qole
2009-07-23, 06:23
OK, someone take the source and make it into an end-user app!

palash_cse
2009-07-24, 10:54
Uuurgh. I've noticed that DT-Talkie doesn't work with my debs. I think its down to a change to 64-bit timestamps in the XDR for the RPC API in the hg repo. Shame, as all my nodes are using the 64-bit timestamps code, and they don't work well with nodes that aren't.

Best stick with their debs. I've edited my earlier post to note this.

Thanks for the feedback. Now the DT-Talkie version 2.1 in the project homepage is workable with the latest dtn2.6.0 in the hg repository. This time you won't face any problem mentioned above.

palash_cse
2009-07-24, 11:06
Wow, thanks for finding that! I have two N800s, I'll try it out soon!

I'm still a bit unclear myself... What kind of networking does it use? Ad-hoc WiFi?

From the website (http://www.netlab.tkk.fi/tutkimus/dtn/dttalkie/):

.... Aha, later on, they say they're using Bluetooth....

So your walkie-talkies only work in BT range? Couldn't you just, you know, talk loudly?

Bluetooth convergence layer and discovery mechanism is used in the dtnd configuration file as an example. Now TCP convergence layer with IP discovery mechanism is added which allows DT-Talkie to communication over ad-hoc wi-fi as well. Basically, DTN architecture is designed to interoperate over heterogeneous underlying link layer technologies.

fnordianslip
2009-07-24, 15:46
Thanks for the feedback. Now the DT-Talkie version 2.1 in the project homepage is workable with the latest dtn2.6.0 in the hg repository. This time you won't face any problem mentioned above.

Thanks for that. I've installed the latest deb, and have had some degree of success.

As I have only one N800, I set up a destination EID in DT-Talkie to point at dtn://mbpro.delaytolerant.net/dttalkie (obviously dttalkie doesn't run on my macbook pro) and recorded a voice message with DT-Talkie. DT-Talkie and DTN2 did actually deliver the bundle to mbpro, where it will sit until it expires.

There does seem to be a minor issue in that DT-Talkie seems to append .dtn/dttalkie to both the EID it registers locally, and to destination EIDs. That seems a bit odd to me, and may cause routing issues. I would have expected DT-Talkie to just append /dttalkie to the EID in the account file in order to create its own local EID, and also to the entry from the Individual or Group Contact to form the destination EID. Having said this, it may well work as is, but is probably best changed.

If anyone else fancies sending a voice message to me, you can add a link and a route via delaytolerant.net as shown in my post (http://talk.maemo.org/showpost.php?p=306075&postcount=12) above). The destination EID should be dtn://n800.delaytolerant.net in the Individual Contacts field.

Then you may need to change the router type in /etc/dtn.conf to be dtlsr - I'm not entirely sure whether bundles will get routed through my DTN if you don't.

You need to press the fullscreen button to start recording, and again to stop recording and send the bundle. Note that there is nothing to show that you are actually recording a message, and if you don't stop recording, you'll fill up the file-system eventually. If you run dttalkie from the terminal, you can see the current state of recording in the output there, and the GUI does indicate when a bundle has been sent, although there is no perceptible difference in the display when sending or 2nd or subsequent bundle to the same destination, so a little bit more feedback in the GUI would be a great thing.

Note that because of the store and forward mechanism involved, you can send messages (as bundles) to nodes that aren't connected, or even to nodes that don't exist yet, and those bundles will still get delivered, as long as those destination nodes (exist and) connect into the same DTN before the bundles expire. That is, of course, unless the node storing them happens to fail.

qole
2009-07-25, 06:51
It was little things like, "Note that there is nothing to show that you are actually recording a message, and if you don't stop recording, you'll fill up the file-system eventually" that made me say that DT-Talkie is proof-of-concept level still. There are no cues to tell you what button to push in the app itself, and no cues to show that anything is being done...

EDIT: Here are some more things that make this a rough-edged app:

There is also no way to delete contacts, and contacts that are discovered by your tablet are not added to your list or shown in the GUI in any way...

fnordianslip
2009-07-25, 10:31
Qole, I agree that it is a bit rough around the edges and not entirely robust. In fact it bails that often I've taken to running it in an infinite loop from a script, but it does actually perform its function. Reminds me of my first experiences with the Maemo RSS feed reader ;-)

Last night I ran a script on my server that just bounced DT-Talkie bundles back to my N800, and sure enough it receives them too. Early days though. With some debugging and GUI rework, I expect that it can become more acceptable.

Now, if only I can figure out how to rebuild it from source. I'm having some issues satisfying the dependencies in scratchbox, not the least as it has a need for a package called dtn-api, which I've never heard of and assume is some derivative of the fuller dtn package. Clearly its a build-time dependency only, as I don't have it installed on my N800 (I have the full dtn package I built installed there).

BTW, you can hack out existing contacts in the txt files in /media/mmc1/.dttalkie and restart dttalkie.

Personally I'd like to thank palash_cse for pitching up here and being responsive to the problem I mentioned with my DTN2 build. I hope (s)he isn't too put off by initial feedback here.

palash_cse
2009-07-29, 15:51
Now, if only I can figure out how to rebuild it from source. I'm having some issues satisfying the dependencies in scratchbox, not the least as it has a need for a package called dtn-api, which I've never heard of and assume is some derivative of the fuller dtn package. Clearly its a build-time dependency only, as I don't have it installed on my N800 (I have the full dtn package I built installed there).


Basically I created dtn-api.pc file locally so that the dtn2 api library path can be configured using pkgconfig tool while building the dttalkie project. But it doesn't make the project making process generic. In the latest updates, you can configure the project with --with-dtn parameter, which takes value of the top dtn2 installation directory.

For example: ./configure --with-dtn=/home/foobar/dtn-2.6.0

So, no hassle of dtn-api dependency anymore.