Noobie Needing Help with Station to Station calling

I am New to the world of Asterisk. The geek in me stays up late at night trying to sip from the fire hose of information in the forums and other documentation. I have downloaded and installed version 1.6.2.11 with the Asterisk GUI on an old server that was collecting dust. The system does not have any telephony cards in it.

I have setup 2 SIP/IAX users, enabling VM on both.
I setup User1 as extension 6000 and User2 as 6001.
I setup *98 as the VM extension.
I downloaded X-Lite4 as my softphone and configured it as User2/6001.

When I call User1 by dialing 6000, I get the 3 tone error sound. When I call *98 to try to get into the VM system, I get the 3 tone error sound. However, User1 shows missed calls on the System Status screen.

Other than the initial install, SIP configuration and User setup, have created a VOIP SIP Trunk and an “internal” dialing plan using the GUI.

What else should I be doing to make station to station calls via the SIP softphones?

You need to define both devices and extensions. In practice, that means you need to show us the contents of both sip.conf and extensions.conf.

Here is my sip.conf file

[general]
context=default
allowoverlap=no
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
srvlookup=yes
subscribecontext=device-hints,device-hints,device-hints
subscribecontext=device-hints
subscribecontext=device-hints
allowexternaldomains=yes
allowguest=yes
allowsubscribe=yes
allowtransfer=yes
alwaysauthreject=no
autodomain=no
bindaddr=192.168.16.49
bindport=5060
callevents=no
canreinvite=yes
checkmwi=10
compactheaders=no
defaultexpiry=120
domain=
dtmfmode=
dumphistory=no
externrefresh=10
fromdomain=
g726nonstandard=no
jbenable=no
jbforce=no
jbimpl=
jblog=no
jbmaxsize=
jbresyncthreshold=
language=
maxcallbitrate=384
maxexpiry=3600
minexpiry=60
mohinterpret=default
mohsuggest=
mwi_from=
nat=yes
notifyringing=yes
pedantic=no
progressinband=never
promiscredir=no
realm=asterisk
recordhistory=no
registerattempts=0
registertimeout=20
relaxdtmf=no
rtpholdtimeout=
rtptimeout=
sendrpid=no
sipdebug=no
t1min=100
t38pt_udptl=no
tos_audio=none
tos_sip=none
tos_video=none
trustrpid=no
useragent=Asterisk PBX
usereqphone=no
videosupport=no
localnet=192.168.16.49
disallow=all
allow=ulaw,alaw,gsm,speex
subscribecontext=device-hints
subscribecontext=device-hints
subscribecontext=device-hints
[authentication]

Here is the extensions.conf
[general]
static=yes
writeprotect=no
clearglobalvars=no
[globals]
CONSOLE=Console/dsp
IAXINFO=guest
TRUNK=DAHDI/G2
TRUNKMSD=1
FEATURES=
DIALOPTIONS=
RINGTIME=20
FOLLOWMEOPTIONS=
PAGING_HEADER=Intercom
CID_6000=6000
CID_6001=6001
trunk_1=SIP/trunk_1
timeinterval_all_day_every_day=,sun-sat,,*
[dundi-e164-canonical]

[dundi-e164-customers]

[dundi-e164-via-pstn]

[dundi-e164-local]
include=dundi-e164-canonical
include=dundi-e164-customers
include=dundi-e164-via-pstn
[dundi-e164-switch]
switch=DUNDi/e164
[dundi-e164-lookup]
include=dundi-e164-local
include=dundi-e164-switch
[macro-dundi-e164]
exten=s,1,Goto(${ARG1},1)
include=dundi-e164-lookup
[iaxtel700]
exten=_91700XXXXXXX,1,Dial(IAX2/${GLOBAL(IAXINFO)}@iaxtel.com/${EXTEN:1}@iaxtel)
[iaxprovider]

[trunkint]
exten=_9011.,1,Macro(dundi-e164,${EXTEN:4})
exten=_9011.,n,Dial(${GLOBAL(TRUNK)}/${FILTER(0-9,${EXTEN:${GLOBAL(TRUNKMSD)}})})
[trunkld]
exten=_91NXXNXXXXXX,1,Macro(dundi-e164,${EXTEN:1})
exten=_91NXXNXXXXXX,n,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
[trunklocal]
exten=_9NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
[trunktollfree]
exten=_91800NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
exten=_91888NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
exten=_91877NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
exten=_91866NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
[international]
ignorepat=9
include=longdistance
include=trunkint
[longdistance]
ignorepat=9
include=local
include=trunkld
[local]
ignorepat=9
include=default
include=trunklocal
include=iaxtel700
include=trunktollfree
include=iaxprovider
include=parkedcalls
[outbound-freenum]
exten=_XX!,1,Goto(outbound-freenum2,${EXTEN},1)
exten=_XX
X!,1,Goto(outbound-freenum2,${EXTEN},1)
exten=_XXXX!,1,Goto(outbound-freenum2,${EXTEN},1)
exten=_XXXX
X!,1,Goto(outbound-freenum2,${EXTEN},1)
exten=_XXXXXX!,1,Goto(outbound-freenum2,${EXTEN},1)
exten=_XXXXXX
X!,1,Goto(outbound-freenum2,${EXTEN},1)
[outbound-freenum2]
exten=_X!,1,Verbose(2,Performing ISN lookup for ${EXTEN})
same=n,Set(SUFFIX=${CUT(EXTEN,*,2-)})
same=n,GotoIf($["${FILTER(0-9,${SUFFIX})}" != “${SUFFIX}”]?fn-CONGESTION,1)
same=n,Set(TIMEOUT(absolute)=10800)
same=n,Set(isnresult=${ENUMLOOKUP(${EXTEN},sip,1,freenum.org)})
same=n,GotoIf($["${isnresult}" != “”]?from)
same=n,Set(DIALSTATUS=CONGESTION)
same=n,Goto(fn-CONGESTION,1)
same=n(from),Set(SIPFROMUSER=${CALLERID(num)})
same=n,GotoIf($["${GLOBAL(FREENUMDOMAIN)}" = “”]?dial)
same=n,Set(SIPFROMDOMAIN=${GLOBAL(FREENUMDOMAIN)})
same=n(dial),Dial(SIP/${isnresult},40)
same=n,Goto(fn-${DIALSTATUS},1)
exten=fn-BUSY,1,Busy()
exten=_f[n]-.,1,NoOp(ISN: ${DIALSTATUS})
same=n,Congestion()
[macro-trunkdial]
exten=s,1,Dial(${ARG1})
exten=s,n,Goto(s-${DIALSTATUS},1)
exten=s-NOANSWER,1,Hangup
exten=s-BUSY,1,Hangup
exten=_s-.,1,NoOp
[stdexten]
exten=_X.,50000(stdexten),NoOp(Start stdexten)
exten=_X.,n,Set(LOCAL(ext)=${EXTEN})
exten=_X.,n,Set(LOCAL(dev)=${ARG1})
exten=_X.,n,Set(LOCAL(cntx)=${ARG2})
exten=_X.,n,Set(LOCAL(mbx)="${ext}"$["${cntx}" ? “@${cntx}” :: “”])
exten=_X.,n,Dial(${dev},20)
exten=_X.,n,Goto(stdexten-${DIALSTATUS},1)
exten=stdexten-NOANSWER,1,Voicemail(${mbx},u)
exten=stdexten-NOANSWER,n,NoOp(Finish stdexten NOANSWER)
exten=stdexten-NOANSWER,n,Return()
exten=stdexten-BUSY,1,Voicemail(${mbx},b)
exten=stdexten-BUSY,n,NoOp(Finish stdexten BUSY)
exten=stdexten-BUSY,n,Return()
exten=_stde[x]te[n]-.,1,Goto(stdexten-NOANSWER,1)
exten=a,1,VoicemailMain(${mbx})
exten=a,n,Return()
[stdPrivacyexten]
exten=_X.,60000(stdPrivacyexten),NoOp(Start stdPrivacyexten)
exten=_X.,n,Set(LOCAL(ext)=${ARG1})
exten=_X.,n,Set(LOCAL(dev)=${ARG2})
exten=_X.,n,Set(LOCAL(dontcntx)=${ARG3})
exten=_X.,n,Set(LOCAL(tortcntx)=${ARG4})
exten=_X.,n,Set(LOCAL(cntx)=${ARG5})
exten=_X.,n,Set(LOCAL(mbx)="${ext}"$["${cntx}" ? “@${cntx}” :: “”])
exten=_X.,n,Dial(${dev},20,p)
exten=_X.,n,Goto(stdexten-${DIALSTATUS},1)
exten=stdexten-NOANSWER,1,Voicemail(${mbx},u)
exten=stdexten-NOANSWER,n,NoOp(Finish stdPrivacyexten NOANSWER)
exten=stdexten-NOANSWER,n,Return()
exten=stdexten-BUSY,1,Voicemail(${mbx},b)
exten=stdexten-BUSY,n,NoOp(Finish stdPrivacyexten BUSY)
exten=stdexten-BUSY,n,Return()
exten=stdexten-DONTCALL,1,Goto(${dontcntx},s,1)
exten=stdexten-TORTURE,1,Goto(${tortcntx},s,1)
exten=_stde[x]te[n]-.,1,Goto(stdexten-NOANSWER,1)
exten=a,1,VoicemailMain(${mbx})
exten=a,n,Return
[macro-page]
exten=s,1,ChanIsAvail(${ARG1},s)
exten=s,n,GoToIf($[${AVAILORIGCHAN} = “”]?fail:autoanswer)
exten=s,n(autoanswer),Set(_ALERT_INFO=“RA”)
exten=s,n,SIPAddHeader(Call-Info: Answer-After=0)
exten=s,n,NoOp()
exten=s,n,Dial(${ARG1})
exten=s,n(fail),Hangup
[demo]
include=stdexten
exten=s,1,Wait(1)
exten=s,n,Answer
exten=s,n,Set(TIMEOUT(digit)=5)
exten=s,n,Set(TIMEOUT(response)=10)
exten=s,n(restart),BackGround(demo-congrats)
exten=s,n(instruct),BackGround(demo-instruct)
exten=s,n,WaitExten
exten=2,1,BackGround(demo-moreinfo)
exten=2,n,Goto(s,instruct)
exten=3,1,Set(LANGUAGE()=fr)
exten=3,n,Goto(s,restart)
exten=1000,1,Goto(default,s,1)
exten=1234,1,Playback(transfer,skip)
exten=1234,n,Gosub(${EXTEN},stdexten(${GLOBAL(CONSOLE)}))
exten=1234,n,Goto(default,s,1)
exten=1235,1,Voicemail(1234,u)
exten=1236,1,Dial(Console/dsp)
exten=1236,n,Voicemail(1234,b)
exten=#,1,Playback(demo-thanks)
exten=#,n,Hangup
exten=t,1,Goto(#,1)
exten=i,1,Playback(invalid)
exten=500,1,Playback(demo-abouttotry)
exten=500,n,Dial(IAX2/guest@pbx.digium.com/s@default)
exten=500,n,Playback(demo-nogo)
exten=500,n,Goto(s,6)
exten=600,1,Playback(demo-echotest)
exten=600,n,Echo
exten=600,n,Playback(demo-echodone)
exten=600,n,Goto(s,6)
exten=76245,1,Macro(page,SIP/Grandstream1)
exten=7XXX,1,Macro(page,SIP/${EXTEN})
exten=7999,1,Set(TIMEOUT(absolute)=60)
exten=7999,2,Page(Local/Grandstream1@page&Local/Xlite1@page&Local/1234@page/n,d)
exten=8500,1,VoicemailMain
exten=8500,n,Goto(s,6)
[page]
exten=X.,1,Macro(page,SIP/${EXTEN})
[default]
exten=
#6XXX,1,Set(MBOX=${EXTEN:1}@default)
exten=
#6XXX,n,VoiceMail(${MBOX})
exten=a,1,VoicemailMain(${MBOX})
exten=*98,1,VoiceMailMain(${CALLERID(num)}@default)
[time]
exten=_X.,30000(time),NoOp(Time: ${EXTEN} ${timezone})
exten=_X.,n,Wait(0.25)
exten=_X.,n,Answer()
exten=_X.,n,Set(FUTURETIME=$[${EPOCH} + 12])
exten=_X.,n,SayUnixTime(${FUTURETIME},Zulu,HNS)
exten=_X.,n,SayPhonetic(z)
exten=_X.,n,SayUnixTime(${FUTURETIME},${timezone},HNS)
exten=_X.,n,Playback(spy-local)
exten=_X.,n,WaitUntil(${FUTURETIME})
exten=_X.,n,Playback(beep)
exten=_X.,n,Return()
[ani]
exten=_X.,40000(ani),NoOp(ANI: ${EXTEN})
exten=_X.,n,Wait(0.25)
exten=_X.,n,Answer()
exten=_X.,n,Playback(vm-from)
exten=_X.,n,SayDigits(${CALLERID(ani)})
exten=_X.,n,Wait(1.25)
exten=_X.,n,SayDigits(${CALLERID(ani)})
exten=_X.,n,Return()
[macro-stdexten]
exten=s,1,Set(_DYNAMIC_FEATURES=${FEATURES})
exten=s,2,Set(ORIG_ARG1=${ARG1})
exten=s,3,GotoIf($["${FOLLOWME
${ARG1}}" = “1”]?6:4)
exten=s,4,Dial(${ARG2},${RINGTIME},${DIALOPTIONS})
exten=s,5,Goto(s-${DIALSTATUS},1)
exten=s,6,Macro(stdexten-followme,${ARG1},${ARG2})
exten=s-NOANSWER,1,Voicemail(${ORIG_ARG1},u)
exten=s-NOANSWER,2,Goto(default,s,1)
exten=s-BUSY,1,Voicemail(${ORIG_ARG1},b)
exten=s-BUSY,2,Goto(default,s,1)
exten=_s-.,1,Goto(s-NOANSWER,1)
exten=a,1,VoicemailMain(${ORIG_ARG1})
[macro-stdexten-followme]
exten=s,1,Answer
exten=s,2,Set(ORIG_ARG1=${ARG1})
exten=s,3,Dial(${ARG2},${RINGTIME},${DIALOPTIONS})
exten=s,4,Set(__FMCIDNUM=${CALLERID(num)})
exten=s,5,Set(__FMCIDNAME=${CALLERID(name)})
exten=s,6,Followme(${ORIG_ARG1},${FOLLOWMEOPTIONS})
exten=s,7,Voicemail(${ORIG_ARG1},u)
exten=s-NOANSWER,1,Voicemail(${ORIG_ARG1},u)
exten=s-BUSY,1,Voicemail(${ORIG_ARG1},b)
exten=s-BUSY,2,Goto(default,s,1)
exten=_s-.,1,Goto(s-NOANSWER,1)
exten=a,1,VoicemailMain(${ORIG_ARG1})
[macro-pagingintercom]
exten=s,1,SIPAddHeader(Alert-Info: ${PAGING_HEADER})
exten=s,2,Page(${ARG1},${ARG2})
exten=s,3,Hangup
[conferences]

[ringgroups]

[queues]

[voicemenus]

[voicemailgroups]

[directory]
exten=*97,1,Directory(default,default,)
[page_an_extension]

[pagegroups]

[asterisk_guitools]
exten=executecommand,1,System(${command})
exten=executecommand,n,Hangup()
exten=record_vmenu,1,Answer
exten=record_vmenu,n,Playback(vm-intro)
exten=record_vmenu,n,Record(${var1},0,500,k)
exten=record_vmenu,n,Playback(vm-saved)
exten=record_vmenu,n,Playback(vm-goodbye)
exten=record_vmenu,n,Hangup
exten=play_file,1,Answer
exten=play_file,n,Playback(${var1})
exten=play_file,n,Hangup
[macro-trunkdial-failover-0.3]
exten=s,1,GotoIf($[${LEN(${FMCIDNUM})} > 6]?1-fmsetcid,1)
exten=s,2,GotoIf($[${LEN(${GLOBAL_OUTBOUNDCIDNAME})} > 1]?1-setgbobname,1)
exten=s,3,Set(CALLERID(num)=${IF($[${LEN(${CID_${CALLERID(num)}})} > 2]?${CID_${CALLERID(num)}}:)})
exten=s,n,GotoIf($[${LEN(${CALLERID(num)})} > 6]?1-dial,1)
exten=s,n,Set(CALLERID(all)=${IF($[${LEN(${CID_${ARG3}})} > 6]?${CID_${ARG3}}:${GLOBAL_OUTBOUNDCID})})
exten=s,n,Goto(1-dial,1)
exten=1-setgbobname,1,Set(CALLERID(name)=${GLOBAL_OUTBOUNDCIDNAME})
exten=1-setgbobname,n,Goto(s,3)
exten=1-fmsetcid,1,Set(CALLERID(num)=${FMCIDNUM})
exten=1-fmsetcid,n,Set(CALLERID(name)=${FMCIDNAME})
exten=1-fmsetcid,n,Goto(1-dial,1)
exten=1-dial,1,Dial(${ARG1})
exten=1-dial,n,Gotoif(${LEN(${ARG2})} > 0 ?1-${DIALSTATUS},1:1-out,1)
exten=1-CHANUNAVAIL,1,Dial(${ARG2})
exten=1-CHANUNAVAIL,n,Hangup()
exten=1-CONGESTION,1,Dial(${ARG2})
exten=1-CONGESTION,n,Hangup()
exten=1-out,1,Hangup()
[queue-member-manager]
exten=handle_member,1,Verbose(2, Looping through queues to log in or out queue members)
exten=handle_member,n,Set(thisActiveMember=${CHANNEL(channeltype)}/${CHANNEL(peername)})
exten=handle_member,n,Set(queue_field=1)
exten=handle_member,n,Set(thisQueueXtn=${CUT(QUEUES,${queue_field})})
exten=handle_member,n,While($[${EXISTS(${thisQueueXtn})}])
exten=handle_member,n,Macro(member-loginlogout)
exten=handle_member,n,Set(queue_field=$[${queue_field} + 1])
exten=handle_member,n,Set(thisQueueXtn=${CUT(QUEUES,${queue_field})})
exten=handle_member,n,EndWhile()
[macro-member-loginlogout]
exten=s,1,Verbose(2, Logging queue member in or out of the request queue)
exten=s,n,Set(thisQueue=${thisQueueXtn})
exten=s,n,Set(queueMembers=${QUEUE_MEMBER_LIST(${thisQueue})})
exten=s,n,MacroIf("${queueMembers}" = “”]?q_login)
exten=s,n,Set(field=1)
exten=s,n,Set(logged_in=0)
exten=s,n,Set(thisQueueMember=${CUT(queueMembers,${field})})
exten=s,n,While($[${EXISTS(${thisQueueMember})}])
exten=s,n,GotoIf($["${thisQueueMember}" != “${thisActiveMember}”]?check_next)
exten=s,n,Set(logged_in=1)
exten=s,n,ExitWhile()
exten=s,n(check_next),Set(field=$[${field} + 1])
exten=s,n,Set(thisQueueMember=${CUT(queueMembers,${field})})
exten=s,n,EndWhile()
exten=s,n,MacroIf($[${logged_in} = 0]?q_login:q_logout)
[macro-q_login]
exten=s,1,Verbose(2, Logging ${thisActiveMember} into the ${thisQueue} queue)
exten=s,n,AddQueueMember(${thisQueue},${thisActiveMember})
exten=s,n,Playback(silence/1)
exten=s,n,ExecIf($["${AQMSTATUS}" = “ADDED”]?Playback(agent-loginok):Playback(an-error-has-occurred))
[macro-q_logout]
exten=s,1,Verbose(2, Logged ${thisActiveMember} out of ${thisQueue} queue)
exten=s,n,RemoveQueueMember(${thisQueue},${thisActiveMember})
exten=s,n,Playback(silence/1)
exten=s,n,ExecIf($["${AQMSTATUS}" = “REMOVED”]?Playback(agent-loggedoff):Playback(an-error-has-occurred))
[DID_trunk_1]
include=DID_trunk_1_default
[DID_trunk_1_default]

[DLPN_internal]
include=default
include=parkedcalls
include=conferences
include=ringgroups
include=voicemenus
include=queues
include=voicemailgroups
include=directory
include=pagegroups
include=page_an_extension

GUIs tend to put sip.conf information in users.conf. Basically, I’m looking to make sure that you have sip user information that matches the phone, which specifies a context that includes extension 6000.

The console log may also help, as it will probably say which context it was trying when it failed to find the extension

I’m not sure how to go about getting a copy of the console log.

Here is the users.conf

[general]
fullname=New User
userbase=6000
hasvoicemail=yes
vmsecret=1234
hassip=yes
hasiax=yes
hasmanager=no
callwaiting=yes
threewaycalling=yes
callwaitingcallerid=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
callgroup=1
pickupgroup=1
vmexten=*98

  • [6000]
    username=6000
    transfer=yes
    mailbox=6000
    call-limit=100
    type=peer
    fullname=User 1
    registersip=no
    host=dynamic
    callgroup=1
    type=peer
    context=DLPN_internal
    cid_number=6000
    hasvoicemail=yes
    vmsecret=5544
    email=Bilbo@baggins.com
    threewaycalling=no
    hasdirectory=no
    callwaiting=no
    hasmanager=no
    hasagent=no
    hassip=yes
    hasiax=yes
    secret=
    nat=yes
    canreinvite=yes
    dtmfmode=rfc2833
    insecure=no
    pickupgroup=1
    disallow=all
    allow=ulaw,alaw,gsm,speex
    macaddress=00270E0B5B3A
    autoprov=yes
    label=6000
    linenumber=1
    LINEKEYS=1
    callcounter=yes
  • [6001]
    username=6001
    transfer=yes
    mailbox=6001
    call-limit=100
    type=peer
    fullname=User 2
    registersip=no
    host=dynamic
    callgroup=1
    type=peer
    context=DLPN_internal
    cid_number=6001
    hasvoicemail=yes
    vmsecret=12345
    email=Frodo@baggins.com
    threewaycalling=no
    hasdirectory=no
    callwaiting=no
    hasmanager=no
    hasagent=no
    hassip=yes
    hasiax=yes
    secret=
    nat=yes
    canreinvite=yes
    dtmfmode=rfc2833
    insecure=no
    pickupgroup=1
    macaddress=00215A70AF6B
    autoprov=yes
    label=6001
    linenumber=1
    LINEKEYS=1
    callcounter=yes
    disallow=all
    allow=speex,alaw,gsm,ulaw
  • [trunk_1]
    host=192.168.16.49
    username=
    secret=
    trunkname=NorthStar_SIP
    context=DID_trunk_1
    group=null
    hasexten=no
    hasiax=no
    hassip=yes
    registeriax=no
    registersip=yes
    trunkstyle=voip
    disallow=all
    allow=all

On a quick scan, I can find devices 6000 and 6001, but no corresponding extensions.

However, for a newbie, I would strongly recommend buying or downloading Asterisk: The Future of Telephone, and learning to set up simple configurations directly. Once you understand how the configuration works, you can then add the GUI to ease day to day maintenance.

Finding the logging output and setting the appropriate level is something that anyone seeking support already needs to have learned.

You can probably do it by typing “asterisk -rvvv” at the shell prompt.

Many Asterisk installations also provide this information on console 9(?) (ctrl-alt-F9).