⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 gphone is a net phone base on the rtp protocol. It is simple but pratical and can be a good sample f
💻
字号:
GNOME-O-PHONE-------------Gphone is an internet telephone.  As the name implies, it aims to befully gnome-groovy, but that hasn't quite happened yet.  Gphone isdefinitely a work in progress and you probably shouldn't bet yourbusiness on it.  Don't be too hard on the program, though -- althoughthe user interface is mighty rough, gphone does actually work prettywell.  I've only tested the program over ethernet, but the data rateshould be low enough to work over a reasonable modem connection.The protocol is nominally RTP/RTCP, and gphone complies well enoughwith the standard to be able to talk to speakfreely.  I've only testedthe UNIX version of speakfreely, but as long as you tell sfmike to useRTP and GSM compression, it seems to work fine.  Maybe someday I'lladd in support for other codecs; encryption is a little less likelybecause I'd just as soon not open that legal can of worms.  One easyway to get some security would be to modify my program rtptunnel totunnel the RTP protocol through a SSL socket instead of a straight TCPsocket.Gphone supports full duplex if your sound card does.  I've had goodluck using the ALSA drivers for my SB16.Gphone requires the GSM compression library available at<http://kbs.cs.tu-berlin.de/~jutta/toast.html>.  To build gphone youalso need gtk 1.2 or later as well as version 1.2 of the popt library.Up-to-date Linux distributions should include these libraries and anyothers I'm forgetting.If you try gphone, I'd like to hear from you.  Please send comments,suggestions, bug reports, patches, donations, and job offers togphone@penguinpowered.com.  There is a mailing list for thoseinterested in gphone development.  You can subscribe at itspage, <http://lists.sourceforge.net/mailman/listinfo/gphone-list> andsend messages to gphone-list@lists.sourceforge.net.To find the latest news about gphone, you can visit the gnome-o-phonehome page at <http://gphone.sourceforge.net/>.Usage-----I'm not going to give too much detail here, because all of this should change soon.  The source code and gphone --help are your best bets for figuring this out.To make a call, just do    gphone -c <computer to call>You can add -h for half duplex.To wait for an incoming call just run gphone.By default gphone listens on the standard RTP port, 5004.  On theother hand speakfreely defaults to port 2074, so if you want to usethem together you'll have to tell at least one of them a differentport number.  Gphone uses -r to set the port it talks to and -l to setthe port it listens on.Program structure-----------------I'll describe briefly the overall plan of the program, in case youwant to start tinkering.  You should realize that there were twoforces that guided my development.  First, I wanted to get somethingusable with as little work as possible.  But I also wanted to usethings I was interested in learning about, like pthreads and gtk.Good programming practices, robustness, scalability or any of theother crap developers are supposed to pay attention to were not quiteas high on my priority list.  Still, if it didn't cost too much, Itried to do things the right way.Gphone now nominally uses the RTP/RTCP protocol described in RFC 1889with the audio profile described in RFC 1890.  Gphone 0.1 used acompletely different TCP-based protocol, so version 0.1 and 0.2 can'ttalk to each other.  If you have a problem getting UDP through afirewall, my program rtptunnel might be helpful.There are a lot of "half-measures" in the gphone code.  I've tried tokeep the user interface somewhat separate from the rest of the code,but not when that meant expending any effort on design or coding.  AndI've used glib pretty liberally throughout the program.  Similarly,I've let dependencies on the GSM library creep in, even though I knowI should be allowing for other compression schemes.I've gotten rid of the ringer and the daemon from version 0.1.  Theonly program you have to run now is gphone itself.  Unfortunately youdon't get the cool blinking ringer anymore; hopefully thatfunctionality will come back later.Gphone is pretty multithreaded.  Gphone is my first pthreads program(and my first gtk program), so if you see something that seems dumb toyou in my code, you're probably right.  The main thread is justresponsible for starting up the other threads.First, the UI thread takes care of all user interface work.  There isa status: all the threads look at this to see what state the programis in and act accordingly.  The threads also have queues to passmessages between themselves.Anyway, there are two threads that do the real work.  One thread justlistens to the incoming sockets and handles whatever packets come overthe wire.  If speech comes from the other end, this thread decodes theGSM frames and plays them.  The last thread is in charge of allsending of packets.  It compresses the speech and sends it, and alsosends things like "switch direction" requests (if the program is inhalf-duplex mode).Acknowledgments---------------Quicknet Technologies very kindly donated an Internet PhoneJACK cardto help in porting gphone.  Thanks guys!Copyright---------Gphone was written by Roland Dreier and is distributed under the GNUGeneral Public License.$Id: README 1.11 Sat, 11 Dec 1999 23:53:26 -0600 dreier $Local Variables:mode: textEnd:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -