Asterisk 1.6 and Tandberg Gatekeeper

I posted this on the mailing list, but so far have received no response, so I thought I’d post it here. I hope that is acceptable.

Has anyone had any luck getting Asterisk 1.6.2.13 to register to a Tandberg Gatekeeper? The logs on the Asterisk end seem to show that the registration request is sent, and the Tandberg Gatekeeper responds. However, the response doesn’t seem to be what Asterisk was expecting. Here is my ooh323.conf, followed by the relevant portion of the h323_log:

[general] port = 1720 bindaddr = 10.4.16.45 h323id = AsteriskVM e164 = 1200 callerid = Asterisk faststart = yes h245tunneling = yes gateway = no disallow=all allow=ulaw dtmfmode=rfc2833 gatekeeper = 10.4.48.15 AllowGKRouted = yes AcceptAnonymous = yes progress_setup = 3 progress_alert = 8 tunneling=none

11:27:28:163 Trace File: /var/log/asterisk/h323_log 11:27:28:163 FastStart - enabled 11:27:28:163 H245 Tunneling - enabled 11:27:28:163 MediaWaitForConnect - disabled 11:27:28:163 AutoAnswer - disabled 11:27:28:163 Terminal Type - 50 11:27:28:163 T35 CountryCode - 1 11:27:28:164 T35 Extension - 0 11:27:28:164 Manufacturer Code - 71 11:27:28:164 ProductID - objsys 11:27:28:164 VersionID - v0.8.3 11:27:28:164 Local signalling IP address - 10.4.16.45 11:27:28:164 H225 ListenPort - 1720 11:27:28:164 CallerID - Asterisk 11:27:28:164 Call Establishment Timeout - 60 seconds 11:27:28:164 MasterSlaveDetermination Timeout - 30 seconds 11:27:28:164 TerminalCapabilityExchange Timeout - 30 seconds 11:27:28:164 LogicalChannel Timeout - 30 seconds 11:27:28:164 Session Timeout - 15 seconds 11:27:28:164 Gatekeeper Client Configuration: 11:27:28:164 Gatekeeper mode - UseSpecificGatekeeper 11:27:28:164 Gatekeeper To Use - 10.4.48.15:1719 11:27:28:164 H323 RAS channel creation - successful 11:27:28:164 Ras message encoding - successful 11:27:28:164 Sending RAS Message = { 11:27:28:164 gatekeeperRequest = { 11:27:28:164 requestSeqNum = { 11:27:28:165 1 11:27:28:165 } 11:27:28:165 protocolIdentifier = { 11:27:28:165 { 11:27:28:165 0 0 8 2250 0 4 } 11:27:28:165 } 11:27:28:165 rasAddress = { 11:27:28:165 ipAddress = { 11:27:28:166 ip = { 11:27:28:166 '0a04102d'H 11:27:28:166 } 11:27:28:166 port = { 11:27:28:167 13030 11:27:28:167 } 11:27:28:167 } 11:27:28:167 } 11:27:28:167 endpointType = { 11:27:28:167 vendor = { 11:27:28:168 vendor = { 11:27:28:168 t35CountryCode = { 11:27:28:168 1 11:27:28:169 } 11:27:28:169 t35Extension = { 11:27:28:169 0 11:27:28:169 } 11:27:28:170 manufacturerCode = { 11:27:28:170 71 11:27:28:170 } 11:27:28:170 } 11:27:28:171 productId = { 11:27:28:171 '6f626a737973'H 11:27:28:171 } 11:27:28:171 versionId = { 11:27:28:172 '76302e382e33'H 11:27:28:172 } 11:27:28:172 } 11:27:28:173 terminal = { 11:27:28:173 } 11:27:28:173 mc = { 11:27:28:173 FALSE 11:27:28:173 } 11:27:28:173 undefinedNode = { 11:27:28:174 FALSE 11:27:28:174 } 11:27:28:174 } 11:27:28:174 endpointAlias = { 11:27:28:174 elem[0] = { 11:27:28:175 h323_ID = { 11:27:28:175 AsteriskVM 11:27:28:175 } 11:27:28:176 } 11:27:28:176 elem[1] = { 11:27:28:176 dialedDigits = { 11:27:28:176 "1200" 11:27:28:176 } 11:27:28:177 } 11:27:28:177 } 11:27:28:177 } 11:27:28:177 } 11:27:28:177 Sent GRQ message 11:27:28:181 GkClient Received RAS Message 11:27:28:181 Received RAS Message = { 11:27:28:181 gatekeeperConfirm = { 11:27:28:181 requestSeqNum = { 11:27:28:181 1 11:27:28:181 } 11:27:28:182 protocolIdentifier = { 11:27:28:182 { 11:27:28:182 0 0 8 2250 0 5 } 11:27:28:182 } 11:27:28:182 rasAddress = { 11:27:28:182 ipAddress = { 11:27:28:182 ip = { 11:27:28:183 '0a04300f'H 11:27:28:183 } 11:27:28:183 port = { 11:27:28:183 1719 11:27:28:184 } 11:27:28:184 } 11:27:28:184 } 11:27:28:184 } 11:27:28:184 } 11:27:28:184 Gatekeeper Confirmed (GCF) message received. 11:27:28:184 ERROR:No Gatekeeper ID present in received GKConfirmed message 11:27:28:184 Ignoring message and will retransmit GRQ after timeout 11:27:28:184 Error: Failed to handle received RAS message 11:28:28:346 Gatekeeper client GRQ timer expired. 11:28:28:346 Error:Gatekeeper could not be found 11:28:28:346 Error: Gatekeeper error. Either Gk not responding or Gk sending invalid messages 11:28:28:346 Error: Gatekeeper error detected. Closing GkClient as Gk mode is UseSpecifcGatekeeper 11:28:28:346 Destroying Gatekeeper Client 11:28:28:346 Closed RAS channel 11:28:28:346 Doing ooStopMonitorCalls 11:28:28:346 Stopping listener for incoming calls 11:28:28:346 Done ooStopMonitorCalls 11:28:28:346 Ending Monitor thread

gateway = no

Try changing that to a YES.

Thanks very much for the reply, but I still get the same result. I still get “ERROR:No Gatekeeper ID present in received GKConfirmed message” near the end of the h323_log.

disclaimer: I never configured Asterisk to register to a GK but just going with I know generally working Cisco Gatekeeper

Is the Tandberg configured correctly assigning Asterisk to a zone as well as allowing tokenless authentication since I don’t see how you can configure Asterisk to send authentication information. Have you talked to the Tandberg administrator and have them run debugs on their end. If you’re getting a GCF, Tandberg is happy but reasons unbeknownst Asterisk does not like it. May need to ask Digium or a developer for further reason.

There is only one zone, authentication is off, and there are no registration restrictions. We have a Cisco Call Manager that is successfully registered to it as a gateway. Here is the output from the gatekeeper when it’s trying to register:

2010-11-17 14:45:51 [10.4.16.45:13030] Received hexdump proto=UDP, length=66:

0x00 0x20 0x00 0x00 0x06 0x00 0x08 0x91 0x4a 0x00 0x04 0x00 0x0a 0x04 0x10 0x2d   . ......J......-

0x32 0xe6 0x28 0xc0 0x01 0x00 0x00 0x47 0x05 0x6f 0x62 0x6a 0x73 0x79 0x73 0x05   2.(....G.objsys.

0x76 0x30 0x2e 0x38 0x2e 0x33 0x00 0x02 0x40 0x09 0x00 0x41 0x00 0x73 0x00 0x74   v0.8.3..@..A.s.t

0x00 0x65 0x00 0x72 0x00 0x69 0x00 0x73 0x00 0x6b 0x00 0x56 0x00 0x4d 0x01 0x80   .e.r.i.s.k.V.M..

0x45 0x33                                                                         E3

2010-11-17 14:45:51 [10.4.16.45:13030] Received RAS GRQ  SeqNum=1  RAS address=10.4.16.45:13030 

2010-11-17 14:45:51 [10.4.16.45:13030] Received RAS PDU:

2010-11-17 14:45:51 [10.4.16.45:13030] value RasMessage ::= gatekeeperRequest : 
{
  requestSeqNum 1,
  protocolIdentifier { 0 0 8 2250 0 4 },
  rasAddress ipAddress : 
  {
    ip '0A04102D'H,
    port 13030
  },
  endpointType 
  {
    vendor 
    {
      vendor 
      {
        t35CountryCode 1,
        t35Extension 0,
        manufacturerCode 71
      },
      productId '6F626A737973'H,
      versionId '76302E382E33'H
    },
    gateway 
    {
    },
    mc FALSE,
    undefinedNode FALSE
  },
  endpointAlias 
  {
    h323-ID : "AsteriskVM",
    dialedDigits : "1200"
  }
}


2010-11-17 14:45:51 [10.4.16.45:13030] Sending RAS GCF  SeqNum=1  RAS address=10.4.48.15:1719 

2010-11-17 14:45:51 [10.4.16.45:13030] Sending RAS PDU:

2010-11-17 14:45:51 [10.4.16.45:13030] value RasMessage ::= gatekeeperConfirm : 
{
  requestSeqNum 1,
  protocolIdentifier { 0 0 8 2250 0 5 },
  rasAddress ipAddress : 
  {
    ip '0A04300F'H,
    port 1719
  }
}


2010-11-17 14:45:51 [10.4.16.45:13030] Sending hexdump proto=UDP, length=18:

0x04 0x00 0x00 0x00 0x06 0x00 0x08 0x91 0x4a 0x00 0x05 0x00 0x0a 0x04 0x30 0x0f   ........J.....0.

0x06 0xb7                                                                         ..

Seems to be more or less what’s in the h323_log. Doesn’t appear to be much help.

Is this something for which I should submit a bug report?