LubosD/twinkle: Qt 5 port of Twinkle - GitHub

文章推薦指數: 80 %
投票人數:10人

Twinkle is a SIP-based VoIP client. Dependencies. To compile Twinkle you need the following libraries: ucommon GNU uCommon C++; ccRTP (version >= ... Skiptocontent {{message}} LubosD / twinkle Public Notifications Fork 47 Star 129 Qt5portofTwinkle twinkle.dolezel.info License GPL-2.0license 129 stars 47 forks Star Notifications Code Issues 44 Pullrequests 9 Actions Projects 0 Wiki Security Insights More Code Issues Pullrequests Actions Projects Wiki Security Insights Thiscommitdoesnotbelongtoanybranchonthisrepository,andmaybelongtoaforkoutsideoftherepository. master Branches Tags Couldnotloadbranches Nothingtoshow {{refName}} default Couldnotloadtags Nothingtoshow {{refName}} default 10 branches 5 tags Code Latestcommit   Gitstats 415 commits Files Permalink Failedtoloadlatestcommitinformation. Type Name Latestcommitmessage Committime .github/workflows     cmake     data     src     .gitignore     AUTHORS     CMakeLists.txt     COPYING     Doxyfile     NEWS     README.md     THANKS     TODO     sip.protocol     twinkle.desktop.in     twinkle.spec.in     twinkle_config.h.in     Viewcode Twinkle Dependencies Optionaldependencies Build Buildinstructions Shareduserdata Applicationicon Userdata StartingTwinkle NAT Logfiles Userprofileconfiguration Authentication Outboundproxy Registrar Addressing README.md Twinkle TwinkleisaSIP-basedVoIPclient. Dependencies TocompileTwinkleyouneedthefollowinglibraries: ucommonGNUuCommonC++ ccRTP(version>=1.5.0)GNURTPStack libxml2 libsndfile libmagic libreadline Qt5–morespecifically,thefollowingsubmodules: base declarative tools Thefollowingtoolsarealsorequired: cmake bison flex Optionaldependencies alsa-lib(alsoknownaslibasound) libzrtpcpp(version>=0.9.0)ZRTPlibrary,ccRTPsupportmustbeenabled bcg729G.729Acodeclibrary SpeexandSpeexDSPSpeexcodeclibrary iLBCiLBCcodeclibrary Build Firstofall,choosewhichoptionsyouwanttohaveenabled. Allpossibleoptionsare: Qt5GUI:-DWITH_QT5=On(onbydefault) D-Bususe:-DWITH_DBUS=On(onbydefault,requiresWITH_QT5) ALSAsupport:-DWITH_ALSA=On(onbydefault) ZRTPsupport:-DWITH_ZRTP=On G.729Acodecsupport:-DWITH_G729=On Speexcodecsupport:-DWITH_SPEEX=On iLBCcodecsupport:-DWITH_ILBC=On Diamondcardsupport:-DWITH_DIAMONDCARD=On(currentlybroken) Buildinstructions #Createasubdirectoryforthebuildanenterit mkdirbuild&&cdbuild #Runcmakewithalistofbuildoptions cmake..-Dexample_option=On #BuildTwinkle make #InstallTwinkle makeinstall Shareduserdata Installationwillcreatethefollowingdirectoryforshareduserdata onyoursystem: ${CMAKE_INSTALL_PREFIX}/share/twinkle ThetypicaldefaultvalueforCMAKE_INSTALL_PREFIXis/usr/local. Applicationicon Ifyouwanttocreateanapplicationlinkonyourdesktopyou canfindanapplicationiconintheshareduserdatadirectory: twinkle16.png (16x16icon) twinkle32.png (32x32icon) twinkle48.png (48x48icon) Userdata OnfirstrunTwinklewillcreatethe.twinkledirectoryinyourhome directory.Inthisdirectoryalluserdatawillbeput: userprofiles(.cfg) logfiles(.log) systemsettings(twinkle.sys) callhistory(twinkle.ch) lockfile(twinkle.lck) StartingTwinkle Givethecommand:twinkle twinkle-hwillshowyousomecommandlineoptionsyoumayuse. NOTE:theCLIoptionisnotfoolproof.Acommandgivenatawrong timemaycrashtheprogram.ItisrecommendedtousetheGUI. Ifyoudonotspecifyaconfigurationfile(-f)onthecommand line,thenTwinklewilllookforconfigurationfilesinyour .twinkledirectory. Ifyoudonothaveanyconfigurationfile,theconfigurationfile editorwillstartupsoyoucancreateone.Ifyouhave configurationfiles,thenTwinkleletsyouselectan existingconfigurationfile.Seebelowforsomehintson settingstobemadewiththeprofileconfigurationeditor. Ifyouspecifyaconfigurationfilename,thenTwinklewill suchforthisconfigurationfileinyour.twinkledirectory. Ifyouhaveputyourconfigurationfileinanotherlocation youhavetospecifythefullpathnameforthefile,i.e. startingwithaslash. NOTE:theconfigurationfileeditoronlyexistsintheGUI. IfyouruntheCLImode,youmusthaveaconfigurationfile. SofirstcreateaconfigurationfileinGUImodeorhandedit aconfigurationfile,beforerunningtheCLImode. IfyouruntheCLImodeandyoudonotspecifyafilename onthecommandline,thenTwinklewillusetwinkle.cfg NAT IfthereisaNATbetweenyouandyourSIPserverthenyouhave 3optionstomakethingswork: YourSIPproviderusesaSessionBorderController YourSIPprovideroffersaSTUNserver MakestaticaddressmappingsinyourNATforSIPandRTP STUNcanbeenabledintheNATsectionoftheuserprofile. Forthestaticaddressmappingsenablethefollowingin theNATsectionoftheuserprofile: UsestaticallyconfiguredpublicIPaddressinsideSIPmessages AndfillinthepublicIPaddressofyourNAT. TwinklewillthenusethisIPaddressinsideSIPheadersand SDPbodiesinsteadoftheprivateIPaddressofyourmachine. InadditionyouhavetoaddthefollowingportforwardingsforUDP onyourNAT public:5060-->private:5060(forSIPsignaling) public:8000-->private:8000(forRTPonline1) public:8001-->private:8001(forRTCPonline1) public:8002-->private:8002(forRTPonline2) public:8003-->private:8003(forRTCPonline2) public:8004-->private:8004(forRTPforcalltransfer) public:8005-->private:8005(forRTCPforcalltransfer) IfyouhavechangedtheSIP/RTPportsinyourprofileyouhave tochangetheportforwardingruleslikewise. Logfiles DuringexecutionTwinklewillcreatethefollowinglogfilesin your.twinkledirectory: twinkle.log(latestlogfile) twinkle.log.old(previouslogfile) Whentwinkle.logisfull(defaultis5MB)thenitismovedto twinkle.log.oldandanewtwinkle.logiscreated. Onstartupanexistingtwinkle.logismovedtotwinkle.log.oldanda newtwinkle.logiscreated. Userprofileconfiguration Auserprofilecontainsinformationaboutyouruseraccount, SIPproxy,andseveralSIPprotocoloptions.IfyouuseTwinkle withdifferentuseraccountsyoumaycreatemultipleuser profiles. Whenyoucreateanewprofileyoufirstgiveitanameand thenyoucanmaketheappropriatesettings.Thenameofthe profileiswhatlateronappearsintheselectionbox whenyoustartTwinkleagain.Oryoucangivethename.cfg atthecommandline(-foption)toimmediatelystartthat profile. Theuserprofileisstoredas.cfginthe.twinkle directorywhereisthenameyougavetotheprofile. Ataminimumyouhavetospecifythefollowing: Username:thisisyourSIPusername(eg.phonenumber) Domain:thedomainofyourprovider(eg.fwd.pulver.com) thiscouldalsobetheIPaddressofyourSIPproxy ifyouwanttodoIP-to-IPdialing(withoutproxy)then fillintheIPaddressorFQDNofyourcomputer. IfyourSIPproxydoesnotrequestauthenticationandthevalueyou filledinfor'Domain'canberesolvedtoanIPaddressbyTwinkle, eg.itisanIPaddressoranFQDNthatisinanA-recordofthe DNS,thenyouarereadynow. Authentication Ifyourproxyneedsauthentication,thenspecifythefollowingfields intheSIPauthenticationbox: Realm: therealmforauthentication youmightleavetherealmempty.Ifyoudoso,then Twinklewillusethenameandpasswordregardlessof therealmputinthechallengebytheproxy.Formost networksetupsthisisfine.Youonlyneedtoexplicitly specifyarealmwhenyouhavecallscenario'swhere youhavetoaccessmultiplerealms.Thenfortherealms notknowntoTwinkleyouwillberequestedforalogin whenneeded. Name: yourauthenticationname Password: yourauthenticationpassword IfauthenticationfailsduringregistrationoranyotherSIPrequest becauseyoufilledinwrongvalues,thenTwinklewillatthattime interactivelyrequestyourloginandcacheit. Outboundproxy Anoutboundproxyisonlyneededifthedomainvaluecannotberesolved toanIPaddressbyTwinkleorbecauseyourproviderdemandsyouto useanoutboundproxythatisatadifferentIPaddress. Checkthe'useoutboundproxy'checkboxintheSIPserversection. ForoutboundproxyfillinanIPaddressoranFQDNthatcanbe resolvedtoanIPaddressviaDNS. Bydefaultonlyout-of-dialogrequests(eg.REGISTER,OPTIONS,initial INVITE)aresenttotheoutboundproxy.In-dialogrequests(eg.re-INVITE, BYE)aresenttothetargetindicatedbythefarendduringcallsetup. Bychecking'sendin-dialogrequeststoproxy'Twinklewillignorethis targetandsendtheserequestsalsototheproxy.Normallyyouwould notneedthis.Itcouldbeusefulinascenariowherethefar-end indicatesatargetthatcannotberesolvedtoanIPaddress. Bychecking"Donotsendarequesttoproxyifitsdestinationcanbe resolvedlocally"willmakeTwinklealwaysfirsttrytofigureout thedestinationIPaddressitself,i.e.basedontherequest-URIand Route-headers.Onlywhenthatfailstheoutbound-proxywillbetried, butonlyfortheoptionscheckedabove.I.e.ifyoudidnotcheck the'in-dialog'option,thenanin-dialogrequestwill nevergototheproxy.Ifitsdestinationcannotberesolved,then therequestwillsimplyfail. Registrar BydefaultaREGISTERwillbesendtotheIPaddressresolvedfrom thedomainvalueortotheoutboundproxyifspecified. Ifyourserviceproviderhasadedicatedregistrarwhichis differentfromtheseIPaddresses,thenyoucanspecifythe IPorFQDNoftheregistrarintheregistrar-field. The'expiry'valueistheexpiryofyourregistration.Justbefore theregistrationexpiresTwinklewillautomaticallyrefreshthe registration.Theexpirytimemaybeoverruledbytheregistrar. The'registraratstartupoption'willmakeTwinkleautomatically sendaREGISTERonstartupoftheprofile. Addressing Whenyouinvitesomeonetoacallyouhavetoenteranaddress. ASIPaddresshasthefollowingform: sip:@ Where'user'isausernameoraphonenumber and'host-part'isadomainname,FQDNorIPaddress Theonlymandatorypartforyoutoenteristhe.Twinkle willfillintheotherpartsifyoudonotprovidethem. Forthehost-part,Twinklewillfillinthevalueyouconfigured asyourdomain. Currentlysip:istheonlyaddressingschemesupportedbyTwinkle. MicheldeBoer[[email protected]] LubosDolezel[[email protected]] About Qt5portofTwinkle twinkle.dolezel.info Resources Readme License GPL-2.0license Stars 129 stars Watchers 19 watching Forks 47 forks Releases 5 Twinkle1.10.3 Latest Feb19,2022 +4releases Packages0 Nopackagespublished Contributors19 +8contributors Languages C++ 96.0% C 2.8% Other 1.2% Youcan’tperformthatactionatthistime. Yousignedinwithanothertaborwindow.Reloadtorefreshyoursession. Yousignedoutinanothertaborwindow.Reloadtorefreshyoursession.



請為這篇文章評分?