Registrierung am H.323 Gatekeeper einer Tenovis-Anlage

stalle

Neuer User
Mitglied seit
5 Jan 2005
Beiträge
143
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich möchte mein Asterisk via H.323 am Gatekeeper meiner Tenovis-Telefonanlage
mit mehreren Nummern registrieren. Auf der Anlage liegen die Nummern 150-155
am IP-Board an. Das läuft auch prima mit der ersten Nummer, aber die restlichen
Nummern scheint er nicht zu erkennen. Leider sind die vorhandenen Dokumentationen
zu diesem Thema auch recht spärlich.

Hier ein Auszug aus meiner oh323.conf :

[register]
context=No151
alias=151
context=No152
alias=152

Kann mir einer erklären wie der * am GK registriert ? Ich bin davon ausgegangen
das jeder alias explizit registriert wird.

Wähle ich jetzt die 152, passiert nix. Wähle ich aber die 151 so wird dieser
Anruf erkannt.

Hier mal ein Log für die 151 :

*CLI> -- Registered with gatekeeper '[email protected]'.
== Starting OH323/R146 at No151,151,1 failed so falling back to exten 's'
== Starting OH323/R146 at No151,s,1 still failed so falling back to context 'default'
-- Hungup 'OH323/R146'
-- Setting global variable 'OH323_CHANCODEC' to 'alaw'
-- Setting global variable 'OH323_CTOKEN' to 'ip$192.168.100.80:1196/146'
-- Setting global variable 'OH323_SRCALIAS' to '142 [192.168.100.80]'
-- Setting global variable 'OH323_DSTALIAS' to '151'
-- Setting global variable 'OH323_SRCE164' to '142'
-- Setting global variable 'OH323_DSTE164' to '151'
-- Setting global variable 'OH323_REMOTEAPP' to 'TENOVIS H.323 3.32.0 4/33031'
-- Setting global variable 'OH323_RADDR' to '192.168.100.80'
-- Setting global variable 'OH323_LADDR' to '192.168.100.237'
-- H.323 call 'ip$192.168.100.80:1196/146' cleared, reason 1 (Cleared by local user)

Die Fehlermeldung sind klar, da außer H.323 noch gar nix konfiguriert ist.

Bin für jeden Tip dankbar.

Gruss
Axel
 
Hallo cbrandtner,

war klar das Du'ne Antwort parat hast ;) .
Der wesentliche Unterschied zu meiner Config den ich auf den ersten Blick sehe ist :

gatekeeper=DISABLE
AllowGKRouted=yes

Hmm....das macht auf den ersten Blick keinen Sinn, denn woher soll der * wissen,
das er vom Server 192.168.100.80 die Konten bekommt und andererseits auch dahin routen soll ? Muss ich morgen aber dennoch ausprobieren.

Weißt Du ob es richtig ist, das bei alias=666 die 666 die Rufnummer ist ?
Oder muß das über die MSN gemacht werden ? Oder muß ich auf dem IP-Board noch was konfigurieren ? Ich habe leider keine Beschreibung über das IP Board. Wenn ich jedenfalls wie in meinem Beispiel oben, die 151 nehme und die Anrufe, erkennt der * das, deshalb gehe ich davon aus, das das so korrekt ist.

Gruss
Axel
 
Hallo Axel,

also auf dem IP-Board muss nur der Teilnehmer eingerichtet sein, ich gehe mal davon aus das nicht nur die 151 funktioniert, sondern 152 auch....getestet mit S3 oder Netmeeting?
wenn ja, ist in der Anlage alles OK, da ist nix weiter zu machen für H.323, ist einfach da...Standard

snip
"IP basierte Serveranbindung wird von ICS55 IPV auf Basis von H.323 geboten. Der Server muss sich dabei wie ein H.323 basiertes Endgerät verhalten."
snap
Es gibt bei H.323 nur keine dynamische Codec-Aushandlung, der wird fest eingestellt in der Anlagenkonfiguration....also G.711 oder G.729(was aber der * nicht kann)

Zur oh323.conf.....kann ich nichts sagen..mangels Testmöglichkeit...

christian
 
Hi Christian,

also, wie ich schon dachte funktioniert das so nicht. Kann ja auch nicht,
denn * sollte sich ja wie ein Endgerät verhalten und muß daher ja wissen
welchen Server es nutzen soll.
Klar hab ich die 151 und 152 mit S3 getestet. Aber zumindest weiß ich jetzt,
das meine Theorie schon mal richtig ist, nur die praktische Umsetzung nicht. ;)
Vielleicht meldet sich noch ein OH323-Spezialist oder ich krieg's durch fummeln raus.
Danke für Deine Tips.

Gruss
Axel
 
hi christian,

der von Dir genannte Link war eine meiner ersten Testconfigs. ;) Trotzdem danke.
Aber das alles ändert nichts daran, das offensichtlich nur die erste Nummer (alias) registriert wird. Also wenn ich angebe :

[register]
context=from-tenovis
alias=151
alias=152
alias=153
alias=154

wird nur die 151 registriert und reagiert auf Anrufe. Obwohl in der CONFIGURATION Datei in den asterisk-oh323-0.6.6 Sourcen klar steht :

"alias" - Specify H.323 alias(es) for ASTERISK PBX. This parameter
can be used multiple times. If this parameter contains
only numbers, then this alias will be registered to the
gatekeeper as a E.164 number otherwise will be registered
as a H323ID. Incoming calls with a calling party number
matching this alias, are routed into the context specified
in the preceding "context" option.

Auch alles neu kompilieren hat nix geändert. Wüßte nicht, was ich jetzt noch versuchen könnte. Werde mal die asterisk-oh323 Entwickler kontaktieren.

Gruss
Axel
 
Christian, kann es sein das das IP-Board Probleme hat mehrere Nummern "auf einen Schlag" zu registrieren ???
Wenn Du Dir das Listing unten anschaust, so scheint es, als ob OH323 versucht alle aliase mit einem Registrierungsrequest zu registrieren.
Ich weiß nicht ob das evntl. das Problem ist. Ich hatte zwischenzeitlich auch angenommen, das das Board evntl. Probleme hat, mehrere Nummern auf eine IP zu registrieren. Das habe ich mittlerweile aber ausgeschlossen, das geht. Kannst Du Dich mal schlau machen, ob das Mehrfachregistrieren auf einen Request evntl. ein Problem ist ?
Ich habe mal das erweitere Log (255) angeschaltet. Hier der Registrierungsrequest :
Code:
  0:00.109	   GKRegThread:08113398	Trans	Making request: registrationRequest
  0:00.110	   GKRegThread:08113398	Trans	Sending PDU:
  registrationRequest {
    requestSeqNum = 3719
    protocolIdentifier = 0.0.8.2250.0.4
    discoveryComplete = TRUE
    callSignalAddress = 1 entries {
      [0]=ipAddress {
        ip =  4 octets {
          c0 a8 64 ed                                        ..d.
        }
        port = 1720
      }
    }
    rasAddress = 1 entries {
      [0]=ipAddress {
        ip =  4 octets {
          c0 a8 64 ed                                        ..d.
        }
        port = 10001
      }
    }
    terminalType = {
      vendor = {
        vendor = {
          t35CountryCode = 9
          t35Extension = 0
          manufacturerCode = 61
        }
        productId =  61 octets {
          69 6e 41 63 63 65 73 73  20 4e 65 74 77 6f 72 6b   inAccess Network
          73 20 28 77 77 77 2e 69  6e 61 63 63 65 73 73 6e   s ([url]www.inaccessn[/url]
          65 74 77 6f 72 6b 73 2e  63 6f 6d 29 20 61 73 74   etworks.com) ast
          65 72 69 73 6b 2d 6f 68  33 32 33 00 00            erisk-oh323..
        }
        versionId =  26 octets {
          30 2e 36 2e 36 20 28 4f  70 65 6e 48 33 32 33 20   0.6.6 (OpenH323 
          76 31 2e 31 33 2e 35 29  00 00                     v1.13.5)..
        }
      }
      gateway = {
        protocol = 1 entries {
          [0]=voice {
            supportedPrefixes = 0 entries {
            }
          }
        }
      }
      mc = FALSE
      undefinedNode = FALSE
    }
    terminalAlias = 4 entries {
      [0]=dialedDigits "151"
      [1]=dialedDigits "152"
      [2]=dialedDigits "153"
      [3]=dialedDigits "154"
    }
    gatekeeperIdentifier =  14 characters {
      XXXX XXXX XXXX XXXX XXXX XXXX 
      XXXX XXXX XXXX XXXX XXXX XXXX 
    }
    endpointVendor = {
      vendor = {
        t35CountryCode = 9
        t35Extension = 0
        manufacturerCode = 61
      }
      productId =  61 octets {
        69 6e 41 63 63 65 73 73  20 4e 65 74 77 6f 72 6b   inAccess Network
        73 20 28 77 77 77 2e 69  6e 61 63 63 65 73 73 6e   s ([url]www.inaccessn[/url]
        65 74 77 6f 72 6b 73 2e  63 6f 6d 29 20 61 73 74   etworks.com) ast
        65 72 69 73 6b 2d 6f 68  33 32 33 00 00            erisk-oh323..
      }
      versionId =  26 octets {
        30 2e 36 2e 36 20 28 4f  70 65 6e 48 33 32 33 20   0.6.6 (OpenH323 
        76 31 2e 31 33 2e 35 29  00 00                     v1.13.5)..
      }
    }
    timeToLive = 600
    keepAlive = FALSE
    willSupplyUUIEs = TRUE
    maintainConnection = FALSE
    supportsAltGK = <<null>>
    usageReportingCapability = {
      nonStandardUsageTypes = 0 entries {
      }
      startTime = <<null>>
      endTime = <<null>>
      terminationCause = <<null>>
    }
    callCreditCapability = {
      canEnforceDurationLimit = TRUE
    }
  }

[highlight=red:9a0937cdfe]edit by Hupe: Bitte code-Blöcke benutzen![/highlight:9a0937cdfe]
 
Hallo Axel,

mach doch mal den kompletten Trace (mit der Registrierung und der Antwort vom IP-Board) mit nur einer Rufnummer und danach das gleiche nochmal mit mehreren, vielleicht kann man da einen Unterschied erkennen.
Interessant wäre auch ein Trace, wenn Du versucht die 152 anzurufen, ob da überhaupt was aus der Anlage zum Asterisk geht und umgekehrt..vom Asterisk 152 in die Anlage anzurufen.

Ich weiss auch inzwischen das man sich als Endgerät oder als Gateway anmelden kann...wo da aber der Unterschied ist...? noch k.A.

Christian
 
Mit dem kompletten Trace iss'ne gute Idee. Das mach ich dann gleich mal.
Tja, einen Trace vom Anruf auf die 152 kann ich ja nicht machen, denn es kommt ja nix. ;)
Der Unterschied zwischen Endgerät und Gateway ist wohl der, das als gateway angemeldet das ganze noch weiter geroutet werden kann, so'ne Art Cascade. Aber sicher bin ich mir da auch nicht. Noch nicht.

@Hupe Sorry !!!
 
So....schon fertig, bringt aber nix.

Hier die Registrierung mit 4 Nummern :

Code:
  0:00.146	     Transactor:811e1e8	H225RAS	Receiving PDU:
  registrationConfirm {
    requestSeqNum = 22150
    protocolIdentifier = 0.0.8.2250.0.4
    callSignalAddress = 1 entries {
      [0]=ipAddress {
        ip =  4 octets {
          c0 a8 64 50                                        ..dP
        }
        port = 1720
      }
    }
    terminalAlias = 4 entries {
      [0]=dialedDigits "151"
      [1]=dialedDigits "152"
      [2]=dialedDigits "153"
      [3]=dialedDigits "154"
    }
    gatekeeperIdentifier =  14 characters {
      0031 0033 0031 0032 0032 0031 0030 0030   13122100
      0035 0033 0034 0031 0033 0030             534130
    }
    endpointIdentifier =  41 characters {
      0031 0039 0032 002e 0031 0036 0038 002e   192.168.
      0031 0030 0030 002e 0032 0033 0037 003a   100.237:
      0031 0030 0030 0030 0031 0040 0031 0039   10001@19
      0032 002e 0031 0036 0038 002e 0031 0030   2.168.10
      0030 002e 0038 0030 003a 0031 0037 0031   0.80:171
      0039                                      9
    }
    alternateGatekeeper = 1 entries {
      [0]={
        rasAddress = ipAddress {
          ip =  4 octets {
            00 00 00 00                                        ....
          }
          port = 1719
        }
        needToRegister = TRUE
        priority = 0
      }
    }
    timeToLive = 100
    willRespondToIRR = FALSE
    maintainConnection = FALSE
  }
Raw PDU:
 size=a4 pos=a4.0 {
000 12 c0 56 85 06 00 08 91 4a 00 04 01 00 c0 a8 64     V     J      d
    50 06 b8 04 01 00 48 40 10 48 50 10 48 60 10 48   P     H@ HP H` H
    71 a0 00 31 00 33 00 31 00 32 00 32 00 31 00 30   q  1 3 1 2 2 1 0
    00 30 00 35 00 33 00 34 00 31 00 33 00 30 50 00    0 5 3 4 1 3 0P 
    31 00 39 00 32 00 2e 00 31 00 36 00 38 00 2e 00   1 9 2 . 1 6 8 . 
    31 00 30 00 30 00 2e 00 32 00 33 00 37 00 3a 00   1 0 0 . 2 3 7 : 
    31 00 30 00 30 00 30 00 31 00 40 00 31 00 39 00   1 0 0 0 1 @ 1 9 
    32 00 2e 00 31 00 36 00 38 00 2e 00 31 00 30 00   2 . 1 6 8 . 1 0 
    30 00 2e 00 38 00 30 00 3a 00 31 00 37 00 31 00   0 . 8 0 : 1 7 1 
    39 0f 8a 09 01 00 00 00 00 00 06 b7 80 02 00 63   9              c
    01 00 01 00                                           
  }

und hier nur mit der 151 :

Code:
  0:00.138	     Transactor:811d578	H225RAS	Receiving PDU:
  registrationConfirm {
    requestSeqNum = 1917
    protocolIdentifier = 0.0.8.2250.0.4
    callSignalAddress = 1 entries {
      [0]=ipAddress {
        ip =  4 octets {
          c0 a8 64 50                                        ..dP
        }
        port = 1720
      }
    }
    terminalAlias = 1 entries {
      [0]=dialedDigits "151"
    }
    gatekeeperIdentifier =  14 characters {
      0031 0033 0031 0032 0032 0031 0030 0030   13122100
      0035 0033 0034 0031 0033 0030             534130
    }
    endpointIdentifier =  41 characters {
      0031 0039 0032 002e 0031 0036 0038 002e   192.168.
      0031 0030 0030 002e 0032 0033 0037 003a   100.237:
      0031 0030 0030 0030 0031 0040 0031 0039   10001@19
      0032 002e 0031 0036 0038 002e 0031 0030   2.168.10
      0030 002e 0038 0030 003a 0031 0037 0031   0.80:171
      0039                                      9
    }
    alternateGatekeeper = 1 entries {
      [0]={
        rasAddress = ipAddress {
          ip =  4 octets {
            00 00 00 00                                        ....
          }
          port = 1719
        }
        needToRegister = TRUE
        priority = 0
      }
    }
    timeToLive = 100
    willRespondToIRR = FALSE
    maintainConnection = FALSE
  }
Raw PDU:
 size=9b pos=9b.0 {
000 12 c0 07 7c 06 00 08 91 4a 00 04 01 00 c0 a8 64      |    J      d
    50 06 b8 01 01 00 48 41 a0 00 31 00 33 00 31 00   P     HA  1 3 1 
    32 00 32 00 31 00 30 00 30 00 35 00 33 00 34 00   2 2 1 0 0 5 3 4 
    31 00 33 00 30 50 00 31 00 39 00 32 00 2e 00 31   1 3 0P 1 9 2 . 1
    00 36 00 38 00 2e 00 31 00 30 00 30 00 2e 00 32    6 8 . 1 0 0 . 2
    00 33 00 37 00 3a 00 31 00 30 00 30 00 30 00 31    3 7 : 1 0 0 0 1
    00 40 00 31 00 39 00 32 00 2e 00 31 00 36 00 38    @ 1 9 2 . 1 6 8
    00 2e 00 31 00 30 00 30 00 2e 00 38 00 30 00 3a    . 1 0 0 . 8 0 :
    00 31 00 37 00 31 00 39 0f 8a 09 01 00 00 00 00    1 7 1 9        
    00 06 b7 80 02 00 63 01 00 01 00                        c    
  }

Ich sehe da nix Auffälliges. Kann ich eigentlich auf der Anlage ein Log sehen, wo der * versucht sich anzumelden ?
 
Hallo Axel,

jo..ich erkenne da erstmal auch nix anderes....aber irgendwie fehlt noch was, im allerersten Trace sieht man noch den Registration Request...
ich kann irgendwie kein Dialog erkennen zwischen * und IP-Board.
Frage: womit hast Du den Trace gemacht?..in meiner CLI mit OH323 debug sieht der ganz anders aus.
Im IP-Board kann man sicher was tracen....aber das ist wohl eher was für einen Systemspezialisten, wäre die allerletzte Möglichkeit, weil dann kostet es Geld.

Gruss

Christian
 
Geloggt ist das Ganze mit :

wrapLibTraceLevel=255
libTraceLevel=255
;libTraceFile=stdout
libTraceFile=/var/log/asterisk/oh323.log

in der oh323.conf. Das komplette Log ist natürlich viel länger, aber ich
wollte das nicht hier rein packen, damit die Admins mich nicht hauen. ;)
Ich kann Dir aber mal eine komplette Session schicken.

Gruss
Axel
 
Hallo zusammen,

also will ich das Problem mal erklären, das Ip-Board des Communicationserver I55 unterstützt keine Mehrfachregistrierungen in einem Request.
Da heisst jede Rufnummer muss sich einzel registrieren, dann geht es.
Jetzt muss nur noch jemand nen Tip haben wie man mit Asterisk bzw. OH323 eine Einzelregistrierung je Rufnummer hinkriegt.

Gruss

Christian

p.s. und wech isser...für 3 Wochen
 
..... oder mit ggf. als Proxy dazwischen geschaltetem GNU Gatekeeper.

Gruss
Axel

@Christian
Schönen Urlaub !!!!!!!!!!!!!!! Hasse Dir verdient !!!!
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.