[Asterisk-Users] Opportunistic VoIP
John Todd
jtodd at loligo.com
Fri Jun 13 15:55:39 MST 2003
> > I'd say it's on-topic, since it's something (if implemented) could
>> radically change the way Asterisk moves calls between servers. If
>> understood correctly, I believe it could be the single biggest change
>> that the VOIP industry ("movement"?) could use to destroy the
>> existing traditional infrastructure of the phone system. Asterisk
>> seems to be a pretty good hammer right now for starting that job; I
>> think TRIP would give some extra muscle to the task.
>
>kazaa meets telephony... i like it. i'll think about some of this in its
>potential application to IAX2, for more practical uses, too, although I
>don't see IAX2 assimilating all of TRIP's functionality, but the ability
>to plug a phone into a LAN and automatically have it know the dialplan
>would be handy, as would being able to setup a distributed network of
>Asterisk servers with no centralized authority.
>
>mark
Glad to see it's of some potential interest.
The nice thing about TRIP is that it's an RFC already, and there are
other vendors who have implemented it. Acme Packet, as an example,
implements TRIP.
(http://www.acmepacket.com/html/products/products_sr.htm)
Alas, the only "free" implementation right now that I can find is in
C++ (from the Vovida/Vocal project) so it would have to be re-written
for Asterisk in C if it were to be incorporated as a module, though
again I'll note that it's under a very open license so it can be
incorporated as part of the distribution without any licensing issues
even it's current form were utilized.
It may not be necessary to incorporate it as a module, however. It
could be the case that the TRIP server is a "separate" process away
from Asterisk, and would be queried through perhaps a variant of the
"switch" statement. This would allow for easy separation of the TRIP
server for a cluster of Asterisk servers without unnecessary route
duplication across every single Asterisk box. Actually, this seems
to be the way that TRIP was envisioned to work, so perhaps this is an
optimal configuration. Or, of course, it could all run on the same
system and simply communicate through sockets. Only a small "glue"
routine would need to be patched into the Asterisk server and the
TRIP system in order to announce and pre-cache those routes/numbers
which could be reached through a TRIP peer. I have no idea how the
"switch" statement works in IAX2 or what it's limits are...
To your point about "plug a phone into a LAN and automatically have
it know the dialplan": it would be more like "plug an Asterisk server
into a LAN and tell it about some peers and it would know the
dialplan." Then, phones would simply be dumb agents that would
forward calls to their "default route" (the Asterisk server.) I
don't think that it would be wise to forward full route tables to
desktop UA's, since those tables could potentially be very, very
large. However, that may simply be a "filter" that is installed in
the iax.conf setting for that friend. (There's a big ball of wax!
Filters for IAX2 hosts.) If you're not already aware of concepts
like "forwarding table" and "routing table", drop me a line - they
aren't difficult concepts but they aren't obvious until you've passed
certain sizes in your route tables, and then they become extremely
important. :)
More tidbits:
Papers on TRIP routing and some C++ (bleh) code for libraries:
http://www.cs.columbia.edu/~kns10/projects/summer2002/trip
I don't know what the licesnsing is for this TRIP stack, or if it's
different than that of the Vocal system - I didn't look too hard.
JT
More information about the asterisk-users
mailing list