By Date: <-- -->
By Thread: <-- -->

GnuGk and Asterisk IVR



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} (at) 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


_______________________________________________ --Bandwidth and Colocation provided by Easynews.com --

Asterisk-Users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users