[Asterisk-Users] GnuGk and Asterisk IVR
Angel Ivanov
a.ivanov at hostmates.com
Thu Mar 23 20:44:53 MST 2006
Hi,
I am working on a H.323 project which involves GnuGk and Asterisk My
current goal is to provide IVR functionality for the H.323 users which
register through GnuGk(eg. call credit information)
I have successfully built a H.323 platform using GnuGk - it uses SQL
accounting and authorisation. Now I am trying to integrate it with
Asterisk in order to provide IVR functionality as I already have working
Asterisk platform with all the needed components realised by AGI scripts.
To come to the point...I have added ASterisk as a permanent endpoint
gateway in GnuGk. What am I trying to accomplish is routing a prefix
"02" to Asterisk and receiving IVR messages from it. For the preliminary
tests I am just using the PLayback application but unfortunately I can't
get it working. Here are the components of the test setup. - GnuGk
v.2.2.3, PwLib v 1.9.0, OpenH323 v. 1.17.1, Asterisk
SVN-branch-1.2-r14140, OH323 channel driver for Asterisk:
asterisk-oh323-0.7.3.
I manage to route the calls to Asterisk but it can't fetch the H323ID of
the calling party and therefore the channel appears as unknown. Here are
the configuration files of my servers and the output of Asterisk CLI.
Asterisk CLI output:
*CLI> -- Registered with gatekeeper 'xxx at xxx.xxxx.com'.
-- Inbound H.323 call 'ip$81.29.xxx.xxx:33405/4096-dc39af32' detected.
-- Inbound H.323 call 'ip$81.29.xxx.xxx:33405/4096-dc39af32', channel
'OH323/unknown at 81.29.xxx.xxx-dc39af32'.
-- Executing Answer("OH323/unknown at 81.29.xxx.xxx-dc39af32", "") in new stack
-- Executing Playback("OH323/unknown at 81.29.xxx.xxx-dc39af32",
"vm-youhave|skip") in new stack
-- Playing 'vm-youhave' (language 'en')
== Auto fallthrough, channel 'OH323/unknown at 81.29.xxx.xxx-dc39af32'
status is 'UNKNOWN'
-- Hungup 'OH323/unknown at 81.29.xxx.xxx-dc39af32'
== Setting global variable 'OH323_CALLID' to
'192d019c-13e7-a244-b096-e852a4d5e898'
== Setting global variable 'OH323_CONFID' to
'98791985-5bf7-3c44-868e-8532889290fd'
== Setting global variable 'OH323_CHANCODEC' to 'alaw'
== Setting global variable 'OH323_CTOKEN' to 'ip$81.29.xxx.xxx:33405/4096'
== Setting global variable 'OH323_SRCALIAS' to 'unknown (123, 123)
[81.29.xxx.xxx]'
== Setting global variable 'OH323_DSTALIAS' to '02 02'
== Setting global variable 'OH323_SRCE164' to '123'
== Setting global variable 'OH323_DSTE164' to '02'
== Setting global variable 'OH323_REMOTEAPP' to 'SJ Labs╝ SJphone
1.60.289a 0/0'
== Setting global variable 'OH323_RADDR' to '81.29.xxx.xxx'
== Setting global variable 'OH323_LADDR' to '81.29.xxx.xxx'
Mar 23 17:12:13 WARNING[5112]: chan_oh323.c:3877
exception_h323_connection: Call 'ip$81.29.xxx.xxx:33405/4096-dc39af32'
has no owner. Autodestroying it.
Mar 23 17:12:16 WARNING[5070]: chan_oh323.c:3554
cleanup_h323_connection: Call 'ip$81.29.xxx.xxx:33405/4096-dc39af32' not
found (clear).
GnuGk conf:
[Gatekeeper::Main]
FourtyTwo=42
Name=ExB_Gk
;EndpointSuffix=_gnugk
Home=81.29.xxx.xxx;127.0.0.1
StatusTraceLevel=2
UseBroadcastListener=0
TimestampFormat=ISO8601
EndpointSignalPort=1720
EncryptAllPasswords=0
UseMulticastListener=0
StatusPort=7000
SignalCallId=1
[GkStatus::Auth]
rule=password | explicit
81.29.xxx.xxx=allow
Shutdown=allow
gkadmin=eZqojUYXNUc=
[RasSrv::PermanentEndpoints]
195.34.xxx.xxx:1720=gw1;00
81.29.xxx.xxx:1730=astgw;02
[RasSrv::GWPrefixes]
gw1=00
astgw=02
[RasSrv::RRQFeatures]
AcceptEndpointIdentifier=1
AcceptGatewayPrefixes=1
OverwriteEPOnSameAddress=1
IRQPollCount=0
[RasSrv::ARQFeatures]
CallUnregisteredEndpoints=0
ArjReasonRouteCallToGatekeeper=0
[RoutedMode]
GKRouted=1
H245Routed=1
CallSignalPort=1720
AcceptNeighborCalls=1
AcceptUnregisteredCalls=1
RemoveH245AddressOnTunneling=0
RemoveCallOnDRQ=1
DropCallsByReleaseComplete=1
SendReleaseCompleteOnDRQ=1
SupportNATedEndpoints=1
TranslateFacility=1
[Proxy]
Enable=1
ProxyForNAT=1
RTPPortRange=1024-65535
[RoutingPolicy]
00=explicit,internal
02=internal,explicit
Default=explicit,internal,numberanalysis
[CallTable]
GenerateNBCDR=0
GenerateUCCDR=1
[Gatekeeper::Auth]
FileIPAuth=optional;RRQ
SQLPasswordAuth=required;RRQ
SQLAuth=required;ARQ,Setup
[Gatekeeper::Acct]
SQLAcct=required;start,update,stop
oh323.conf:
[general]
listenAddress=81.29.xxx.xxx
listenPort=1730
tcpStart=10000
tcpEnd=20000
udpStart=10000
udpEnd=20000
fastStart=no
h245Tunnelling=no
h245inSetup=no
jitterMin=20
jitterMax=100
ipTos=none
outboundMax=100
inboundMax=100
simultaneousMax=100
;crlCallNumber=20
;crlCallTime=20000
;crlThreshold=30
;bandwidthLimit=1024
wrapLibTraceLevel=0
libTraceLevel=0
libTraceFile=stdout
gatekeeper=ExB_Gk at 81.29.xxx.xxx
gatekeeperTTL=600
userInputMode=Q931
amaFlags=default
accountCode=H323
language=en
context=gnugk
[register]
context=gnugk
alias=astgw
gwprefix=02
;alias=ExB_Gk
[codecs]
codec=G711A
frames=20
codec=G711U
frames=20
extensions.conf
[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=no
[globals]
CONSOLE=Console/dsp ; Console interface for demo
IAXINFO=guest ; IAXtel username/password
;IAXINFO=myuser:mypass
TRUNK=Zap/g2 ; Trunk interface
TRUNKMSD=1 ; MSD digits to strip (usually 1 or 0)
;TRUNK=IAX2/user:pass at provider
[gnugk]
exten => 02,1,Answer
;exten => 02,n,Dial(OH323/${CALLERIDNUM}@81.29.xxx.xxx:1720)
exten => 02,n,Playback(vm-youhave,skip)
exten => 02,n,Hangup
As you can see GnuGk listens on port 1720 and Asterisk on 1730 as they
are on the same interface. I have tried Using the Dial application but I
think it is not appropriate as I am not trying to open a new outgoing
channel but just return a Playback message on the incoming one.
I was wondering whether what I am trying to achieve is possible and if
yes where are the mistakes in my configuration.
Any help or suggestions would be truly appreciated
Thanks in advance,
Angel Ivanov
More information about the asterisk-users
mailing list