Professional Documents
Culture Documents
VoIP Cookbook 20110211 PDF
VoIP Cookbook 20110211 PDF
By
Onno W. Purbo
Anton Raharja
Edited By
Nurlina Noertam
Funded By
Internet Society Innovation Fund (ISIF)
TableofContents
ABOUTTHEAUTHORS.........................................................................................................................1
PREFACE...................................................................................................................................................2
CHAPTER1:VoIPOverview....................................................................................................................3
HowVoIPWorksforDummies.............................................................................................................3
WheretoStart?......................................................................................................................................4
WhatIsInternetTelephony?..................................................................................................................5
CHAPTER2:Becomingauser.................................................................................................................7
PCtoPCInternetTelephoneCall.........................................................................................................7
Usingsoftphone...................................................................................................................................11
InstallingXLite..............................................................................................................................11
XliteConfiguration........................................................................................................................15
InstallEkiga....................................................................................................................................19
ConfiguringEkiga...........................................................................................................................19
ConfiguringAccountinEkiga........................................................................................................27
TestyourSIPSoftphone......................................................................................................................30
CHAPTER3:VoIPHardwareforexperiencedUsers..............................................................................35
LinksysPAP2AnalogTelephoneAdapter........................................................................................36
LinksysIPPhoneSPA941..................................................................................................................41
WiFiIPPhone......................................................................................................................................46
LinksysWirelessGIPPhone.........................................................................................................47
HewlettPackardIpaq6395.............................................................................................................56
ActivatingIpaq6395'sWirelessCapability...............................................................................56
RunningSJPhone.......................................................................................................................58
SJPhoneFeatures.......................................................................................................................64
UsingSJPhonetoplacecallthroughIpaq6395........................................................................65
Nokia...............................................................................................................................................68
NokiaWirelessConfiguration..................................................................................................69
SIPServerandAccountConfigurationinNokiaE61................................................................73
InternetTelephoneConfigurationinNokia...............................................................................76
RegisteringtoVoIPSoftswitch..................................................................................................77
CallingusingInternetTelephoneinNokiaE61.........................................................................80
VoIPinADSLModem........................................................................................................................82
ADSLModemConfiguration........................................................................................................83
VoIPConfigurationinLinksysWAG54GP2..................................................................................86
CHAPTER4:InterconnectivityandTelephoneNumberAllocation.......................................................93
GettingFreeWashingtonStateTelephoneNumber.............................................................................94
FreeInternetCountry:CountryCode+882........................................................................................97
IntroducingyourcountrycodetoInternationalVoIPnetwork..........................................................104
VoIPRakyat'sENUM
...........................................................................................................................................................106
ConnectingtoPSTNandCellularUsingVoIPDiscount...................................................................116
VoIPCheap........................................................................................................................................118
CHAPTER5:AsteriskSoftswitch.........................................................................................................120
MinimalResourceforAsterisk.........................................................................................................121
AsteriskInstallation...........................................................................................................................121
CompileAsterisk...............................................................................................................................122
ConfiguringAsterisk.........................................................................................................................124
ENUM.CONFConfiguration............................................................................................................124
SIP.CONFConfiguration..................................................................................................................125
EXTENSIONS.CONFConfiguration...............................................................................................126
CHAPTER6:AsteriskforIncomingandOutgoingcalls.....................................................................129
DefiningSIPChannelinsip.conf.....................................................................................................129
AsteriskasSIPClient........................................................................................................................129
GenericSIPconfiguration................................................................................................................131
DAHDIUsageForVoIPCards..........................................................................................................141
DAHDIArchitecture.....................................................................................................................142
Kernel.......................................................................................................................................142
Tools.........................................................................................................................................142
DAHDISampleinstallation..........................................................................................................143
DAHDIextensions.conf.....................................................................................................................146
CHAPTER7:BrikerSoftswitch.............................................................................................................148
Briker'sInstallationProcess...............................................................................................................148
Briker'sConsole.................................................................................................................................154
Briker'sWebConfiguration...............................................................................................................156
ZaptelConfiguration.........................................................................................................................159
SIPTrunk...........................................................................................................................................160
IAX2Trunk.......................................................................................................................................163
H323Trunk........................................................................................................................................165
ZAPTrunk.........................................................................................................................................167
OutboundRoutes...............................................................................................................................168
InboundRoutes..................................................................................................................................170
InteractiveVoiceResponse................................................................................................................171
SetupRecordings...............................................................................................................................171
RingGroups.......................................................................................................................................172
PinSets...............................................................................................................................................174
CHAPTER8:OpenSIPSHighPerformanceSoftswitch........................................................................175
CompileOpenSIPS............................................................................................................................175
PrepareUserDatabaseServer............................................................................................................176
Useopensipsctl..................................................................................................................................178
SomeRoutingTechniqueinOpenSIPS.............................................................................................178
HowtoroutetoPSTNandCellular..............................................................................................179
HowtorouteusingAreaCodeforinterconnectedSIPServers....................................................180
HowtorouteENUMQueryinOpenSIPS....................................................................................181
TestENUMQueryinOpenSIP.....................................................................................................181
ENUMRoutingTableinOpenSIPSconfiguration.......................................................................182
CHAPTER9:ENUM.............................................................................................................................184
ExampleofENUMService...............................................................................................................184
DelegationConceptinENUM...........................................................................................................184
ENUMImplementation.....................................................................................................................186
BINDInstallation..........................................................................................................................186
SetupBINDforENUMServer.....................................................................................................186
TestDNSforENUMQuery..........................................................................................................188
ENUMDelegationinBIND..............................................................................................................189
CHAPTER10:ConferenceServeronAsterisk.....................................................................................191
ConfiguringConferenceRoomMeetMe...........................................................................................191
ConfiguringDialplanforConference...............................................................................................192
ActivatingConferencewhileOperating...........................................................................................193
CHAPTER11:TrunkPeeringinAsterisk..............................................................................................195
CHAPTER12:NATandFirewall..........................................................................................................196
CHAPTER13:VoicemailinAsterisk....................................................................................................198
CHAPTER14:MoreonAsterisk'sDialplan..........................................................................................201
PatternExtension..............................................................................................................................201
Attachingcontext..............................................................................................................................201
TheExtensionPattern.......................................................................................................................202
Extension......................................................................................................................................203
PredefinedExtensionNames.......................................................................................................203
DefiningExtension......................................................................................................................204
AninterestingExtensionExamples..............................................................................................206
VariableandEquation.......................................................................................................................208
Reloading...........................................................................................................................................208
ForwardingtoanotherAsterisk.........................................................................................................208
CHAPTER15:VoIPIPPBXHardware.................................................................................................210
LinksysSPA9000...............................................................................................................................210
LinksysSPA9000Configuration..................................................................................................211
ConfiguringVoIPonLinksysSPA9000......................................................................................214
CHAPTER16:AnalogTelephoneAdapterforconnectiontoPSTN....................................................219
LinksysSPA3000AnalogTelephoneAdapter.................................................................................220
ConfigureLinksysSPA3000.........................................................................................................221
LinksysSPA3000ATAStatus......................................................................................................225
LevelOneVOI2100AnalogTelephoneAdapter...............................................................................227
LinksysSPA400withfourFXOs......................................................................................................246
UsingtheSPA400withAsterisk..................................................................................................246
ConfigureAsterisktotalktoLinksysSPA400.............................................................................248
ConnectPSTNusingLinksysSPA9000andLinksysSPA400.....................................................251
ConfigureLinksysSPA9000totalktoLinksysSPA400..............................................................260
CHAPTER17:OpenBTS.......................................................................................................................261
OpenGSMInfrastructure..................................................................................................................261
History...............................................................................................................................................261
FieldTest............................................................................................................................................261
Niue...................................................................................................................................................262
GNURadio.........................................................................................................................................262
LibraryInstallation.......................................................................................................................263
WxWidgetInstallation..................................................................................................................263
SWIGInstallation.........................................................................................................................264
QWTInstallation..........................................................................................................................264
GNURadioInstallation.................................................................................................................265
USRPHandling............................................................................................................................265
USRPVerification........................................................................................................................266
OpenBTSInstallation........................................................................................................................269
AGlimpseonOpenBTSConfiguration............................................................................................270
smqueueConfiguration.....................................................................................................................272
AsteriskConfigurationtoworkwithOpenBTS................................................................................273
AutomaticSIMRegistration.........................................................................................................274
OpenBTSOperation..........................................................................................................................275
CHAPTER18:PeeringAmongProviders..............................................................................................276
FreeSIPProxyServers......................................................................................................................278
BecomingaPeerinSIPNetwork
...........................................................................................................................................................278
CHAPTER19:InternetTelephonyBandwidth.....................................................................................280
CodingDecoding(CODEC).............................................................................................................280
MeanOpinionScore(MOS)..............................................................................................................281
MOSandRFactorvaluesforG.711,G.723,andG.729....................................................................283
CalculatingTheRequiredBandwidth...............................................................................................284
CalculationforCallCenter................................................................................................................287
VoIPCapacityPlanning....................................................................................................................289
CHAPTER20:VoIPEvaluation............................................................................................................293
EvaluateVoIPPerformanceusingVQManager................................................................................293
VQManagerInstallation..............................................................................................................293
SomeoftheImportantScriptsofVQManager.............................................................................294
ActivateVQManagerWebService...............................................................................................295
ChangingtheMonitoredInterface................................................................................................303
InsertingnewInterface................................................................................................................303
MonitorVoIPPerformance...........................................................................................................304
EvaluateVoIPPerformanceusingSIPp.............................................................................................313
InstallationofSIPp........................................................................................................................313
InstallationofSIPpWebfrontend..................................................................................................313
TransactionOrientedTestusingSIPp...........................................................................................314
AccesstotheSIPpWebfrontend...................................................................................................317
CHAPTER21:VoIPTroubleshooting...................................................................................................328
CODECandVocoder........................................................................................................................328
PreparingAVoIPReadyNetwork.....................................................................................................329
Minimalrequirement/configuration................................................................................................329
Testpriortooperationofthesystem.................................................................................................329
SomeUsefulReferencesForVoIPTroubleshooting........................................................................330
References..............................................................................................................................................331
VoIPHardware...................................................................................................................................331
VoIPSoftswitch.................................................................................................................................331
VoIPClientSoftware.........................................................................................................................331
TestingSoftware................................................................................................................................331
APPENDIXA:Exampleof/etc/sip.conf...............................................................................................333
APPENDIXB:SIPpCOMMANDS......................................................................................................343
APPENDIXC:File/usr/local/etc/opensips/cfgtestuas.cfg................................................................350
AntonRaharjaisthefounderofthelargestcommunitybasedSIPSoftswitchVoIPRakyatin
Indonesia.HeisalsotheleaddeveloperofBriker,anopensourceSIPsoftswitchappliance.Besides
Briker,Antonactivesindevelopingseveralopensourceapplications,suchas,PlaySMS(SMS
Gateway),PlayVoIP(theVoIPRakyatEngine),PlayBilling(InternetCafeBillingSystem),WiFiRakyat
etc.HehasservedinmanytalkandseminarsonVoIPandOpenSourcesoftware.Heiscurrentlythe
TechnicalDirectorofPT.JelajahMediaInformatika,WANDKI,JakartaandtheCEOofPT.Infotech
MediaNusantara,Jakarta.In2008,hereceivedaFOSSAwardfromtheIndonesianMinistryof
InformationandCommunication.Hisprofileisathttp://www.antonraharja.web.id/curriculumvitae/
VoIPCookbook:1
PREFACE
Thisbookisaimedtoprovideapracticalknowledgetosetupacommunitybasedtelephonenetwork
basedovertheInternetInfrastructureA.K.A.InternetTelephoneorVoiceoverInternetProtocol(VoIP).
Manyrealworldexampleonequipmentandapplicationsoftwaresetupandinstallationsareprovided.
Wewouldliketothankmanyfriendsathttp://www.asterisk.org,http://www.opensips.org,
http://www.voiprakyat.or.id,
http://www.e164.org
aswellasmanyforumandmailinglistswithout
whomitwouldbeimpossibleforustogainalotofknowledgeandideas.
Iwouldliketothankmanyofourcomradesthatmanagedtokeeptheirspirithighinmakinga
significantchangeinIndonesiantelecommunicationarea.SomeofthemareSumaryo,DonnyBU,
BasukiSuhardiman,HariyantoPribadi,M.Ichsan,HeruNugroho,MichaelSunggiardi,andJudi
Prasetyo;aswellasmanyfriendsonthemailinglists.
OnnoW.PurbowouldliketothanktheInternationalDevelopmentResearchCenter(IDRC)
http://www.idrc.catosupporthisearlierworkonVoIP.EspeciallytoICT4Dgroup,specially,Richard
Fuchs,RenaldLafond,GrahamTodd,JoshSkinner,SteveSong,NancySmyth,HeloiseEmdon,
MireilleLerouxandFrankTulus.
WewouldliketothankInformationSocietyInnovationFundISIFhttp://www.isif.asia,especially
SylviaCadenaandherteamforsupportingusindocumentingourknowledgeoncommunitybased
InternetTelephony.
Wehopethisbookwillenablemorecommunitybasedtelecommunicationandtelephoneprovidersover
theregionalInternet.Furthermore,wehopeitwillenablealowcostaccesstotelecommunicationinthe
region.
Jakarta,February2011
TheAuthors
VoIPCookbook:2
VoIPCookbook:3
Figure1.1HowVoIPWorks.
Formoreadvanceduser,wemayinsertananAnalogTelephoneAdapter(ATA)intothenetwork.An
ATAisanothertypeofclientequipment.ItmayactasgatewaybetweenVoIPnetworkandlegacy
phonenetwork.Thus,anyoneonVoIPnetworkmaycalltotheoldphonenetwork.
Where to Start?
Thebookisdesignedtomeettheneedfor
ThosewhowishtotryandtobecomeaVoIPuseronly.
ThosewhowishtoexploreonhowtosetupmoreadvanceVoIPuserappliances.
ThosewhowishtofindVoIPcorporatesolutions.
Thosewhowishtoexploreonsettingupahomebrewsoftswitch.
AdvancedtechiesthatwantstoknowindepthhowtooperateaTelcooverInternet.
ForVoIPnewbieusers,equipedwithPC,soundcardandaccesstotheInternet,mightwanttoread
Becomingauser(CHAPTER2)andlittlebitofInterconnectivityandTelephoneNumber
Allocation(CHAPTER4).
VoIPCookbook:4
ForthosewhowishtoexploreVoIPappliancesmightinterestedinVoIPHardwareforexperienced
Users(CHAPTER3).Chapter3coversalotofhardwares,including,IPPhone,WifiPhone,Analog
TelephoneAdapter,ADSLModem.
ThosewhoaremoreinterestedincorporatesolutionsmightbeinterestedinVoIPIPPBXHardware
(CHAPTER15)andAnalogTelephoneAdapterforconnectiontoPSTN(CHAPTER16).Any
materialsonVoIPHardwareforexperiencedUsers(CHAPTER3)wouldalsohelp.
ForthosewhowishtosetupahomebrewVoIPsoftswitch,itisbeneficialtoreadBrikerSoftswitch
(CHAPTER7)andwithlittleefforttoreadAsteriskSoftswitch(CHAPTER5)andOpenSIPS
HighPerformanceSoftswitch(CHAPTER8).ForadvancehomebreweratopiconENUM
(CHAPTER9)mightbeofinteresttosetthesystemtorecognize+<countrycode><areacode>
<subscribernumber>numberingformatasusedinTelconetwork.
Therestofthetopics,suchas,VoIPBandwidth,conferenceserver,detailedondialplan,trunking,
peering,evaluationofVoIPperformance,VoIPtroubleshootingareaimedformoreadvancedusersthat
reallywantstofinetunetheInfrastructure.
DespitethatVoIPcommunicationcanbeprovidedforfree,youstillneedtomeetsomebasic
requirements.Theyincludetherequiredequipmentsandsoftware.Attheveryleast,youneedanIP
basednetworkusingTCP/IPandacomputerwithsoundcards,headsets,microphonespeakerandhave
thecomputerbeconnectedtoanetworkortheInternet.Softphone,thesoftwarerequiredforVoIP
communication,isprovidedforfree.
Ifyouhavemoremoneytospend,youcanbuyVoIPreadyequipmentsthatcanbeoperatedwithno
needforconfigurationorveryminimalconfiguration.Inaddition,youcanavoidthehassleofturning
onyourcomputereachtimeyouwanttocommunicatethroughVoIP.Attheminimum,youcanbuyan
IPPhone,aphonethatcanbepluggedintoLANnetwork.SomeoftheseIPPhoneshaveWiFi
capability,allowingyoutousethephonewhenconnectedtoahotspotnetwork.Therearemanydevices
enablingVoIPcommunication,someofwhichmayormaynotneedconfigurations.
Ifyou'rebuildingamuchmorecomplicatednetwork,youcanimplementIPPBXorInternetTelephony
GatewayalsoknownasAnalogTelephonyAdapeter(ATA),amediumbetweeninternettelephony
networkandconventionalphonenetwork.
VoIPCookbook:6
VoIPCookbook:7
VoIPCookbook:8
ClickRegister(Free)inordertoobtainafreeVoIPRakyatnumber.WithRegister(Free)clicked,there
aresomeinformationyouhavetofillin.Theseincludeyouremailaddress,name,address,cityand
country.NickNamefieldisprovidedforJabber(chatting)account.Attheendofregistrationprocess,
weneedtoentertheprovidedSecurityCode.
VoIPCookbook:9
Figure2.7:
Choosewhether
youwantto
createadesktop
icon,quicklaunch
iconandlaunch
theapplication
whenWindows
starts
Afterallinformationisfilledincorrectly,VoIPRakyatprovidesuswithaVoIPnumber,thepassword,
NicknamerequiredtoallowustomakeacallandchattingthroughVoIPRakyatnetwork.Pleasenote
thattheservernameisvoiprakyat.or.id.
Withtheaccountprovided,allwehavetodoistotransformourcomputerintotelephonehandsetso
thattocanbeusedtocallovertheinternettelephonynetwork.
VoIPCookbook:10
Using softphone
Selecttherightsoftphoneforyourcomputer.MostofthesesoftphonescanbedownloadedfromVoIP
Rakyathttp://voiprakyat.or.id/download/,oryoucanfindeachofthemfromitswebsite.
Cubix
Idefisk
SJPhone
Xlite
Ekiga
http://www.virbiage.com/cubix.php
http://www.asteriskguru.com/idefisk/free/
http://www.sjlabs.com/sjp.html
http://www.xten.com/index.php?menu=download
http://ekiga.org
Youneedonlyoneofsoftphones,dependingonwhicheverworksorsuitableforyou;
InstallingXLite
Figure2.4:
XLite
Welcoming
Installation
Window
Oncexliteinstallerprogramisrun,wewillbedirectedtoaWelcomingDialogProperties.Clickon
Nexttoproceedtothenextstepoftheinstallationprocess.
VoIPCookbook:11
Figure2.5:
CounterpathEnd
UserLicense
Agreement
Whatappearsnextisthelicensingagreementbetweenxlitecreatorandyoubeingtheuser.This
ensuresthatxlitewillnotbeliableforthepoorVoIPvoicequalityproducedbyxlite.Justlikeearlier,
clickontheIaccepttheagreementbuttonandclickNext.
Figure2.6:
Determinethe
locationwherethe
softwarewillbe
installed
NextXlitewillaskwheretheprogramwillbeinstalled.Thedefaultfolderis
C:\ProgramFiles\CounterPath\XLite,asshowninFigure2.6.Youcanchangethefolderifyouwant.
VoIPCookbook:12
Whicheverfolderyouchoose,clickNexttocontinuetheinstallationprocess.
Forquickerandeasierwayofusingxlite,youcanaddxliteasadesktopiconorevensetittoactivate
whenWindowsstarts(SeeFigure2.7).ClickNexttoproceed.
Figure2.8:
Thedialog
Windows
indicating
that
installationis
inprogress
Xlitethenextractsallfilesrequiredfortheprogram(SeeFigure2.8).
VoIPCookbook:13
Figure2.9:The
Windows
showingthatthe
installation
processis
completed
Oncetheinstallationprocessiscompleted,youcandirectlyrunXLitebycheckingtheLaunchXLite
boxandclickingFinishbutton.
VoIPCookbook:14
XliteConfiguration
AlthoughXLitecouldrunthemomentyoucompletedtheinstallationprocess,itdoesnotmeanyou
canuseitimmediately.Youstillhavetoconfigurethesoftphone.Itsconfigurationmenucanbeopened
byrightclickingonXlite.XLite3.0hastwolinesthatcanbeoperatedsimultaneously.Thisimplies
wecanestablishtwoconcurrentcalls,eachtodifferentdestination.
Figure2.18
XLiteappears
justlikean
ordinaryphone
Figure2.14:
EntertheSIP
accountyouhave
createdinXLite
Configuration
DialogWindow
VoIPCookbook:15
InXLite3.0configuration,youcanentertheSIPaccount(s)givenbyyourprovider.However,thefree
softwareversionofXLite3.0seemstolimitthenumberofSIPaccountsonlyoneaccount.The
previousversion,XLite2.0,allows10SIPaccountstobestoredandused.ClickAddtoenterthe
informationoftheSIPaccountyouhavejustcreatedinVoIPRakyatorofanyotherSIPaccounts.
Figure2.15:With
theAddbutton
clicked,youcan
seetheProperties
oftheSIPaccount.
Whatappearsfirst
istheAccounttab.
Intheaccounttab,youhavetofillinyourusername,authorizationusername,whichisthephone
numbergivenbytheprovider,thepasswordobtainedfromVoIPRakyatoranyotherSIPproviders;the
proxyaddress,whichisvoiprakyat.or.id,theaddressofVoIPRakyat.Otherinformationyoualsohave
tofillaredomain,whichisvoiprakyat.or.id,andDisplayname,anynameyouwanttoenter.This
functionsasaCallerIDinatelecomnetwork.
VoIPCookbook:16
Figure2.16:
TheVoicemailtabis
usedtosethowyou
wouldlikeSJPhone
managesyour
voicemail
IntheVoicemailtab,wecandeterminetowherewehavetodialinordertolistentoourVoicemail.For
VoIPRakyat,thenumberis904.Enterthisnumberinto"Numbertodialforcheckingvoicemail".If
youuseothrprovider,usethenumberprovidedbytheproviderinstead.
VoIPCookbook:17
Figure2.16:
Settheparameters
undertheTopology
tabtodetermine
howSJPhoneworks
withNAT/Firewall
IntheTopologytab,youcanactivateXlite'sabilitytopenetrateFirewall/NAT,toidentifythepublicIP
addressthatisusedandsoon.Youcanalsousethedefaultsettingsthatwillautomaticallyknowthe
publicIPaddressthatweuse.However,NATmaystillbeproblematic,asnotallconfigurationcanbe
traversedbysignalingprotocolandmediausedaSIPprovider.
ForPresenceandAdvancedtabs,usethedefaultvalues.Someparametersyoucanchangearethetime
intervalsusedtoperiodicallyregisterouraccounttotheSIPserver.ThisensuresthattheSIPaccount
remainsregistered.Afterall
configurationsarecompleted,
clickOktoactivatethe
configurations.
Figure2.17:
Withthebox
underEnabled
columnticked,
youcannowuse
yourSIPaccount
VoIPCookbook:18
Onceeverythingisproperlyconfigured,theSIPaccountyouhavejustconfiguredwillbecome
available.TicktheboxunderthecolumnEnabledtoactivatetheaccount.ThenclickClosetoclose
theSIPaccountmenu.
Withtheconfigurationcompleted,youcannowstartusingXLite.Iftheregistrationprocessis
successful,youwillgetamessagestatingLoginonthesoftphonescreenorotherwisethemessage
statesRegistrationErrorandyouhavetocheckwhetheryouhaveproperlyconfiguredthesoftphone.
Toplaceacall,clickonthenumbersalreadyavailableorclickthenumbersonthekeypad.
InstallEkiga
Ekiga(formelyknownasGnomeMeeting)isanopensourceSoftPhone,VideoConferencingand
InstantMessengerapplicationovertheInternet.ItsupportsHDsoundqualityandvideouptoDVDsize
andquality.Ekigaisinteroperablewithmanyotherstandardcompliantsoftwares,hardwaresand
serviceprovidersasitusesboththemajortelephonystandards(SIPandH.323).
ToInstallEkigainUbuntu,
sudoaptgetinstallekiga
ConfiguringEkiga
Principally,Weneedtodo
Ekiga>Edit>Accounts>AddaSIPAccount
Theneededinformartionwouldbe
Name
Registrar
User
AuthenticationUser
Password
:VoIPnumber
:SIPServer
:VoIPnumber
:VoIPnumber
:passwordVoIP
IntheearlystartofEkiga,weneedtosetseveralparameters.Wemaycanceltheearlyconfiguration
VoIPCookbook:19
processanddoitlaterthroughConfigurationAssistantmenufrom
Ekiga>Edit>ConfigurationAssistant
ThedetailedprocessofConfigurationAssistanceisasfollows,
Figure2.18WelcomeBanner
AwelcomebannerisshownfromtheConfigurationAssistantmenu.PressForwardbuttonomove
VoIPCookbook:20
forwardtheconfigurationprocess.
Figure2.19EnterFullName.
Thefirststep,weneedtoenterourfullnameintoEkiga.ThenpressForwardbutton.
VoIPCookbook:21
Figure2.10VoIPAccount
Thenextmenu,wecansubmitourAccountatEkiga.net.Ekiga.netmayofferanaccounttomake
calloutcallfromVoIP.Ifwedon'thaveanyaccountatEkiga.net,wemaypressForwardtocontinue.
VoIPCookbook:22
Figure2.11TypeofNetwork.
Next,weneedtosetthetypeofnetwork.ThiswillaffecttheCODECusedtocompresstheaudio.Fora
goodperformanceinLANenvironment,pleaseselectLAN.PressForwardtocontinue.
VoIPCookbook:23
Figure2.12TypeofSoundCard
Next,weneedtosetthetypeofsoundcardtobeusedinVoIP.Ekigaisfairlysmarttodetectthe
availablesoundcard.WehardlyneedtochooseorchangetheEkiga'sselectedsoundcard.Next,we
needtopressForwardbutton.
VoIPCookbook:24
Figure2.13TypeofVideoCard
Next,wecanselectthetypeofvideodeviceifoneisconnected.Ekigaissmartenoughtodetectany
videodeviceonthesystem.Tocontinue,pressForward.
VoIPCookbook:25
Figure2.14Finish.
Finally,theconfigurationprocessofEkigaiscompleted.Itwillshowthesummaryoftheparameterin
Ekiga.PressApplytobeginusesEkiga.
VoIPCookbook:26
ConfiguringAccountinEkiga
ConfiguringanAccountinEkigamaybedonethroughmenu
Ekiga>Edit>Accounts
or
Ekiga>CtrlE
ThedetailedofVoIPAccountconfigurationinEkigaisasfollows,
Figure2.15StartAccountConfiguration.
AftertheAccountmenuisactivated,wewillseetheabovefigure.
Figure2.16AddSIPAccount.
ClickonAccounts>AddaSIPAccount
VoIPCookbook:27
Figure2.17AddSIPAccountinformation.
IntheaboveExample,weentertheparametertouseSIPaccountinVoIPRakyat.Enterthedata,
namely,
Name
Registrar
User
AuthenticationUser
Password
NabilSuhaemi
voiprakyat.or.id
123456
123456
<yourpasswordinvoiprakyat.or.od>
VoIPCookbook:28
Figure2.18AddSIPAccountinformation.
Intheabovefigure,wesettheparameterforlocalVoIPsoftswitchatIPaddress192.168.0.3.
Figure2.19EnableSIPAccount.
MakesuretheaccountisactivatedbyclickinontheAcolumn.Tousetheaccount,weneedtomake
suretheaccountisregisteredtothesoftswitch.
VoIPCookbook:29
Figure2.20EkigaReadytouse.
ShownintheabovefigureisEkigaafteritsuccessfullyregisteredtothesoftswitch.Atthebottomof
thesoftswitchwecanreallyseethatitRegisteredsip:....Atthispoint,wecanmakeacallby
puttingthedestinationnumberinafterthesip:field.
administratortodowhatistoldhere.
Figure 2.21: Just like other VoIP Providers, VoIP Rakyat provides its users with some numbers with
which the users can use for testing their VoIP quality
GotoVoIPRakyat'sServiceNumberpage,http://voiprakyat.or.id/services/.Thispageprovidesyou
withsomenumbersthatcanbeusedtotestyourVoIPconnectionandtheirfunctions.Someofthem
are:
901whichindicatesthetimeJakarta'stimeandnearbycountries.
902noise
903echotest
VoIPCookbook:31
Figure 2.22: Through VoIP Rakyat's Phonebook, you can see who's online
Intestingthisconnectivity,whatuserswilloftendoistocallanyonefoundonlinein
http://www.voiprakyat.or.id/?inc=online_phones.Sodon'tbesurprisedifsomeonedialsyournumber.
Dependingonwheretheusersare,thecallcomesfromavarietyofcountries,includingtheU.S.
ThereareofcourseotherVoIPphonenumberswhichyoucanusetotestyourVoIPconnection.These
areprovidedinalonglistavailableinhttp://www.voipinfo.org/wiki/view/Phone+Numbers.Ifyouwant
tocallusingSIPaddressformat(sip@domain.com),thefollowingisatableofsomenumbersyoumay
use:
VoIPCookbook:32
Function
SIP Provider
SIP
Enum
Autoattendant BC Wireless
1000@mutual.bcwireless. 1 604 484 5289 x8600
(http://www.bcwireless.net/moin.cgi/N net
through E164.org
etworkServices/VoiceServices/PublicC
onferenceRoom).
Echo Test
Enum2go (http://enum2go.com/)
878107472000010@sip2g
o.com
N3 Network Lab.
(http://www.n3network.ch/)
Mouselike.org
(http://www.mouselike.org/)
(UK) 904@mouselike.org
VoipTalk
(http://www.voiptalk.org/)
UK 904@voiptalk.org
Reread Called
ID
Welcome
Line
+441483604781
95861111@mutual.bcwire
less.net
FWD
55555@fwd.pulver.com
Ewing IT
611300766674@sip.like2f
one.com
Xmission
(http://xmission.com/transmission)
xmission@pbx.xmission.c
om (tidak ada G.729)
UCLA (http://internet2.edu/sip.edu)
13108254321@ucla.edu
(tidak ada G.729)
TELL
18005558355@proxy01.si
pphone.com
U. Philippines
0116329818500@proxy01
.sipphone.com
Personal Telco
274185@fwd.pulver.com
(http://wiki.personaltelco.net/moin.cgi/
VoIPCookbook:33
SipPhoneDirectory)
Patton Electronics
(http://www.patton.com/support)
support@patton.com
(tidak ada G.729)
Party Line
17475552663@proxy01.si
pphone.com
(VoIP
conference setiap sabtu
jam 20:00 GMT)
Ingate
(http://www.ingate.com/trysip.php)
music@trysip.ingate.com
MIT (http://sipphone.com/numbers)
16172531000@proxy01.si
pphone.com
VoIPCookbook:34
itisphysicallysimple,withitsdimensionslightlybiggerthanthesizeofacigarettebox.
Thereareportsforconnectingtothenetworkorcomputer,suchasLAN/UTP,USBorwireless
at2.4GHzfrequency.
ThereisoneportormoreforconnectingtotelephoneswithRJ11port.
Itcanbeconfiguredthroughtheweb.
However,VoIPhardwareisnotfree,asyoustillhavetospendsomemoneyforbuyingtheequipment.
ForaboutUS$100,youcangetasetofdecentVoIPhardwareproducedfromChinaorTaiwan.But
despitethiscost,VoIPhardwarearehighlyrecommended,asyoumayfindthebenefitsthehardware
bringoutweighthecostyouhavetocover,intermsofeaseofuseandenergyefficiency.
ThisChapterwillexplainseveralhardwareavailableinthemarketandhowtoconfigurethem:IP
Phone,InternetTelephoneGatewayorbetterknownasAnalogTelephoneAdapter(ATA),andWireless
IPPhone.TheywayyouconfigureVoIPhardwareisnotmuchdifferentfromwhatyoudowith
softphone.BasicallyallyouhavetoconfigurearetheIPsettings(IPaddress,subnetmask,and
gateway)andregistrationtoSIPserverorproxyserver(Usernameortelephonenumber,passwordand
hostnameserver).Often,IPsettingsisconfiguredautomaticallyusingDHCPserveroperatingina
network,soyoudon'thavetosettheIPaddress,subnetmaskandgateway.
VoIPCookbook:35
ThesimplesttypeofVoIPhardwareistheAnalogTelephoneAdapter(ATA),whichcaneasilybe
connectedtoaconventionaltelephone.TheATAusedasanexampleinthisbookistheLinksysPAP2,
whichhastwoRJ11ports(FXSports)thatcanbeconnectedtotwoconventionalphones.Eachofthese
portscanberegisteredtoaSIPProxyserverindividually.Asaresult,wecouldhavetwoSIPaccounts,
eachconnectedtoaconventionalphone.
WhatwehavetounderstandisthatanATAhastwotypeofRJ11connections,namely,
FXOtobeconnectedtoPSTN/Telcoline/PABXextension.
FXStobeconnectedtoTelephoneline/FAX.
AfterallUTP,LAN,powerandtelephonecablesarepluggedin,youhavetofirstofallfindouttheIP
addressoftheLinksysPAP2sowewillbeabletoconfigureusingtheweb,bycarryingoutthe
followingsteps:
Press*repeatedlyonthephonekeypaduntilyouhearsomeonetalkingthroughyourphone.
Press110#tolistentotheIPaddressfortheLinksysPAP2configuration.
ThenextstepistoconfigureyourPCsothatyoucanconfigureLinksysPAP2throughtheweb.Allyou
havetodoismatchthefamilyIPaddresstoPAP2's,bydoingthefollowing:GotoStart,OpenControl
Panel,Networkconnections,localAreaConnection,InternetProtocol(TCP/IP)andProperties.Then
gotoWebLinksysPAP2fromyourPCthroughthisaddresshttp://ipaddresspap2/.
VoIPCookbook:36
Figure3.2:TheinitialmenuthatwillappearisthestatusofLinksysPAP2
ClickAdminLogin,whichisonthetoprighttobegintheconfigurationasanadministrator.
VoIPCookbook:37
Figure3.3:YoucandeterminewhetheryouwanttousedynamicorstaticIPaddress
TovieworchangetheIPaddressconfiguration,clickSystem.CheckwhethertheIPaddress,Gateway
andDNSputinplacearecorrect.Alternatively,setDHCPtoyessoLinksysPAP2willusetheIP
addressthatisobtainedautomatically.
VoIPCookbook:38
Figure3.4:Eachline(line1and2)hasitsownsettingsintheadministrationpanel
InLinksysPAP2wecansetuptwoSIPaccountsregisteredwiththeSIPProxy,witheachaccount
connectedtoaphone.Theaccountsettingscanbedoneinmenu"Line1"and"Line2".
VoIPCookbook:39
Figure3.4:Line2taboftheadministrationpanel
Fewimportantstepstodoinactivatinganaccountinbothmenus:
SetLineEnabletoyes.
Fillinyouraccountusingthefollowingparameters:
Proxy
UserID
Password
UseAuthID
voiprakyat.or.id
telephonenumbergivenbyVoipRakyat
thepasswordgivenbyvoiprakyat
no
IfyousetAuthIDtoyes,thenfillinAuthIDwiththetelephonenumbergivenbyVoIPRakyat.Dothe
sameprocessforyourotherSIPaccount,theoneregisteredwithPAP2Line2.Actuallytherearemany
VoIPCookbook:40
otherparametersthatcanbeconfigured,butforanormaloperation,itisnotnecessarytoconfigure
them.Soitissufficientforustousethedefaultconfigurationvalues.
Figure3.5:AnIPPhoneFigure3.6:IPPhonetypicallyhastwoRJ45ports
WhatIPPhonehasinsteadistheRJ45portforitsLANconnection(ethernetsocket).Asyoucanseeat
thebackofIPPhone(showninfigure3.6),bothportsareofRJ45,onetobeconnectedtoaLAN
whileanothertothecomputer.Thisallowsustousethephonewhileusingthecomputerforthe
internet.Howeverkeepinmindthatyourbandwidthmaynotbesufficientforboth.Soonlyusebothat
thesametimewhenyouthinkyouhaveenoughbandwidthtoensurethequalityofyourVoIP
communicationremainsgood.AnIPPhonecanusuallybeconfiguredthroughtheweb.
ThereareabundanttypesofIPPhoneinthemarket.Youcanfindthematthefollowinglink:
http://www.voipinfo.org/wiki/view/VOIP+Phones.
ThesortofIPPhoneweuseasanexampleisSPA941.ToobtainitsIPaddress,wehavetodothe
following:
ClickMenu(illustratedaspapericonbelowthemailbutton)
Clickthecursorsoitwillprovideadropdownmenu
Findnetwork
VoIPCookbook:41
ThereyouwillfindtheIPaddressofSPA941.
NextyouhavetoconfigureyourPCsothatyouwillbeabletoconfigureLinksysSPA941throughthe
web.GotoPC,matchtheIPaddresstothatofSPA941bychoosingStart,ControlPanel,Network
connections,LocalAreaconnection,InternetProtocol(TCP/IP)andProperties.
Figure3.7:ThefirstappearanceyouwillseeisthestatusofLinksysSPA941.
GotoLinksysSPA941webthroughhttp://ipadressspa941.
VoIPCookbook:42
Figure3.8:Choosewhichinternetconnectiontypeyouwanttohave
Inthesystemmenu,wecanconfigureourIPaddress,netmask,gatewayandDNSofSPA941.Ifyou
wishtohavetheIPAddressbedetectedautomaticallyusingtheinformationobtainedfromDHCP
server,youcanjustsetDHCPtoyes.
VoIPCookbook:43
Figure3.9:ByclickingonExt2tab,youcansetsomeimportantparametersofExt2line.
BylogginginasAdmin,wewillseethatSPA941hastwoexternallines:Ext1andExt2.Eachofthem
canbeconfiguredsoastoberegisteredtodifferentSIPproxy.
VoIPCookbook:44
Figure3.10:ByclickingonExt1tab,youcansetsomeimportantparametersofExt1line
TherearetwostepsneededtoactivateanaccountatmenuExt1orExt2:
SetLineEnabletoyes.
Fillinthethefollowingparameterswiththeinformationpertainingtoyouraccount:
Proxy
UserID
Password
UseAuthID
voiprakyat.or.id
thetelephonenumbergivenbyVoIPRakyat
thepasswordgivenbyVoIPRakyat
no
IfUseAuthIDissettoyes,thenfilltheinAuthIDwiththetelephonenumbergivenbyVoIP
Rakyat.DothesamefortheotherSIPaccountyouwanttoregistertoExt2ofLinksysSPA941.
VoIPCookbook:45
Figure3.11:Thephonetabofadministrationpanel
InLinksysSPA941,wearegiventhefacilitytoopenaspecificExtbyusingtheLineKeybuttononthe
rightside.FourLineKeybuttonsareavailable.OnemayprogramthesefourbuttonstwoforeachExt
Line.Todotheprogramming,youhavetobeanadmin,bycarryingoutthefollowingsteps:choosean
extension(either1or2)foreachLineKeyandshownumberandfillinitwiththenumberorUserID
givenbytheSIPProvider.
WiFi IPPhone
WiFiPhonescanbeusedforinternettelephonyconnectedtoIPPBXviaWiFiorHotSpot.Inother
words,thephonecanbeusedasanextensionofaPABXoraphonewhichisconnectedtoahotspot.
SomeoftheseWiFiPhonemayhavedualfunctionsGSMmodeandVoIPitallowsthepossibility
ofreceivingaGSMcallorVoIPcallthroughWiFimodeasanextensiontoanIPPBX.
VoIPCookbook:46
OperatingWiFiPhoneisnotdifficult.AllyouhavetodoareconfigureyourSIPaccountbyentering
thenameoftheserver,telephonenumberandpassword;searchinganyavailableWiFiaccesspoint;and
connecttoaWiFiAccessPointandgetanIPaddress.
NowthatyouunderstandwhatWiFiPhoneisandhowtooperatethem,wewillprovidesomeexample
onhowtoconfigureandoperateWiFiPhones.
LinksysWirelessGIPPhone
LinksyslaunchedaWirelessGIPPhoneadedicatedWiFiPhone.ItisnotaPDAnorordinary
cellphone(Seefigure3.12).IfyouhavetheWiFiPhoneproperlyconfigured,connectedtotheWireless
AccessPointandregisteredtoaVoIPSoftswitch,thenwhatshouldappearonthescreenofthephoneis
thenameoftheaccesspointandthetelephonenumberofthephone.Underthiscircumstance,theWiFi
Phoneisreadytobeusedforcalling.
Figure 3.12:
Wireless-G IP
Phone
Figure 3.13:
WiFi Phone can
be used for
VoIP call when
it is properly
configured
InLinksysWiFiPhonemainmenu,thereareatleasttwo(2)thingsyouhavetoconfiguresothatyour
phonewillfunctionwell.Firstly,thewirelesssettings,bywhichwecanscananyaccesspointwireless
frequencyandconnectourphonetotheaccesspointsowecanbeconnectedtotheinternet.Secondtly,
thePhoneSettings,allowsustoconfiguretheSIPserverthatweusetocall.Forthelatter,youneedto
fillintheinformationpertainingtophonenumbers,passwordsandtheserversused.Sinceweareusing
VoIPRakyatasanexample,theinformationshouldbethoseofVoIPRakyat.
VoIPCookbook:47
Figure3.14:
Throughthephone
menu,youcan
makedirect
configurationin
ordertomakeyour
phoneVoIPenabled
ConfiguringtheWiFiPhoneusingmenushowninthefigure3.14iseasy,butsincethereisnosoftware
thatcouldhelpuscapturethescreensforconfiguringthephone,weusethewebconfigurationinstead
forthepurposeofhelpingyouunderstandhowtoconfiguretheWiFiPhone.Thesameresultshould
otherwisebesimilartothatofdirectphoneconfiguration.IncontrasttoWiFiPhonethatiscombined
withPDAorGSM,LinksysWiFiPhonecanbeconfiguredusingtheweb,inadditiontofeature
allowingyoutodirectlymakeconfigurationusingthemenuavailableinthephonescreen.
Figure3.15:Enter
theusernameand
passwordtologin
theadministration
panelsothatyoucan
configurethephone
VoIPCookbook:48
Thewebwillappearaswhatisshownasfigure3.15.Itisthedisplaypromptingyoutoenteryouruser
nameandthepasswordrequiredtoauthenticateyouraccount.Thedefaultfortheusernameand
passwordisadminandadminrespectively.
Figure3.16:ThroughtheNetworkTaboftheadministrationpanel,
youcansethowyouwillobtainyourIPaddress
Onceyouhaveenteredtheusernameandpassword,youwillbebroughttotheadministrationpanel
wherebyyoucanconfiguretheIPaddress.Normally,inahotspotthatprovidesanyuserconnectingto
itwithfreeIPaddress,wejustneedtosettheconfigurationtoAutomaticConfigurationDHCP.In
thecasewheretheIPaddressisnotprovidedautomaticallybythehotspot,youhavetomanuallyenter
theinformationpertainingtotheIPaddress,subnetmask,gateway,primaryandsecondaryDNS.The
MACaddressoftheWiFiPhoneappearsbydefault.Onceyouhavefinishedenteringtheseinformation,
clickSaveSettingstosavethemintothememory.
VoIPCookbook:49
Figure3.17:ByclickingonthePhonebookmenu,
youcanAddnewphonenumbersordeleteexistingones
InthePhonebookmenu,wecanaddnewnumbersordeletetheonesalreadylistedthere.Wecanalso
includemultiplenumbersforeachperson.
VoIPCookbook:50
Figure3.18:SIPSettings
IntheSIPSettingstab,wecanconfiguretheIPaddressoftheSIPProxy,SIPPort(usually5060),the
IPaddressoftheSIPRegistrar(usuallythesameasthatofSIPProxy),RegistrarPort(alsousually
5060),andSIPaccountnumberconsistingoftelephonenumberandthepasswordrelated.AsforVoIP
RakyatSIPinformation,fillintheSIPProxyandSIPRegistrarwithvoiprakyat.or.id.
VoIPCookbook:51
Figure3.19:TheNATSettings
IntheNATSettingsmenu,youcanconfiguretheProxyaddressandProxyPort.TheProxyaddressfor
VoIPRakyatisvoiprakyat.or.id.AndtheProxyPortnormallyusedis5060.
VoIPCookbook:52
Figure3.20:TheSIPSDPSettingstab
InSIPSDPSettingstab,wecanconfigureseveralthingsrelatedtothetypeofCodec,packettime,
DTMFRelay,UDPPortandRTPPort.Theseparametersaregoodbydefault,sojustleavethemasis.
VoIPCookbook:53
Figure3.21:Byclickingonthewirelesstaboftheadministrationpanel,
youcanfindouttowhichhotspotthephoneisconnected
IntheWirelesssectionwecanseetowhichAccessPointtheWiFiPhoneisconnected.
VoIPCookbook:54
Figure3.22:ByclickingontheAdministrationtaboftheadministrationpanel,
youcanchangeyourpassword
Inadministrationsection,wecansettheadministrator'susernameandrelatedpasswordfortheWiFi
Phone.Thedefaultconfigurationforusernameandpasswordarebothadmin.
VoIPCookbook:55
HewlettPackardIpaq6395
PersonalDigitalAssistance(PDA)whichusesPocketPC(PPC)operatingsystem,suchasIpaq6395or
otherkindofIpaqhavingWiFicapability,canbeusedforVoIPcommunication.Oneofthesoftware
thatcanbeusedforthisPDAisSJPhonePPC,whichcanbedownloadedfrom
http://www.sjlabs.com/sjp.html.Alsoavailableinthissitearethemanualsnecessaryforoperatingthe
softphone.SJPhoneinstallationcanbedoneinthefollowingsteps:connectIpaqtoPCthroughthe
providedUSBcableandrunthesoftwareonPC,andSJPhonePPCwillbeautomaticallyinstalledin
Ipaq.
Figure3.23:Hewlett
PackardIpaq6395
ActivatingIpaq6395'sWirelessCapability
VoIPCookbook:56
InordertoaccessinternettelephonyusingPDAIpaq,weneedtoactivatethewirelessconnectivity
featureavailableinIpaq.ThroughIpaqWirelessmenu,presstheWiFibuttonsothewireless
connectivitybecomesactive.
Figure3.24:
ThroughiPAQ
WirelessSettings,
youcanenablethe
phone'sWiFi
feature
Ifallgoeswell,thecoloroftheWiFibuttonwillturngreen,asignwhichindicatesthatthedeviceis
properlyconnectedtothewirelessnetwork.
Figure3.25:
ThegreenWiFi
iconindicatesthat
you'reconnected
toawireless
network
Figure3.26:
Byclickingthe
Settingsiconnextto
theWiFiicon,you
canseetowhich
networkyourphone
isconnected
IfyouwanttomakefurtherconfigurationonhowyouusetheWiFiaccess,clicktheSettingsIcon,
whichwillbringyoutoamenushowingvariousaccesspointsmonitoredbyIpaq6395.Choosethe
accesspointtowhichyouwanttobeconnected.
VoIPCookbook:57
RunningSJPhone
Figure3.27:
Inordertorun
SJPhone,tapthe
icon
SJPhoneSoftwarecanbefoundasaprogramofPocketPC.Torunit,simplypressthebutton.Notethat
thetechniqueforoperatingSJPhonethroughPocketPCisnotsodifferentfromthatwhichrunsinon
PC.
Figure3.28:
Enteryour
accountnumber
andtherequired
passwordin
ordertoinitialize
theprofile
Figure3.29:The
appearanceof
SJPhonedialing
console
IftheSIPaccounthasbeenproperlyconfiguredinSJPhone,whatwillbeaskedfirstwhenyouactivate
SJPhoneistheaccountnumberandpasswordrequiredtoaccesssuchSIPaccount.SJPhonewill
appearlikewhatisshowninFigure3.29,withitsdialingkeypadandallthebuttonsneededfordialing
upandhangingup.
VoIPCookbook:58
Figure3.30:
Throughtheuser
informationtabof
SJPhonemenu,we
canenterourname,
emailandlocation.
Wecaneveninclude
commentsandour
image
Tapthemenubutton.Inmenu,wecanentertheinformationpertainingtotheuser,whichincludes
name,emailaddress,locationandevenanypicturewewanttouseasourimage.
Figure3.31:
Settingsofincoming
andoutgoingcalls,
andNATMapping
refresh
Tapthecalloptiontab.Throughthistab,youcanconfiguresomethingslike:
whetherwewanttoautomaticallyreceiveallincomingcalls.Thismenuisinfactveryusefulfor
thesortofIpaqwithsmallscreenthatmakesusdifficulttoreceiveVoIPcallsmanually.
Whetherwewanttobeleftundisturbed,ignoringallincomingcalls.
TheIPaddressusedforoutgoingcalls.
LimitingtheCallerIDinuse.
VoIPCookbook:59
Ingeneral,theseparametersdonotneedtobechanged,possiblyexceptfortheAutomaticallyAccept
IncomingCallstocompensateforthesmallPDAscreen.
Figure3.32:
Undertheprofilestab,
youcaneithermake
newprofile;edit,use,
initialize,renameor
deleteexistingprofile
Intheprofiledialog,wecanmakedetailconfigurationforeachaccount.Basically,aprofiledefinesan
account.,whichcanbeeitheraSIPaccountorH.323account.Thelatterisatechnologyonceusedby
manyVoIPproviders.TheformerisatechnologyusedinVoIPRakyat.Thereareseveraloptions
availableintheprofilemenu:
Newtocreatenewprofile
Edittoeditexistingprofile
Deletetodeleteexistingprofile
Usetouseexistingprofile
Initializetoinitializeaprofile
Renametochangethenameofexistingprofile
Figure3.33:
Enterthenameof
theprofile,thetype
ofinterfaceituses,
andthenameofthe
profilefile
VoIPCookbook:60
Wheneditingaprofileforthefirsttime,wewillbebroughttothegeneraltaboftheprofile.Herewe
candefinethenameoftheprofile,thetypeandnameoftheprofilefile.ForVoIPRakyat,theinterface
typeweuseisSIPProxy.
Figure3.34
Throughthe
initializationtab,
configurewhat
needstobe
inquired,savedor
required
Ininitializationtab,wecansettheuserdatainitializationprocess,includingphonenumber/account,
passwordandCallerID,whetheruserswillbeinquired,thedatapertainingtotheseparametersneedto
besavedorrequired.Itisrecommendedthatyouusethedefaultsetting,leavingthethesettingsasis.
Figure3.35:
Inordertoenable
SIPProxy,enterthe
requiredinformation
intheSIPProxytab
VoIPCookbook:61
Ofallmenusrequiredforconfiguringaprofile,SIPProxyisperhapsthemostimportant.The
informationenteredtherewilldeterminewhethertheSIPsoftphonecanactuallybeusedornot.The
informationyouhavetoenterareasthefollowing:
ProxyDomainisyourSIPProxyserver.ForVoIPRakyat,theproxydomainisvoiprakyat.or.id.
TheProxyDomainPortisusually5060.
UserDomainforVoIPRakyatisvoiprakyat.or.id.
ClickRegisterwithproxy
Figure3.36:
Additionalsettings
availableinthe
Advancedtab
InAdvancedtab,wecanconfiguremoresophisticatedfeaturessuchasvoicemailnumber,removing
fancycharactersfromphonenumbers,acceptredirectionrepliesetc.However,tooperateSJPhoneina
standardmode,wedon'thavetochangetheseparameters.
Figure3.37:
SettingsofDTMF
tab
VoIPCookbook:62
InDialToneMultiFrequency(DTMF),wecanchooseseveralthingsrelatedtoDTMF:
DTMFissentasvoiceortextdatausingRFC2833.
Thedurationofthetone.Thedefaultvalueusedis270ms.
TypeofRealTimeProtocolusedinRFC2833is101.
ThedefaultDTMFsignalvolumeis10dBm0
Thepausedurationduringwhichthesignalissentininbandmode.Thedefaultvalueis100
ms.
Figure3.38:
STUNSettings
TheSTUNtaballowsustodeterminewhichserverwillbeusedtohelpSIPfindtheIPaddressweuse.
ThedefaultSTUNserverusedisstun.softjoys.com,withport3478.SoifyouwanttoapplySTUNto
VoIPRakyat,youcanuseUDPPort3478and3479.
Figure3.39:
Theappearanceof
theconsoleshowing
successfulSIP
registration
VoIPCookbook:63
Ifitissuccessfullyregistered,thenthedisplayofthescreenwillsaySIP:registeredasnumber@server
SIP,withthehostnamealsoshownonthescreen.Underthiscircumstance,SJPhoneisreadytobe
used.WecanplaceacallthewayweusearegularcellphonewithaPDA.
SJPhoneFeatures
Figure3.40:
Tapthephonebook
iconinorderto
savecontact
numbersandcall
them
ThereareseveralfeaturesprovidedbySJPhonetohelpusersinusingthephone,oneofthemisthe
phonebookicon(looklikeanopenbook),whichislocatedatclosetothebottomofthescreen.Through
thisoption,wecanenterthenamesandnumberofourfriends.
Figure3.41:
Thephonebookis
stillempty,with
theAddiconthe
onlyavailable
optioninthe
phonebooktab
VoIPCookbook:64
Toaddacontact,simplytapAdd,whichisavailableinPhonebooktab.
Figure3.42:
Enterthe
information
pertainingtoa
contact
Withtherespondentdialogpropertiesopen,weneedtoenterthename,nickname(optional),emailand
phonenumber.Youcanalsocommentontheuser,perhapsjustincaseyouwillforgetwhothisperson
is.
UsingSJPhonetoplacecallthroughIpaq6395
Figure3.43:
Dialsomenumbersin
ordertoplaceacall
VoIPCookbook:65
Figure3.44:
Acallis
successfully
connected
ToplaceacallusingSJPhoneinIpaq6395isnotdifficult.Allwehavetodoistoenterthedestination
phonenumberandpressthedialkeylocatedonthetopright.Ifthecallisconnected,amessagesaying
so,thedurationtimeoftheconversationandthecodecinusewillappearonthescreen.
Figure3.45:
Bytappingonthe
outgoingcallicon,
youcanseethe
listofthenumbers
youhavecalled
andtheduration
ofthe
conversation
OutgoingCallStatisticcanbeviewedbytappingonthephoneiconwithatriangulararrowpointing
downward.
VoIPCookbook:66
Figure3.46:
Bytappingonthe
incomingcallicon,
youcanseethelist
ofthenumbers
dialingyour
numberandthe
durationofthe
conversation
Incomingcallstatisticscanbeaccessedonthetabavailableatthebottomofthescreen,withthetab
appearingasaphonewithatriangulararrowpointingtowardthephone.
Figure3.47:
Bytappingonthe
missedcallicon,you
canseethelistof
missedcalls
MissedCallstatisticscanbeviewedonthemenuavailableatthebottomofthescreen,withtheicon
appearingasaphonewithastopsignbelowit.
VoIPCookbook:67
Nokia
Aspartofcellularmajorindustry,Nokiaseemstohaverecognizedthatinternettelephonywillbe
instrumentalinthefuture.AssuchNokiamakesitpossibleforSymbianoperatingsystemtooperatein
Nokiahandphone,providingcustomerswithacellularthatcanbereadilyusedforinternettelephony.In
theexample,wewilluseseveralNokiahandphone,suchas,NokiaE61,NokiaE71andNokiaN80.The
formerismoreofPDAtypecellularphonewhilethelatterissmallintermsofdimension.NokiaE61,
NokiaE71andNokiaN80areWiFiPhone.
TheWiFiphoneconfigurationforallNokiaissomewhatsimilar,withminordifferencesintermsof
menuappearance.Sogenerally,thosewhoareusedtoSymbianshouldnotencountersignificant
challengesinturningtothesephones.
Figure3.48:NokiaN80
VoIPCookbook:68
Figure3.49:NokiaE61
NokiaWirelessConfiguration
Figure3.50:
Nokia'sconsole
Nokia'sconsoledisplaylookslikewhatisshowninFigure3.51.Therearethingstobeconfiguredso
thatNokiacanbeconnectedtobothWiFiandVoIP:
EnableWiFiandcreateaprofileofanaccesspointthatcanbeaccessed.
CreateSIPaccount.
CreateaProfilefrominternettelephonyfacility.
VoIPCookbook:69
Clicktheglobeicontoopenthemenu.
Figure3.51:Byclicking
themenuicon,wecan
selectavarietyofoptions .
Withthemenuopen,selecttools.Throughthisoption,wecanconfigureWiFi,SIP,internetphoneand
othersettings.
Figure3.52:
Therearemanyoptions
availableinToolsmenu.
WiththeToolsiconselected,selectSettingsinordertoaccessconnectionmenuallowingusto
configureWiFi,InternetTelephoneandSIPsettings.
VoIPCookbook:70
Figure3.53:
UndermenuSettings,
configuretheConnection
InSettings,thereareseveraloptionswecanchoose:Phone,Call,Connection,DateandTimeand
Security.ToconfigureWiFiAccessPoint,SIPSettings,andinternettelephony,weneedtoconfigure
usingtheConnectionsubmenu.
Figure3.54:
Optionsavailableunder
Connection
IntheConnectionmenuthereareafewmoreoptions.Weneedtoconfigureonlythreeofthem:Access
Points,SIPSettingsandInternetTelephonySettings.SelectAccesspoints.
Figure3.57:
Thereisnoaccesspoint
yetshownonthescreen
VoIPCookbook:71
WiththeAccesspointmenuopen,wecanaddAccessPoint,byselectingtheOptionsmenulocatedat
thebottomleftfthedisplay.
Figure3.58:
Youcaneithermake
newaccesspointoredit
ordeleteexistingaccess
points.
ThereareseveraloptionsavailableintheAccessPointsmenu:Edit,NewAccessPoint,Help,Delete
andExit.ToaddanewAccessPoint,selectNewAccessPoint,whichwillbringtwomoreoptions:Use
defaultsettingsandUseexistingsettings.Assumingthatthisisthefirsttimeyou'reusingthephone,
selectUsedefaultsettings.
Figure3.59:
Creatinganaccesspoint
profile
ForcreatinganAccessPointprofile,weneedtosettheConnectionname,typeofconnection(Data
bearer),andthenameofWLANnetwork.Fordatabearer,chooseWirelessLAN.
VoIPCookbook:72
Figure3.60:
Youcaneitherenterthe
networkinformationyou
alreadyknoworsearch
foranynetworksreached
byyourcellular
Ifyouknowthenameofthenetwork,enteritmanually,byselectingEntermanually.Otherwise,letthe
phonefindanyavailablenetwork,byselectingSearchfornetwork.
SIPServerandAccountConfigurationinNokiaE61
Figure3.61:
Youcandothe
configurationofSIPserver
andaccountbyselecting
Options
ThroughSIPSettings,wecanconfigureSIPaccountsthatwillbeusedforcalling.Thesettingsisdone
throughOptionsmenuinSIPSetting.
VoIPCookbook:73
Figure3.62:
SettingsDemovoip
Profile.
TherearesomeparametersofSIPSettingsthatneedtobeconfiguredcorrectly:
CreateanameforProfilename.
ChooseIETFforServiceProfile.
FillDefaultAccessPointwithinformationofAccessPointprofileweusetoconnecttothe
internetnetworkthroughWiFi.
MakesurethatyoufillPublicusernameparameterwiththeproperformatofSIPnumberyou
use.Forexample,23123@voiprakyat.or.idor2002@192.168.0.2.Theprefixsipwillbeadded
automaticallyincasethatyouforgettoincludeit.
Figure3.63:
SIPProfileinSIPSettings
inNokiaE61
Nextweneedtosetthefollowingparameters:
SetUsecompressionparametertoNo.
SetRegistrationparemetertoWhenneededsothatNokiawillpromptuswhetherwewantto
connecttoaSIPsoftswitcheachtimewewilluseSIPPhone.
SetUseSecurityparametertoNo.
VoIPCookbook:74
Figure3.64:
Proxyserversettings
ThroughtheProxyServerAddressmenu,weneedtoconfigurethefollowing:
ProxyServerAddress.
Realmforsomereason,itisbesttofillthisparameterwithatelephonenumbersimilartoour
username.InAsteriskIPPBX,thedefaultrealmisasterisk.
UsernametelephonenumberorSIPusername.
Passwordleavethisblank.
SetallowlooseroutingtoYes.
FillinTransportTypewithUDP.
FillinPortwith5060.
Figure3.65:
Regist.serversettings
InRegistrarServer,weneedtoconfigurethefollowingparameters:
FillinRegistrarServerAddresswithhostnameorIPaddressofourSIPserver.ForVoIP
Rakyat,entervoiprakyat.or.id.
FillinRealmwiththetelephonenumberorusername.
FillinUsernamewithSIPtelephonenumber.
Leavepasswordblank
VoIPCookbook:75
InternetTelephoneConfigurationinNokia
Figure3.66:
InternetTelephony
settings
InInternetTelephonySettings,wecancreateaprofileofInternettelephonyfacilitythatwillbeused
usingNokia.Tosettheprofile,selectOptionsoftheInternetTelephonySettings.
Figure3.67:
Makesuretheprofile
chosenistobeusedasa
defaultprofile
InInternetTelephonyProfileSettings,weneedtoincludeonlytheprofilenameandSIPprofilethat
willbeusedforInternettelephony.Becarefulwhenyou'redoingso.Makesurethattheprofileselected
istobeusedasadefaultprofile,otherwiseourcallwillberejectedwhenweattempttodialusingour
cellulartotheVoIPnumber.AllthisordealisunnecessaryifwehavejustoneSIPaccount.
VoIPCookbook:76
Figure3.68:
Selectingaprofile
TheSIPProfileselectionwillbecarriedoutmanuallybyselectingavarietyofSIPProfileswehave
createdthroughSIPSettings.
RegisteringtoVoIPSoftswitch
Figure3.69:
ConnectivitySettings
ForestablishingconnectiontoVoIP,selectInternettel.(shownasaglobeiconwithyellowphone).This
isassumingthatyouhaveproperlyconfiguredInternetTelephonysettings.UnlikeNokiaE61,Nokia
N80connectstoVoIPthroughoptionavailableinafolderlabeledInternet.Gointothefolderand
chooseInternetTelephone.
VoIPCookbook:77
Figure3.70:Internet
telephonysettings
InInternettelephony(shownasInternettel.),wewillbeprovidedwithtwoparameters:
PreferredProfile,thenameofInternetTelephonyProfileweuse.
RegistrationStatus,theregistrationstatusofSIPaccountwesetinSIPSettings.
Figure3.71:
Internettelephonysettings
IfwechooseWhenneededintheRegistrationparameterinSIPSettings,thestatusofinitial
conditionofinternettelephonysetting,whenInternettelephonyisactive,isNotregistered.
Figure3.72:
EnableWLANconnection
inofflinemodesoNokia
E61canbeconnectedtoa
WiFinetwork
VoIPCookbook:78
IfweattempttochangethestatusfromNotRegisteredtoRegistered,whatNokiawillfirstlytryto
establishconnectiontotheAccessPointwhichwehaveconfiguredinSIPSettings.WhenNokiaasks
whetheryouwanttocreateWLANconnectioninofflinemode,selectYes.Thisselectionwillconnect
NokiaE61toaWiFinetwork.
Offlinemodecansomewhatbeproblematic,becauseifweareinofflinemode,itmeansthatalthough
weareregisteredwiththeSIPserver,peoplearestillunabletocontactus.Tomakesurethatwecanbe
contactedviaGSM,weneedtoactivateNokiasoitbecomesonlinemode.Onlinemodewillbe
possibleonlyifweareusingSIMcardinthephoneandareconnectedtoacellularnetwork.Inonline
mode,otheruserswillbeabletocontactusthroughbothVoIPorGSM.
Figure3.73:
Aregistrationattemptin
progress
OnceconnectedtoaWiFinetwork,wehavetowaitforawhiletoletNokiaregisteritselfwiththe
Softswitch.
Figure3.74:
Theregistrationis
completed
Ifregistrationwiththeinternettelephoneiscompleted,thereshouldbeanotificationsayingso,as
showninfigure3.73.SuchnotificationindicatesNokiacannowbeusedforinternettelephony.
VoIPCookbook:79
CallingusingInternetTelephoneinNokiaE61
Figure3.75:
InitialdisplayofNokia
E61
PlacingacallusinginternettelephoneinNokiaissimilartohowwecallusingotherphone:Wejust
needtotypethephonenumbertowhichwewantdial.
Figure3.76:
Oncethenumberis
dialed,weneedtochoose
thetypeofcall.
ThenNokiawillaskwhetherthecallisofVoicecall(GSM),videocallorinternetcall.SelectInternet
Calltoplaceacallusinginternettelephony.IfwechooseVoicecall,thenthemodeofcommunication
usedtoconnectourcallisofGSM.
VoIPCookbook:80
Figure3.77:
Thephoneiconwitha
smallglobenexttoit
indicatesthatthecallis
established
Whenthecallisestablished,wewillgetanotificationonthescreenthatourtelephonenumberis
connectedtothedestinationnumber.
Figure3.78:
Youcaneithermutethe
sound,activatehandset,
endactivecall,holdthe
]call,makethecallopen
activestandbyandplace
newcall
Todisconnectacall,simplyselectEndactivecall.
VoIPCookbook:81
VoIPCookbook:82
ADSLModemConfiguration
Figure3.80:TheBasicSetupsubtabundertheSetupTabofthemodemadministrationpanel
Afterenteringtheadministratorpasswordandusername(defaultisadminforboth),wewillbedirected
tothesetuppageofWAG54GP2LinksysADSLModem.Throughthispageyoucanconfigureseveral
thingssuchas:
ConfiguringtheconnectiontotheInternet,typeofmodulationused,encapsulation,
multiplexingtechniquesused,VCIandVPIvalueoftheADSLconnection.
ConfiguringPPP,usernameandpassword
DNSProxyServer
VoIPCookbook:83
Figure3.81:Thestatustabofthemodemadministrationpanel
Thesetuppagealsoprovidesinformationongateway,connectivityconnectivityconditioninPVC
status,andinternetconnectivityconditionincludingtheIPaddress,Subnetmask,Defaultgateway,DNS
andfacilityusedtoconnectordisconnectaconnectivity.
VoIPCookbook:84
Figure3.82:TheWirelesstaboftheadministrationpanel
InadditionwecanalsoconfigureavarietyoffacilitiesavailableinLinksysWAG54GP2ADSLRouter
throughtheweb:
Wireless
Security
AccessRestrictions
Application&Gaming
Administrator
Eachofthesehassubmenu,whichwewillnotexplainanyfurther,aswewillfocusmoreontheVoIP
featureofthemodem.
VoIPCookbook:85
VoIPConfigurationinLinksysWAG54GP2
Figure3.83:TheSystemtabofthemodemadministrationpanel
ThemenuforconfiguringVoIPonWAG54GP2canbefoundinitsVoicemenu.Ingeneral,howto
configurethedeviceisnotdifferentfromtheconfigurationotherLinksysequipments,withthe
followingsteps:
Usermodeisprimarilyusedtoviewanyexistingconfiguration.
Adminmodeismainlyusedtochangetheconfiguration.
InordertosettheSIPaccount,weneedtochangethebasicviewtoadvancedviewintheAdminmode.
VoIPCookbook:86
TheinformationrequiredtosettheSIPaccountareasfollows:
Username/telephonenumber.
Password.
SIPServeraddress.
Figure3.84:TheInfotabofthemodemadministrationpanel
ItisrecommendedthatyoulookintotheInfosubmenuavailableinVoicemenu.Whatyouhavetolook
inparticularistheLinestatus,specificallytheregistrationstateparameter.Onceeverythingisproperly
configured,ensurethatwhatisstatedintheRegistrationStateisRegistered.
VoIPCookbook:87
Figure3.85:TheSystemtabofthemodemadministrationpanel
SystemconfigurationuseswebfromVoIPLinksysWAG54GP2throughaspecificport,with1880as
itsdefaultvalue.Thisportcanbeenabledordisabledthroughsystemmenu.Don'tforgettoclickSave
Settingstostoretheconfigurationsettings.
VoIPCookbook:88
Figure3.86:TheInfosubtabofVoicetabofthemodemadministrationpanel
InAdvancedView,wewillobtainmoreinformation.WhatweneedtoaccessisLine1andLine2
menusoastoconfigureSIPaccountinSIPsoftswitchused.Otherparametersinothermenubeside
Line1andLine2neednottobechanged.
VoIPCookbook:89
Figure3.87:TheSystemsubtaboftheVoicetabofthemodemadministrationpanel
Insystemmenu,ifnecessary,wecanincludePrimaryandSecondaryDNSparameters.
VoIPCookbook:90
Figure3.88:TheSIPsubtabofVoicetabofthemodemadministrationpanel
ThroughtheSIPmenuwecanconfiguretheports,payload,CODEC,etc.Basically,theseparameters
neednottobechanged.Wecanstilluseitsstandardparameterstoachievegoodresults.
VoIPCookbook:91
Figure3.89:Line1subtaboftheVoicetabofthemodemadministrationpanel
InLinemenuparameter,wecansetSIPaccountthatisusedtoregisterwithVoIPsoftswitch.The
parameterswehavetosetareasfollows:
LineEnablesettoYessothelinebecomesactive.
Proxyfillinwithname/hostname/IPaddressofthesoftswitchtobeused.
DisplayNamefillinwithVoIPphonenumber.
UserIDfillwithVoIPphonenumber.
PasswordfillwithVoIPpassword.
UseAuthparameterusuallyissettoNo.IfitissettoYes,weneedtofillintheAudthIDparameter
withtheVoIPtelephonenumber.ThesamesettingsalsoappliestoLine2.
VoIPCookbook:92
VoIPCookbook:93
Figure 4.1: You can get a free phone number from IPKall
AwebsitethatprovidesWashingtonStatetelephonenumberforfreeisIPKallhttp://www.ipkall.com,
withthenumberhaving+1prefix,theconventionalcountrycodeforUnitedStatesofAmerica.Itis
VoIPCookbook:94
interestingtonotethatthisnumber,althoughavailableasavirtualnumber,canactuallybecalledfrom
otherPSTNnumberindifferentcountries,witheachcountry'sinternationalratesappliedtothecall.To
beabletoenablethenumber,youneedtohaveaSIPaccountfromaSIPproviderorusetheoneyou
havecreatedinVoIPRakyat.
Figure4.2:Youcanlogonusinganexistingaccount,orcreateanewaccountonthespot
VoIPCookbook:95
OncewehaveaSIPaccount,thenextstepwehavetodoissignuptowww.ipkall.cominordertoget
WashingtonState'stelephonenumber.Inthesignuppane,chooseanyofthefollowingtheareacode:
206,253,360,and425.Whichevernumberyouchoose,enteradditionalinformationontheSIPphone
numbergivenbyaSIPProvider(inourcase,it'sthenumbergivenbyVoIPRakyat),SIPProxy
(voiprakyat.or.id),ouremailaddressforconfirmingtheaccountwearecreating,andthepasswordfor
makingchangesinIPKallaccount.TypeintheCaptchagraphicalwords.Afterallparametersarefilled
correctly,clickSubmittoproceed.
Normally,wehavetowaitforaboutanhourtoreceivetheconfirmationsentthroughemail.Toactivate
yourIPKallaccount,clicktheURLobtainedfromtheemail.Withtheaccountconfirmed,younow
havetheStateofWashingtonphonenumberwithwhichyoucanreceivecallsfromotherPSTNacross
theworldthroughyourSIPaccount.
VoIPCookbook:96
VoIPCookbook:97
The latter, e164.org, is the informal level domain provided by communities, the sort that are concerned with how
people can minimize telecommunication cost. This is the domain we will use for our VoIP communication. We
can register in http://www.e164.org to get an account that can be used to obtain a phone number and register the
number.
Forsmoothinterconnectionprocessbetweenasterisksoftswitchande164.org,weneedtoconfigure
/etc/asterisk/enum.confsotheAsterisksoftswitchwillbeabletorecognizethenumberslistedin
e164.orgdomain,byactivatingthefollowingparameters:
search=>enum.voiprakyat.or.id
VoIPCookbook:98
search=>e164.org
search=>e164.arpa
Oncetheseparametersareactivated,thesoftswitchwillautomaticallyseekthePSTNnumbers
availableine164.organde164.arpa.SinceweareusingVoIPRakyatasanexampleinthisbook,we
willreferyoutoenum.voiprakyat.or.id,anENUMdevelopedinIndonesia.Youmaylaterchangethe
parameterstoanyENUMproviderthatissuitabletoyourneedsorevendevelopyourownENUM
server,asrunningonerequiresonlyaDNSserver.
Entriesthatneedstobeincorporatedinto/etc/asterisk/enum.confare:
search=>enum.voiprakyat.or.id
VoIPCookbook:99
Figure 4.5: Before you can be connected to e164.org, you have to sign up first
Throughtheregistrationpageofe164.orghttps://www.e164.org/signup.php,entertherequired
informationinordertoobtainatelephonenumberorregisteratelephonenumber.Theinformationyou
havetoenterareusername,password,youremailaddress,yourtimezoneandVerifyingcode.Then
clickAddmetocompletetheregistration.Iftheregistrationissuccessful,youwillbeabletouse
yournewlycreatedaccounttogetatelephonenumberassignedbye164.orgorregisteryours.
Toobtainatelephonenumberorregisteryournumber,youneedtologontoe164.org.Onceyou're
loggedin,therearesomeoptionsyoucanchoosefrom.
VoIPCookbook:100
Accesstohttps://www.e164.org/freenumadd.phpwillbringyoutoadefaultwindowwherebyyoucan
addavirtualphonenumbertoe164.org.Youwillbeassignedaninternettelephonenumberwith
countrycode+822frome164.org.
Butifyou'reinterestedinaddingarealPSTNnumber,accesstohttps://www.e164.org/pstnadd.phpwill
addPSTNnumberinsteadandregisterthenumberyouuseinyourcountry.Whenregistering,youneed
tohavethePSTNnumberactivease164willdialthenumbertoauthenticatethatitisreal.Onceyou
receivedtheactivationcode,gobacktoe164.orgwebsitetoactivatethenumberyouhavejust
VoIPCookbook:101
registered.
ToregisteraPSTNnumber,youneedtoenterinformationsuchascountry,areacode,telephone
number,andSIPaccountthatwillbecalledwhensomeoneplacesacallthroughVoIPnetworkusing
thePSTNnumber.SotheVoIPnetworkwillnotreachyourrealPSTNnumber,butyourSIPaccount
usingthisPSTNnumber.YourSIPphonewillring,butnotyourPSTNphone.
Onceallinformationareenteredcorrectly,clickAddmetoregisterourPSTNnumbersoitcanbe
calledthroughinternettelephonynetwork.
Figure 4.8: You can obtain +822 number assigned by e164.org via https://www.e164.org/freenumadd.php
Thesecondoptionismucheasiertodo:simplyrequestaVoIPnumberwithcountrycode+882via
https://www.e164.org/freenumadd.php.ThisnumbercannotbereachedbyPSTNnumbersbutwillbe
VoIPCookbook:102
reachedonlythroughVoIPnetwork.Toobtaina+822number,enteryourSIP,IAX2orH.323number
intotheblanks.SincetheaccountyoucreatedinVoIPRakyatisofSIP,chooseSIPinthedropdown
menu.Onceallinformationareenteredproperly,clickAddnumberinordertoobtainthecountrycode
+882.
Themostinterestingpartofe164.orgisitsabilitytoobtainablockofnumbersvia
https://www.e164.org/hostadd.phpwithareacode+82299,insteadofhavingthesenumbersincluded
onebyone.Todothis,clickServerAdd.ViaaddaServerEntry,choosethetypeofprotocolusedby
theserverandenterthenameoftheserver.TheservershouldhaveaPublicIPaddress,nottheone
VoIPCookbook:103
usedinternally.Onceallinformationareenteredproperly,clickAddServer.ThiswillmakeyourSIP
serverberecognizedbye164.org,with+882beingthecountrycodeassignedtotheserver.Thisalso
impliesthatyouwillhaveabunchofnumbersthatyoucanfurtherallocatetotheuserswhoare
registeredwithyourserver.
IfyouwanttointroduceaPSTNorcellularnumberwithaspecificcountrycodetothisVoIPnetwork,
youcandosothroughmenuavailableathttp://www.e164.org/pstnadd.php.Whatyouhavetoenteris
thecountryofthePSTNorcellularnumber,areacode,localtelephonenumber,andtheSIPaccount
VoIPCookbook:104
registeredwithaSIPproviderwherethePSTNnumbersarethoseofSIP.
Whenregisteringthephonenumber,youneedtohavethephonereadytoreceivecalls,aswithin15
minutesafteryouregisteredit,e164.orgwilldialyournumbertoprovideyouwithaPersonal
IdentificationNumber(PIN)requiredtoactivatetheaccount.Writethemdownsomewheresoyoudon't
havetomemorizethem.GobacktotheWebandactivateyouraccountusingthepinthathasjustbeen
giventoyou.Oncethisiscompleted,yourPSTN(orcellular)numbercanberecognizedintheVoIP
network,withallthenumbersregisteredwiththenetworkcapableofdialingyourSIPaccountusing
yourPSTNnumbers.
VoIPCookbook:105
Figure4.11:Indonesia'sEnumdirectorydevelopedbyVoIPRakyat
VoIPCookbook:106
Figure4.12:ThesignuppageofVoIPRakyatENUM
ThroughVoIPRakyat(VR)ENUMregistrationpage,youcanregisteryourselfasamember.The
informationyouneedtofillinisusername,emailaddress,andpassword.
VoIPCookbook:107
Scrollthepagedown.Fillinalltheinformationrequired:Name,Birthday,Address,City,
State/Province,countryandmobilephonenumber.Forsecurityreason,VRwillverifythatyouarea
realperson,andnotaspammingmachine.Usetheprovidedsecuritycodetofillintheblanks.
Onceallinformationareenteredcorrectly,clickSubmittoproceed.
VoIPCookbook:108
Oncetheregistrationiscompleted,ENUMVoIPRakyatwillsendusanemailcontainingtheusername
andpasswordwesetwhenregisteringtoENUMVoIPRakyat.
VoIPCookbook:109
Figure 4.15: In order to access ENUM VoIP Rakyat, you need to enter your username and password
Nowthatyourusernamehasbeenregistered,logonusingitandthepasswordprovided.Clickloginto
proceed.
VoIPCookbook:110
Figure 4.16: ENUM VoIP Rakyat main Window after you logged in
InENUMVoIPRakyat,ontheleftofthepage,therearesomeusefuloptionsyoucanchoosefrom:
PreferencesandPhoneNumber.First,clickPreferences.
VoIPCookbook:111
Figure 4.17: By clicking on Preferences, you can edit your login and personal information
WiththePreferencesoptionclicked,youcanchecktheinformationyouenteredearlierwhenyoudid
theregistration,andmakenecessarychanges.
VoIPCookbook:112
Figure 4.18: By clicking on Phone number, you can add your phone number
ClickPhonenumber.ClickAddphonenumber.
VoIPCookbook:113
Figure 4.19: By clicking on Add Phone number, you will be able to register your phone
Theinformationyouneedtoenteriscountrycode,areacodeandlocalnumber.Oncetheseinformation
areincluded,clickAddsothatthenumberwillbeaddedtoVoIPRakyatENUMdomain.
VoIPCookbook:114
Justlikee164.org,ENUMVoIPRakyatisalsodesignedtovalidatethenumberbeingregistered.Itwill
callyournumberandtellyouthecoderequiredtoauthenticatethenumber.Forthistohappen,itis
importantthatthenumberyouprovidedearlier,whenyoudidyourregistration,isneitherofFax
machinenorofPABX.OtherwiseyouwillnotbeableobtainthecodegivenbyVoIPRakyat.
VoIPCookbook:115
Figure 4.21: With VoIP Discount, you can make free or inexpensive calls over the Internet
Bybuyingacertainamountofcredit,wecanobtainatelephonenumberthatcanbereachedbyPSTN
telephoneusingthenumbersofothercountriessuchasCzechRepublic,French,German,Holland,
SwissandEngland.Withthiscredit,youwillbeabletomakerelativelyinexpensivecallstoPSTNor
cellular.Theratesvary,dependingonwhereyouareandthecountriesfromwhichthenumberyou're
attemptingtocalloriginates.Fortherates,gotohttp://www.voipdiscount.com/en/rates.html
VoIPCookbook:116
TouseVoIPDiscount,youneedto:
makesurethatyourcomputermeetstherequirementsforusingthem
obtainVoIPDiscountsoftwareinhttp://www.voipdiscount.com/getfrommirror.php?
file=voipdiscount&lang=en
InstallthesoftwareinyourPC
enterusernameandpasswordifyouuseVoIPDiscountforthefirsttime.
Onceallthesestepsarecompleted,youwillbeabletodialanynumberthewayyoudialusingyour
PSTNnumber,withcountrycode,areacodeandtelephonenumber.
IfyouuseSIPIPPhoneorATA,youneedtodothefollowingconfiguration:
SIPport:5060
Registrar:sip.voipdiscount.com
Proxyserver:sip.voipdiscount.com
Outboundproxyserver:leaveempty
Accountname:yourVoipDiscountusername
Password:yourVoipDiscountpassword
Displayname/number:yourVoipDiscountusernameorvoipnumber
Stunserver(option):stun.voipdiscount.com
VoIPCookbook:117
VoIP Cheap
SimilartoVoIPDiscount,VoIPCheap(http://www.voipcheap.com/en/index.html)alsoprovidesfreeor
relativelyinexpensivecallsovertheinternet.ThestepstouseitissomewhatsimilartoVoIPDiscount,
exceptthatyouneedtodownloadthesoftwarefromhttp://www.voipcheap.com/getfrommirror.php?
file=voipcheapCOM&lang=en.ForVoIPCheapcallingrate,goto
http://www.voipcheap.com/en/rates.html
Figure 4.22: With VoIP Cheap, you can make free or inexpensive calls over the Internet
IfyouuseSIPIPPhoneorATA,youneedtodothefollowingconfiguration:
SIPport:5060
VoIPCookbook:118
Registrar:sip.VoipCheap.com
Proxyserver:sip.VoipCheap.com
Outboundproxyserver:leaveempty
Accountname:yourVoipCheapusername
Password:yourVoipCheappassword
Displayname/number:yourVoipCheapusernameorvoipnumber
Stunserver(option):stun.VoipCheap.com
Inadditiontoprovidingfreeorinexpensivecallservice,VoIPCheap,unlikeVoIPDiscount,also
providesinexpensiveSMSservice,whichisavailableathttp://www.voipcheap.com/en/sms.html
VoIPCookbook:119
Thenumberofoutboundconnectionsandtheirtype(Analog,ISDM,T1,VoIP).
Thenumberofinternalandexternalconcurrentcalls(theratiobetweencalls).
Thetypeofphonethatwillbeused(Analog,SIP,H.323,MGCP).
Thetypeofcodecthatwillbeused.
Whethertranscodingprocesswillbenecessary.
Howreliablethesystemis.
HowmanyAsteriskmachinethatwillbeplaced.
Theconditionofyourcomputernetworkintermsofprocessingspeed,QualityofService
(QoS),VLAN,andPoweroverEthernet.
Ingeneral,afasterprocessorandthebiggertheRAM,themoreconcurrentcallstheservercan
facilitate.SinceAsteriskseemstotheoreticallyrequirearound30MHzofCPUresourcesforevery
activechannel,a266MHzCPU,forexample,shouldideallybeabletofacilitateabout8concurrent
calls,withtheassumptionthattheCodecbeingusedisG.711.Ofcourse,inordertobecomean
operator,youneedtohaveamuchmoresophisticatedserverwithfasterCPUandhigherRAM.Butin
ordertounderstandwhatyoureallyneed,youcanlookintoavarietyofexamplesofhardware
VoIPCookbook:120
configurationsandtheirmaximalcapability,whichareavailableathttp://www.voipinfo.org.Through
thissite,youwillalsofindthescriptsrequiredtosimulateacallandputsomeloadonthesystem.
Basedontheseconsiderations,youwillknowhowmuchmoneyyoureallyneedtospend.Spend
sometimebrowsingtheinternettomakesomecomparisononinternettelephonyequipmentsandhow
muchtheycost.However,manufacturers,normally,donotshowthepriceoftheitemstheysellintheir
site.Thesepricetagsareusuallyshowninsitessellinginternettelephonyequipments,someofthem
are:
Digiumcardshttp://www.digiumcards.com/
VoIPonsolutionshttp://www.voipon.co.uk/
TheVoIPConnectionhttp://www.thevoipconnection.com/
Thepricesmayvary,rangingfromUS$15toUS$50perFXOorFXS.Meanwhile,IPPhoneeachcost
betweenUS$50toUS$150.Youwillofcoursegetforlesswhenyoupurchasetheminlargequantities.
ThecheapestyoucangetaretheequipmentsproducedinTaiwanorChina.SomeofthemareLevelOne
andNexus.
Userauthenticationwithaphonenumberandpassword.
Dialplantomanagewhatneedstobedoneforacalldialedtoaspecificnumber
ENUM,soAsteriskwillrecognizenumberswithspecificcountrycode.Forexample,in
Indonesia,thecountrycodeinexamplewouldbe+62XXXintheAsteriskconfiguration.
Asterisk Installation
Assuming,theUbunturepositoryat/etc/apt/sources.listhasbeencorrectlyset.Onecaneasilyinstall
Asteriskusingcommand
#aptgetinstallasterisk
VoIPCookbook:121
Foramorecompletecommand,youmayusethefollowingcommand.
#aptgetinstallasteriskasteriskdevasteriskconfigasterisksoundsmain\
asterisksoundsextradahdigastmanasteriskmysqldahdifirmwarenonfree\
asteriskmp3
Ubuntuwillstartdownloadandinstallasteriskassoonasthecommandinvoked.
Compile Asterisk
Forthosewhowishtocompileasterisksoftswitchfromsourcecode,wecandoitthroughthe
followings,
Preparethefollowingapplications
#aptgetinstallkernelpackagelibncurses5devfakerootwget\
bzip2g++libssldevlibxml2devdoxygen
WecandownloadmostofthesourcecodefromAsterisksite,suchas,
http://www.asterisk.org
http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri1.4.11.4.tar.gz
http://downloads.asterisk.org/pub/telephony/libss7/releases/libss71.0.2.tar.gz
http://downloads.digium.com/pub/asterisk/releases/
http://downloads.asterisk.org/pub/telephony/dahdilinuxcomplete/releases/dahdilinuxcomplete2.4.0+2.4.0.tar.gz
Whilempg123applicationcanbedownloadedfrom
http://www.mpg123.de/download.shtml
http://sourceforge.net/project/showfiles.php?group_id=135704
http://sourceforge.net/projects/mpg123/files/
Copyalllastestsourcecodeto/usr/local/src/
cpasterisk1.8.0.tar.gz/usr/local/src/
cplibpri1.4.11.4.tar.gz/usr/local/src
cpdahdilinuxcomplete2.4.0+2.4.0.tar.gz/usr/local/src/
cplibss71.0.2.tar.gz/usr/local/src/
VoIPCookbook:122
cpmpg1231.12.5.tar.bz2/usr/local/src/
Openthesourcecode
cd/usr/local/src
tarzxvfasterisk1.8.0.tar.gz
tarzxvflibpri1.4.11.4.tar.gz
tarzxvfasterisksounds1.2.1.tar.gz
tarjxvfmpg1231.12.5.tar.bz2
tarzxvfdahdilinuxcomplete2.4.0+2.4.0.tar.gz
tarzxvflibss71.0.2.tar.gz
CompileMPG123
cd/usr/local/src/mpg1231.12.5/
./configure
make
makeinstall
CompileLibpri
cd/usr/local/src/libpri1.4.11.4/
makeall
makeinstall
CompileDAHDI.MakesurewehaveanInternetconnectionasweneedtodownloadthefirmware
duringdahdiinstallationprocess.
cd/usr/local/src/dahdilinuxcomplete2.4.0+2.4.0/
make
makeinstall
makeconfig
CompileLibSS7.Dothisafterdahdi;beforecompilingasterisk.
cd/usr/local/src/libss71.0.2/
make
makeinstall
VoIPCookbook:123
Compileasterisk.MakesurewehaveInternetconnectionasweneedtodownloadtheoperationvoice
duringasteriskinstallationprocess.
cd/usr/local/src/asterisk1.8.0
./configure
makemenuselect
makeall
make
makeinstall
makesamples
Pleasenotethatmakemenuselectisoptional,wecandothecompalitionprocesswithoutmake
menuselect.Ifyouliketoinstallthedocumentation,pleasedo
aptgetinstalldoxygen
makeprogdocs
Configuring Asterisk
AstheAsteriskinstalled,weneedtoconfigureitsoAsteriskfunctionsthewayyouwantittobe.All
filesthatyouneedtoconfigurearestoredinthefolder:
/etc/asterisk
Theminimalconfigurationfilesneedtoeditedare:
sip.confforuserauthenticationwithaphonenumberandpassword.
extensions.conftosetthedialplan.
enum.confforENUM,forexample,forcountrycode+62.
Asidefromthesefiles,therearemoreconfigurationfilesforthosewhoareseriouslyinterestedtostudy
theasterisk.Fornow,itissufficientforyoutolearnconfiguringthosethreefiles.
ENUM.CONF Configuration
ThereisnotmuchtobechangedinENUM.CONF.However,youneedtomakesurethattherearethe
followingentries:
VoIPCookbook:124
search=>e164.arpa
search=>e164.org
search=>e164.id
search=>enum.voiprakyat.or.id
Thisway,wecanensurethattheinformationcontainedinENUMe164.arpa,e164.organde164.idwill
berecognizedbyAsterisk.
SIP.CONF Configuration
Theuserdatabaseisstoredin/etc/asterisk/sip.conf.Anexampleforanaccountwithphonenumber
2099,password123456,dynamicIPaddressusingDHCPisasfollows:
[2099]
context=default
type=friend
username=2099
secret=123456
host=dynamic
dtmfmode=rfc2833
mailbox=2099@default
ToensurethatthedialtoneishandledproperlyinAsterisk1.6,wemayaddthefollowingentry:
rfc2833compensate=yes
Entertheaboveentryforeachuser.Atthispoint,eachusermayregisterhisorherselftotheAsterisk.
TheregisteredusersmaycalleachotheronthesameAsteriskserver.
ToconnectourAsteriskservertoVoIPRakyatoranyotherSIPproxyavailableintheinternet,weneed
toregisterourAsterisktotheSIPproxyserver.Thecommandsusedis:
register=>2345:password@sip_proxy/1234
whichmeansuser1234inourasteriskserverthatweoperateistheuser2345insip_proxyloggedinto
theserverusingthepasswordpassword.Forexample,user2000hasanaccount20345in
voiprakyat.or.idserverwithpasswordsecret,thentheformatusedis:
VoIPCookbook:125
register=>20345:secret@voiprakyat.or,id/2000
Thisway,callsmadetoVoIPRakyat,specificallytoaccount20345,willbeforwardedtonumber2000
inourSIPserver.
EXTENSIONS.CONF Configuration
Thedialplanorroutingtableofasoftswitchisnormallystoredin/etc/asterisk/extensions.conf.In
extensions.confwecanconfigurewhatAsteriskneedstodoasitreceivesacallonacertainextension.
Thesimplestexampleofdialplanis:
exten=>_20XX,1,Dial(SIP/${EXTEN},20,rt)
exten=>_20XX,2,HangUp
whichmeansthatifthereissomeonewhocallsextension20XX,thenthefirststepcarriedoutbythe
syntaxistohaveDIALoftheextensionuseSIPtechnology,waitfor20secondsandifthereisno
response,carryouttimeout(rt).Thesecondstepistohangup.Ofcourseyouneedtodoasmall
configurationofthecommandsoitwillfityourcircumstanceinhowyouuseyourSIPserver.
Somecommandsconsidereddangerousbutoftensoughtbyuser/adminareasfollows:
exten=>_0711.,1,Dial(SIP/${EXTEN:4}@2031,20.rt)
whichmeansthatthereissomeonewhocalls0711.Thedot.impliesthatanynumberafter0711is
ignored.DIALusesSIPtechnologytoconnectto2031.Alsonotecarefullythecode{EXTEN:4}hasto
bereadomitthefirst4digitsofthedialednumber.Forexample:07115551234becomes5551234.
IfweusePABXbetweenATAandPSTN,thecommandusedisasthefollowing:
exten=>_021X.,1,Dial(SIP/9${EXTEN:3}@2031,20.rt)
Thesyntaxaboveimpliesthatthereissomeonewhocalls021X.Noticethatthedot.placedafterX
impliesthatanynumberplacedafterXisignored.DIALusesSIPtechnologytoconnectto2031.Also
notecarefullythecode9{EXTEN:3}hastobereadomitthefirst3digitsofthedialednumberand
addtheprefix9infrontofthenumber.Forexample:0215551234becomes95551234
Thismeansthatifthenumber2031originatesfromanAnalogTelephoneAdapter(ATA)suchasthe
SPA3000locatedintheJakartaandisconnectedtoaPABXinJakarta,anyoneinsuchaVoIPnetwork
VoIPCookbook:126
willbeabletocallJakartawithouthavingtopaylongdistanceorinternationalcall.Whattheyneedto
payisjustthelocalrateforcallingtheintendednumberinJakartacity.
ThesamewaycanbedevelopedforcallingmobilephoneinIndonesiabyconnectingtheATAweuse
toPSTNoranyFixedWirelessTerminal(FWT)device.Thecommandusedisasfollows
exten=>_08X.,1,Dial(SIP/${EXTEN}@2031,20.rt)
Ofcourse,anofficethatisconnectedtoapublicVoIPnetworkwillnotopenitsaccesssothatonly
certainuserscancallanymobilenumberorTelkom,andthusweusuallydonotuse021X.code,nor
08X.ButwewillentereachofthenumbersallowedtobecalledthroughVoIP.Forexample:
exten=>_0811567854,1,Dial(SIP/${EXTEN}@2031,20.rt)
exten=>_0216575675,1,Dial(SIP/${EXTEN}@2031,20.rt)
exten=>_0216755675,1,Dial(SIP/${EXTEN}@2031,20.rt)
Thismeansthatonlynumber0811567854,0216575675and0216755675canbecontactedviaVoIP
numbers.Otherthanthesenumberscannotbecontacted.
ToadoptthephonenumberformatsimilartoTelco,e.g.,+62XXXorothernumberswemayinclude
ENUMLOOKUPcommand,forexample,
exten=>_00.,1,Set(enumresult=${ENUMLOOKUP(+${EXTEN:2},,,,e164.id)})
exten=>_00.,n,Dial(SIP/${enumresult})
exten=>_+.,1,Set(enumresult=${ENUMLOOKUP(${EXTEN},,,,e164.id)})
exten=>_+.,n,Dial(SIP/${enumresult})
Inanenvironmentwheretherearemanyasterisk/SIPservers,sometimesweneedtocreateanarea
codetobeabletocalltoeachotheramongtheseservers.Forexamples,
AreaCode SIPServerIPAddress
021 203.159.31.99
022 203.159.31.123
023 203.159.31.48
Thedialplanwouldbe
VoIPCookbook:127
exten=>_021.,1,Dial(SIP/${EXTEN:3}@203.159.31.99,30,rt)
exten=>_022.,1,Dial(SIP/${EXTEN:3}@203.159.31.123,30,rt)
exten=>_023.,1,Dial(SIP/${EXTEN:3}@203.159.31.48,30,rt)
Notice${EXTEN:3}thatwillremovethethree(3)digitsAreaCodeaswepasstheextensions
numbertothedestinationSIPServer.
VoIPCookbook:128
AsteriskcanregisteritselftoanotherSIPserverandbecomesaclient.Forthis,thecommandusedin
sip.confunder[general]forregistrationtotheSIPserveris:
register=>user[:secret[:authuser]]@host[:port][/extension]
Ifyouhaveproblemswithyourcomputernetwork,suchasanunstableconnectivity,frequent
connectivitybreakdowns,andlosingestablishedregistrationtoyourSIPserver,youcanaddparameter
registerattemptsandregistertimeoutbeforethegenericdefinitionofregister.Setting
registerattempts=0willforceAsterisktokeepregisteringuntilsuccessful(defaultvalueis10attempts).
Thevalueofregistertimeoutdeterminesthelengthoftimeinsecondsbetweenattemptsforregistering
(thedefaultvalueis20seconds).
VoIPCookbook:129
Example:
register=>2345:password@mysipprovider.com/1234
Theabovecommandwillregister2345tomysipprovider.comandwillbeidentifiedasextension1234
inAsteriskwhichweoperate.Intheexampleabovetheparametersusedare:
usertheuseridfortheSIPserver(example:2345)
authuseruserauthorization(optional)totheSIPserver
secrettheuserpassword
hostservername(example:mysipprovider.com)
porttheSIPportinServer.Thedefaultis5060.
extensionthelocalextensionnumberinAsterisk(example:1234).
TheextensionnumberisusedtocontactlocalextensionoftheAsteriskSIPserverwhichwesignedup.
Ifthereisnoextension,Asteriskwillautomaticallyenterextension"s".
ToseeifAsteriskhassuccessfullyregistereditselfwiththeSIPServer,wecanuseAsteriskInterface
CommandLine,whichcanbeaccessedthroughtheasteriskcommandrintheshell.
#asteriskr
Registrationstatuscanbeviewedthroughthecommand:
sipshowregistry
ItseemsthatthiscommandwillbeomittedinAsteriskversion1.4,andwillbechangedinto
sipregistrylist
Toseethephone/extensionlistedinAsteriskwhichweoperate,wecanusethefollowingcommand
sipshowpeers
InAsterisk1.6,thecommandseemstobereplacedby
sippeerslist
VoIPCookbook:130
TomakeacalltoaSIPserveroutsideofAsterisk,weneedtodefinesip.conflikethefollowing
example:
[mysipproviderout]
type=peer
secret=password
username=2345
host=sipserver.mysipprovider.com
fromuser=2345
fromdomain=fwd.pulver.com
nat=yes
context=frommysipprovider
;isfurtherdefinedinextensions.conf
Inextensions.conf,weneedtoaddacommandlike:
exten=>_9.,1,Dial(SIP/${EXTEN:1}@mysipproviderout,30,r)
Pleasenotethatthevariable${EXTEN:1}herewilltakeallthecharacters/lettersfromtheincoming
extensionexceptforthefirstcharacter,whichinthiscase,isthenumber9.
Meanwhile,SIPextensionconfigurationextensions.confforreceivingcallscomingfromtheSIP
servercanalsobedevelopedusingthefollowingcommand:
[frommysipprovider]
exten=>1234.1,Answer
;1234istheextensioncontact.Thedefaultextensioncontactis"s"
exten=>1234.2,Dial(SIP/111,25,Ttr)
;IncomingcallsareredirectedtoaSIPtelephonenumber111
exten=>1234.3,Hangup
VoIPCookbook:131
disallow=all
;disallowallcodecstobeused.
allowexternalinvites=yes|no
;EnableorDisableINVITE&REFERtononlocaldomain.Thedefaultisyes.
allowguest=yes|no
;Allowsorrejectscallsfromguest(thedefaultisyes).
allguest=yes|no
;Allowsordeniesthecallfromguests.Thedefaultisyes.
Autocreatepeer=yes|no
;Ifitissettoyes,everyonecaneasilyloginasapeerwithoutapassword,
itisusuallybeneficialfor operatingwithSER.Thedefaultisno.
autodomain=yes|no
;Enable/disabletheabilityofAsterisktoaddlocalhostnamesand
localIPaddresstodomainlist.The defaultisno.
bindaddr=IP_Address
;IPAddressboundasaplaceforlisteningtoconnection.Thedefaultis0.0.0.0(anyinterface).
bindport=Number
;TheUDPportinbindforlisteningtoincomingconnections.Thedefaultis5060.
callerid=<string>
;CallerIDinformationthatwillbeusedifthereisnootherinformation.Thedefaultisasterisk.
canreinvite=update|yes|no
;Thedefaultisyes.
checkmwi=Number
;Theintervalinsecondstocheckthemailbox.Thedefaultis10seconds.
compactheaders=yes|no
;whetherAsteriskwillsendaSIPheaderincompactorcompleteform.Thedefaultisno.
context=<contextname>
VoIPCookbook:132
;Thisisthedefaultcontextthatwillbeusedfortelephonesthatdonothavecontext.
Thecontentofthecontextcanbesetinextensions.conf.
defaultexpirey=Number
;Thedefaultlengthoftime(inseconds)ofanincomingoroutgoingregistration.
Thedefault120seconds.
dtmfmode=inband|info|rfc2833(globalsetting)
;Thedefaultisrfc2833.
domain=domains
;listofdomainsseparatedbycomma,alistforwhichAsteriskisresponsible.
dumphistory=yes|no
;EnablessupportfordumpingSIPtransactionsinLOG_DEBUG.Thedefaultisno.
externip=IP_Addressorhostnames
;TheaddresswewillplaceintheSIPmessagesifwearebehindNAT.
Ifthehostnameisused,thentheIPaddressassociatedwiththehostnamewillbereadonce
atthetimeofreadingsip.conf.IfwewanttousethehostnameofthedynamicIP,
useexternhostparameters.
externhost=hostname.tld
externrefresh=Number
;determineshowoften(inseconds)DNScheckingiscarriedoutfor'externhost'.
Thedefaultis10seconds.
ignoreregexpire=yes|no
;setswhetherContactinformationfromapeerisstillusedeventheinformationhasexpired.
Thedefaultisno.
language=<string>
;ThedefaultlanguageusedbyPlayback()/Background().
localnet=NetAddress/Netmask
;Localnetworkandmask.
fromdomain=<domain>
VoIPCookbook:133
;SetdefaultFrom:domaininSIPmessageatthetimeitoperatesasaSIPua(client)
insecure=very|yes|no|invite|port
;Sethowtohandleconnectionswithpeers.Thedefaultisno(authenticateallconnections).
maxexpirey=Number
:Lengthoftime(inseconds)ofincomingregistration.Thedefaultis3600seconds.
musicclass=oneofclassesthatisusedinmusiconhold.conf
musdiconhold=similartomusicclass
nat=yes|no|never|route
;Thedefaultisno,whichmeansthatrfc3581techniqueisused.
notifymimetype=mediatype/subtype
;AllowstooverridemimetypeinMWINOTIFYusedinvoicemailonlinemessage.
Thedafaultis application/simplemessagesummary.
notifyringing=yes|no
;Callnotificationisincludedinringingstage.Thedefaultisyes.
outboundproxy=IP_address/DNSSRVname(excluding_sip._udpprefix)
;SRVname,hostname,orIPaddressoftheoutboundSIPProxy.
outboundproxyport=Number
;UDPportnumberforOutboundSIPProxy.
pedantic=yes|no
;enableaslowprocesstocheckCallID,SIPheaderwithmanylines,
andtheURIencodedheaders.The defaultisno.
port=<portno>
;ThedefaultportforSIPpeer.ThisportisnottheportofAsteriskforlisteningto
incomingcalls(seebindport).
progressinband=never|no|yes
;whetherweshouldgenerateinbandringing.Thedefaultisnever.
VoIPCookbook:134
promiscredir=yes|no
;Allowssupportfor302Redirects;(Note:itwillredirectalltolocalextensionavailable
incontact,nottoextensiononthefinaldestination).
Thedefaultisno.
qualify=yes|no|milliseconds
;Checkwhethertheclientcanbecontacted.Ifsettoyes,thenthecheckingwillbecarried
outevery2000milliseconds(2seconds).
Thedefaultisno.
realm=myrealm
;Changeauthenticationrealmfortheasterisk(default)towhatwewant.
recordhistory=yes|no.
;EnableloggingofSIPtransactions.
Thedefaultisno.
regcontext=context
;DefaultcontextusedtorespondtotheSIPREGISTERofSIPRegistrar.
register=><username>:<password>:[authid]@<sipclient/peeridinsip.conf>/<contact>
;RegistertoSIPprovider
registerattempts=Number
;thenumberofSIPREGISTERmessagesenttotheSIPRegistrarbeforegivingup.
Thedefaultis0(nolimit).
registertimeout=Number
;ThenumberofsecondsallocatedtowaitforrespondsfromtheSIPRegistrarbeforetheSIP
REGISTER'stimeisup.
Thedefaultis20seconds.
relaxdtmf=yes|no
;Thedefaultisno.
rtautoclear=yes|no|number
;AutoExpirefriendsmadewhileoperating.Ifitissettoyes,
autoexpirewilltakeplacein120seconds.
Thedefaultisyes.
VoIPCookbook:135
rtcachefriends=yes|no
;Cacherealtimefriendsbyaddingthemtotheinternallistlikefriends.
Thisisaddedtotheconfigfile.
Defaultisno.
rtpholdtimeout=Number
;Lengthoftimeinsecondsduringwhichthereisnoactivitybeforedisconnecting
acallonhold.
Default
is0(nolimit).
rtpkeepalive=Number
;NumberofsecondsoftheintervalforRTPkeepalivepacketifthereisnopassingtraffic.
Defaultis0 (noRTPkeepalive).
rtptimeout=Number
;NumberofsecondsforwaitingforRTPtrafficbeforewehungup.
Defaultis0(noRTPtimeout).
rtupdate=yes|no
;SendregistryupdatestothedatabasewhenusingRealtimesupport.Thedefaultisyes.
sendrpid=yes|no
;whethertheSIPheaderRemotePartyIDSIPshouldbesent.
Thedefaultisno.
sipdebug=yes|no.
ThedefaultsettingthatdetermineswhethertheSIPdebugisenabledwhenloadingsip.conf.
Thedefault isno.
srvlookup=yes|no
;EnableDNSSRVcheckswhencalledupon.Thedefaultisno.
tos=<value>
;SetQoSofIPparametersforoutgoingmediastreams
(numericvaluesareacceptable,suchastos=
184)
trustrpid=yes|no
;whethertheSIPheaderRemotePartyIDSIPcanbetrusted.Thedefaultisno.
VoIPCookbook:136
useclientcode=yes|no:
usereqphone=yes|no
;Indicateswhetherweneedtoadd";user=phone"toURI.Thedefaultisno.
useragent=<string>
;ChangestheSIPheader"UserAgent".Thedefaultisasterisk.
videosupport=yes|no
;EnablessupportforSIPvideo.Thedefaultisno.
vmexten=<string>
;Dialplanextensiontocallmailbox.Thedefaultisasterisk.ConfiguringSIPpeerandclient
Thefollowingvariablescanbeusedineverypeerdefinition
accountcode=<string>
;theuserswhocanbeassociatedtoaccountcode.Itisrecommended
thatyoureadtheconceptonAsteriskbilling.
allow=<codec>
;theCODECwhichisallowedbasedonorderpreferences.
Usefirstdisallow=ALLbeforeallowing CODEC.
disallow=all
;DisallowalltheCODECstoagivenpeeroruserdefinition.
allowguest=yes|no
;Alloworrejectcallsfromunknownperson.
Thedefaultisyes.OSPcanalsobesetifAsteriskiscompiledtosupportOSP.
auth=<authname>
;ThecontentoftheDigestusername=onaSIPheader.
callerid=<string>
;ThecallerIDinuseifnoinformationisavailable.Thedefaultisasterisk.
calllimit=number
VoIPCookbook:137
;Thenumberofsimultaneoustelephoneconnectionsthatcanbemadetoaspecificuse/peer.
callgroup=num1,num2num3
;Definesacallgroupthatcancallthistool.
callingpres=number|descriptive_text
;SetappearanceofCallerIDofaconnection/call.
Descriptivetextvaluesthatcanbefilledinareallowed_not_screened,
allowed_passed_screen,allowed_failed_screen,allowed,prohib_not_screened,
prohib_passed_screen,prohib_failed_screen,prohib,andunavailable.
ThedefaultisAllowed_not_screened.
canreinvite=update|yes|no
;whethertheclientisabletosupportSIPreinvites.Thedefaultisyes.
context=<context_name>
;Iftype=user,contextisforthecallgoingtotheSIPuserdefinition.
Iftype=peer,contextinthe dialplanisforoutboundcallofaSIPpeerdefinition.
Iftype=friend,contextisusedforallinboundandoutboundconnectionsto
theSIPentitydefinition.
defaultip=ip.add.res.s
;ThedefaultIPaddressfortheclienthost=ifnotspecifiedasDYNAMIC.
Thisisusediftheclienthad neverbeenregisteredtousedifferentIPaddress.
Onlyvalidifthetype=peer.
dtmfmode=inband|info|rfc2833
;HowtheclienthandlesDTMFsignal.Defaultisrfc2833.
fromuser=<from_ID>
;Determinestheusertobeputin"from"otherthanthecallerid(overridecallerid)
whenconductingcalls_to_peer(toanotherSIPproxy).Validonlyfortype=peer.
fromdomain=<domain>
;SetdefaultFrom:domaininSIPmessagewhenconductingcalls_to_peer.
Validonlyinthe[general] ortype=peersection.
fullcontact=<sip:uri_contact>
;SIPURIcontactforrealtimepeer.Validonlyforrealtimepeers.
VoIPCookbook:138
host=dynamic|hostname|IPAddr
;ClientIPaddressorhostname.Ifyouwantthephonetoregisteritself,
usedynamickeywordsinstead
ofhostIP.
incominglimitandoutgoinglimit=Number
;Limitationofthenumberofsimultaneousactivecallsthatcanbeperformedby
aSIPclient.Validonly
fortype=peer.
insecure=very|yes|no|invite|port
;Determineshowtodealwithpeerconnection.
Thedefaultisno(authenticationforallconnections).
ipaddr=ip.addr.from.peer
;Validonlyforrealtimepeer.
language=languagecodeasdefinedinindications.conf
;Definingalanguageforgreetings
mailbox=mailbox
;ExtensionforVoicemail.Validonlyfortype=peer.
md5secret=MD5Hashof"<user>:asterisk:<secret>"
;Canbeusedasasubstitutetosecret.
Musicclass=determinesoneofclasseswritteninmusiconhold.conf
name=<name>
;Thenameoftherealtimepeer.Validonlyforrealtimepeeronly.
nat=yes|no
;ThisvariabledeterminestheactionpatternofAsteriskforclientsbehindtheNAT.
Butitstilldoesnot solvetheproblemifAsteriskisbehindNAT.
Thedefaultisno,whichmeansusingtheRFC3581
technique.
outboundproxy=IP_addressorDNSSRVname
;SRVname,hostname,orIPaddressoftheoutboundSIPProxy.
Validonlyinthe[general]andtype=
peersection.
VoIPCookbook:139
progressinband=never|no|yes
;Dowegenerateringininband.Thedefaultisnever.
promiscredir=yes|no
;Allowssupportfor302Redirects.Thedefaultisno.
qualify=yes|no|milliseconds
;Checkwhethertheclientcanbereached.
Ifyes,acheckwillbedoneevery2000milliseconds(2
Validonlyinthe[general]andtype=peersection.
seconds).
regseconds=seconds
;TimeinsecondsbetweenSIPREGISTERS.Validonlyforrealtimepeeronly.
rtpkeepalive=seconds
;Thetime,inseconds,ofsendingRTPkeepalivepacketifthereis
noRTPtrafficontheconnection. Default0(noRTPkeepalive).
Validonlyforthe[general]andtype=peersection.
rtptimeout=seconds
;DisconnectaconnectionifwithinxsecondsthereisnoRTPactivityand
wearenotinonholdposition.
Validonlyinthe[general]andtype=peersection.
rtpholdtimeout=seconds
;DisconnectaconnectionifwithinxsecondsthereisnoRTPactivityand
weareinonholdposition.
Validonlyforthesection[general]andtype=peer.
secret=password
;IfAsteriskfunctionsasaSIPServer,thenSIPclientmustloginusing"password".
IfAsteriskfunctionsasaSIPclienttoaremoteSIPserver,
itrequiresSIPINVITEauthentication,thenthecontentsofsecret isused
forSIPINVITEauthenticationthatissentbyAsterisktotheremoteserver.
sendrpid=yes|no
;whetherRemotePartyIDSIPheadershouldbesent.Defaultisno.
setvar=variable=value
VoIPCookbook:140
;Variablechannelwhichshouldbesetforallconnectionstothispeer/user.
subscribecontext=<context_name>
;SetaspecificcontextforSIPSUBSCRIBErequests
trustrpid=yes|no
;whetherRemotePartyIDSIPheadercanbetrusted.Thedefaultisno.
type=user|peer|friend
;connectiontotheclient,outboundproviderorafullclient?
usereqphone=yes|no
;Showingwhethertoadd";user=phone"totheURI.Defaultno.
Validonlyforthe[general]and
type=peersection.
username=<username[@realm]>
;IffunctioningasaSIPclienttoaremoteSIPserverthatrequires
SIPINVITEauthentication,thenthisparameterisusedforSIPINVITEauthentication,
whichissentbyAsterisktoaremoteSIPserver;forpeerswhowillregistertoAsterisk,
theusernameisusedinINVITEuntiltheyareregistered.
vmexten=<string>
;Dialplanextensiontoreachmailbox.Defaultasterisk.
Onlyvalidinthe[general]ortype=peersection.
Therearethree(3)mainconfigurationfiles,namely,
/etc/dahdi/system.conf
/etc/asterisk/chan_dahdi.conf
/etc/asterisk/dahdichannels.conf
In/etc/dahdi/system.conf,unlikezaptel.conf,youhavetoexplicitlysettheechocancellerforeach
channel.
Thereareanumberofotherconfigurationfilesunder/etc/dahdi
/etc/dahdi/init.conf
Replaces/etc/default/zaptel(onDebians)and/etc/sysconfig/zaptel(onmostothersystems)
thisisashellscriptsnippetthatissourcedbythedahdiinit.dscript.Allvaluesthereare
optional(noneedtoexplicitlydefineTELEPHONY=no).ThevariableMODULES,however,is
nolongerreadfromit.ITisreadfrom:
/etc/dahdi/modules
Alistofmodulestoload.ReplacesthevariableMODULESfromtheaboveconfigurationfile.
/etc/dahdi/genconf_parameters
Finetuningparametersfordahdi_genconf(replaceszapconfandalsodeprecates
genzaptelconf).
DAHDIArchitecture
Thepackageiscomposedoftwosubpackages:
Kernel
Includekernelmodulesandminilahelperfiles(firmwares)
Tools
TheuserspacetoolstocontrolDAHDIspans/channels:
dahdi_cfg
TheDAHDIConfigurator,whichparsessystem.conf
dahdi_genconf
VoIPCookbook:142
Generates/etc/dahdi/system.conf,soit'sbetterthatyoudon'thandeditsystem.conf.Uses
/etc/dahdi/genconf_parameterstodefineit'sactions.
dahdi_hardware
DisplayslistingofDAHDIhardwaredetected
dahdi_monitor
Monitorssignallevelonanalogchannelallowsyoutorecordaudiofromit
Usage:dahdi_monitor<channelnum>vmopllimitfFILEsFILErFILE1tFILE2F
FILESFILERFILE1TFILE2
example:dahdi_monitor1vv
note:extremlyusefull,butotherwisenotmentioned,thattherawformatoutputis8Khz16bit
signed.Usesoxtoconverttoawav.soxr8000swrx.rawrx.wav
dahdi_scan
GeneratesalistofthingsDAHDIchannels,withsomedetails
dahdi_test
MeasuresaccuracyoftheFXO/FXSboardsoftwaredigitalsignalprocessing
dahdi_tool
Anicetooltoseewhatyourboardsaredoing.
DAHDISampleinstallation
Aftercompilingandinstallingofdahdiandasterisk,youhavetoperformsomefurtherstepstouseyour
hardware.ThisexamplewillshowyouafewstepshowtogetasteriskandtwoDigiumcardsenabled:
Detectyourhardware.Thiswillgenerate/etc/dahdi/system.confand/etc/asterisk/dahdi
channels.conf.
#lspcin
YoushouldseesomethinglikethisforTDM410
00:09.00200:d161:8005(rev11)
VoIPCookbook:143
Edit/etc/dahdi/system.confandmakesurethereis
loadzone=us
defaultzone=us
Checkthechanneltype
/etc/init.d/dahdirestart
dahdi_scan
Wewillseesomethinglike
active=yes
alarms=OK
description=WildcardTDM410PBoard1
name=WCTDM/0
manufacturer=Digium
devicetype=WildcardTDM410P
location=PCIBus03Slot03
basechan=1
totchans=4
irq=23
type=analog
port=1,FXO
port=2,FXO
port=3,FXS
port=4,FXS
Edit/etc/dahdi/system.conftoreflectthefindingsfromdahdi_scan
fxoks=3,4
fxsks=1,2
echocanceller=mg2,14
Runmodprobeasrootanddodahdi_cfg
#modprobewctdm24xxp
#dahdi_cfgvv
VoIPCookbook:144
Checkifitiscorrectlyloaded
#dmesg
wewillseesomethinglike
[961.484269]wctdm24xxp0000:00:09.0:PCIINTA>GSI17(level,low)>IRQ17
[961.940405]Port1:InstalledAUTOFXO(FCCmode)
[962.576453]Port2:InstalledAUTOFXO(FCCmode)
[964.209579]Port3:InstalledAUTOFXS/DPO
[965.838703]Port4:InstalledAUTOFXS/DPO
[965.842700]VPM100:NotPresent
[965.846981]FoundaWildcardTDM:WildcardTDM410P(4modules)
Thisisnotnecessary,butifyoulikeyoucandogenerateetc/dahdi/system.confand
/etc/asterisk/dahdichannels.conf.
#dahdi_genconf
Restartdahditounloadandreloadallmodulesanddrivers
#/etc/init.d/dahdirestart
Pointfile/etc/asterisk/chan_dahdi.confto/etc/asterisk/dahdichannels.conf
#openchan_dahdi.confandincludeitunderthesection[channels]
#
#NOTE:Youcaneditandconfigure/etc/asterisk/dahdichannels.confatanytime
#tosetupyourspecificoptionsthere.
...
[channels]
#include/etc/asterisk/dahdichannels.conf
...
In/etc/asterisk/dahdichannels.confwewillseesomethinglike
signalling=fxs_ks
callerid=asreceived
group=0
context=frompstn
VoIPCookbook:145
channel=>1
callerid=
group=
context=default
signalling=fxo_ks
callerid="Channel3"<4003>
mailbox=4003
group=5
context=frominternal
channel=>3
callerid=
mailbox=
group=
context=default
Restartasterisk
#/etc/init.d/asteriskrestart
Verifyyourcurrentsystemstatus.Youshouldgetsomeoutputlikethis:
asteriskr
asterisk*CLI>dahdishowstatus
DescriptionAlarmsIRQbpviolCRC4FraCodiOptionsLBO
DAHDI_DUMMY/1(source:HRtimer)1UNCONFI000CASUnkYEL0db(CSU)/0133feet(DSX1)
WildcardTDM410PBoard1OK800CASUnkYEL0db(CSU)/0133feet(DSX1)
Verifyyourconfiguredchannels
asterisk*CLI>dahdishowchannels
ChanExtensionContextLanguageMOHInterpretBlockedState
pseudodefaultdefaultInService
1frompstndefaultInService
2frompstndefaultInService
3frominternaldefaultInService
4frominternaldefaultInService
DAHDI extensions.conf
AnexampleofDAHDIdialplanisasfollows.
[frominternal]
VoIPCookbook:146
exten=>1000,1,Dial(DAHDI/1,20,rt)
exten=>1000,2,Voicemail(1000,u)
exten=>1000,102,Voicemail(1000,b)
exten=>2000,1,Dial(DAHDI/2,20,rt)
exten=>2000,2,Voicemail(2000,u)
exten=>2000,102,Voicemail(2000,b)
exten=>8500,1,VoiceMailMain
exten=>8501,1,MusicOnHold
exten=>1001,1,Dial(DAHDI/3,20,rt)
exten=>1001,2,Voicemail(1000,u)
exten=>1001,102,Voicemail(1000,b)
exten=>1002,1,Dial(DAHDI/4,20,rt)
exten=>1002,2,Voicemail(2000,u)
exten=>1002,102,Voicemail(2000,b)
exten=>_9.,1,Dial(DAHDI/g0/www${EXTEN:1})
exten=>_9.,2,Congestion
exten=>_91.,1,Dial(DAHDI/1/www${EXTEN:2})
exten=>_91.,2,Congestion
exten=>_92.,1,Dial(DAHDI/2/www${EXTEN:2})
exten=>_92.,2,Congestion
[frompstn]
exten=>s,1,Answer
exten=>s,2,Dial(DAHDI/g1,20,rt)
exten=>s,3,Voicemail(1000,u)
exten=>s,103,Voicemail(1000,b)
Wehavetomakesureacoupleofthings:
[frominternal]and[frompstn]shouldbereflectedin/etc/asterisk/dahdichannels.conf
[frominternal]and[frompstn]mustexistsin/etc/asterisk/extensions.conf.
Ifunsure,replace[frominternal]and[frompstn]withdefault.
MakesureDAHDI/1,DAHDI/2,DAHDI/3,DAHDI/4,DAHDI/g1etcarecorrectasreflectedin
/etc/asterisk/dahdichannes.conf
VoIPCookbook:147
Figure7.1:Intheinstallermenu,therearemanyoptions:install,
check,rescue,memtest,andhd
Oncetheinstallationprocessiscompleted,thesystemwillcreateadefaultpasswordforconsolelogin
andweblogin,aswellasconfigurethedefaultIPaddress.
VoIPCookbook:148
Defaultconsolelogin(SSHport22):
Username
:support
Password
:Briker
Defaultweblogin(HTTPport80):
Username
:administrator
Password
:Briker
defaultIPaddress:
IPaddress
:192.168.2.2
Subnetmask :255.255.255.0
VoIPCookbook:149
Figure7.3:Brikeralsocheckswhetherallthehardware
requiredfornetworkingareinplace
Thenthebrikerautomaticallychecksthenetworkhardware,andautomaticallyconfiguretheIPaddress.
VoIPCookbook:150
Figure7.4:Formattingpartitions
ThentheBrikerautomaticallyerasesthecontentofthehardiskandusesallthespacesavailableinthe
hardiskforit.
VoIPCookbook:151
Figure7.5:Installingrequiredsoftware
TheBrikerautomaticallyinstallsthebasesystemandothersoftwarerequired.
VoIPCookbook:152
Figure7.6:InstallingGRUBbootloader
Finally,thebrikerwillinstallGRUBbootloader.Andoncethewholeinstallationprocessiscompleted,
theCDROMwillautomaticallyejectthebrikerCDandthecomputerwillrestart.
VoIPCookbook:153
Briker's Console
Figure 7.7: With the installation completed, you will be able to begin the configuration process
Afterinstallingthesoftware,wecanbeginconfiguringthroughtheconsole,bychangingtheIP
address,dateetc.Allcommandsfortheloginconsolecanbecarriedoutonlyafteryouauthenticate
yourselfasarootuser.Thecommandsforconfigurationthroughtheconsolewillnotworkunlessyou
enterthefollowingentries:
$sudosu
Thepasswordyouhavetoenteristheonesimilartothatofusersupport(defaultpassword).For
securityreason,youshouldchangethedefaultpasswordbydoingthefollowing:
#passwd
ThedefaultIPaddressoftheBrikeris192.168.2.2.ChangethisaddresssothatBrikerwillbeableto
adjustanynetworktopologyandobtainIPaddressallocation,byfirstofalleditingfile
/etc/network/interfaces:
#vi/etc/network/interfaces
VoIPCookbook:154
Next we have to make sure that the date and time of the Briker are set properly.Check them by typing the
following syntax:
# date
If they are not set properly, then adjust them. For example, if we want to set the time to 08.00 and date to July 1,
2008, then the syntax would be:
# date -s "2008-07-01 08:00:00"
Setting the date and time properly is particularly important if you are using Briker for commercial use.
VoIPCookbook:155
Figure7.9:InordertoconfigureBriker,youneedtologon
Withtheconsoleproperlyconfigured,youcannowconfigureBrikeradministration.BrowsetoBriker's
IPaddressthroughthewebbrowser,aloginwindowwillappearasshowninFigure5.9.Usethedefault
username,administratoranddefaultpasswordBriker,thenclickonLogin.
Figure7.10:Preferencessettings
VoIPCookbook:156
Tochangetheadministratorpassword,clickonMyAccountandchoosePreferences.Amenuasshown
inFigure5.10willappear.Enterthenewpasswordinthepasswordboxandenterthesamepasswordin
theRetypePasswordbox,thenclickonSavetoactivatetheconfiguration.
Figure7.11:Addinguser
InBriker,wecanhavemorethanoneadministrator.ChooseAdministrationandthenManageUser.
ThenfillinUsername,Email,FullName,PasswordandUserLevel,andclickAdd.
TodoIPPBXconfiguration,chooseIPPBXAdministrationfromthemainmenu,asshowninFigure
7.9.
VoIPCookbook:157
Figure7.12:menutoconfigureIPPBXfeaturesisavailableinBriker,someofwhichare
extensions,trunksandroutesconfiguration.
IPPBXstatusindicatesSystemStatisticsshowingthepercentageofLoadAverage,CPU,Memoryand
Swapbeingused,theusageofharddiskspaceandthespeedofReceiveandTransmitEthernet.Also
availabeinthisdisplayisIPPBXStatisticsshowingTotalActiveCalls,InternalCalls,ExternalCalls,
TotalActiveChannels,andUptimeBriker.Thesedataarerealtime,updatedperiodicallyand
automatically,aprocessthatconsumesaconsiderableamountofCPUresources.Soitisrecommended
thatyoudonotkeepaccessingthismainpage.
Whenyouarefamiliarwiththemaindisplay,itistimeforyoutoaddExtension,userwhowilluse
Brikerservices.ClickExtensiononIPPBXAdministrationmenu.Throughthisoption,youwillbe
abletoaddnewaccount,omitorreplaceanyexistingone.
ClickAddExtensions.Thenchoosethesortofprotocolsusedbytheaccount:SIP,IAX2,ZAP,or
Custom(protocolotherthanthefirstthree).Withanyoftheseprotocolselected,clicksubmit(shownin
Figure7.13).
Figure7.13:Extensiondiffersbythetypeofdeviceusedbyanaccount
ThenDialogpropertiesasshowninFigure7.14willappear,
promptingyoutoenteralltheinformationrequiredfor
addingextension.
Figure7.14:DialogPropertiesof
AddingSIPExtension
VoIPCookbook:158
Fillinuserextensionwithextensionnumber,e.g.1001.Thisisusuallyjustnumeric.Thenfillinthe
displayname,thenamethatwillbeusedasCallerIDwhendialing.Fillinsecretwiththepassword
usedbyuserforauthenticationprocessinregistrationextensionatUserAgentlayer.ClickSubmit.
Zaptel Configuration
Zaptelisacollectionoftoolsanddriversdetectinghardwareintheformofanaloganddigitaltelephony
cardinstalledonPCIorminiPCIslot.ThetelephonycardisusedtoconnectthebrikertoPlainOld
TelephonySystem(POTS)networkortoanalogtelephone.
Forexample,connectingthebrikertoanalogPBXrequiresanalogtelephonycard.Sodoesthebriker
whenitisconnectedtoPublicSwitchTelephoneNetwork(PSTN),connectedthroughatelephonecable
providedbytelecommunicationoperator.Theanalogordigitalcardtobeused,however,dependson
thetypeoftechnologybeingusedbytheoperator.
VoIPCookbook:159
ToconfigureZaptel,firstofall,loginthroughtheconsole.Asthisinstallationrequiresrootprivileges,
loginasarootbyexecutingthefollowingcommands:
$sudosu
Thenrungenzaptelconfcommand
#genzaptelconf
Tocheckwhetherzaptelhassuccessfullydetectedwhatitislookingfor,docheckingbyexecutingthe
followingcommand:
#ztcfgvvv
Thenrestartzaptel,byexecutingthefollowingcommand:
#/etc/init.d/zaptelrestart
SIP Trunk
VoIPCookbook:160
Figure7.15:AddingaTrunk
InIPPBXAdministrationmenu,chooseTrunksmenu,chooseAddSIPTrunk.
Figure7.16:ThegeneralsettingsofAddSIPTrunk
Figure7.17:ThegeneralsettingsofAddSIPTrunk
FillintheOutgoingSettings,asshowninFigure7.17,byusingdataaccountfromdifferentserver.Add
particularoptionswhenevernecessary,suchasfailtoconnectorunabletoreceiveandmakeacall
throughtrunk.Otherparticularoptionsare:
context=fromtrunk
qualify=yes
VoIPCookbook:161
insecure=port,invite
authuser=<similartousercontactormeetingitstrunkneeds>
fromuser=<similartousercontactormeetingitstrunkneeds>
fromdomain=<similartohostormeetingitstrunkneeds>
Figure5.18:ThegeneralsettingsofAddSIPTrunk
ForRegisterString,obtainthedatafromOutgoingSettings,withtheformatusername:secret@<Trunk
Name>.SavetheconfigurationbyclickingSubmitChanges.
VoIPCookbook:162
IAX2 Trunk
GotoTrunkmenu,asifyouliketoconfiguretheAIX2Trunk.ChooseAddIAX2.
Figure7.19:ThegeneralsettingsofAddIAX2Trunk
Figure7.20:ThegeneralsettingsofAddIAX2Trunk
VoIPCookbook:163
Figure7.21:ThegeneralsettingsofAddIAX2Trunk
ForIAX2Trunk,makethesameconfigurationasshowninFigure7.19,7.20,and7.21.
VoIPCookbook:164
H323 Trunk
GototheTrunksmenuinIPPBXAdministrationmenu.
Figure7.22:Thereisnooption
specificallyforH.323.Soyou
havetochooseCustomTrunk
VoIPCookbook:165
ThenchooseAddCustomTrunk.
Figure7.23:Thegeneralsettings
ofAddCustomTrunk
ForcustomizedTrunk,fillintheCustomDialStringbyusingtheformatH323/<h323gateway
address>/$OUTNUM$.AsshowninFigure5.23,thegatewayaddressofH323is119.18.159.20.Then
clickSubmitChanges.
Openaterminalconsole,theneditthe/etc/asterisk/h323.conffile:
#mcedit/etc/asterisk/h323.conf
Editthefollowingoptionsavailableinthe/etc/asterisk/h323.conffile:
Port=1720
bindaddr=<IPBrikeraddress>
Thenrestartasterisk,byexecutingthefollowingcommand:
#/etc/init.d/amportalrestart
VoIPCookbook:166
ZAP Trunk
ThistypeofTrunkisconnectedtoPSTNline,throughanalogcard(TDMxxx)ordigitalcard(TExxx).
Afterdoingthezaptelconfiguration,dotheconfigurationinIPPBX,byfirstofallloggingintoIPPBX
Administration.
Figure7.24:
AddingZAP
Trunk
ChooseTrunksmenuandchooseAddZapTrunk.Amenufortrunkconfigurationshouldappearas
showninFigure7.25.
Figure7.25:GeneralsettingsofAdd
ZapTrunk
FillZapIdentifier(trunkname)with
g0,whichmeansgroup0.The
descriptionofthegroup'sname(for
example,group0)canbefoundat
/etc/asterisk/zapatachannels.conffile.
VoIPCookbook:167
Outbound Routes
Outboundroutesareusedtomanagewherethecallshouldgoto,theonegoingoutthroughthetrunk.It
istheseOutboundroutesthatdefinealltheoutgoingcalls.Forexample,forconnectingtoPSTN,Briker
usesprefix9,whichisfollowedbythedestinationnumber.Thefollowingisanexampleofits
configuration.
Figure7.26:
Setting
Outbound
Routes
VoIPCookbook:168
InIPPBXAdministration,chooseOutboundRoutes.ChooseAddRoute.
Figure7.27:
SettingOutboundRoutes
FillintheconfigurationusingthesettingsshowninFigure7.27.Oftheparametersinthesettings,route
name,dialpattern(theinitialcodetoconnecttootherserver),andTrunkSequence(Trunkbeingused.
LookatTrunkssection)aremostimportant.Onceyouhavecompletedthesettings,clickSubmit
Changes.
VoIPCookbook:169
Inbound Routes
InboundRoutesfunctionstomanagethedestinationofthecallcomingfromthetrunk.Whenacall
comesfromthetrunk,thesystemwillcheckwhetherthecallisincompliantwiththeInboundRoutes
configuration.Ifitis,thenthecallwillbeforwardedtoitsdestinationaccordingtotheconfiguration.
InIPPBXAdministrationmenu,chooseInboundRoutes.ThenchooseAddIncomingRoute.
Figure7.28:SettingInboundRoutes
Fordefaultconfiguration,youcanleaveAddIncomingRouteblank.InSetDestination,youcandirect
anyincomingcallstoacertaindestination.IntheexampleshowninFigure7.29,allincomingcallsare
directedtotheIVR.
Figure7.29:
Inthisexample,allcallsare
directedtoIVR
ThenclickSubmit
VoIPCookbook:170
Setup Recordings
MakearecordforIVRthatyouwilluse(youcanusetheMS.Recorderapplication).Forexample,you
canrecordWelcometoPTJelajahMediaInformation,press1foroperator,andsettheencodeto16
bit,8,000Hz,andsaveitusingthe.wavextension(i.e.Welcomejmi.wav).Uploadthe.wavfileyou
havejustcreatedtothemenu:IPPBXAdministration>SystemRecordings,uploadandnamethefile,
forexample,welcomejmi,andsaveit.
IVRSetup
InIPPBXAdministrationmenu,chooseIVR.ThenchooseAddIVR.
Figure7.30:IVRSettings
VoIPCookbook:171
Filltheparameterswiththefollowingdata:
ChangeName:WelcomeJMI
Timeout:10
EnableDirectory:no/unchecked
DirectoryContext:default/empty
EnableDirectDial:yes/check
Announcement:WelcomeJMI(recording)
OptionsavailableintheFigure7.30implythatauserwhocalltheIVRcouldpress1andbeforwarded
toOptionJMIEnglish,providedthattheIVROptionJMIEnglishisactivated.Oncethedataand
optionsareconfigured,clickSaveandchooseApplyconfigurationchanges.
Ring Groups
RingGroupisoneofmanyfeaturesusedtomanagegroupcall.Forexample,inacompanywith5
telephoneoperators/agents,thefiveoperatorscanbeincludedasagroup,whichisnamed,forexample,
'operatorhelp.'Wheneverthereisanincomingcall,thecallwillbedirectedtotheRingGroup'operator
help.'Whenthefirstoperatorisbusy,thecallwillbeforwardedtothesecondoperatorandsoon.The
followingistheRingGroupconfigurationinthebriker.
ChooseRingGroupsinIPPBXAdministrationmenu.ThenchooseAddRingGroups
VoIPCookbook:172
Figure7.31:RingGroupssettings
Usethefollowingconfiguration
Figure7.32:Inthisexample,thecallerwillbe
directedtoIVRWelcomeJMIiftheagroup
operatordoesnotrespond
VoIPCookbook:173
UsethesettingsshowninFigure7.31.Thesettingsimpliesthatifagroupoperatordoesnotrespond,
thenthecallerwillbedirectedtoIVR'WelcomeJMI.'
Pin Sets
PinSetsfunctionsassystemauthentication,afeatureactivatedwhenauserdoeshisorhercallthrough
thetrunkandenteredthepasswordrequired.
ChoosePinSetsinIPPBXAdministrationmenu,thenchooseAddPasswordSet.
Figure7.33:SettingAddPINSet
ThefollowingmenuareconfigurationmenuforPINSets.
PINSetDescription:descriptionofthenameofPIN
RecordInCDR:choosethisifyouwanttohavethePINenteredinto
CallDetailRecordwheneverthePINisused
PINList:passwordtobeused
VoIPCookbook:174
Compile OpenSIPS
Preparethesupportingsoftware.InUbuntu9.10andUbuntu10.04,itcanbepreparedbyusingthe
followingcommand.
#aptgetinstallflexbisongccmakelibperl5.10libperldevlibxmlrpcc3libxmlrpcc3dev\
unixodbcunixodbcdevlibradiusclientng2libradiusclientngdevlibxml2openssllibsctp1\
libsctpdevlibexpat1libexpat1devlibldap2.42libldap2devlibsnmp15libsnmpdev\
libconfuse0libconfusedevlibmysqlclient16libmysqlclientdevmysqlclient5.1mysqlserver\
zlib1gzlib1gdevlibmysql++3libmysql++devlibpcre3libpcre3dbglibpcre3dev
InUbuntu10.10,itcanbedoneasfollows
#aptgetinstallflexbisongccmakelibperl5.10libperldevlibxmlrpcc3libxmlrpcc3dev\
unixodbcunixodbcdevlibradiusclientng2libradiusclientngdevlibxml2openssllibsctp1\
libsctpdevlibexpat1libexpat1devlibldap2.42libldap2devlibsnmp15libsnmpdev\
libconfuse0libconfusedevlibmysqlclientdevmysqlclient5.1mysqlserverzlib1gzlib1gdev\
libmysql++3libmysql++devlibpcre3libpcre3dbglibpcre3dev
GetsourcecodeofOpenSIPS,suchas,opensipsXXXtls_src.tar.gz,from
http://opensips.org/pub/opensips/
http://www.opensips.org/index.php?n=Resources.Downloads#osippub
http://www.opensips.org/index.php?n=Resources.Downloads#osipsf
VoIPCookbook:175
IfwewouldliketouseopensipswithTLS,weneedtodothefollowings.
$sudosu
#cpopensips1.6.42tls_src.tar.gz/usr/local/src/
#cd/usr/local/src/
#tarzxvfopensips1.6.42tls_src.tar.gz
#cdopensips1.6.42tls
Compileandinstallthefollowingmodules,i.e.,"acc","mysql","textops","sl","db_mysql"and"enum"
usingthefollowingcommand,
#cdopensips1.6.42tls
#makeall&&makeinclude_modules="accmysqltextopsslenumdb_mysql"modules
#makeinstall
Itseems,weneedtocopysomescriptsto/usr/local/src/opensips/opensipsctl
#cpRf/usr/local/src/opensips1.6.42tls/scripts/*/usr/local/lib/opensips/opensipsctl
That'sit.OpenSIPSiscompiledandinstallandreadytouse.OpenSIPSconfigurationfileislocatedat
/usr/local/etc/opensips
Checkforanyproblemintheconfigurationfilecanbedoneusingthefollowingcommand,
#opensipscf/usr/local/etc/opensips/opensips.cfg
ToRunopensips,putin/etc/rc.local
opensipsf/usr/local/etc/opensips/opensips.cfg
Pleasenoteweremovecswitch
andmakesureitworksusingthefollowingcommand,
#aptgetinstallmysqlserverlibmysqlclientdevmysqlclient5.0
#/etc/init.d/mysqlrestart
Tosetupthedatabaseserver,weneedtoedit/usr/local/etc/opensips/opensipsctlrcor
/etc/opensips/opensipsctlrc,suchas,
or
#vi/usr/local/etc/opensips/opensipsctlrc
vi/etc/opensips/opensipsctlrc
Makesure,
DBENGINE=MYSQL
DBHOST=localhost
DBNAME=opensips
DBRWUSER=opensips
DBRWPW="opensipsrw"
DBROUSER=opensipsro
DBROPW=opensipsro
DBROOTUSER="root"
Copyscriptsto/usr/local/lib/opensips/opensipsctl
#cpRf/usr/local/src/opensips1.6.42tls/scripts/*/usr/local/lib/opensips/opensipsctl/
Initializedtheuserdatabaseusingopensipsdbctlcommandasfollow,
#cd/usr/local/lib/opensips/opensipsctl
#opensipsdbctlcreate
Followthefollowingcommad
MySQLpasswordforroot:<enterMySQLrootpassword>
INFO:testservercharset
INFO:creatingdatabaseopensips...
INFO:CoreOpenSIPStablessuccesfullycreated.
VoIPCookbook:177
Installpresencerelatedtables?(y/n):<y>
INFO:creatingpresencetablesintoopensips...
INFO:Presencetablessuccesfullycreated.
Installtablesforimccplsiptracedomainpolicycarrierrouteuserblacklist?(y/n):<y>
INFO:creatingextratablesintoopensips...
INFO:Extratablessuccesfullycreated.
Use opensipsctl
OpensipsctlisausefulltoolprovidedbyOpenSIPS,thatcanbeusedfor,
Addingusers.
Checkwho'sonline.
Monitoringopensipsactivities.
Toadduser,forexample,wecanuse
#opensipsctladdnumber@hostpassword
#opensipsctladd2000@192.168.0.3123456
Toseewho'sonline,forexample,
#opensipsctlulshownumber@host
#opensipsctlulshow2000@192.168.0.3
Afteropensipsisrunning,tomonitorOpenSIPSSoftswitchactivities
#opensipsctlmonitor
Inthefollowingsections,wewilldiscusshowtoroutetrafficto
VoIPCookbook:178
PSTNandCellullarnetwork
AreaCodeforseveralinterconnectedSIPServers
ENUMnetwork
HowtoroutetoPSTNandCellular
Basically,weneedanAnalogTelephoneAdapter(ATA)tointerconnectaVoIPnetworktoPSTNor
Cellularnetwork.Inthisexample,weassume
ATAislocatedatIPaddress192.168.0.200
ATAisusingport5061
AreacodeforPSTNis021
AreacodeforCellullaris08
Weneedtoaddtotheopensipsconfigurationfile
/usr/local/etc/opensips/opensips.cfg
Forexample,tobeabletousetheATA(at192.168.0.200:5061)tocallPSTNfromallhost/domain
#attempthandofftoPSTN
if(uri=~"^sip:021[09]*@*"){
rewritehostport("192.168.0.200:5061");##192.168.0.200:5061istheATA
route(1);
};
TorestrictthecalltoPSTNonlyfrommydomain.com
#attempthandofftoPSTN
if(uri=~"^sip:021[09]*@mydomain.com"){##callerregisteredtomydomain.com
rewritehostport("192.168.0.200:5061");##192.168.0.200:5061isATA
route(1);
};
TobeabletousetheATAtocallCellullarfromallhost/domain
#attempthandofftocellullar
if(uri=~"^sip:08[09]*@*"){
VoIPCookbook:179
rewritehostport("192.168.0.200:5061");##192.168.0.200:5061isATA
route(1);
};
TorestrictthecalltoCellularonlyfrommydomain.com
#attempthandofftocellullar
if(uri=~"^sip:08[09]*@mydomain.com"){##callerregisteredtomydomain.com
rewritehostport("192.168.0.200:5061");##192.168.0.200:5061isATA
route(1);
};
HowtorouteusingAreaCodeforinterconnectedSIPServers
ForexamplewehaveseveralSIPServersinournetwork,suchas,
AreaCode
SIPServerIPAddress
021 203.159.31.99
022 203.159.31.123
023 203.159.31.48
ThedialplanforOpenSIPSwouldbesomethinglike,
if(uri=~"^sip:021[09]*@*"){
strip(3);
rewritehostport("203.159.31.99:5060");
route(1);
};
if(uri=~"^sip:022[09]*@*"){
strip(3);
rewritehostport("203.159.31.123:5060");
route(1);
};
if(uri=~"^sip:023[09]*@*"){
strip(3);
VoIPCookbook:180
rewritehostport("203.159.31.48:5060");
route(1);
};
HowtorouteENUMQueryinOpenSIPS
StepstorouteENUMqueryinOpenSIPSisasfollows,
PrepareENUMmodulinOpenSIPSconfiguration
CreateroutingtableforENUM
ENUMqueryinOpenSIPSisbasicallytransformtheURIaddressfromENUMtoURISIP.Call
processisnormallydoneusingtheURISIP.
TopreparetheENUMmoduleinOpenSIPSconfiguration,weneedtoedit
/usr/local/etc/opensips/opensips.cfgor/etc/opensips/opensips.cfg
#vi/usr/local/etc/opensips/opensips.cfg
Enterthefollowingcommand
loadmodule"enum.so"
modparam("enum","domain_suffix","e164.arpa.")
modparam("enum","i_enum_suffix","e164.arpa.")
Wecanchangee164.arpatootherENUMtopleveldomain,suchas,e164.idore164.th.
TestENUMQueryinOpenSIP
Assuming:
AnAsteriskServerRunningat192.168.0.2
Echotestreadyatnumber600
ENUMServerisreadytoresolveENUMQueryfore164.id.
DatainENUMServerreadytomap+62555666666600to600@192.168.0.2
VoIPCookbook:181
Testtestroutingtablewouldbe
rewriteuri("sip:62555666666600@192.168.0.2");
prefix("+");
enum_query("e164.id.");
route(1);
route[1]{
#senditoutnow;usestatefulforwardingasitworksreliably
#evenforUDP2TCP
if(!t_relay()){
sl_reply_error();
};
exit;
}
ENUMRoutingTableinOpenSIPSconfiguration
Theshortversion
if(uri=~"^sip:00[19][09]*@*"){
strip(2);
prefix("+");
};
if(uri=~"sip:\+[09]+@*")
enum_query("e164.id.");
TheaboveexamplewillallowallclientfromallservertoaccessourENUMqueryrouting.Amore
completeversionofENUMquerymaybeasfollows,
#Somewhereintheroute[x]section:
#ifyouwanttomakeENUMworkwithnumbersstartingwith"00",
#usethefollowingtoconvert"00"itintoa"+"
if(uri=~"^sip:00[19][09]*@example\.net"){
VoIPCookbook:182
#stripleading"00"
#(changeexample.nettoyourdomainnameorskipthestuffafterthe"@")
strip(2);
#(adjust,ifyourinternationalprefixissomethingelsethan"00")
prefix("+");
};
#checkifrequesturistartswithaninternationalphone
#number(+X.),ifyes,trytoENUMresolveine164.arpa.
#ifnoresult,tryinnrenum.net
if(uri=~"sip:\+[09]+@example\.net"){
#(changeexample.nettoyourdomainnameorskipthestuffafterthe"@")
if(!enum_query("e164.arpa.")){
enum_query("nrenum.net.");
};
};
Anotheralternativethatmaybeextendedisasfollows,
#isthisanENUMdestination(leading+?)
if(method=="INVITE"&&uri=~"sip:\+[09]+atiptel\.org"){
if(!enum_query("voice"))#ifparameterempty,itdefaultsto"e2u+sip"
enum_query("");#E2U+sip
}
Yetanotheralternativethatcanbetried/expandedisasfollows,
if(is_from_user_enum()){
enum_query("");
}
VoIPCookbook:183
CHAPTER 9: ENUM
ENUMisbasicallyamappingmechanismtomapTelconumber,suchas,+628113334567or
+62555334567,toanumberrecognizeinVoIPnetworksuchas,20333@voiprakyat.or.idor
5007987@fwd.pulver.com.Thus,inprinciple,ENUMismerelyatable.
ENUMisnotlimitedtomappingonly.ENUMrecognizeprioritizing.Forexample,aphonenumber
+6255534567mayhaveseveralclientwithpriority,suchas,
+6255534567
+6255534567
+6255534567
+6255534567
+6255534567
priority1
priority2
priority3
priority4
priority5
245678@voiprakyat.or.id
6543686@fwd.pulver.com
+62215678976(nomorkantor)
+62856789654(nomorhandphone)
mail:oknum@salemba.co.id
TheactualwritingofENUMontheInternet,forexampleusingthetopleveldomaine164.id,isas
follows,
+6255512345678
+6281812345678
8.7.6.5.4.3.2.1.5.5.5.2.6.e164.id
8.7.6.5.4.3.2.1.8.1.8.2.6.e164.id
PleasenotethattheENUMnumberisreversedasopposetotheknownnormalphonenumber.
VoIPCookbook:184
TounderstandhowENUMworks,oneneedstounderstandhowaDomainNameSystem(DNS)works
asENUMusesDNSServer.Thus,ENUMworksfairlysimilartoDNSbuttomapandtodelegatea
phonenumber.PleasenotethatENUMisdifferentfromaSIPServer.
ImagineatnationallevelthereisanallocationofareacodeforSIPnetworkon+62555.Itcanbe
mappedtoENUMunderthedomain,forexample,5.5.5.2.6.e164.id.ItmayhaveseveralENUMName
Server(NS)suchas,
ENUMServerDomain5.5.5.2.6.e164.id
+62555
ENUMNS 202.123.123.124
+62555
ENUMNS 235.123.123.234
Pleasenotethatatnationallevel,theENUMServermaynothaveacompleteinformationonthe
subscribers.
Forexample,acommunityoracorporateoratelecomunicationoperator,assigned4444areacodefor
itsnetwork,suchthat,itmayuse
+6255544440000+6255544449999
basically,itmayallocatephonenumberfor10.000subscribers.Thus,thecommunitymayruntheir
ownENUMserverunderthesubdomain4.4.4.4.5.5.5.2.6.e164.id,forexample
ENUMServerDomain4.4.4.4.5.5.5.2.6.e164.id
+62555444 ENUMNS
212.234.234.234
+62555444 ENUMNS
212.234.234.235
Inthedelegationprocess,theNSinformationofENUM4.4.4.4.5.5.5.2.6.e164.idmustbewrittenin
ENUM5.5.5.2.6.e164.idthattells
4.4.4.4.5.5.5.2.6.e164.id
4.4.4.4.5.5.5.2.6.e164.id
INNS 212.234.234.234
INNS 212.234.234.235
ENUMconceptisnotconfinedtooperator,anycorporateorcommunitywithsmallernumberof
extensions,e.g.,100extentionsmayuse,forexample,ENUMallocationfor,
+6255566666600+6255566666699
Thus,thisparticularcorporatemusthasitsownENUMserverorcollocatetootherENUMserverto
VoIPCookbook:185
handle6.6.6.6.6.6.5.5.5.2.6.e164.id,suchas
NUMServerDomain6.6.6.6.6.6.5.5.5.2.6.e164.id
62555666666 ENUMNS
212.234.234.4
62555666666 ENUMNS
212.234.234.5
DelegationprocessforNSof6.6.6.6.6.6.5.5.5.2.6.e164.idmustbeenteredintothemainENUMServer
for5.5.5.2.6.e164.idttotell
6.6.6.6.6.6.5.5.5.2.6.e164.id INNS 212.234.234.4
6.6.6.6.6.6.5.5.5.2.6.e164.id INNS 212.234.234.5
TheENUMdelegationconceptisclearlyshownthatisnotlimitedtooperator.Anyentitiesmayhave
theirveryownphonenumber.Thus,amorecomprehensiveauthenticationprocessmaybeneededto
makesurethephonenumberisproperlydelegated.
ENUM Implementation
ENUMServerisprincipallyaDNSServer.Thus,ifonehasaDNSServer,onemayreadilyrunan
ENUMServer.ToInstallanENUMSever,oneneedto,
InstallaDNSServer.InLinux,wenormallyuseBINDforDNSserver.
AddourENUMallocationin/etc/named.conf.local.
IncludeourENUMdataintothedatabasefilementionedin/etc/named.conf.local.
BINDInstallation
InstallBINDasfollows,
aptgetinstalldnsutilsbind9
SetupBINDforENUMServer
Forexample,weareassignedfor+625XXXX.Weneedtoedit,
VoIPCookbook:186
/etc/bind/named.conf.local
Entryfordomain5.2.6.e164.id
zone"5.2.6.e164.id"IN{
typemaster;
file"/etc/bind/5.2.6.e164.id.db";
};
Allsubscribernumbersmustbelistedin/etc/bind/5.2.6.e164.id.db.AnexampleoftheDNSfileof
/etc/bind/5.2.6.e164.id.dbisasfollows,
$TTL86400
@
INSOAns.warnet.co.idadmin.warnet.co.id.(
42;serial(d.adams)
3H;refresh
15M;retry
1W;expiry
1D);minimum
INNS ns.warnet.co.id.
0.0.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2000@192.168.0.3!".
1.0.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2001@192.168.0.3!".
2.0.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2002@192.168.0.3!".
3.0.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2003@192.168.0.3!".
4.0.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2004@192.168.0.3!".
5.0.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2005@192.168.0.3!".
0.2.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2020@192.168.0.3!".
1.2.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2021@192.168.0.3!".
2.2.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2022@192.168.0.3!".
0.3.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2030@192.168.0.3!".
1.3.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2031@192.168.0.3!".
2.3.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2032@192.168.0.3!".
3.3.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2033@192.168.0.3!".
0.5.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2050@192.168.0.3!".
1.5.0.2 NAPTR10100"u""E2U+sip""!^.*$!sip:2051@192.168.0.3!".
Forexample,itmeansthemappingnumbersisasfollows,
VoIPCookbook:187
+6252000
+6252001
+6252002
0.0.0.2.5.2.6.e164.id 2000@192.168.0.3
1.0.0.2.5.2.6.e164.id 2001@192.168.0.3
2.0.0.2.5.2.6.e164.id 2002@192.168.0.3
Aftertheeditingprocess,pleaserestartheDNSServerusingthecommand
#/etc/init.d/bind9restart
TestDNSforENUMQuery
WecanusethedigcommandonthelocalhostoftheDNSservertoquerytheENUMentries,for
example,
$digNAPTR0.0.0.2.5.2.6.e164.id@127.0.0.1
Theoutputwouldbeapproximately
;<<>>DiG9.6.1P1<<>>NAPTR0.0.0.2.5.2.6.e164.id@127.0.0.1
;;globaloptions:+cmd
;;Gotanswer:
;;>>HEADER<<opcode:QUERY,status:NOERROR,id:10744
;;flags:qraardra;QUERY:1,ANSWER:1,AUTHORITY:1,ADDITIONAL:1
;;QUESTIONSECTION:
;0.0.0.2.5.2.6.e164.id.
IN
NAPTR
;;ANSWERSECTION:
0.0.0.2.5.2.6.e164.id. 86400 IN
sip:2000@192.168.0.3!".
NAPTR
10100"u""E2U+sip""!^.*$!
;;AUTHORITYSECTION:
5.2.6.e164.id.
86400 IN
NS
ns.warnet.co.id.
;;ADDITIONALSECTION:
ns.warnet.co.id.
86335 IN
76.163.126.2
;;Querytime:0msec
VoIPCookbook:188
;;SERVER:127.0.0.1#53(127.0.0.1)
;;WHEN:TueNov2408:12:112009
;;MSGSIZErcvd:137
Number
ENUM
ServerIP
MinistryofEduction
+9752123XXX
3.2.1.2.5.7.9.e164.bt 203.159.31.100
UniversityA
+9753544XXX
4.4.5.3.5.7.9.e164.bt 202.154.1.10
HighSchoolB
+9753342XXX
2.4.3.3.5.7.9.e164.bt 222.119.6.45
VillageC
+9755768XXX
8.6.7.5.5.7.9.e164.bt 231.167.31.20
DzongD
+9757243XXX
3.4.2.7.5.7.9.e164.bt 204.19.1.5
AttheENUMCountryLevelDNS,inthisexample203.159.31.41,thedelegationprocessisdoneby
configuringfile/etc/bind/named.conf.localsuchthat
zone"3.2.1.2.5.7.9.e164.bt"{
typeslave;
masters{
203.159.31.100;
};
file"/var/lib/bind/3.2.1.2.5.7.9.e164.bt.hosts";
};
VoIPCookbook:189
zone"4.4.5.3.5.7.9.e164.bt"{
typeslave;
masters{
202.154.1.10;
};
file"/var/lib/bind/4.4.5.3.5.7.9.e164.bt.hosts";
};
zone"2.4.3.3.5.7.9.e164.bt"{
typeslave;
masters{
222.119.6.45;
};
file"/var/lib/bind/2.4.3.3.5.7.9.e164.bt.hosts";
};
zone"8.6.7.5.5.7.9.e164.bt"{
typeslave;
masters{
231.167.31.20;
};
file"/var/lib/bind/8.6.7.5.5.7.9.e164.bt.hosts";
};
zone"3.4.2.7.5.7.9.e164.bt"{
typeslave;
masters{
204.19.1.5;
};
file"/var/lib/bind/3.4.2.7.5.7.9.e164.bt.hosts";
};
Whereon203.159.31.100,202.154.1.10,222.119.6.45,231.167.31.20and204.19.1.5,wemustrunmaster
DNSserverforeachrespectiveENUM.
VoIPCookbook:190
Makeconference"room"
Add"room"todialplan.
VoIPCookbook:191
Thereareseveraloptionsthatcanbeused,suchas:
mcallercanlistenbutnotspeak.
tcallercanspeakbutcannothear.
pcallercangetoutoftheConferencebypressingthe#key.
Therearetwoadditionaloptionsthathavenotbeenimplemented:
sAsteriskprovidesmenutotheuserif*ispressed.
agivetheuseradministratorprivilegesonaconference.
VoIPCookbook:192
include=>marketing_team_conference_room
IftheestablishedconferencegivesthecallerstheopportunitytolistentospeechesfromtheBoss
withoutinterruptingthespeech,thenwehavetodothefollowing:
[marketing_team_conference_room]
exten=>300,1,MeetMe,2500|m|1234
Newcallerswhohavejoinedtheconferencecanfindouthowmanypeopleintheconferenceuse
MeetMeCountapplications,byexecutingthefollowingcommand:
[marketing_team_conference_room]
exten=>300,1,Playback(there_are)
exten=>300,2,MeetMeCount,2500
exten=>300,3,Playback(callers)
exten=>300,4,MeetMe,2500
Ofcourseyouneedtosavetwosoundfilesthatsomewhatreads"Thereare"and"Callerspresentinthe
conference".Aftereditingextensions.conf,donotforgettoreloadthenewconfiguration.Inorderto
preventanomaliesencounteredduringoperation,wecanrunasteriskconsoleandexecutethefollowing
command:
#asteriskr
asterisk1*CLI>extensionsreload
[gen_conference]
Ifweneedestablishanewconference,wecanimmediatelymakeitthroughCLI,withthefollowing
command:
localhost*CLI>addextension400,1,Dial,3500intogen_conference
Extension'400,1,Dial,3500'addedinto'gen_conference'context
Hereextension400willbeaddedwithpriority1togen_conference.Ofcourse,thisextensionwill
disappearifwerestarttheasterisk,orwecandeleteitthroughthefollowingcommand:
localhost*CLI>removeextension400@gen_conference
Wholeextension400@gen_conferenceremoved
Inmultilineextensions,wecanomitasinglelineorcommandbygivingapriority,forexample
localhost*CLI>removeextension400@gen_conference2
Extension400@gen_conferencewithpriority2removed
VoIPCookbook:194
DUNDi,DistributedUniversalNumberDiscoveryprotocol.
Centralizeddirectory,suchasVoIPRakyat
Onthisoccasion,youwillbeshownatrunkpeeringprocessusingVoIPRakyat.Thesamemechanism
canbeappliedtootherSIPproxyacrosstheworld.
Inaddition,wewillalsodiscusstherealproblemswefaceinconfiguringnetworkinvolving
NAT/ProxyServer,asmostnetworksareprotectedbyfirewallthatblocksVoIPsignal.
WepresumethatwealreadyhaveanaccountinVoIPRakyat.Inthissense,thegivennumberand
passwordare:
number
number
2012345passwordabcdef
2055555password123456
Nextwewilldoacomprehensiveconfigurationoffilesip.confandextensions.conf,including
providingthefacilitiesrequiredfortesting.
Ingeneral,thereareseveralimportantthingsinconfiguringtrunkinAsterisk
RegistrationtoSIPaccountinvoiprakyat(sip.conf)
Creatingusername&passwordforvariousextensions(sip.conf)
ConfiguringDialoutforavarietyofconfigurations(extensions.conf)
Configurationforinboundcall(extensions.conf[inboundsip])
Withthisconfiguration,wecannowplaceoutgoingcallsusingvariousavailablelines.Inaddition,we
canalsoreceivecallsdialedfromvoiprakyatandtheinternetthroughinboundsipmodule.Thedetailof
eachofavarietyofconfigurationsisavailableintheenclosedconfiguration.
VoIPCookbook:195
AsteriskSIPclientbehindtheNAT,withtheclientconnectedtoaSIPproxyoutsidetheNAT
AsteriskSIPclientbehindtheNAT,withtheclientconnectedtoaSIPproxywithintheNAT
AsteriskSIPserverbehindtheNAT,withtheclientoutsidetheNATconnectedtoAsterisk
AsteriskSIPserverbehindtheNAT,withtheclientwithintheNATconnectedtoAsterisk
AsteriskSIPclientoutsidetheNAT,withtheclientconnectedtoSIPproxyoutsidetheNAT
AsteriskSIPclientoutsidetheNAT,withtheclientconnectedtoSIPproxywithintheNAT
AsteriskSIPserveroutsidetheNAT,withtheclientoutsidetheNATconnectedtoAsterisk
AsteriskSIPserveroutsidetheNAT,withtheNATclientconnectedtoAsterisk
VoIPCookbook:196
Ingeneral,thesetupcanworkwiththeexistingconfiguration,ofcourse,dependingonthe
configurationoftheclient,NAT,serverandmanyotherfactors,especiallythefirewallconfiguration.
Ofthosesetups,number3and6aredifficulttodobecauseSIPisapeertopeerprotocolandmost
NATsallowonlyclientsinsidetheirnetworktoconnecttoaserverlocatedoutsidebutnotviceversa.
1.
2.
3.
4.
5.
6.
7.
8.
RunningwithaproxyserverthatsupportsNAT
RunningwithnoNATinbetween
RunningbydoingportforwardingintheNAT/proxyserver
RunningwithnoNATinbetween
RunningwithnoNATinbetween
RunningbydoingportforwardingontheNAT/Proxyserver
RunningwithnoNATinbetween
Runningwithconfigurationnat=yesandqualify=xxxinsip.conf.SomeclientsusingXLikeuse
STUNandsendUDPkeepalivepackets.QualifywillsendakeepalivepacketsfromAsterisk
toanyclientintheNAT
However,theworstcaseoccurswhenAsteriskiswithinNATandtheclientiswithindifferentNAT.For
this,weneedtohaveamediatorthatcouldseebothwayssimultaneously.Tochannelvoicedataor
streaming,weneedamediaserver.AsteriskwhichisplacedoutsidetheNATwouldbeabletofunction
asamediaserver,andwecanalsoaddthefeaturetodoCodecconversion.
VoIPCookbook:197
openmailbox777inmb_tutorialcontext.Oncethecallerhasleftamessage,Asteriskwillcarryout
playback(rewindthemessage)andhangupthecall.Playback(vmgoodbye)willexecutevmgoodbye
filethatshouldbeavailablein/var/lib/asterisk/sounds/.
TheVoicemailmessageisrecordedin
/var/spool/asterisk/voicemail/<context>/<mailbox>/INBOX/
ThereforethefullpathtoIvanis
/var/spool/asterisk/voicemail/mb_tutorial/777/INBOX/.
Tolistentothemessagestoredinthemailbox,wecanplaceacallbyusingVoiceMailMaincommand
inAsterisk.Thecommandisasfollows:
VoiceMailMain(mailbox@context)
InthedefaultconfigurationofAsterisk,ifthesampleconfigurationremainsaswhatis,VoiceMailMain
canbecontactedusingthenumber8500.
Theconfigurationsampleofextensions.confforaccessingVoiceMailMainis:
exten=>9999.1,VoiceMailMain(777@mb_tutorial)
Bydialing9999,wewillbeabletogointomailbox777,ofcourseafterweenteredthecorrect
passwordforthismailbox,whichis1212.
VariousoptionsareavailablewhenaccessingmailboxesusingVoiceMailMain:
0Mailboxoptions
1Recordunavailablemessage
2Recordbusymessage
3Recordourname
4Changeourpassword
*Backtomainmenu
1Listentooldmessages
2Changefolders
3Advancedoptions
1Sendreply
VoIPCookbook:199
2Callback
3Envelope
4Outgoingcall
5Leavemessage
*Backtomainmenu
4Playpreviousmessage
5Repeatmessage
6Playnextmessage
7Deletethismessage
8Forwardmessagetoanothermailbox
9Savemessageinafolder
*Help;duringmessageplayback:Rewind
#Exit;duringmessageplayback:FastForward
Whenwelistentoavoicemailmessagerecording,wecanusethefollowingbuttonstonavigate,ie,
*torewind(goingback)
#toFastForward(forward)
Note:the'#'and'*'buttonsworkonlywhenthemessageisintheprocessofplayback.
VoIPCookbook:200
Pattern Extension
Whenwedefineextensionsinacontext,notonlycanweuseordinarynumbers,namesorletters,but
wecanalsodefinetheextensionsthatmatchasetofnumbersdialedusingextensionpattern.
Attaching context
Acontextcontainingextensionscanbeincorporatedintoorassociatedwithothers.Forexample,
considerthefollowingcontext:
Context"default":
Extension
101
102
Note
MarkSpencer
WillMeadows
VoIPCookbook:201
Operator
Context"local":
Extension
Note
_9NXXXXXX
Localcalls
include=>"default"
Context"longdistance":
Extension
Note
_91NXXNXXXXXX Longdistancecalls
include=>"local"
Wehavedefinedthreeextensions:
Operator.Defaultcontextallowsustodial3telephoneextensions:Mark,Willandtheoperator
Localcontexthasonlyoneextensionthatallowsustodial7digitnumber.Inaddition,ifwe
incorporatethedefaultcontextintothelocalone,wecanalsodialMark,Willandtheoperator.
Thelongdistancecontexthasanextensionpatternallowingustoplacealongdistancecall.
Thiscontextalsoincludeslocalcontext,andthusalsoallowsustocallalocalnumberoreven
theextensionofMark,Wilandtheoperator.
Usingcontextintheextension,wecancarefullyregulatewhocanhaveaccesstoalargernetwork.Be
careful.Ifthereismorethanonepatternthatmatchthedialednumber,Asteriskmaynotusethe
numberswewant.
Forexample,wehaveachannel"Zap/1",whichisconnectedtoatelephoneinanoffice.Forexample,
intheZapchannelconfiguration(zapata.conf)wehavedefinedcontext=johnforZapchannel1.
Therefore,ifweuseahandsettodialanumber,Asteriskwilllookforcontextwiththename"john"in
extensions.conftoseewhathastobedone.Wecanstartacontextbywritingthenameinsquare
brackets
[john]
Foreachcontext,wecandefineoneormoreextensionsthatcanbeusedbyAsterisktocomparethe
numberstobedialed.Foreachextension,wecantellAsteriskwhatneedstobedonethoughasetof
commands.
Extension
Anextensioncanbeaseriesofnumbersorapattern.Extensioncanbeaseriesofnumber,like123,and
mayalsocontainsomestandardsymbols*and#,whichareavailableonthephonekeypad.So34#76is
avalidextensionnumber.SomekeypadsarelabeledA,B,C,andD.Becauseofthis,extensioncan
alsobedefinedbasedonletters.Sobasicallyanextensioncanbedefinedusingbothlettersand
numbers.KeepinnotethattherearemanyVoIPphonesthatcancallextensionnumbersconsistingof
textSembang,like"Office".ThereforeitisnotaproblemtodefinesuchanextensionnameinAsterisk.
Areextensionnamescasesensitive?Yesandno.ExtensioncasearesensitivebecausewhenAsterisk
attemptstomatchtheextensiondialedbyausertoextensionthatisdefinedincontext,theextension
nameshouldbepreciselymatched,includinguppercaselettersandsmall.Therefore,ifausercalls
extension"OFFICE"throughtheirVoIPphone,Asteriskwillnotimmediatelyrunthecommandswe
defineforextension"Office".Butinreality,extensionnamesarenotcasesensitiveinthesensethatwe
cannotdefinedifferentextensionsbasedonlyonuppercase/lowercaseletters.Itmeanswedonotdefine
thecommandforextension"Office"and"OFFICE"inacontext.
PredefinedExtensionNames
Asteriskdefinesanumberofextensionnamesforspecificneeds.Theseextensionsare:
i
s
:Invalid
:Start
VoIPCookbook:203
h
t
T
o
:Hangup
:Timeout
:AbsoluteTimeout
:Operator
andmanymore.
DefiningExtension
UnliketheextensionsintraditionalPABX,wheretheextensionisusuallyassociatedwithaphone,
interfaceormenuin,theextensioninAsteriskisdefinedasasetofcommandstorun.Thesecommands
areusuallyexecutedaccordingtotheirlevelofpriority.Somecommands,suchasDialorGotoIf,have
theabilitytofollowothercommandsdependingonacertaincircumstance.
Atthetimewhentheextensionisdialed,thecommandmarkedas1willbeexecuted,followedby
commandnumber2andsoon,untilthephoneishungup.
Inthesyntaxusedinextensions.conffile,astepinagivenextensioniswrittenusingthefollowing
format:
exten=extension,priority,Command(parameter)
Thesignequalto=canalsobewrittenusing=>,justliketheformoftenusedinmanyexamples.
Inconclusion,a"context"hasaname,suchas"john".Ineveryofthem,wecandefineoneormore
"extension".Inanextension,wecandefineasetofcommands.Howdowedefinetheseextensionsand
thecommandsrequiredtohandlethem?Todefineboth,weneedtoeditextensions.conffileusingatext
editor.Thereareseveraltoolsthatallowustoeditthemusinggraphic/web.
Thecomponentsthatbuildthestagesofextensioncommandorthecommandlineareasfollows:
Extensionisthelabelofanextension,whichcanbeastring(containingallowednumbers,
lettersandsymbols).Extensionisapatternthatmustbeevaluateddynamicallyirordertomatch
manypossiblephonenumbers.Everycommandlinethatbecomespartofaparticularextension
shouldhavethesamelabel.
Priorityusuallyisofintegernumber.Itisthesequenceofacommandthatmustberunwithina
givenextension.Thefirstcommandthatwillberunmustbeginwithpriority1.Ifthereisno
VoIPCookbook:204
suchthingaspriority1,thenAsteriskwillnotexecutetheextensioncommand.Afterrunning
priority1,Asteriskwillthenaddanotherprioritytothepriority2andsoon,ofcourse,provided
thatthereisnocommandthatdetermineswhichsubsequentprioritywhichmustberun.Ifthe
nextcommandturnsouttobeundefined,Asteriskwillstoptheprocessrunningthecommand,
notwithstandingtherearestillcommandswithhigherpriority.
Commandisthe"application"toberunbyAsterisk.
Parametersaretheparametersthatmustgiventoacommand.Notallcommandrequires
parameter,assomeofthemcanbeexecutedwithoutparameters.
Forexample:
exten=>123,1,Answer
exten=>123,2,Playback(ttweasels)
exten=>123,3,Voicemail(44)
exten=>123,4,Hangup
Withthesedefinitions,anextensionisnumbered"123".Whenacallisdialedtothisextension,Asterisk
willrespondtothecall,executingasoundfilewiththenamettweaselsandgivethecallerthechance
toentervoicemailintomailbox33,andwillbeendedupwithahangup.
Asteriskitselfdoesnotreallycareabouttheorderoflineplacementinextensions.conf.Sowithrandom
placementoflines,thecommandwewanttoexecutewillstillbecarriedoutaccordingtotheorderwe
want.
exten=>123,4,Hangup
exten=>123,1,Answer
exten=>123,3,Voicemail(44)
exten=>123,2,Playback(ttweasels)
AnotherwayindefiningthecommandistouseCallerIDtomatchthecaller.
exten=>123/100,1,Answer()
exten=>123/100,2,Playback(ttweasels)
exten=>123/100,3,Voicemail(123)
exten=>123/100,4,Hangup()
Withsuchcommand,compabilitywithextension123willbepossibleonlywhentheCallerIDofthe
VoIPCookbook:205
calleris100.Thiscanalsobedonethroughpatternmatchingprocess,suchasthefollowing:
exten=>1234/_256NXXXXXX,1,Answer()
andsoon
Thisway,thecompabilitywithextension1234willonlypossibleiftheCallerIDbeginswithjustthe
codeareanumber256.
Wecanevendothefollowing:
exten=>s,1,Answer
exten=>s/9184238080,2,Set(CALLERID(name)=EVILBASTARD)
exten=>s,2,Set(CALLERID(name)=GoodPerson)
exten=>s,3,Dial(SIP/goodperson)
Inthesecondpriority,itisshownthatwecanmarkanypersonwedislike,whileanypersonotherthan
theonewedislike,afterthirdpriority,willreturntothepathspecified.
AninterestingExtensionExamples
Asteriskisabletotransfercalls.Thiscanbedonebyaddingtheparametert(lowercaps)totheuser
context,suchasinthefollowingsyntax:
exten=>250,1,Dial(SIP/alrac,10,rt)
Thisway,thecalltransfercanbedonebypressing"#",followedbytheextensionnumber.Asteriskwill
say"transfer"whenyoupress"#"andsoundsadialtoneuntilweentertheextensionnumbertowhich
wewishtocall.
Asteriskhastwentyparkingspaces,number701720.Transferthecallthatyouwanttoparkat
extension#700andAsteriskwillautomaticallyparkitatanyemptylotandprovideyouwithextension
ofwhereitisparked.Toretrievethecall,youonlyhavetodialtheextensionnumber.temparextension
mendialenoughparking.
Thestepsnecessaryforparkingcallsareasthefollowing:
Addinclude=>parkedcallstothedefaultcontext,ortheonethatyouwishtohaveparkcall
facility.
VoIPCookbook:206
Youshouldhavethefile/etc/asterisk/features.confwhichwascreatedduringinstallation.Make
surethatyouhavethefollowingsyntax:
[general]
parkext=>700
parkpos=>701720
context=>parkedcalls
parkingtime=>180
YouneedtorestartyourAsteriskserverthroughtheconsole,asreloadingisnotsufficient.Youcan
attemptitintheinternalextension.Soifthereisanincomingcall,thecallcanbeparkedbypressing
#700,andAsteriskwillsaytheextensionnumberofwherethecallisparked.Thecallerwillheara
beautifulmusicplayedthroughMusicOnHold.Whentheparkingtimeisup,thenourextension
numberfirstdialedwillbedialedagainandwehavetheoptionwhethertoreceivethecallornotto
receiveandforwardthecalltovoicemail.
Theparameter"t"(lowercase)meansthatonlytherecipientofthecallcantransfercalls.Thismeanswe
canonlyparkacalljustonce.Butifweaddtheparameter"T"(capitalized),suchas:
exten=>250,1,Dial(SIP/alrac,10,rT)
thenwecantransferthecalls,whetherassomeonewhoreceivethecallsorasthecaller.Allthisalso
meansthatwecanunparkacall,parkthecallandtransferthecall.
Asteriskcanbeconfiguredforhuntingtelephonenumbers.Ahuntgroupisalistofphonenumbers
whichwillberangconsecutivelyuntilwepickupthephone.Theexampleshowstwophoneextensions
andamobilephonenumber.Thecallersimplycallextension100andAsteriskwilldotherestofthe
tasks.Eachphonewillringfor20seconds,andwhennobodypickitup,Asteriskwilldialthenext
phone.
[alracfollowme]
exten=>100,1,Dial(SIP/350,20,r)
exten=>100,2,Dial(SIP/351,20,r)
exten=>100,3,Dial(Zap/1/1231234567,20,r)
exten=>100,4,VoiceMail(u350)
exten=>100,dial+101,VoiceMail(b350)
Othervariationofthehuntingtechniqueaboveisthatallnumberscouldringatthesametime.Thisis
knownasgroupring.Youcanringallthephonesinadepartmentifyouwishthemtodoso.The
VoIPCookbook:207
sampleconfigurationis:
[customerservice]
exten=>666.1,Dial(SIP/605&SIP/604&SIP/606,40,tr)
exten=>666.2,Voicemail(s699)
Intheexample,extension604,605,and606willberangsimultaneouslywhensomeoneplaceacallto
extension666fromtheCustomerServiceDepartment.Ifthereisnoonetoanswerthecallwithin40
seconds,thecallwillbeforwardedtoVoicemail.
Reloading
Afterwemadesomechangestothedialplanandotherthings,wehavetoapplythesechangeswe
appliedtoasteriskbydoingthefollowingCLIasteriskcommand:
CLI>reload
Alargeconfigurationfilesizeormanysmallerfilesize?
Throughthecommand#include<filename>inextensions.conf,otherfilescanbeincluded.Thisway,
wecanconfigureextensions.conftobethemainfile,users.confthatcontainslocaluser,services.conf
thatcontainsvariousserviceslikeconferencing.Bydoingso,itiseasiertomaintainthedialplanwe
create.
VoIPCookbook:208
Theabovecommandwillcarryoutforwardingtootherserver.However,Userandkeyhavetobe
definediniax.conffileoftheservertowhichthecallswillbeforwarded.Thecontextforthisserveris
thesameasthatofextensions.confoftheserverthatdoestheforwarding.
VoIPCookbook:209
Linksys SPA9000
AnexampleofIPPBXbeingusedasanexampleisLinksysSPA9000,adeviceconsistingonlytwo
LAN(RJ45)portsandtwotelephone(RJ11)ports.SPA9000isactuallyarouterorproxyserver,with
portconnectivitytoWANandLAN.TheRJ45enablingconnectivitytoWANislabeledInternet,
whiletheRJ45connectiontoLANislabeledEthernet.ThedefaultIPaddressfortheLAN
VoIPCookbook:210
connectivityis192.168.1.1.Meanwhile,thetwoRJ11telephoneportsarepartofPBXportthatcanbe
connectedtotwoconventionalphones,includingfaxmachine.Despitethissimplicity,SPA9000isa
PBXthatiscapableofbeingconnectedtouptofourPSTNlinesortoalargeVoIPinfrastructure.
Internally,SPA9000couldaccommodate16extensionlines.Whencomparedtoasmallconventional
PBX,SPA9000hasonlyfourportscomparedtoasmallPBXthatuses20telephonecalbles.Soall
connectionswillbeestablishedthroughtheinternetinfrastructure.
LinksysSPA9000Configuration
ThewayLinksysSPA9000operatesissomewhatsimilartootherLinksysVoIPequipments.To
configureLinksysSPA9000,weneedtohave:
1. informationonIPaddressforbothWANandLANports.
2. SIPaccountofaproviderintheinternettoallowSPA9000toregisteritselftofourdifferentSIP
accounts.
3. NumberallocationforextensionlinesofthePBXtoSPA9000toprovideaddressupto16
telephonenumbersautomatically.
Numbersallocatedforeachextensionarespecific,distinguishinganIPPBXfromotherVoIP
appliances.Normally,atypicalVoIPequipmentdoesnotprovidetelephonenumberallocation.Soif
youwanttoconnectyourconventionalphonetoLinksysSPA9000throughtheinternetorWANport,
thefirstthingyouhavetodoisfindtheinternet/WANIPaddressofLinksysSPA9000solateryouwill
beabletoconfigureusingtheweb,bydoingthefollowingsteps:
Press*ontheconventionaltelephonekeypadrepeatedlyuntilyouhearamantalkingthrough
yourtelephone.
Press110#andlistencarefullytotheSPA9000'sIPaddressgivenbytheman.Writeitdown
soyoudonthavetomemorizeit.
AnothereasierwaytoobtaintheIPaddressistogointotheEthernet/LANport.TheIPaddressof
SPA9000ethernetLANshouldbe192.168.1.1bydefault,thatis,providedyouhavenotchangedthe
settings.
ThenextstepistoconfigureyourPCIPaddresssoitwillmatchthatofLinksysSPA9000soyouwill
beabletodotheconfigurationthroughtheweb.GotoPCandmatchthePC'sfamilyaddresstothatof
SPA9000.GotoStartmenu,controlpanel,networkconnections,localareaconnection,internet
protocol(TCP/IP),andproperties.
VoIPCookbook:211
NowyouwillbeabletologintoLinksysSPA9000'swebinterfacefromyourPCviahttp://ipaddress
spa9000/.
ThefirstmenuyouwillfindisthestatusoftheLinksysSPA9000.
VoIPCookbook:212
IntheWANsetup,wegettwooptions:
UsingastaticIP(requiringIPaddress,Netmask,gatewayetc.)
UsingautomaticIP(connectiontypeshouldbesettoDHCP).
Ingeneral,theIPaddressallocationmethodusedinaWANnormallyisdynamic.However,fora
softswitch,itisrecommendedthatyousettheIPaddressallocationtostaticinordertomakeiteasier
fornonLinksysSIPclienttoregisteritselftothesoftswitch.
VoIPCookbook:213
Figure 15.4: The LAN Setup Tab of Linksys SPA9000 Administration Panel
IntheLANSetuptab,wecanconfigurethefollowing:
whetherNAT/RouterinLinksysSPA9000shouldbeactivatedornot.
IPaddress.Put102.168.1.1
Netmask.Put255.255.255.0
DHCPServerforclientinLAN
WecanalsoconfiguretheIPaddresstobeallocatedtoaspecificMACaddress.
ConfiguringVoIPonLinksysSPA9000
Basically,thereareseveraltypesoftelephoneconnectioninavailableinLinksysSPA9000:
VoIPCookbook:214
TwoFXSorconnectionstothetelephone.Thisconnectionbasicallyneedsnottobeconfigured
andbydefault,itsnumberis100and101.
FourSIPconnectionstohighercentrallevel,toanySIPserver
Thereare14nonFXSextensionsinformallocationforIPPhone.Thenumberallocatedranges
from102to116.Still,configurationisnotneededand,anyIPPhoneattemptingtoconnectto
LinksysSPA9000candosowithablankpassword.
Figure 15.5: FXS 1 Tab under Voice Tab of Linksys SPA9000 Administration Panel
Onthevoicemenuandadminmenu,wecanseetheconfigurationforFX1andFX2,orLine14.On
theFXS1menu,weneedtosetLineEnabletoYes,sotheFX1willbeabletoreceivecallsdialedtoit.
MakesurethatthereisaphonelineorfaxmachineconnectedtoFXS1orotherwiseanyincomingcalls
willnotbereceived.ApplythesameconfigurationtoFXS2.Overall,theconfigurationallowsusto
connecttwoconventionalphones,includingfaxmachine,toLinksysSPA9000.
VoIPCookbook:215
OnthemenuofLine1toLine4,wecanconfiguretowhichSIPservereachoftheselineswillbe
registeredto.MakesureLineEnableissettoYes.
VoIPCookbook:216
OnLinksysSPA9000wecouldsetfourSIPaccountstoberegisteredtoanySIPProxy,eachaccount
connectedonlytoaline.Someimportantthingstodothisareasthefollowing:
setLineEnabletoyes
Filltheinformationpertainingtoyouraccountinthefollowingparameters:
Proxy
UserID
Password
UseAuthID
voiprakyat.or.id
thenumbergivenbyvoiprakyat
passwordofvoiprakyataccount
no
IfyousetUseAuthIDtoye,thenfillthatparameterwiththenumberofyourVoIPRakyataccount.
VoIPCookbook:217
DothesametoyourotherSIPaccount(s)fortherestofthelines(Line2,Line3andLine4).
VoIPCookbook:218
FXOtobeconnectedtoPSTN/Telcoline/PABXextension.
FXStobeconnectedtoTelephoneline/FAX.
WhenconnectingATAtoPSTNline,makesurethatyoudonotconnectittothewrongplug.Ifyou
did,thePSTN'svoltage,whichusuallyisaround48V,wouldcollidewiththatoftheATAphone.This
willdamageyourATAequipment.Sopriortoconnectingthem,youhavetosetyourATAequipmentso
itrecognizeswhetherthevoltageinplaceis48Vor24V.
VoIPCookbook:219
Figure 16.1: ATA Linksys SPA3000 has two RJ-15 sockets on one of its sides
OneofthesmallestATAwetheauthorhaveeverseenisLinksysSPA3000.Fromthepictureabove,
youcanseetwotelephonejacks,eachlabeledPhoneandLine.Connectthephonesockettoyour
conventionalphonewhiletheLinesockettothePSTNcable.
Figure 16.2: ATA Linksys SPA3000 has a RJ-45 socket, power socket and
LED indicator on the other side
OnthebackofLinksysSPA9000,thereisRJ45plugthatcanbeconnectedtoLANcableforcomputer
andtheInternet.
VoIPCookbook:220
ConfigureLinksysSPA3000
SPA3000logicalconfigurationisnotmuchdifferentfromotherVoIPequipment.Ingeneral,weneedto
configure:IPaddress,Netmask,Gateway,DNS,thetelephonenumber,passwordandSIPserver.The
initialappearanceofSPA3000issomewhatsimilartothatofotherLinksysproducts.Sothisisaplus
forthosewhoarealreadyfamiliarwithLinksysproduct.
VoIPCookbook:221
OntheSystemmenuyoucansettheIPaddress,Netmask,gateway,andDNSoftheLinksysSPA3000.
IfyouhaveaDHCPserver,youcanenableDHCPsoATAwillgetitsIPaddressautomaticallyfrom
theserver.
VoIPCookbook:222
RegistrationtotheSIPserverforthetelephoneiscarriedoutthroughLine1menu.Weneedtoenter
someinformation:
LineEnableyes
ProxytheSIPServer.
DisplayNamethephonenumberintheSIPserver.
UserIDthephonenumberintheSIPserver.
AuthIDthephonenumberintheSIPserver.
PasswordthepasswordtoregistertotheSIPserver.
Onceyoucompletedallthese,theconfigurationforregistrationtoSIPserverfortelephoneconnected
tophone/FXSinterfaceiscompleted.
VoIPCookbook:223
ForconnectivitytoPSTN,theconfigurationforPSTNLineregistrationissimilartoLineconfiguration,
usingthefollowingconfiguration:
LineEnableyes
ProxyIPaddress/hostnameofSIPServer.
DisplayNamethephonenumberintheSIPserver.
UserIDaphonenumberintheSIPserver.
AuthIDaphonenumberintheSIPserver.
PasswordpasswordtoregistertotheSIPserver.
Oncethesearecompleted,soistheconfigurationforregisteringthePSTNLinetoSIPserverfor
telephonecableconnectedtoFXOinterface.
VoIPCookbook:224
LinksysSPA3000ATAStatus
AtthebeginningoftheSPA3000configurationmenuisthestatusandinformationmenu.Slightly
below,thereisastatusofSPA3000PSTNline.Despitethemanyparametersavailableinthisstatus,
youhavetobeconcernedwithjusttwoofthem:registrationstateandLineVoltage.Fortheformer,
makesurethattheparameterregistrationstatesaysregistered.ThisimpliesthatSPA3000isproperly
registeredtoaSIPproxy.Forthelatter,checkthevoltagelevelattheconnectiontoPSTN/PABX.PSTN
andanumberofPABXusuallyhavetheirvoltagelevelat48Vand24Vrespectively.Whilethe
voltagelevelofthePSTNisfine,PABX'svoltagelevelwillbeproblematicforSPA3000,asitsdefault
voltagethresholdisconfiguredonlytohaveSPA3000connectedtoPSTNorPABXwhentheirvoltage
levelisabove30V.WhenyoudomakeacallusingthelineconnectedtotheunrecognizedPABX(or
PSTN),SPA3000willgiveabusytone.TohaveSPA3000recognizeaPABXwhosevoltagelevelis
below30V,wehavetochangetheparameteravailableinthePSTNLinemenu,whichyoucould
accesswhenyou'reloggedinasadmin.
VoIPCookbook:225
IntheInternationalcontrolunderthebottom,thereisparameter"LineinUse"Voltageisitsdefault
valueis30.IfthePSTNLinevoltageof24VthePABXonlysetparameter"LineinUse"Voltageof
30VwillcausetheSPA3000thinkthattheSPA3000isnotconnectedtothePSTN/PABX.Thuswe
needtothechangethevaluetobesmallerthan24V,suchas23or20V.Thisway,SPA3000will
recognizethatitisconnectedtoaPSTN/PABXnetworkeventhoughthevoltagelineisonly24V.
VoIPCookbook:226
LevelOneVOI2100isanothertypeofATAwhichcanbeusedinSIPbasedVoIPnetwork.Similarto
SPA3000,VOI2100hastwoRJ11s,onefortheconnectiontothetelephone,whileanothertoconnect
toPSTNorPABXcable.IncontrasttoSPA3000,VOI2100hasanembeddedrouter,NATandDHCP
serverinsideit.TherearetwoUTPRJ45plugs,onecanbeconnectedtoWANwhileanothertoLAN.
VoIPCookbook:227
AtthebeginningoftheLevelOneVOI2100menuisthestatusoftheVOI2100,suchasMACAddress,
SystemUptime,etc..VariousconfigurationsofVOI2100isavailableontheleft.
VoIPCookbook:228
Figure 16.11: The WAN Status tab of LevelOne VoIP Administration Panel
OntheWANmenu,clicktheWANstatus.WecanseetheconditionofWANLevelOneVOI2100,
somestandardinformationfromtheWANconnection,suchasIPaddress,SubnetMask,gateway,and
DNSserver.AnumberoftagsthatispossiblytobeconfiguredtoimproveVoIPperformanceare
VLANTagandPriorityTag,bothofwhichcanbefoundalsoinWANstatus.
VoIPCookbook:229
Figure 16.12: The WAN Settings tab of LevelOne VoIP Administration Panel
InWANSettings.Wecanconfigureseveralparameters,suchas,
IPaddressoftheWANConnectionasstaticordynamic.
Trafficlimitation.
VoIPCookbook:230
InWANmenu,clickPPPoE.Coincidentally,thereisafeaturetoauthenticateADSLthatusesPPPoE.
Thus,ifyoulikepleasefeelfreetoentertheusernameandpasswordofPPPoE.
VoIPCookbook:231
IntheWANmenu,clickMACspoofing.ThisallowsustochangetheMACaddressoftheEthernet
WANwewanttouse.ThisisoftennecessarytodowhentheADSLprovidertowhomwesubscribeour
servicesetsonlyacertainMACaddresscapableofconnectingtotheprovider.ThroughthisMAC
Spoofingmenu,wecanchangetheMACaddressoftheEthernetWANinordertousetheMAC
addressapprovedbytheprovider.
VoIPCookbook:232
OnthemenuLAN,clickLANSettings.HerewecansettheIPaddressandSubnetMaskofthe
EthernetLANthatweuse.
VoIPCookbook:233
OntheLANmenu,clickonDHCP.WecanactivateordeactivateDHCPserver.Wecanalsoconfigure
therangeofclientIPaddressesthatcanbeallocatedtothenetwork.Notethatinagivennetworkitis
possibletohaveanumberofDHCPservers.ItisimportanttoensureaDHCPserver'sIPaddresses
allocatedarenotcontradictorytothoseofdifferentDHCPservers.OtherinformationsuchasDomain
andDNSServercanalsobeconfiguredunderDHCPtab.
VoIPCookbook:234
OntheLANmenu,clickRouting.Wecanaddstaticroutingtoothernetworksifnecessary.The
informationneededforthisisjustIPaddressdestination,SubnetMask,andGatewayrouterthat
connectstothenetwork.
VoIPCookbook:235
OnLANmenu,clickPortForwarding.Thisfeatureallowustodoaforwardingfromaport.For
example,ifwehaveMail/SMTPServerbehindNAT,thenthroughthisportforwarding,alltraffic
headingtoport25(SMTPserver)fromoutside/WANcanbeforwardedbyNATtoserverbehindNAT.
Informationyouneedtoenterisportrangeandtheserver'sIPaddressbehindtheproxy.Forexample,if
wewanttoincludejustport25,theportrangeshouldbejust25to25.
VoIPCookbook:236
ThemostimportantpartofVOI2100istheSIPconfiguration.OntheSIPmenu,clickSIPtab.This
tabsallowsyoutochangekeyparametersenablingVOI2100toenterSIPnetwork.Someoftheseare:
ServeraddressIPaddress/hostnameoftheSIPproxyserver
Porttheportnumber.Thevalueoftenusedis5060.
OutboundProxyIPIPaddress/hostnameofoutboundproxyisusuallysimilartothatofSIP
Proxyserver.
OutboundProxyPortwhichisusuallysimilartoSIPPort,thatis,5060.
VoIPCookbook:237
AdditionalinformationpertainingtoSIPaccountinaSIPProxyserverneedstobeincludedalsoonSIP
menu,atheverybottomofthemenu.Theseinformationinclude:
PhonenumberusernameintheSIPProxyServer
Phonenumber,whichistheusernameofaSIPProxyServer
CallerID,thecallerIDwewanttouse
Password,theonetobeusedtoregistertoSIPProxyserver
TherearetwoSIPaccountsthatcanberegisteredwithSIPProxyServer:Line1canbeconnectedto
thetelephonelinewhileline2toPSTNlinewhichplugisavailableinLevelOneVOI2100.UnderSIP
menu,thereareothersubmenussuchasSIPExtension,OutofBand(OOB)Signaling,ToSetc.
However,youdon'thavetochangetheseparameters,asVOI2100canstilloperatewithouttheneedto
changetheseparameters.
VoIPCookbook:238
Nowclickoncodecs.Thisoptionallowsyoutodeterminewhichvoicecompressionmethodorcodec
thatcanbeactivated.Usually,itisbettertoactivateallofthemsoyouwillhaveflexibilityin
communicatingwithavarietyofsoftphonesorIPphones,justincaseacodecdoesnotworkproperly
andyouhavetoswitchtodifferentone.
VoIPCookbook:239
NowclickonSystem,thentosecurity.Underthistab,wecanchangethewebadministratorpassword
neededtoaccessLevelOneVOI2100webmenu.
VoIPCookbook:240
NowclicktheAutoUpdatetab,nexttoSecurity.Thesubmenuunderthistaballowsyoutoupdate
firmwareofLevelOneVOI2100automaticallythroughtheInternet.
VoIPCookbook:241
NowclickLocalization.Setthetimetosynchronizeourtimetotheserver'sintheinternetandalsoset
ourlocationtothetimezoneforourlocation.
VoIPCookbook:242
Figure 16.25: The Gain Control tab of LevelOne VoIP Administration Panel
NowclickGainControl.Thistaballowsustoadjustthevolumeofbothaudiooutputandaudioinput.
Thisismeasuredindecibels.Todecreasethevolume,weneedtoenternegativeaudiogainvalues,such
as2dBandsoon.Toincreasethevolume,putsomepositiveintegers.
VoIPCookbook:243
NowclickCallerID.ChoosethesortofcallerIDyouwanttouse.
VoIPCookbook:244
ClickServiceAccess,thelasttabunderSystemsubmenu.ServiceAccessallowsustodeterminewhich
interfacewillbeaccessiblethrooughLevelOneVOI2100administration.Thedefaultconfiguration
allowswebadministrationaccessthroughLANandWAN.
VoIPCookbook:245
UsingtheSPA400withAsterisk
StepsthatneedtobecarriedouttolinkSPA400toAsteriskareasfollows:
ConfiguringtheSPA400IPaddress
ConfiguringSPA400IPaddress
ConfiguringAsteriskaccountinSPA400
Configuringsip.confinAsterisktohaveitregisteredtoSPA400
Conguringextensions.confinAsterisksoitdialoutusingSPA400
Makingalltheseconfigurationsisnotdifficultandcanbedonethroughtheweb.Thedefaultusername
isAdmin(Casesensitive)withoutapassword.
VoIPCookbook:246
ToconfiguretheIPaddressofSPA400,clickSetupandunderthistab,clickBasicSetup.Donotuse
DynamicIPAddress,sinceAsteriskneedstoseekSPA400andregisteritselftoSPA400.Instead,
chooseFixedIPAddress.Ifnecessary,wecanalsosettheDNSandNTPserverweoftenuse.Obtain
theinformationonDNSserverfromyourinternetserviceprovider.ForNTPserver,typein
time.nist.govorpool.ntp.org.Afterallconfigurationiscompleted,clickSaveSettings.
VoIPCookbook:247
Next,configuretheaccountsoeitherAsteriskorSPA9000willbeabletologintoSPA400.Thewayto
dothisistogointotheSetupmenuandclickSPA9000Interface.ChangetheuserIDtotheusername
weusetologin.Hereweuse9000asanexample.ThenchooseDiscoverAutomatically.Provided
thissettingworksproperly,youmaywanttochangethissettinginordertohaveamoresecure
connectivity,bysettingthevaluesofAsteriskservertomatchthoseofSPA400server.Onceeverything
iscompleted,clickSaveSettingstosavetheconfiguration.
ConfigureAsterisktotalktoLinksysSPA400
OnAsterisk/etc/asterisk/sip.conf,youneedtoconfiguretheaccountexactlysimilartoUserIDof
SPA400
Theentriesinsip.conftoenableAsteriskregistertoSPA400areasfollow:
[general]
register=>9000@192.168.0.6/9000
VoIPCookbook:248
Replace9000withthevalueyouenteredintheUserIDofSPA400,andreplace192.168.0.2withtheIP
addressoftheSPA400.
CreateaSIPentryforSPA400,withthefollowinginformation:
901user:UserIDofSPA400
902host:IPaddressofSPA400
903context:thecontextthatwillbeusedtohandleinboundcallsfromSPA400
SIPentrytoreceivecallsfromSPA400areasthefollowing:
[9000]
type=friend
user=9000
host=192.168.0.6
dtmfmode=rfc2833
canreinvite=no
context=fromtrunk
insecure=very
ToseewhetheryouareregisteredtoAsteriskornot,youcancarryoutthefollowingcommand:
localhost*CLI>sipshowregistry
HostUsernameRefreshState
192.168.0.6:50609000105Registered
InExtension.conffilewecanconfiguretheroutingfordialoutusingSPA400.Anexampleofageneric
configurationfordialoutroutebypressing9andenterSPA400FXOtrunkisasfollows:
[general]
Trunk=SIP/9000
TRUNKMSD=1
[trunkint]
;
;Internationallongdistancethroughtrunk
;
exten=>_9011.,1,Macro(dundie164,${EXTEN:4})
VoIPCookbook:249
exten=>_9011.,n,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
[trunkld]
;
;Longdistancecontextaccessedthroughtrunk
;
exten=>_91NXXNXXXXXX,1,Macro(dundie164,${EXTEN:1})
exten=>_91NXXNXXXXXX,n,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
[trunklocal]
;
;Localsevendigitdialingaccessedthroughtrunkinterface
;
exten=>_9NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
[trunktollfree]
;
;Longdistancecontextaccessedthroughtrunkinterface
;
exten=>_91800NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten=>_91888NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten=>_91877NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten=>_91866NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
NotethattheSPA400'saccountnumberinAsteriskis9000,thenumberweareusingasanexample.
Incomingcallroutingismorecomplex.Ifweassumetheincomingcallwillbeconnectedtoextension
200,thentheconfigurationisapproximatelyasfollows:
[fromtrunk]
include=>frompstn
...
[frompstn]
include=>frompstncustom
...
[frompstncustom]
exten=>9000,1,Goto(extlocal,200,1)
VoIPCookbook:250
ConnectPSTNusingLinksysSPA9000andLinksysSPA400
ConnectingPBXsoftswitchlikeLinksysSPA9000tothePSTNcanbecarriedoutinseveralways.One
ofthemistousetheLinksysSPA400asmediatortoPSTN.WhatyouhavetodoistomakeSPA400's
IPaddresstobefixed,enableUserIDtoregisteritselftoSPA400,enableSPA9000toregisteritselfto
SPA400,andenableSPA9000touseSPA400'strunkforPSTNcalls.SPA400configurationcanbe
donethroughtheweb,usingthegivendefaultusernamewithoutapassword.
ThroughtheSetupmenu,clickBasicSetup.HerewehaveconfigurefixedIPaddress,IPsubnetmask,
andgatewayIPaddress,informationonDomainNameServer(DNS)AddressandNTP.Forour
example,weuse202.134.2.5,202.46.3.178,andtime.nist.govforPrimaryDNS,SecondaryDNSand
NTPServer,respectively.
VoIPCookbook:251
ThroughtheSetupmenu,clickSPA9000Interface.Theconfigurationyouhavetodoisasthe
following:
CreateanaccountonSPA400suchthatSPA9000softswitchcanregister.
CreateanaccountinSPA400soasoftswitchlikeSPA9000canberegistered.
ConfigureSPA400soitwillknowtheIPaddressandportofthesoftswitch/SPA9000.Itis
recommendedthatyouchooseDiscoverAutomatically
VoIPCookbook:252
OntheSetupmenu,clickVoice.Herewecanconfigurethesortofcodecwewanttouseandother
settingparameterssuchasWaitforAnswertime.
VoIPCookbook:253
OntheSetupmenu,clickVoice.IntheLineSettingstab,youcanconfigurethetransmitgain,receive
gain,impedance,ringvoltage,onhookspeed,etc..Basically,wedonotneedtochangethesevaluesof
theseparameters,andsimplyusethedefaultvalues.
VoIPCookbook:254
ThroughtheSetupmenu,clicktheVoicemailServertab.Herewecansetsomeimportantparametersof
theVoicemailserver,suchas:
ServerPortdefault5090
SPA9000UserIDuserIDfortheSIPProxytoregistertoLinksysSPA400
SPA9000subscriberIDsubscriberIDfortheSIPProxytoobtainVoicemail
MailboxDepositNumberthenumberneededtoputvoicemail.Thedefaultvalueis900.
MailboxmanagenumberthenumberusedtomanageVoicemail.Thedefaultvalueis800.
VoIPCookbook:255
OneofmanygreatthingsaboutSPA400isitscapabilitytostoreVoicemaildatainUSBstorage.
ThroughtheSetupmenuandVoicemailUsers,weconfiguretheuserandpasswordofourVoicemail.
Byclickingontheenableboxofanyuser,wecannowactivatethatuseraccount.
VoIPCookbook:256
GotoAdministration,thenclickManagement.Herewecanconfigureourusernameandpasswordfrom
GatewayAdministrator.ThedefaultusernameisAdmin,withoutapassword.
VoIPCookbook:257
Throughthestatusmenu,youwillfindmoreinformationonSPA400operation,suchas,time,IP
address,subnet,gateway,DNS,USBdisketc.ThemostimportantparameteristheSIPRegistration
Status.ItindicatestheconditionoftheSIPProxyweuse:whetherSPA9000orAsteriskissuccessfully
registeredwithSPA400ornot.IftheSIPProxyissuccessfullyregisteredwithSPA400,youcanuse
SPA400asanAnalogTelephonyAdaptertocalltoTelkom.
VoIPCookbook:258
Whileyouarestillinstatuspane,noticethatthereisalsothestatusforBatteryLevel.Thisshowsthe
voltageavailableatRJ11portofSPA400.IfitisconnectedtoyourPSTNprovider,thenthevoltage
normallyisabout45V.IfitisconnectedtoPABX,thevoltageexperiencedbytheRJ11portisaround
24V.Ifallportshavetheirvoltagelevel0V,thenSPA400,whenweattempttoplaceacall,willgeta
busysignal.
VoIPCookbook:259
ConfigureLinksysSPA9000totalktoLinksysSPA400
TohaveSPA9000capableofcommunicatingwithSPA400,youneedtoregistertheuserIDyouhave
setinSPA9000toSPA400.Gotoadminmenu,chooseAdvancedandchooseoneofthefourlines.
UndertheSubscriberInformation,youneedtosetthefollowingparameters:
DisplayNameaccordingtoSPA400.
DisplayNameaccordingtoSPA400
UserIDaccordingtoSPA400
Passwordjustleaveitblank
UserAuthIDshouldbeNo
ProxySPA400IPaddress
OutboundProxySPA400IPaddress
VoIPCookbook:260
History
TheprojectisstartedbyHarvindSamrahttp://www.linkedin.com/in/harvindsamraandDavidA.
Burgesshttp://ecommconf.com/2009/speakers/davidburgess/.Theaimoftheprojectistoreducethe
GSMcostinruralanddevelopingcountriestobeunderUS$1/month/subscriber.
Field Test
FieldtestisdoneinNevadaandNorthCalifornia,US.Temporaryradiolicenseforashortperiodis
obtainedthroughKestrelSignalProcessing(KSP)usedtobeaconsultingfrimofthedeveloperof
OpenBTS.
VoIPCookbook:261
Niue
In2010,anOpenBTSispermanentlyinstalledinNieuanditisforthefirsttimeacellularBTS
connectedtothelocaltelecommunicationoperator.Niueisasmallcountrywith1700inhabitantamd
notsomuchattractingmobileoperator.CoststructureofOpenBTSfitstoNiuewhichunabletoprocure
theconventionalGSMBaseStation.
GNURadio
Referencehttp://gnuradio.org/redmine/wiki/gnuradio/UbuntuInstall.Theneededdevelopmenttoolsare:
g++
subversion
make
autoconf,automake,libtool
sdcc
guile
ccache
Theneededlibraryforruntimeandcompilationprocessesare
pythondev
FFTW3.X(fftw3,fftw3dev)
cppunit(libcppunitandlibcppunitdev)
Boost1.35(orlater)
libusbandlibusbdev
wxWidgets(wxcommon)andwxPython(pythonwxgtk2.8)
pythonnumpy(viapythonnumpyext)(forSVNonorafter2007May28)
ALSA(alsabase,libasound2andlibasound2dev)
Qt(libqt3mtdevforversionsearlierthan8.04;version4worksfor8.04andlater)
SDL(libsdldev)
GSLGNUScientificLibrary(libgsl0dev>=1.10requiredforSVNtrunk,notinbinary
repositoriesfor7.10andearlier)
VoIPCookbook:262
LibraryInstallation
Update
sudoaptgetupdate
ForMaverick(Ubuntu10.10)wecanusethefollowingcommand
sudoaptgetyinstalllibfontconfig1devlibxrenderdevlibpulsedevswigg++automake\
libtoolpythondevlibfftw3devlibcppunitdevlibboostalldevlibusbdevfort77sdcc\
sdcclibrarieslibsdl1.2devpythonwxgtk2.8subversiongitcoreguile1.8dev\
libqt4devpythonnumpyccachepythonopengllibgsl0devpythoncheetahpythonlxml\
doxygenqt4devtoolslibqwt5qt4devlibqwtplot3dqt4devpyqt4devtools\
libpcre3libpcre3dbglibpcre3devlibpcrecpp0
WxWidgetInstallation
Althoughthisseemstobenotcritical.ThosewhowishtoinstallthelatestWxWidgetcanfollowthe
followingcommand.
Edit/etc/apt/sources.list
#wxWidgets/wxPythonrepositoryatapt.wxwidgets.org
debhttp://apt.wxwidgets.org/DISTwxmain
debsrchttp://apt.wxwidgets.org/DISTwxmain
Anexampleforgutsy
#wxWidgets/wxPythonrepositoryatapt.wxwidgets.org
debhttp://apt.wxwidgets.org/gutsywxmain
debsrchttp://apt.wxwidgets.org/gutsywxmain
Doupdate
sudoaptgetupdate
Install
VoIPCookbook:263
sudoaptgetinstallpythonwxgtk2.8pythonwxtoolswx2.8i18n
sudoaptgetinstallpythonwxgtk2.8pythonwxtoolswx2.8i18nlibwxgtk2.8devlibgtk2.0dev
SWIGInstallation
TomanuallyinstallSWIG,weneedtodownloadthesourcecodefrom
http://sourceforge.net/projects/swig/files/swig/
Thendothefollowings
cpswig2.0.1.tar.gz/usr/local/src/
cd/usr/local/src/
tarzxvfswig2.0.1.tar.gz
cd/usr/local/src/swig2.0.1/
./configure
make
makeinstall
QWTInstallation
TomanuallyinstallQWT,weneedtodownloadthesourcecodefrom
http://sourceforge.net/projects/qwt/files/
Thendothefollowings
cpqwt5.2.1.tar.bz2/usr/local/src/
cd/usr/local/src/
tarjxvfqwt5.2.1.tar.bz2
cd/usr/local/src/qwt5.2.1/
qmake
make
makeinstall
Forthosewhobravemayusethebetaversionsuchas
cpqwt6.0.0rc5.tar.bz2/usr/local/src/
cd/usr/local/src/
VoIPCookbook:264
tarjxvfqwt6.0.0rc5.tar.bz2
cd/usr/local/src/qwt6.0.0rc5
qmake
make
makeinstall
GNURadioInstallation
Downloadthesourcecodefrom
http://gnuradio.org/redmine/wiki/gnuradio/Download
compilethesourcecode
cpgnuradio3.3.0.tar.gz/usr/local/src/
cd/usr/local/src/
tarzxvfgnuradio3.3.0.tar.gz
cd/usr/local/src/gnuradio3.3.0/
./configure
make
makecheck
makeinstall
USRPHandling
Ubuntuusesudevtohandlehotplugdevices,andbydefaultgivenoaccesstononroottoUSRP.The
followingscriptwillgiveaccesstousertohandelUSRPviaUSBforeitherliveorhotplug.
sudoaddgroupusrp
sudousermodGusrpa<YOUR_USERNAME>
echo'ACTION=="add",BUS=="usb",SYSFS{idVendor}=="fffe",
SYSFS{idProduct}=="0002",GROUP:="usrp",MODE:="0660"'>tmpfile
sudochownroot.roottmpfile
sudomvtmpfile/etc/udev/rules.d/10usrp.rules
Atthispoint,UbuntuhasbeenconfiguredtoknowwhatitshoulddowhendetectingUSRPintheUSB.
"udev"mustbereloadrulestoloadournewrules.Thefollowingsmaydothetrickwithoutbootingthe
VoIPCookbook:265
computer.
or
sudoudevadmcontrolreloadrules
sudo/etc/init.d/udevstop
sudo/etc/init.d/udevstart
or
sudokillallHUPudevd
WemaycheckifUSRPhasbeenrecongizedbymonitoring/dev/bus/usbafterUSRPispluggedusing
thefollowingcommand
lslR/dev/bus/usb|grepusrp
weshouldseesomethinglike
crwrw1rootusrp189,12010120917:38002
EverytimeUSRPispluggeditwillberegisteredingroup'usrp'andmode'crwrw'.
USRPVerification
NextweneedtoverifywetherGNURadiocanworkproperlywithUSRP.Atthispointweneedto
connectUSRPtocomputer.
ChecktheUSBspeedtoUSRP
cd/usr/local/src/gnuradio3.3.0/gnuradioexamples/python/usrp
./usrp_benchmark_usb.py
Wewillseesomethinglike
Testing2MB/sec...usb_throughput=2M
ntotal=1000000
nright=999918
runlength=999918
delta=82
OK
VoIPCookbook:266
Testing4MB/sec...usb_throughput=4M
ntotal=2000000
nright=1999492
runlength=1999492
delta=508
OK
Testing8MB/sec...usb_throughput=8M
ntotal=4000000
nright=3998860
runlength=3998860
delta=1140
OK
Testing16MB/sec...usb_throughput=16M
ntotal=8000000
nright=7997680
runlength=7997680
delta=2320
OK
Testing32MB/sec...usb_throughput=32M
ntotal=16000000
nright=15995986
runlength=15995986
delta=4014
OK
MaxUSB/USRPthroughput=32MB/sec
C++interfacetoUSRP,provideestimatemaximumthroughputbetweenPCandUSRP
cd/usr/local/src/gnuradio3.3.0/usrp/host/apps
./test_usrp_standard_tx
./test_usrp_standard_rx
TypicalresultfromUSRP_standard_txtest
which:0
interp:16
rf_freq:1
amp:10000.000000
nsamples:3.2e+07
VoIPCookbook:267
SubdevicenameisFlex900TxMIMOB
Subdevicefreqrange:(7.5e+08,1.05e+09)
mux:0x000098
basebandrate:8e+06
target_freq:900000000.000000
ok:true
r.baseband_freq:904000000.000000
r.dxc_freq:4000000.000000
r.residual_freq:0.000000
r.inverted:0
tx_underrun
tx_underrun
tx_underrun
tx_underrun
tx_underrun
tx_underrun
tx_underrun
tx_underrun
tx_underrun
xfered3.2e+07bytesin1.01seconds.3.154e+07bytes/sec.cputime=0.16
9underruns
TypicalresultfromUSRPstandardRXtest
xfered1.34e+08bytesin4.19seconds.3.2e+07bytes/sec.cputime=0.8681
noverruns=0
Ifneeded,wecanupgradethewholesystem
sudoaptgetyupgrade
Thenrebootandupgradethedistro
sudoaptgetydistupgrade
VoIPCookbook:268
OpenBTS Installation
BeforewedoOpenBTSinstallation,weneedtocompileandinstallGNURadio.WithoutGNURadio
installed,OpenBTSmaynotbeinstalled.Weneedtoinstalladditionallibrary
aptgetinstalllibosip24libosip2devlibortp8libortpdev
Downloadthesourcecodefrom
http://www.openbts.org
http://sourceforge.net/projects/openbts/
Thendothefollowings
cpopenbts2.6.0Mamou.tar.gz/usr/local/src/
cd/usr/local/src/
tarzxvfopenbts2.6.0Mamou.tar.gz
cd/usr/local/src/openbts2.6.0Mamou/
./configure
make
makeall
makeinstall
OpenBTSiscompiledandinstalled.ToenableSMSfacilityinOpenBTS,weneedtocompilethe
smqueueseparately.Forstrangereason,weneedtoinstallg++4.3tocompilesmqueue
aptgetinstallg++4.3
EditMakefile.standalonefileofsmqueue
vi/usr/local/src/openbts2.6.0Mamou/smqueue/Makefile.standalone
Replacetheg++
g++osmqueue$(CPPFLAGS)$(INCLUDES)smqueue.cppsmnet.cppsmcommands.cpp
../HLR/HLR.cpp$(LIBS)
to
VoIPCookbook:269
g++4.3osmqueue$(CPPFLAGS)$(INCLUDES)smqueue.cppsmnet.cpp
smcommands.cpp../HLR/HLR.cpp$(LIBS)
Compilesmqueue
cd/usr/local/src/openbts2.6.0Mamou/smqueue/
makefMakefile.standalone
Ifweuseg++4.4wewillseethefollowingerror
smnet.cpp:423:error:invalidconversionfromconstchar*tochar*
make:***[smqueue]Error1
CompilationofsmqueueofOpenBTSisdone.
AsteriskconfigurationfilesforusewithOpenBTS.
Commonuselibraries,mostlyC++wrappersforbasicfacilities.
ControllayerfunctionsfortheprotocolsofGSM04.08andSIP.
TheGSMstack.
ComponentsoftheSIPstatemachinesuedbythecontrollayer.
TheSMSstack.
TheinterfacebetweentheGSMstackandtheradio.
Thesoftwaretransceiverandspecificinstallationtests.
OpenBTSapplicationbinaries.
Projectdocumentation.
TestfixturesforsubsetsofOpenBTScomponents.
RFC3428storeandforwardserverforSMS
OpenBTSassumethefollowingUDPport
5060AsteriskSIPinterface
5061localSIPsoftphone
5062OpenBTSSIPinterface
VoIPCookbook:270
5063smqueueSIPinterface
5700rangeOpenBTStransceiverinterface
Theseportscansetviaconfigurationfileapps/OpenBTS.config.ForthosewhodoOpenBTSinstalltion
forthefirsttime,needtocopyOpenBTS.configfile
cd/usr/local/src/openbts2.6.0Mamou/apps
cpOpenBTS.config.exampleOpenBTS.config
Ifneeded,wecanedittheconfigurationfile
vi/usr/local/src/openbts2.6.0Mamou/apps/OpenBTS.config
Mostofthedefaultparametermaybeusedasitis.Sometimes,weneedtochangethenetwork
informationsuchas
#Networkandcellidentity.
#NetworkColorCode,07
#AlsosetGSM.NCCsPermittedlaterinthisfile.
GSM.NCC0
#BasesationColorCode,07
GSM.BCC2
#MobileCountryCode,3digits.
#MCCMUSTBE3DIGITS.Prefixwith0sifneeded.
#Testcodeis001.
GSM.MCC001
#MobileNetworkCode,2or3digits.
#Testcodeis01.
GSM.MNC01
#LocationAreaCode,065535
GSM.LAC1000
#CellID,065535
GSM.CI10
VoIPCookbook:271
smqueue Configuration
DisableIPv6byediting/etc/default/grubchange
GRUB_CMDLINE_LINUX_DEFAULT=quietsplash
into
GRUB_CMDLINE_LINUX_DEFAULT=ipv6.disable=1quietsplash
Aftersaveandexit,updategrubusing
sudoupdategrub
Editsmqueueconfiguration,copysmqueue.config.exampletosmqueue.config
cd/usr/local/src/openbts2.6.0Mamou/smqueue/
cpsmqueue.config.examplesmqueue.config
smqueueconfigfileisin./smqueue/smqueue.config.
vi/usr/local/src/openbts2.6.0Mamou/smqueue/smqueue.config
addtotheconfigfilethefollowingcommandtolimitalarmforSMSregistration
Log.Alarms.Max10
createsavedqueue.txtin./smqueuedirectory
touch/usr/local/src/openbts2.6.0Mamou/smqueue/savedqueue.txt
Runsmqueue
sudosu
cd/usr/local/src/openbts2.6.0Mamou/smqueue/
./smqueue&
Ifitrunscorrectly,wewillseesomethinglike
VoIPCookbook:272
1296968828.6030INFO3077809872smnet.cpp:319:listen_on_port:Listeningataddress'0.0.0.0:5063'.
1296968828.6045INFO3077809872smqueue.cpp:2222:main:MyownIPaddressisconfiguredas127.0.0.1
1296968828.6045INFO3077809872smqueue.cpp:2223:main:TheHLRregistryisat127.0.0.1:5060
1296968828.6046INFO3077809872smqueue.cpp:2110:read_queue_from_file:===Read0messagestotal,0badones.
1296968828.6047INFO3077809872smqueue.cpp:2230:main:Queuecontains0msgs.
1296968828.6048INFO3077809872smqueue.cpp:1852:main_loop:===Feb612:07:080queued;waiting.
/*====FIXMEKLUDGE====
*TableofIMSIsandphonenumbers,fortranslation.
*Thisisonlyfortestbenchuse.ReallifeusestheHomeLocation
*Register(../HLR),currentlyimplementedviaAsterisk.
*/
static
structimsi_phone{charimsi[4+15+1];charphone[1+15+1];}imsi_phone[]={
{"IMSI666410186585295","+17074700741"},/*Nokia8890*/
{"IMSI777100223456161","+17074700746"},/*PalmTreo*/
{"IMSI510110301694405","2101"},/*Bob*/
{"IMSI238209700014858","2102"},/*SB*/
{"IMSI310260254136340","2103"},/*Steve*/
{"IMSI520189606386106","2104"},
{{0},{0}}
};
OpenBTS.
2. Editsip.confandextensions.conftosupportthenewSIPuser.
Thus,inprincipal,thereisnotmuchtoconfigureAsterisktobeabletotalktoOpenBTS.Weneedto
edit
/etc/asterisk/sip.conf
/etc/asterisk/extensions.conf
ExampleofAsteriskConfigurationcanbefoundin
/usr/local/src/openbts2.6.0Mamou/AsteriskConfig
Exampleof/etc/asterisk/sip.confisasfollows
[IMSI510110301694405]
callerid=2101
canreinvite=no
type=friend
callerid=2101
;context=sipexternal
allow=gsm
host=dynamic
[IMSI520010104743577]
callerid=21011
canreinvite=no
type=friend
allow=gsm
context=sipexternal
host=dynamic
Exampleof/etc/asterisk/extensions.confisasfollows
exten=>2101,1,Dial(SIP/IMSI510110301694405,60,rt)
exten=>2102,1,Dial(SIP/IMSI238209700014858,60,rt)
exten=>2103,1,Dial(SIP/IMSI310260254136340,60,rt)
VoIPCookbook:274
IMSI520154100006647isobtainedfromtheSMSreceivedbytheOpenBTSuser.
AutomaticSIMRegistration
Asmentionathttp://gnuradio.org/redmine/wiki/gnuradio/OpenBTSThe_use_of_autocreatepeer=yeswe
mayaddsomeparametersin/etc/asterisk/sip.conftoenableautomaticSIMregistration
[general]
allowoverlap=no;Disableoverlapdialingsupport.(Defaultisyes)
bindport=5060;UDPPorttobindto(SIPstandardportis5060)
bindaddr=0.0.0.0;IPaddresstobindto(0.0.0.0bindstoall)
srvlookup=yes;EnableDNSSRVlookupsonoutboundcalls
;lineuntukautomaticsimregistration
autocreatepeer=yes
canreinvite=no
calllimit=1
type=friend
allow=gsm
context=sipinternal
host=127.0.0.1;assumingOpenBtsandAsteriskrunonthesamemachine
Wecanexpandthecapabilityofasterisktorecognizenumbersusingcountrycodelike+62XXXusing
ENUM.
OpenBTS Operation
TooperateOpenBTSwecanfollowthefollowingsteps.
ChektheconnectionbetweenOpenBTSandUSRP.ThiscanbedoneusingUSRPpingasfollows
cd/usr/local/src/openbts2.6.0Mamou/Transceiver
./USRPping
AssumingAsteriskiscorrectlyconfigure,wecanrunitvia
VoIPCookbook:275
asterisk
or
/etc/init.d/asteriskrestart
Runsmqueue
sudosu
cd/usr/local/src/openbts2.6.0Mamou/smqueue/
./smqueue&
RunOpenBTS
cd/usr/local/src/openbts2.6.0Mamou/apps
./OpenBTS
WeneedtocopyOpenBTS.config.exampletoOpenBTS.configifwerunitforthefirsttimebeforerun
OpenBTS.
cd/usr/local/src/openbts2.6.0Mamou/apps
cpOpenBTS.config.exampleOpenBTS.config
./OpenBTS
Usingalldefaultvalues,withnomodification,wecanoperateOpenBTS.
VoIPCookbook:276
VoIPCookbook:277
Figure 18.1: Through SIPbroker.com you can find a number of SIP providers with their respective proxy.
The site also indicates which provider is active and is not active
VoIPCookbook:278
SIPProxy
voip.brujula.net
sip.faktortel.com.au
sipgate.co.uk
sip.pennytel.com
sip.freshtel.net
voiptalk.org
sip03.astrasip.com.au
sip2.bbpglobal.com
sip.sipme.com.au
URLforregistration
http://voip.brujula.net/english/
http://www.faktortel.com.au/
http://www.sipgate.co.uk/user/index.php
http://www.pennytel.com/
http://www.freshtel.net/
http://www.voiptalk.org/products/index.php
http://www.astratel.com.au/
http://www.bbpglobal.com/global/
http://www.sipme.com.au/
VoIPCookbook:279
Figure 18.2: Through SIPbroker.com you can find a number of SIP providers with their respective proxy.
The site also indicates which provider is active and is not
Inthememberregistrationmenu,youonlyhavetoentertheinformationpertainingtotheSIPURL
(suchas20123@voiprakyat.or.id),thepassword,emailaddresstoregisteryourselftotheSIPBroker
throughhttp://www.sipbroker.com/sipbroker/action/memberRegister.
VoIPCookbook:280
Bandwidthconsumption
GIPS
13.3Kbpsorhigher
GSM
13Kbps(fullrate),20msframesize
iLBC
15Kbps,20msframesize,13.3Kbps,30
msframesize
ITUG.711
64Kbps,samplebasedisalsoknownas
alaw/ulaw
ITUG.722
48/56/64Kbps
ITUG.723.1
5.3/6.3Kbps,30msframesize
ITUG.726
16/24/32/40Kbps
ITUG.728
16Kbps
ITUG.729
8Kbps,10msframesize
Speex
2.15to44.2Kbps
VoIPCookbook:281
LPC10
2.5Kbps
DoDCELF
4.8Kbps
Thenextquestionwouldbewhichcodecisthemostsuitableforaprovider?Theanswerdependsonthe
amountofbandwidthyouhave.Ifyouhaveamaximumbandwidthof32Kbpsbothupanddownfora
VoIPtraffic,itisrecommendedthatyouuseGSMoriLBCasyourcodec.Ontheotherhand,ifthe
amountofbandwidthishigher,say,higherthan128Kbps,youcanuseG711u(PCMU),whichwill
increasethevoicequalityinacommunicationsession,withclearervoiceandlowerdelay.Othercodec
thatcouldproduceoptimalresultistheG.729Codec.Unfortunately,itisaproprietarycodecwhichis
notfavourableforthosewhouseopensourceplatform.
ThemostcommonlyusedcodecsaretheG.729,GSM,andG.711.Ofthese,theG.711isfavorableasit
deliversgoodqualityinLANnetwork,GSMispreferredbyopensourceusersasGSMisnot
copyrighted,whilemanyVoIPdevicesuseG.729fortheircodec,theonewhichiscopyrighted.
RFactor
93
90100
8090
7080
6070
5060
050
MOSScore
4.4
4.35.0
4.04.3
3.64.0
3.13.6
2.63.1
1.02.6
VoIPCookbook:282
Enteringothertypesofcodecandvaluespertainingtoourbandwidthforeverycodec,weobtainedthe
followingMOSandRFactorcalculation:
Codec
Frame
MOS
RFactor
Kbps
20ms
20ms
Packet
Loss
0%
0%
G.711
G.723
5kbps
G.723
6kbps
G.729
4.4
3.8
93
74
80.8
16.5
20ms
0%
4.0
78
17.5
20ms
0%
4.1
83
24.8
VoIPCookbook:283
Frame
G.729
G.729
G.729
G.729
20ms
20ms
20ms
20ms
Packet
Loss
0%
5%
10%
20%
MOS
RFactor Kbps
4.1
3.3
2.7
1.9
83
64
52
37
24.8
24.8
24.8
24.8
Typically,theframesizeusedformeasurementis20ms,withthebandwidtharound25Kbps.The
longerthelengthofpayloadorvoiceframesize,thelessbandwidthisneededbecausetheoverhead
protocolissmaller.
Codec
Frame
G.729
G.729
G.729
G.729
G.729
2.5ms
5ms
10ms
20ms
30ms
Packet
Loss
0%
0%
0%
0%
0%
MOS
RFactor
Kbps
4.1
4.1
4.1
4.1
4.1
83
83
83
83
83
41.6
41.6
41.6
24.8
19.2
VoIPCookbook:284
Figure19.2:BandwidthCalculatoratAsteriskGuru.
ToestimatetheamountofbandwidthconsumedbyaCodec,useAsteriskGuru'stools,whichis
availableathttp://www.asteriskguru.org/tools/bandwidth_calculator.php.Thistoolenablesusto
calculatetheamountneededbyavarietyofCodecsinrespecttoacertainnumberofcallstakingplace
simultaneously.TheresultingcalculatedvalueswillbeshownasIncomingandOutgoingbandwidth.
VoIPCookbook:285
AnexampleofcalculatedrequiredbandwidthforGSMandG.729Codecisshowninthefollowing
table
Numberof
calls
1
2
3
4
5
6
GSM
Incoming
(Kbps)
28.63
57.25
85.88
114.50
143.13
171.75
Outgoing
(Kbps)
28.63
57.25
85.88
114.50
143.13
171.75
G.729
Incoming
(Kbps)
23.63
47.25
70.88
94.50
118.13
141.75
Outgoing(Kbps)
23.63
47.25
70.88
94.50
118.13
141.75
Sosupposeyourbandwidthcapacityis64KbpsandtheCodecyouuseisG.729.Thenthemaximum
numberofVoIPcallsyoucanhaveforoptimalvoicequalityistwo.Thisisofcourseassumingthatthe
Internetisnotbeingusedforothertraffic,suchas,email,browsing,chattingordownloading.
AmuchmoredetailedcalculationofaVoIPpacketcanbelookedat
http://www.packetizer.com/voip/diagnostics/bandcalc.html.Byusingthistool,wecanseethe
bandwidth,packetrate,delayandevenperformance.Theparametersusedtoderivethecalculationare
Payload(Codec),typeofprotocolandwhetherwewanttouseSilenceSuppression.IfyoutickSilence
Suppression,theaverageofbandwidthorpacketdeliveredwillbecomesmaller.
Fromallofthesecalculations,wecandeduceatleasttwothings:
Thesmallerthebandwidth,thelargertheMegaInstructionPerSecond(MIPS)requiredto
operateinaprocessor.Todaythismightnotbeaproblem,giventhathighspeedprocessorsare
nowlargelyavailableataffordableprice.
Thesmallerthebandwidth,thehigherthedelayprocess.Thisisrelatedtotheneedstoprocess
highvoicecompression.
VoIPCookbook:286
Figure19.3:MoreDetailedBandwidthCalculatoratPacketizer.
Therearemoreinterestingthingswecanconcludefromthesecalculation.Werecommendthatyou
spendmoretimeusingthetoolsothatyouwillunderstandavarietyofeffectsoccurringinVoIP
communicationsession.
VoIPCookbook:287
Figure19.4:CallCenterCalculatoronErlang.com
Whatwehavetofillinasparameterarethelengthofcalls(seconds),resolvingtime(seconds),
percentageofcallsansweredwithinseconds,andpercentageofcallsthatwillbeblocked.Blockedcalls
willreceivebusytone,asignindicatingthatalllinesarebusy.Afterallparametersarefilledin,we
VoIPCookbook:288
needtoenterthenumberofcallscominginanhour.Basedonthevaluesweentered,wewillobtain
simulationresultshowinghowmanyagentsandlinesareneededtorespondtothecalls.
Thenextstepistoestimatehowmuchbandwidthisneededforaspecificnumberoflinesoranumber
ofminutes,inagivenpercentageofcallsthatwillbeblockedandreceivingbusytone.Thisisoften
measuredusingErlangTrafficModelintermsofErlangs,theunitrepresentingusageofavoice
channel.ErlangsTrafficModelmeasurementisveryimportanttohelpyoubeingatelecommunication
networkengineertounderstandthetrafficpatternandnetworktopologynecessarytodeterminethesize
oftrunkgroup.Inaddition,themeasurementcanalsobeusedtodeterminethenumberoflinesneeded
betweenatelephonenetworkorsystemandtelephonecenter,orbetweennetworklocations.
InpracticeErlangscanbeusedtogiveanoverallpictureoftrafficvolumeinanhour.Forexample,a
usergroupmakes30callsinanhour,andeverycallhasanaveragetalkingdurationof5minutes,then
theErlangsresultingfromthetrafficthattakesplaceis:
Trafficminutesinagivenhour
= Numberofcallxduration
Trafficminutesinagivenhour
= 30x5
Trafficminutesinagivenhour
= 150
Traffichoursinagiventime
= 150/60
Traffichoursinagiventime
= 2.5
Trafficsize
= 2.5Erlangs
ThesizeoftrafficisalsocalledBusyHourTraffic(BHT).TheBusyHourFactorparameterisa
percentageofdailyminutesofcallsmadeduringthemostbusyhourinagivenday.
InadditiontoErlangs,thereisalsoblocking.Blockingrepresentsunsuccessfulcallsbecauseof
insufficientnumberoflines.Inotherwords,thecallerwillreceiveabusytonefromthecenterasall
lines/trunksarebeingused.0.01blockingimpliesthat1%ofcallsmadewillbeblocked.Thisdecimal
numberisusuallyusedintraffictelecommunicationengineering.Inanumberofapplications,blocking
upto0.03(3%)isstilltolerable.Sothisnumbershouldideallybeassmallaspossible.
Itappearsthatthemorewetoleratethenumberofblockedcalls,themoreminutesperdaywewill
have.However,themorecallstakeplaceduringpeakhoursorwhenbusyhourfactorincreases,theless
numberofminutesperdaywewillhave.
NowthatyouknowwhatErlangTrafficModelmeasurementis,youcanplanyourconnectivity
capacityforyourcallcenter,usinganumberofmeasurementtoolsavailableat
VoIPCookbook:289
http://www.voipcalculator.com/calculator/.
Figure19.5:ErlangsandLinesCalculator.
ByusingErlangsandLinesCalculator,youcanobtainthenumberofBusyHourTraffic(BHT)ofa
numberoflines.Inourexample,wesimulate2,4and8voicepathsfacilitatedby64Kbpsconnectivity
withsomeBlockingvalues.Thecalculationresultcanbeseenatthefollowingtable:
VoicePath Blockin
g
2
0.01
BHT
(Erlangs)
0.15
VoIPCookbook:290
2
2
4
8
0.03
0.10
0.01
0.01
0.25
0.55
0.85
3.10
Figure19.6:ErlangsandBandwidthCalculator.
Thiscalculatorcanbeusedtoestimatetheamountofbandwidthrequiredtodeliverthetraffic,when
theBusyHourTrafficisknown.ByusingErlangsandbandwidthcalculator,wecanobtainthenumber
ofBusyHourTraffic(BHT)ofagivenCodec.Supposewerunthesimulationusingavarietyof
bandwidthvaluesandG.729Codec;wewillobtainthefollowingresult:
Bandwidth
Blocking
VoicePath
BHT
VoIPCookbook:291
(kbps)
64
64
64
128
256
512
0.01
0.03
0.10
0.01
0.01
0.01
2
2
2
5
10
21
(Erlangs)
0.15
0.25
0.55
1.35
4.45
12.80
Figure19.7:MinutesandLinesCalculator.
TheMinutesandLinesCalculatorallowsustoestimatehowmanyvoicechannelsareneededfora
givenminutesofcallsonthenetwork.Anetworkplannermustmakesurethatthenetworkhas
sufficientbandwidthtoaccommodatecommunicationsessionatpeakhours.AsshownintheFigure,
TheBusyHourFactorparameterisapercentageofdailyminutesofcallsmadeduringthemostbusy
VoIPCookbook:292
hourinagivenday.Thedefaultvalue17%isanacceptablepercentageforanofficeoperating8hours
perday.Thepercentageisnormallyhigherforanofficeoperatinginlessnumberofhours,oranoffice
thatoftenplacescallsinadifferenttimezone.
ThefollowingistheresultofcalculationforaADSLchannelcapableoffacilitatingonlytwochannels:
Voice
Channel
2
2
2
2
2
2
Blockin
g
0.01
0.03
0.10
0.03
0.03
0.03
BusyHour
Factor
17%
17%
17%
20%
30%
40%
Minutes/Day
52
88
194
45
30
22
Itappearsthatthemorewetoleratethenumberofblockedcalls,themoreminutesperdaywewill
have.However,themorecallstakeplaceduringpeakhours,orwhenbusyhourfactorincreases,the
lessnumberofminutesperdaywewillhave.
VoIPCookbook:293
VQManagerSoftware
SIPp
Willbeused.
VoIPCookbook:294
SomeoftheImportantScriptsofVQManager
TostartVQManager
sudosu
cd/root/ManageEngine/VQManager/bin/
/root/ManageEngine/VQManager/bin/run.sh
Tostartasbackgroundprocess,
sudosu
cd/root/ManageEngine/VQManager/bin/
/root/ManageEngine/VQManager/bin/run.sh&
TostopVQManager
sudosu
cd/root/ManageEngine/VQManager/bin/
/root/ManageEngine/VQManager/bin/shutdown.sh
ToreinitializedtheDatabaseincasewehaveacorruptdata,
sudosu
cd/root/ManageEngine/VQManager/bin/
/root/ManageEngine/VQManager/bin/reinitializeDB.sh
VoIPCookbook:295
ActivateVQManagerWebService
WhenwerunVQManagerWebServiceforthefirsttime,weneedtoactivatetheWebService.Firstly,
weneedtostartVQManagerasbackgroundprocess,suchas,
sudosu
cd/root/ManageEngine/VQManager/bin/
/root/ManageEngine/VQManager/bin/run.sh&
AccessviaWebtohttp://localhost:8647withdefaultusername&passwordadmin&admin.
Figure20.1LoginMenuinVQManager.
VoIPCookbook:296
Figure20.2.WelcomeMessageofVQManager.
AsweaccesstheVQManagerWebforthefirsttime,itwilltellusthatwecanchoosewhether,
UseVQManagerbuiltinsniffer.
ImporttheCallDetailedRecords(CDR)logfiles.
ImporttheCDRsentasSyslogmessafesbytheCallServers.
Clicknexttocontinue.
VoIPCookbook:297
Figure20.3OptiontomonitorVoIPnetwork.
Clickononeoftheoption.TheeasiestmaybeSniffer.
ClickNext;afterwechoosethemethod.
VoIPCookbook:298
Figure20.4ProtocolSettingsinVQManager.
Inthethefollowingmenu,wecanchoosetheprotocolstobemonitoredinthenetwork.Inthenormal
VoIPnetwork,wedon'thavetochangethevalues.
ClickNexttocontinue.
VoIPCookbook:299
Figure20.5SelecttheInterfacetobemonitored.
Thisistheimportantpart.Weneedtoselect,theinterfacetobesniffed.
VoIPCookbook:300
Figure20.6InterfaceSelected.
Intheabovefigure,wechooseinterfaceeth0tobesniffed.
ClickNexttocontinue.
VoIPCookbook:301
Figure20.7ConfigurationSummary.
Finally,VQManagerwillshowthesummaryofourVoIPMonitoringplatform.
ClickNexttocontinue.
VoIPCookbook:302
Figure20.8VQManagerWebConsole.
FinishconfigureVQManager.
TheabovefigureshowstheVQManagermonitoringdisplay.Itshowsalotofimportantinformation
regardingthemonitoredVoIPinfrastructure.
VoIPCookbook:303
ChangingtheMonitoredInterface
Insomecases,weneedtomonitordifferentinterface.Inthiscase,weneedtologintothewebat
http://localhost:8647
usernameadmin
passwordadmin
Clickonthefollowingsequence
Admin>Sniffer>ProtocolSettings>Next>"selectinterface">Next>Save
Ifweneedtochangethemonitoredinterface,weneedtoclickonthefollowingsequence.
Admin>Sniffer>Reconfigure>ProtocolSettings>Next>"interfacenya">Next>
Save
InsertingnewInterface
Insomecases,wehaveinsertedanewinterfaceintotheserverandneedtomonitorthisparticularnew
interface.Todoso,weneedtoresetthedatabase,
sudosu
/root/ManageEngine/VQManager/bin/reinitializeDB.sh
thenactivatetheinterfacethroughVQManagerWebagain
VoIPCookbook:304
MonitorVoIPPerformance
Figure20.9FrontendWebConsoleofVQManager.
TheWebfrontendofVQManager.Wecaneasilyseethecallvolume,includingthesuccesscall,the
failedcalls.Ontheright,wecanseethequalityofcallsingeneral,including,itsdelay,jitter,packet
loss,MOS,RFactor.
VoIPCookbook:305
Figure20.10WebFrontEnd
Attheend,oftheWebFrontend.Ontheleft,wecanseetrafficpassinginKbps.Ontheright,wecan
seetrafficpassinginpacketpersecond.Inaddition,wecanseethetypeoftrafficpassingthroughour
system.
VoIPCookbook:306
Figure20.11CallMenuVQManager.
InVQManagercallmenu,wecanseeinsummeryofcalls,including,theusageprofile.Inaddition,we
canseetheactivecallatthemoment.
VoIPCookbook:307
Figure20.12EndpointMenu.
IntheEndpointmenu,wecanseeamoredetailedinformationofparticularendpoint,suchas,its
activities,performanceandusage.Ontheleft,wecanseetheusageactivities.Ontheright,wecansee
moredetailedonthestatisticsandvoicequality.Belowit,wecanseemoredetailedontheincoming
andoutgoingcallQoS.
VoIPCookbook:308
Figure20.13EndpointDetailedCalls.
Atthebottomofendpointmenu,wecanseedetailedcallsperformedbytheparticularendpoint.
VoIPCookbook:309
Figure20.14ConcurrentCall.
InConcurrentCallReportmenu,wecaneasilyseehowmanyconcurrentcallishandledbythe
softswitch.Inaddition,wecanalsoseethepeakhoursofthetrafficanditstotalandaverageconcurrent
calls.
VoIPCookbook:310
Figure20.15GoodQualityCallsReport
ThroughReportMenu>GoodQualityCallsReport,wecaneasilyseethegoodqualitycallmade
throughoursoftswitch.
VoIPCookbook:311
Figure20.16UnsuccessfulCallsReport
ThroughReportMenu>UnsuccessfulCallsReport,wecantheunsuccessfullcalls.Wemayfurthjer
analyzethefailurereasons.
VoIPCookbook:312
Figure20.17SuccessfulCallsReport
ThroughReportMenu>SuccessfulCallsReport,wecanseethereportonthesuccessfulcallthrough
oursoftswitch.
VoIPCookbook:313
InstallationofSIPpWebfrontend
DownloadSIPpWebfrontendfrom
http://sourceforge.net/projects/sipp/files/sipp/3.1/
Copy&Extract
mkdir/var/www/sipp
cpsipp_webfrontend_v1.2.tgz/var/www/sipp/
cd/var/www/sipp/
tarzxvfsipp_webfrontend_v1.2.tgz
mv/var/www/sipp/src/*/var/www/sipp/
Createdatabase
mysqlurootp
password:
CREATEDATABASESIPpDB;
USESIPpDB;
\./var/www/sipp/tables.sql
quit
Editconfig.ini.php
vi/var/www/sipp/config.ini.php
Suchthat
VoIPCookbook:314
[EXECUTABLES]
3.0="/usr/bin/sipp"
[CONFIG]
db_host="localhost"
db_user="root"
db_pwd="123456"
db_name="SIPpDB"
admin_pwd=""
Tomakeiteasierforaccessingtheweb,emptytheadmin_pwdfield.SIPpWebfrontendcanbe
accessedvia
http://localhost/sipp
using
usernameadmin
password<nopassword>
TransactionOrientedTestusingSIPp
Inthisexample,weassumetheIPaddressofthesoftswitchis192.168.0.3.
Firstly,weneedtosetuptheconfigurationfile/usr/local/etc/opensips/cfgtestuas.cfgattheserverside.
Thelistofcfgtestuas.cfgisintheAppendix.Testtheopensipsconfigurationfile,itcanbedonevia,
#opensipscf/usr/local/etc/opensips/cfgtestuas.cfg
Ifnoerror,wecanruntheserverusing
#opensipsf/usr/local/etc/opensips/cfgtestuas.cfg
RunSIPpattheclientside,using
$sippsnuac192.168.0.3
VoIPCookbook:315
Orusingamorecomplexcommandsuchas,
$sippsnuac192.168.0.3:5060m200000r10000d1l70
Exampleofstresstestingwith1000callpersecondand10000concurrentcallusing
$sippsnuac192.168.0.3r1000l10000d10000
Figure20.18SIPpStressTestwith1000callpersecondand10000concurrentcall
VoIPCookbook:316
Figure20.19SIPpStressTestpage2
ThecompletelistofSIPpswitchcommandislistedintheAppendix.Forsome,itseemsverydifficult
todoastresstestintextmode.WecanusetheSIPpWebfrontendforamoreuserfriendlygraphical
interface.
VoIPCookbook:317
AccesstotheSIPpWebfrontend
SIPpWebfrontendcanbeaccessedvia
http://localhost/sipp
usernameadmin
password<nopassword>
Figure20.20ManagedTestMenuinWebFrontend
ShownintheFigureistheWebfrontendmenuformanagingthetest.Forsimple&commontest,we
basicallyneedtoaccessthismenuonly.
VoIPCookbook:318
Figure20.21ManagedScenarioMenu
SeveralscenariohasbeenbuiltininSIPpcanbeseenintheManagedScenariomenu.Wecanalways
addmorescenarioifyoulike.
VoIPCookbook:319
Figure20.22SystemInformationMenu
IntheSystemInformationMenu,wecanseesomeinformationonthesystem,suchas,anyrunningtest,
freeharddiskspace,SIPpversionetc.
VoIPCookbook:320
Figure20.23CreateNewTestMenu
Tocreateanewtest,intheManagedTestMenu,selectCreateNewTest.Wecantypeinthenameof
testanditsdescription.Don'tforgertopressthe"Savetest"buttontosavethetest.
VoIPCookbook:321
Figure20.24CreateNewTest
Intheexample,weusetest1000cps10000ccforatesttocreate1000callpersecondand10.000
VoIPCookbook:322
concurrentcall.Titlecanbeanything,aslongasitisinformative.
Figure20.25CreateNewTest
VoIPCookbook:323
Wecanthencompletetheformbyputtingsomeinfointhedescription.
Figure20.26CreateNewTest
VoIPCookbook:324
Belowthe"Savetest"buttonwillappearmenutoconfigurethetestinamoredetail.Itisinterestingto
notethatwecansimultaneouslyconfiguretwo(2)devices,namely,PartyAandPartyB.
Figure20.27FirstSectionoftheAddCallinCreateNewTest
VoIPCookbook:325
Whenweclickaddcalltooneoftheparty,someoftheparameterstobeconfiguredare,scenario(as
uacoruas),remotehostipaddress,andmonitorcalltoseeactivitiesinrealtimeduringtest.
Figure20.28LastSectionoftheAddCallinCreateNewTest
VoIPCookbook:326
Attheendofconfigurationcallmenu,wecansetcallrateandextendedparameter.PressSavecall
buttonafterwecompletetheconfiguration.
Figure20.29Runtestmenu
Afterallparameterscompletelyset,wecanclickonRuntestbutton.Todotheactualrun,weneedto
doanotherclickon"Runtestnow".
VoIPCookbook:327
Figure20.30RuntheTest
Ifthemonitorcallactive,wecanseetheactualtestrunbySIPponthescreen.Press1,2,3keytosee
moreinformationontesttest.
VoIPCookbook:328
G.711aPCMstandard,codeaudiointo8bitsampleat8000samplepersecond,produces
64kbpsdigitalaudio.
G.729/G.729Athe8kbpsstandard.
CODECthataimsforlowerspeedwillnormallyexperiencedistortioninthecodedaudio.
ThepublishedMOSoflowspeedCODEwillnormallyhavearelativelygoodquality.Inreality,low
speedCODECwillexperienceadistortioninthecodedaudio.Inaddition,itwasspeculatedthatlow
speedCODECsuchasG.729Acreatesstressforcontinuoususageincallcenter.
VoIPCookbook:329
Use100MbpsLANswitchhubwithdedicatedsegment.
UseGigabitEthernettoswitch/routerthatconnectedtotheserver.
UseagoodIPPhone,itmaybebeneficialtouseaswitchthatcanprioritizedvoicetraffic.
TalktoyourISP,makesurewereceiveenoughbandwidth.ItwouldbebeneficialiftheISPcan
prioritizeRealTimeProtocol(RTP)traffic.
MakesuretheroutermayprioritizeRTPtraffic.
MakesurethefirewallisconfiguretopassVoIPtraffic.
Designamanagementandmonitoringinfrastructuretohelpquickproblemdetectionand
solving.
Dotestpriortosystemoperation.
Testbetweensites.Toseeanypossibleproblemsduetocongestionintheaccessnetworkoron
thewideareanetwork.Itwouldbebetterifthetestcanbeperformedinthelongperiodoftime,
sayone(1)month.TestprocesscanbedonebyusingasimpletoolstosimulateRTPtrafficas
routershouldhandledifferentlyascomparedtoICMP.
Pilottrial.LimitedtestoftheplannedIPtelephonysystemtoseeiftherewouldbeanyproblem
infullfledgedeployment.
VoIPCookbook:330
Desktoptesting.OurLANmayexperiencingalotofproblems,weneedtodevelopa
mechanismtotesteachsegmenttoseehowseverethecollisionsandthepacketloss.UseVoIP
analyzertoseepacketlossandjitterduringinstallation.
http://www.voiptroubleshooter.com/
http://www.voiptroubleshooter.com/tools/index.html
http://www.telchemy.com/
http://www.voiptroubleshooter.com/basics/mosr.html
VoIPCookbook:331
References
http://www.asterisk.org
http://www.voipinfo.org/
http://www.voiptroubleshooter.com/
http://www.voiprakyat.or.id
http://www.asteriskguru.com
http://www.e164.org
http://www.telchemy.com/
http://sipbroker.com/
VoIP Hardware
http://www.digiumcards.com/
http://www.voipon.co.uk/
http://www.thevoipconnection.com/
http://www.level1.com/
http://www.linksysbycisco.com/
https://www.digium.com/en/supportcenter/documentation/viewdocs/TDM2400P
https://www.digium.com/en/supportcenter/documentation/viewdocs/TDM400P
https://www.digium.com/en/supportcenter/documentation/viewdocs/TDM410
VoIP Softswitch
http://www.asterisk.org
http://www.briker.org
http://www.opensips.org
http://www.asterisk.org/asterisknow
http://www.counterpath.com/xlitedownload.html
http://www.virbiage.com/cubix.php
http://www.asteriskguru.com/idefisk/free/
http://www.sjlabs.com/sjp.html
http://www.xten.com/index.php?menu=download
http://ekiga.org
Testing Software
http://sipp.sourceforge.net/
http://sourceforge.net/projects/sipp
VoIPCookbook:332
http://www.manageengine.com/products/vqmanager/
VoIPCookbook:333
;username2012345passwordabcdef
;username2055555passwd123456
;WeneedtoestablishaSIPaccountinourplaceinordertoreceivecallsfrom
;voiprakyatthroughourPABX
;
[fwd1]
type=friend
secret=secret
username=2055555
fromuser=2055555
fromdomain=voiprakyat.or.id
host=voiprakyat.or.id
dtmfmode=inband
nat=yes
canreinvite=no
VoIPCookbook:334
[fwd2]
type=friend
secret=secret
username=2012345
fromuser=2012345
fromdomain=voiprakyat.or.id
host=voiprakyat.or.id
dtmfmode=inband
nat=yes
canreinvite=no
;ThefollowingisaSIPaccountforIPphoneinhouse/office
;
[phone17]
disallow=all
allow=ulaw
type=friend
host=dynamic
defaultip=192.168.0.17
dtmfmode=inband
secret=voip17
mailbox=2206
context=home
callerid="BillMandra"<2206>
nat=no
[phone18]
disallow=all
allow=ulaw
type=friend
host=dynamic
defaultip=192.168.0.18
dtmfmode=inband
secret=voip18
mailbox=2204
context=home
callerid="Kitchen"<2204>
VoIPCookbook:335
nat=no
extensions.conf
;
;Staticextensionfileconfigurationusedbypbx_configmodule
;InthismoduleweconfigureallincomingcallsandoutgoingcallsinAsterisk
;
[general]
static=yes
writeprotect=no
[globals]
DIALOUTANALOG=Zap/1
MAINPHONE=Zap/2
JESSICA=Zap/3
CHRISTOPHER=Zap/4
PORCH=Zap/5
KITCHEN=SIP/phone18
BILL=SIP/phone17
;
;ForthisexamplethecardusedisZAPTEL
;WecanreplaceZap/1,Zap/2,Zap/3s/dZap/5
;withSIPaccountinAsteriskforIPPhoneorWiFiPhone
;forexampleSIP/2000toIPPhonewithextension2000etc.
FWDUSERID1=2012345
FWD1USERNAME=WilliamMandra
FWDUSERID2=2055555
FWD2USERNAME=BujubunengMandra
FWDPREFIX=*
HOMENUMBER=4208888
BILLCELLPHONE=0811888888
MOMCELLPHONE=0811999999
JESSCELLPHONE=0813222222
;
;MacroforAsteriskExtension
VoIPCookbook:336
;
[macrofastbusy]
exten=>s,1,Answer
exten=>s,2,Wait,1
exten=>s,3,Playback(ssnoservice)
exten=>s,4,Wait(30)
exten=>s,5,Hangup
[macrodialoutsip]
exten=>s,1,SetCallerID(${FWDUSERID2})
exten=>s,2,SetCIDName(${FWD2USERNAME})
exten=>s,3,Dial(SIP/${FWDPREFIX}${ARG1}@fwd1,70)
exten=>s,4,Macro(fastbusy)
exten=>s,5,Hangup
exten=>s,104,Macro(fastbusy)
exten=>s,105,Wait,3
exten=>s,106,Playtones(congestion)
exten=>s,107,Wait,30
exten=>s,108,Hangup
[macrobillcellfwdoutsip2]
exten=>s,1,SetCallerID(${ARG2})
exten=>s,2,Dial(SIP/${FWDPREFIX}${ARG1}@fwd2,20)
exten=>s,3,Goto(local,2206,4)
exten=>s,102,Goto(local,2206,4)
;
;Outbound
;
;
[operator]
exten=>0,1,Dial(${DIALOUTANALOG}/${EXTEN},70)
exten=>0,2,Macro(fastbusy)
exten=>0,102,Playback(ssnoservice)
exten=>0,103,Macro(fastbusy)
[e911]
exten=>911,1,Dial(${DIALOUTANALOG}/${EXTEN})
exten=>911,2,Macro(fastbusy)
VoIPCookbook:337
exten=>911,102,Playback(ssnoservice)
exten=>911,103,Macro(fastbusy)
[forcedanalog]
exten=>_9.,1,Dial(${DIALOUTANALOG}/${EXTEN:1},70)
exten=>_9.,2,Macro(fastbusy)
exten=>_9.,102,Macro(fastbusy)
[fwd1out]
exten=>_8.,1,SetCallerID(${FWDUSERID2})
exten=>_8.,2,SetCIDName(${FWD2USERNAME})
exten=>_8.,3,Dial(SIP/${EXTEN:1}@fwd1,70)
exten=>_8.,4,Macro(fastbusy)
exten=>_8.,5,Hangup
[fwd2outpvt]
exten=>_7.,1,SetCallerID(${FWDUSERID1})
exten=>_7.,2,SetCIDName(${FWD1USERNAME})
exten=>_7.,3,Dial(SIP/${EXTEN:1}@fwd2,70)
exten=>_7.,4,Macro(fastbusy)
exten=>_7.,5,Hangup
[information]
exten=>108,1,Dial(${DIALOUTANALOG}/${EXTEN},70)
exten=>108,2,Macro(fastbusy)
exten=>108,102,Playback(ssnoservice)
exten=>108,103,Macro(fastbusy)
;LocalPSTN
;
[pstnlocal]
exten=>_021.,1,Dial(${DIALOUTANALOG}/${EXTEN:3})
exten=>_021.,2,Macro(fastbusy)
exten=>_021.,102,Macro(dialoutsip,${EXTEN})
[tollfree]
exten=>_0800.,1,Dial(${DIALOUTANALOG}/${EXTEN})
exten=>_0800.,2,Macro(fastbusy)
exten=>_0800.,102,Macro(dialoutsip,${EXTEN})
VoIPCookbook:338
[longdistance]
exten=>_0XXXXXXXXXX,1,Macro(dialoutsip,${EXTEN})
exten=>_0XXXXXXXXXX,2,Macro(fastbusy)
exten=>_0XXXXXXXXXX,102,Dial(${DIALOUTANALOG}/${EXTEN})
exten=>_0XXXXXXXXXX,103,Macro(fastbusy)
[home]
include=>operator
include=>e911
include=>forcedanalog
include=>fwd1out
include=>fwd2outpvt
include=>information
include=>local
include=>pstnlocal
include=>tollfree
include=>longdistance
;
;Inbound
;analogline
[nighttimeanalog]
exten=>s,1,Wait(2)
exten=>s,2,Background(nighttime)
exten=>1,1,Goto(daytimeanalog,s,1)
exten=>2,1,Voicemail(u2201)
exten=>3,1,Voicemail(u2206)
exten=>4,1,Voicemail(u2202)
exten=>9,1,Playback(transfer)
exten=>9,2,Ringing(1)
exten=>9,3,Goto(local,2206,1)
[daytimeanalog]
exten=>s,1,Zapateller(answer|nocallerid)
exten=>s,2,PrivacyManager
exten=>s,3,Ringing(1)
exten=>s,4,Dial(${MAINPHONE}&${KITCHEN},15)
VoIPCookbook:339
exten=>s,5,Dial(${JESSICA},6)
exten=>s,6,Dial(${BILL},6)
exten=>s,7,Voicemail(u2201)
exten=>s,8,Hangup
[inboundanalog]
include=>daytimeanalog|9:0021:00|*|*
include=>nighttimeanalog|21:0009:00|*|*
;siplines
;
[nighttimefwd1]
exten=>s,1,Wait(2)
exten=>s,2,Background(nighttime)
exten=>1,1,Goto(daytimesip1,s,1)
exten=>2,1,Voicemail(u2201)
exten=>3,1,Voicemail(u2206)
exten=>4,1,Voicemail(u2202)
exten=>9,1,Playback(transfer)
exten=>9,2,Goto(local,2206,1)
[daytimefwd1]
exten=>s,1,Dial(${MAINPHONE}&${KITCHEN},15)
exten=>s,2,Dial(${JESSICA},6)
exten=>s,3,Dial(${BILL},6)
exten=>s,4,Voicemail(u2201)
exten=>s,5,Hangup
[inboundfwd1]
include=>daytimefwd1|9:0021:00|*|*
include=>nighttimefwd1|21:009:00|*|*
[inboundsip]
exten=>2055555,1,Goto(inboundfwd1,s,1)
exten=>2012345,1,Goto(local,2206,1)
;
;InternalExtension
VoIPCookbook:340
;
[local]
exten=>2201,1,Dial(${MAINPHONE},20,Tt)
exten=>2201,2,Voicemail(u2201)
exten=>2201,3,Hangup
exten=>2201,102,Voicemail(b2201)
exten=>2201,103,Hangup
exten=>2202,1,Dial(${JESSICA},20,Tt)
exten=>2202,2,Voicemail(u2202)
exten=>2202,3,Hangup
exten=>2202,102,Voicemail(b2202)
exten=>2202,103,Hangup
exten=>2203,1,Dial(${CHRISTOPHER},20,Tt)
exten=>2203,2,Playback(vmnobodyavail)
exten=>2203,3,Hangup
exten=>2204,1,Dial(${KITCHEN},20,Tt)
exten=>2204,2,Playback(vmnobodyavail)
exten=>2204,3,Hangup
exten=>2205,1,Dial(${PORCH},20,Tt)
exten=>2205,2,Playback(vmnobodyavail)
exten=>2205,3,Hangup
exten=>2206,1,Dial(${BILL},20,Tt)
exten=>2206,2,Playback(transfer)
exten=>2206,3,Macro(billcellfwdoutsip2,${BILLCELLPHONE},${CALLERIDNUM})
exten=>2206,4,Voicemail(u2206)
exten=>2206,5,Hangup
exten=>2206,102,Voicemail(b2206)
exten=>2206,103,Hangup
exten=>2500,1,Wait,2
exten=>2500,2,VoicemailMain
exten=>2500,3,Hangup
;
;Avarietyoffacilitiesthatcanbeusedfortesting
VoIPCookbook:341
;
exten=>2001,1,Answer
exten=>2001,2,Playback(demoechotest)
exten=>2001,3,Echo
exten=>2001,4,Playback(demoechodone)
exten=>2001,5,Hangup
exten=>2002,1,Answer
exten=>2002,2,WaitMusicOnHold(30)
exten=>2002,3,Hangup
exten=>2003,1,Answer
exten=>2003,2,Wait(1)
exten=>2003,3,SayUnixTime(||k)
exten=>2003,4,SayUnixTime(||M)
exten=>2003,5,Playback(vmand)
exten=>2003,6,SayUnixTime(||S)
exten=>2003,7,Wait(2)
exten=>2003,8,Hangup
exten=>2004,1,Answer
exten=>2004,2,Wait(1)
exten=>2004,3,Playback(vmextension)
exten=>2004,4,SayDigits(${CALLERIDNUM})
exten=>2004,5,Wait(2)
exten=>2004,6,Hangup
exten=>2005,1,Goto(nighttimeanalog,s,1)
;exten=>2005,2,Playback(ssnoservice)
;exten=>2005,3,Playback(vmnobodyavail)
;exten=>2005,4,Playback(agentincorrect)
;exten=>2005,5,Playback(agentuser)
;exten=>2005,6,Playback(pbxinvalid)
;exten=>2005,7,Playback(ttsomethingwrong)
;exten=>2005,8,Playback(vmextension)
;exten=>2005,9,Playback(vmisunavail)
;exten=>2005,10,Playback(vmisonphone)
;exten=>2005,11,Playback(vmsorry)
VoIPCookbook:342
exten=>2005,2,Hangup
VoIPCookbook:343
:Displayversionandcopyrightinformation.
:Enableautomatic200OKanswerforINFO,UPDATEandNOTIFYmessages.
:ForcethevalueoftheURIforauthentication.
Bydefault,theURIiscomposedofremote_ip:remote_port.
base_cseq :Startvalueof[cseq]foreachcall.
bg
:LaunchSIPpinbackgroundmode.
bind_local :BindsockettolocalIPaddress,i.e.thelocalIPaddressisusedasthesourceIP
address.IfSIPprunsinservermodeitwillonlylistenonthelocalIPaddress
insteadofallIPaddresses.
buff_size :Setthesendandreceivebuffersize.
calldebug_file:Setthenameofthecalldebugfile.
calldebug_overwrite:Overwritethecalldebugfile(defaulttrue).
cid_str
:CallIDstring(default%u%p@%s).%u=call_number,
%s=ip_address,%p=process_number,%%=%(inanyorder).
ci
:SetthelocalcontrolIPaddress
cp
:Setthelocalcontrolportnumber.Defaultis8888.
d
:Controlsthelengthofcalls.Moreprecisely,thiscontrolsthedurationof'pause'
instructionsinthescenario,iftheydonothavea'milliseconds'section.
Defaultvalueis0anddefaultunitismilliseconds.
deadcall_wait:HowlongtheCallIDandfinalstatusofcallsshouldbekepttoimprovemessage
anderrorlogs(defaultunitisms).
default_behaviors:SetthedefaultbehaviorsthatSIPpwilluse.Possbilevaluesare:
all Usealldefaultbehaviors
none Usenodefaultbehaviors
bye Sendbyesforabortedcalls
abortunexp Abortcallsonunexpectedmessages
pingreply
Replytopingrequests
Ifabehaviorisprefacedwitha,thenitisturnedoff.Example:all,bye
error_file :Setthenameoftheerrorlogfile.
error_overwrite:Overwritetheerrorlogfile(defaulttrue).
VoIPCookbook:344
f
fd
i
:Setthestatisticsreportfrequencyonscreen.Defaultis1anddefaultunitisseconds.
:Setthestatisticsdumplogreportfrequency.Defaultis60anddefaultunitisseconds.
:SetthelocalIPaddressfor'Contact:','Via:',and'From:'headers.
DefaultisprimaryhostIPaddress.
inf
:InjectvaluesfromanexternalCSVfileduringcallsintothescenarios.
Firstlineofthisfilesaywhetherthedataistobereadinsequence(SEQUENTIAL),
random(RANDOM),oruser(USER)order.
Eachlinecorrespondstoonecallandhasoneormore';'delimiteddatafields.
Thosefieldscanbereferredas[field0],[field1],...inthexmlscenariofile.
SeveralCSVfilescanbeusedsimultaneously(syntax:inff1.csvinff2.csv...)
infindex
:filefield
Createanindexoffileusingfield.Forexampleinfusers.csvinfindexusers.csv0
createsanindexonthefirstkey.
ip_field
:SetwhichfieldfromtheinjectionfilecontainstheIPaddressfromwhichtheclient
willsenditsmessages.Ifthisoptionisomittedandthe'tui'optionispresent,
thenfield0isassumed.Usethisoptiontogetherwith'tui'
l
:Setthemaximumnumberofsimultaneouscalls.Oncethislimitisreached,
trafficisdecreaseduntilthenumberofopencallsgoesdown.
Default:(3*call_duration(s)*rate).
log_file
:Setthenameofthelogactionslogfile.
log_overwrite:Overwritethelogactionslogfile(defaulttrue).
lost
:Setthenumberofpacketstolosebydefault
(scenariospecificationsoverridethisvalue).
rtcheck
:Selecttheretransmisisondetectionmethod:full(default)orloose.
m
:Stopthetestandexitwhen'calls'callsareprocessed
mi
:SetthelocalmediaIPaddress(default:localprimaryhostIPaddress)
master
:3pccextendedmode:indicatesthemasternumber
max_recv_loops:Setthemaximumnumberofmessagesreceivedreadpercycle.
Increasethisvalueforhightrafficlevel.Thedefaultvalueis1000.
max_sched_loops:Setthemaximumnumberofcalslrunpereventloop.
Increasethisvalueforhightrafficlevel.Thedefaultvalueis1000.
max_reconnect:Setthethemaximumnumberofreconnection.
max_retrans :MaximumnumberofUDPretransmissionsbeforecallendsontimeout.
Defaultis5forINVITEtransactionsand7forothers.
max_invite_retrans:MaximumnumberofUDPretransmissionsforinvitetransactions
beforecallendsontimeout.
max_non_invite_retrans:MaximumnumberofUDPretransmissionsfornoninvitetransactions
beforecallendsontimeout.
VoIPCookbook:345
max_log_size:Whatisthelimitforerrorandmessagelogfilesizes.
max_socket :Setthemaxnumberofsocketstoopensimultaneously.Thisoptionissignificant
ifyouuseonesocketpercall.Oncethislimitisreached,
trafficisdistributedoverthesocketsalreadyopened.Defaultvalueis50000
mb
:SettheRTPechobuffersize(default:2048).
message_file:Setthenameofthemessagelogfile.
message_overwrite:Overwritethemessagelogfile(defaulttrue).
mp
:SetthelocalRTPechoportnumber.Defaultis6000.
nd
:NoDefault.DisablealldefaultbehaviorofSIPpwhicharethefollowing:
OnUDPretransmissiontimeout,abortthecallbysendingaBYEoraCANCEL
Onreceivetimeoutwithnoontimeoutattribute,abortthecallbysendingaBYE
oraCANCEL
OnunexpectedBYEsenda200OKandclosethecall
OnunexpectedCANCELsenda200OKandclosethecall
OnunexpectedPINGsenda200OKandcontinuethecall
Onanyotherunexpectedmessage,abortthecallbysendingaBYEora
CANCEL
nr
:DisableretransmissioninUDPmode.
nostdin
:Disablestdin.
p
:Setthelocalportnumber.Defaultisarandomfreeportchosenbythesystem.
pause_msg_ign:Ignorethemessagesreceivedduringapausedefinedinthescenario
periodic_rtd :Resetresponsetimepartitioncounterseachlogginginterval.
plugin
:Loadaplugin.
r
:Setthecallrate(incallsperseconds).Thisvaluecanbechangedduringtest
bypressing'+','_','*'or'/'.Defaultis10.
pressing'+'keytoincreasecallrateby1*rate_scale,
pressing''keytodecreasecallrateby1*rate_scale,
pressing'*'keytoincreasecallrateby10*rate_scale,
pressing'/'keytodecreasecallrateby10*rate_scale.
Iftherpoptionisused,thecallrateiscalculatedwiththeperiodinms
givenbytheuser.
rp
:Specifytherateperiodforthecallrate.Defaultis1secondanddefaultunit
ismilliseconds.Thisallowsyoutohavencallseverymmilliseconds
(byusingrnrpm).
Example:
r7rp2000==>7callsevery2seconds.
r10rp5s=>10callsevery5seconds.
rate_scale :Controltheunitsforthe'+','','*',and'/'keys.
rate_increase:Specifytherateincreaseeveryfdunits(defaultisseconds).
Thisallowsyoutoincreasetheloadforeachindependentloggingperiod.
VoIPCookbook:346
Example:rate_increase10fd10s==>increasecallsby10every10seconds.
rate_max :Ifrate_increaseisset,thenquitaftertheratereachesthisvalue.
Example:rate_increase10rate_max100==>increasecallsby10until100cpsishit.
no_rate_quit:Ifrate_increaseisset,donotquitaftertheratereachesrate_max.
recv_timeout:Globalreceivetimeout.Defaultunitismilliseconds.Iftheexpectedmessageisnot
received,thecalltimesoutandisaborted.
send_timeout:Globalsendtimeout.Defaultunitismilliseconds.Ifamessageisnotsent
(duetocongestion),thecalltimesoutandisaborted.
sleep
:Howlongtosleepforatstartup.Defaultunitisseconds.
reconnect_close:Shouldcallsbeclosedonreconnect?
reconnect_sleep:Howlong(inmilliseconds)tosleepbetweenthecloseandreconnect?
ringbuffer_files:Howmanyerror/messagefilesshouldbekeptafterrotation?
ringbuffer_size:Howlargeshoulderror/messagefilesbebeforetheygetrotated?
rsa
:Settheremotesendingaddresstohost:portforsendingthemessages.
rtp_echo
:EnableRTPecho.RTP/UDPpacketsreceivedonportdefined
bympareechoedtotheirsender.RTP/UDPpacketscomingon
thisport+2arealsoechoedtotheirsender(usedforsoundandvideoecho).
rtt_freq
:freqismandatory.Dumpresponsetimeseveryfreqcallsinthelogfiledefined
bytrace_rtt.Defaultvalueis200.
s
:SettheusernamepartoftheresquestURI.Defaultis'service'.
sd
:Dumpsadefaultscenario(embededinthesippexecutable)
sf
:Loadsanalternatexmlscenariofile.TolearnmoreaboutXMLscenariosyntax,
usethesdoptiontodumpembeddedscenarios.Theycontainallthenecessaryhelp.
shortmessage_file:Setthenameoftheshortmessagelogfile.
shortmessage_overwrite:Overwritetheshortmessagelogfile(defaulttrue).
oocsf
:Loadoutofcallscenario.
oocsn
:Loadoutofcallscenario.
skip_rlimit :Donotperformrlimittuningoffiledescriptorlimits.
Default:false.
slave
:3pccextendedmode:indicatestheslavenumber
slave_cfg :3pccextendedmode:indicatesthefilewherethemasterandslaveaddressesarestored
sn
:Useadefaultscenario(embeddedinthesippexecutable).
Ifthisoptionisomitted,theStandardSipStoneUACscenarioisloaded.
Availablevaluesinthisversion:
'uac':StandardSipStoneUAC(default).
'uas':SimpleUASresponder.
'regexp':StandardSipStoneUACwithregexpandvariables.
'branchc':Branchingandconditionalbranchinginscenariosclient.
'branchs':Branchingandconditionalbranchinginscenariosserver.
VoIPCookbook:347
Default3pccscenarios(see3pccoption):
'3pccCA':ControllerAside(mustbestartedafterallother3pccscenarios)
'3pccCB':ControllerBside.
'3pccA':Aside.
'3pccB':Bside.
stat_delimiter:Setthedelimiterforthestatisticsfile
stf
:Setthefilenametousetodumpstatistics
t
:Setthetransportmode:
u1:UDPwithonesocket(default),
un:UDPwithonesocketpercall,
ui:UDPwithonesocketperIPaddress.
TheIPaddressesmustbedefinedintheinjectionfile.
t1:TCPwithonesocket,
tn:TCPwithonesocketpercall,
l1:TLSwithonesocket,
ln:TLSwithonesocketpercall,
c1:u1+compression(onlyifcompressionpluginloaded),
cn:un+compression(onlyifcompressionpluginloaded).
Thispluginisnotprovidedwithsipp.
timeout
:Globaltimeout.Defaultunitisseconds.Ifthisoptionisset,SIPpquitsafter
nbunits(timeout20squitsafter20seconds).
timeout_error:SIPpfailsiftheglobaltimeoutisreachedisset(timeoutoptionrequired).
timer_resol:Setthetimerresolution.Defaultunitismilliseconds.Thisoptionhasanimpact
ontimersprecision.SmallvaluesallowmorepreciseschedulingbutimpactsCPU
usage.Ifthecompressionison,thevalueissetto50ms.Thedefaultvalueis10ms.
sendbuffer_warn:ProducewarningsinsteadoferrorsonSendBufferfailures.
trace_msg :DisplayssentandreceivedSIPmessagesin<scenariofilename>_<pid>_messages.log
trace_shortmsg:DisplayssentandreceivedSIPmessagesasCSV
in<scenariofilename>_<pid>_shortmessages.log
trace_screen:Dumpstatisticscreensinthe<scenario_name>_<pid>_cenaris.logfile
whenquittingSIPp.Usefultogetafinalstatusreportinbackgroundmode(bgoption).
trace_err
:Traceallunexpectedmessagesin<scenariofilename>_<pid>_errors.log.
trace_calldebug:Dumpsdebugginginformationaboutabortedcallsto
<scenario_name>_<pid>_calldebug.logfile.
trace_stat :Dumpsallstatisticsin<scenario_name>_<pid>.csvfile.
Usethe'hstat'optionforadetaileddescriptionofthestatisticsfilecontent.
trace_counts:DumpsindividualmessagecountsinaCSVfile.
trace_rtt
:Allowtracingofallresponsetimesin<scenariofilename>_<pid>_rtt.csv.
trace_logs :Allowtracingof<log>actionsin<scenariofilename>_<pid>_logs.log.
VoIPCookbook:348
users
:Insteadofstartingcallsatafixedrate,begin'users'callsatstartup,and
keepthenumberofcallsconstant.
watchdog_interval:Setgapbetweenwatchdogtimerfirings.Defaultis400.
watchdog_reset:Ifthewatchdogtimerhasnotfiredinmorethanthistimeperiod,
thenresetthemaxtriggerscounters.Defaultis10minutes.
watchdog_minor_threshold:Ifithasbeenlongerthanthisperiodbetweenwatchdog
executionscountaminortrip.Defaultis500.
watchdog_major_threshold:Ifithasbeenlongerthanthisperiodbetweenwatchdog
executionscountamajortrip.Defaultis3000.
watchdog_major_maxtriggers:Howmanytimesthemajorwatchdogtimercanbetripped
beforethetestisterminated.Defaultis10.
watchdog_minor_maxtriggers:Howmanytimestheminorwatchdogtimercanbetripped
beforethetestisterminated.Defaultis120.
ap
:Setthepasswordforauthenticationchallenges.Defaultis'password
tls_cert
:SetthenameforTLSCertificatefile.Defaultis'cacert.pem
tls_key:SetthenameforTLSPrivateKeyfile.Defaultis'cakey.pem'
tls_crl
:SetthenameforCertificateRevocationListfile.
Ifnotspecified,X509CRLisnotactivated.
3pcc
:Launchthetoolin3pccmode("ThirdPartycallcontrol").
Thepassedipaddressisdependingonthe3PCCrole.
Whenthefirsttwincommandis'sendCmd'thenthisis
theaddressoftheremotetwinsocket.SIPpwilltryto
connecttothisaddress:porttosendthetwincommand
(Thisinstancemustbestartedafterallother3PCCscenario).
Example:3PCCCAscenario.
Whenthefirsttwincommandis'recvCmd'thenthisis
theaddressofthelocaltwinsocket.SIPpwillopen
thisaddress:porttolistenfortwincommand.
Example:3PCCCBscenario.
tdmmap
:GenerateandhandleatableofTDMcircuits.
Acircuitmustbeavailableforthecalltobeplaced.
Format:tdmmap{03}{99}{58}{131}
key
:keywordvalue
Setthegenericparameternamed"keyword"to"value".
set
:variablevalue
Settheglobalvariableparameternamed"variable"to"value".
dynamicStart:variablevalue
Setthestartoffsetofdynamic_idvaraiable
dynamicMax:variablevalue.Setthemaximumofdynamic_idvariable
VoIPCookbook:349
dynamicStep:variablevalue.Settheincrementofdynamic_idvariable
Signalhandling:
SIPpcanbecontrolledusingposixsignals.Thefollowingsignalsarehandled:
USR1:Similartopress'q'keyboardkey.IttriggersasoftexitofSIPp.
NomorenewcallsareplacedandallongoingcallsarefinishedbeforeSIPpexits.
Example:killSIGUSR1732
USR2:Triggersadumpofallstatisticsscreensin<scenario_name>_<pid>_screens.logfile.
Especiallyusefulinbackgroundmodetoknowwhatthecurrentstatusis.
Example:killSIGUSR2732
Exitcode:
Uponexit(onfatalerrororwhenthenumberofaskedcalls(moption)isreached,
sippexitswithoneofthefollowingexitcode:
0:Allcallsweresuccessful
1:Atleastonecallfailed
97:exitoninternalcommand.Callsmayhavebeenprocessed
99:Normalexitwithoutcallsprocessed
1:Fatalerror
Example:
Runsippwithembeddedserver(uas)scenario:
./sippsnuas
Onthesamehost,runsippwithembeddedclient(uac)scenario
./sippsnuac127.0.0.1
VoIPCookbook:350
VoIPCookbook:351