Giter VIP home page Giter VIP logo

willamowius / gnugk Goto Github PK

View Code? Open in Web Editor NEW
65.0 7.0 21.0 19.11 MB

GNU Gatekeeper - H.323 server for VoIP and videoconferencing

Home Page: https://www.gnugk.org

License: GNU General Public License v2.0

C++ 90.74% Makefile 0.32% C 1.34% PHP 3.07% HTML 0.48% Shell 1.04% Java 0.17% PLpgSQL 2.12% Perl 0.69% Hack 0.01%
voip video-conferencing nat-traversal h323 c-plus-plus communication h323plus videoconferencing

gnugk's Introduction

About me

I provide consulting, development and support related to H.323 and WebRTC VoIP and video conferencing, the GNU Gatekeeper and H323Plus.

💬 Ask me about your next H.323, WebRTC or GStreamer project.

Linkedin Badge

gnugk's People

Contributors

jobo-zt avatar lastique avatar pitooth avatar shorne89 avatar willamowius avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

gnugk's Issues

how to listen 1719

i use avaya 1608, and set the gnugk as gateway.when is start, the telephon send and udp pkg port 1719(tcpdump and see) to gnuk,but gnugk do not listen 1719

avay phone can't use phone button

Description

I have implemented the registration of the avaya phone, but currently the phone cannot use the number key, and the function key on the left is responding.

I have do it avaya-support. If there's anything missing from me, please contact me.

Config

gnugk

; this is a basic startup configuration for GnuGk with Avaya support
[Gatekeeper::Main]
Name=DEFINITY-GK
TimeToLive=600
CompareAliasType=0
CompareAliasCase=0
EndpointIDSuffix=
Home=192.168.1.101

; restrict access to the status port by an IP address
[GkStatus::Auth]
rule=explicit
; allow local access
127.0.0.1=allow
default=forbid
Shutdown=allow

[RoutedMode]
GKRouted=1
H245Routed=1
CallSignalPort=1720
AcceptUnregisteredCalls=1
DropCallsByReleaseComplete=1
SupportNATedEndpoints=1
EnableH46018=1
PregrantARQ=1
GenerateCallProceeding=1
H245TunnelingTranslation=1
Q931PortRange=20000-29999

[Proxy]
Enable=1
ProxyAlways=0
; GWID must unique identify Asterisk OOH323 registration (ACE is a default)
; see Asterisk "ooh323.conf" for example
AsteriskGWID=ACE
; GWDN must unique identify automatically dialed digits into context with
; DISA application, for providing emulation of Avaya switch functionality
; see Asterisk "extensions.ael" for example
AsteriskGWDN=1999

[RoutingPolicy]
default=explicit,internal,srv,dns

[LogFile]
Rotate=Daily
RotateTime=23:59

[Gatekeeper::Auth]
SimplePasswordAuth=alternative;RRQ
FileIPAuth=required;RRQ
default=allow

[SimplePasswordAuth]
KeyFilled=123
PasswordTimeout=0
; this entry will be automatically added by addpwd application from GnuGk
; it enciphers password for subsciber with extension 1000 (auth UserID)
1000=UbvtLZfPtQw=

[FileIPAuth]
; permit anything from local host
192.168.1.101/32=allow

[RasSrv::GWPrefixes]
; route all traffic for prefix 19 to our Asterisk GWID (ACE)
ACE=19:=1

[RasSrv::RRQFeatures]
OverwriteEPOnSameAddress=allow

[H235]
UseEndpointIdentifier=0
RequireGeneralID=0
FullQ931Checking=0
CheckSendersID=0
VerifyRandomNumber=0
TimestampGracePeriod=7210

ooh323.conf

[general]
;Define the asterisk server h323 endpoint

; Using port 1820 because 1720 already bind in GnuGk
port=1820

; Living on the same address with GnuGk
bindaddr=192.168.1.101

gateway=yes

h245tunneling=no

mediawaitforconnect=yes

; Our GWID and prefix for DISA application
h323id=ACE
e164=1999

callerid=Asterisk

aniasdni=yes

gatekeeper = 192.168.1.101

;logfile=/var/log/asterisk/h323_log

context=default

rtptimeout=12           ; Terminate call if 60 seconds of no RTP activity
                        ; when we're not on hold

;Default - none (lowdelay, thoughput, reliability, mincost, none)
;tos=lowdelay

;amaflags = default
;accountcode=h3230101

disallow=all     ;Note order of disallow/allow is important.
allow=ulaw

dtmfmode=q931keypad

faxdetect = no

directmedia=no

directrtpsetup=no

; set this to your variant
tracelevel=6

Log


2023/09/21 17:42:05.524 5       ProxyChannel.cxx(1641)  Q931s   Reading from 192.168.1.33:6362
2023/09/21 17:42:05.524 3       ProxyChannel.cxx(2295)  Q931s   Received: Information CRV=1 from 192.168.1.33:6362
2023/09/21 17:42:05.524 4       ProxyChannel.cxx(2204)  Q931    Received: {
  q931pdu = {
    protocolDiscriminator = 8
    callReference = 1
    from = originator
    messageType = Information
    IE: User-User = {
      28 10 01 00 10 a0 01 00  18 01 00 0a 60 86 48 01   (...........`.H.
      86 f8 72 04 02 0a 0a 0a  38 47 00 c0 0b 36 60 08   ..r.....8G...6`.
      40 00                                              @.
    }
  }
  h225pdu = {
    h323_uu_pdu = {
      h323_message_body = empty <<null>>
      h245Tunneling = false
      nonStandardControl = 1 entries {
        [0]={
          nonStandardIdentifier = object 2.16.840.1.113778.4.2.10
          data =  10 octets {
            0a 38 47 00 c0 0b 36 60  08 40                     .8G...6`.@
          }
        }
      }
    }
  }
}
2023/09/21 17:42:05.524 3             gkauth.cxx(1021)  GKAUTH  default Q931 check ok
2023/09/21 17:42:05.524 3       ProxyChannel.cxx(7603)  Q931s   Avaya: INFO+CCMS
2023/09/21 17:42:05.524 3       ProxyChannel.cxx(8391)  Q931s   Avaya: CCMS EP TERM ID
192.168.1.33:6362|1000:dialedDigits|terminal|3117827206|Onhook
Thu, 21 Sep 2023 17:42:04 +08:00 C(1/1/1)  <3> bw:0/-1 vendor:IP_Phone 1.3120 specific:Onhook CCMS:
Call No. 0 | CallID 00 00 00 00 00 00 10 00 00 00 00 00 c0 a8 01 21 | 0 | 0
Dial invalid address
ACF|192.168.1.33:6362|3117827206|1|invalid address||false|00-00-00-00-00-00-10-00-00-00-00-00-c0-a8-01-21|Direct;
ACF|0.0.0.0:0| |32769|invalid address||true|00-00-00-00-00-00-10-00-00-00-00-00-c0-a8-01-21|Direct;

Env

  • gnugk-5_9
  • asterisk-16.5.0
  • h323plus-1_27_2
  • ptlib-2_10_9_4
  • avaya1608i 1.3.12

Last

I have poor understand of h323. Anyone can give me some advice?

GenerateEndpointId always returns same value (on Windows)

I built gnugk on Windows without SSL support.
Source code of RegistrationTable::GenerateEndpointId for me looks like this:

void RegistrationTable::GenerateEndpointId(H225_EndpointIdentifier & NewEndpointId, PString prefix)
{
    do {
        unsigned randomNum;
        randomNum = rand();
        NewEndpointId = prefix + PString(PString::Unsigned, randomNum) + endpointIdSuffix;
        // check if new ID doesn't already exists (unlikely, but...)
    } while (FindByEndpointId(NewEndpointId));
}

Because call to srand (see Toolkit.cxx) is thread-local, every call to rand returns 41.
As a result all generated endpoint ids are the same (41_endp)

Does gnugk support redis?

Hi,Im a new bee to gnuk,and I want to use redis within gnugk ,but I cant find any redis module in source code.
does gnuk support redis? If not,how can i do to deal with it?

PS:I`m learning english..

thanks!!!

Is it a bug in building GCF

When endpoint supports H235_AuthenticationMechanism::e_keyExch, gnugk should add a Token;
But when checking endpoint support H235_AuthenticationMechanism::e_keyExch or not, the code always search in request.m_authenticationCapability[0] ; As for the code, it uses 'For' grammar, I guess it should be coded by searching in request.m_authenticationCapability[i], not alway in [0];

Please Check for it.

the origin codes shows:
// H.235.TSSM
if (request.HasOptionalField(H225_GatekeeperRequest::e_authenticationCapability) &&
request.HasOptionalField(H225_GatekeeperRequest::e_algorithmOIDs)) {
for (PINDEX i = 0; i < request.m_authenticationCapability.GetSize(); i++) {
if (request.m_authenticationCapability[0].GetTag() == H235_AuthenticationMechanism::e_keyExch) {
const PASN_ObjectId & oid = request.m_authenticationCapability[0];
if (oid == OID_TSSM) {
// add TSSM token
gcf.IncludeOptionalField(H225_GatekeeperConfirm::e_tokens);
// don't overwrite pwdSymEnc token
gcf.m_tokens.SetSize(gcf.m_tokens.GetSize() + 1);
gcf.m_tokens[gcf.m_tokens.GetSize() - 1].m_tokenOID = OID_TSSM;
gcf.m_tokens[gcf.m_tokens.GetSize() - 1].IncludeOptionalField(H235_ClearToken::e_timeStamp);
gcf.m_tokens[gcf.m_tokens.GetSize() - 1].m_timeStamp = (int)time(NULL);
}
}
}
}

ras comfirm

hi, i use gnugk as h323 gateway and try to register my avaya ip phone 。
after configue the gnugk gateway,ip phone restart again and again. so i tcpdump and find the ras gatekeeper req contain many items as ras-req.jpg and ras gatekeeper comfirm just contain ip addr as ras-comfirm.jpg
i think that is the reason i can not register the phone.
i need to modify some gnugk config?
ras-req
ras-comfirm

when use parent mode caused RRJ

I want to use parent gnugk mode, and i set the gatekeeper.ini as follows:
[Endpoint]
Gatekeeper=10.20.51.43
but it caused an error as invalidsignaladdress.
Looking forward to your reply.
微信图片_20240424141011

the proxy call can not be established when the gnugk behind NAT

  1. gnugk located behind the NAT with public externalIP
  2. proxy is enabled
  3. the two eps registered with gnugk
  4. One ep call another, the call can be received, but the h45 can not be established because the h245 address returned from gnugk is private, not the externalIP as expected

Consult gnugk avaya support for suggestions on functional interfaces

Hello, I am using avaya 1608 to register on gnugk. Now I can implement simple call functions. I have improved the call hold button. Now I want to make the function menu displayed on the avaya 1608 phone. I have changed the featureSet in gatekeeperConfirm. parameters, but the effect is not ideal, can you give me some suggestions in this regard?

Is avaya support working?

Hi, and thanks a lot for your effort!

I recently got an old avaya 1616i phone (as an odd present) and thought of making it work along with asterisk and gnugk. (I'm okay with very limited functionality, still better than the dumpster). I followed the tutorial in avaya-support.txt, but got stuck after a while. After entering the extension number and authorizing in gnugk the phone just reboots. I'm very sorry to bother you, but could you point me in the right direction? Here's the log from the gnugk and nginx stack (I use the following options to start gnugk: "/usr/bin/gnugk", "-c", "/etc/gatekeeper.ini", "-ttttttttt", "-rr"). I'm using the current master branch of gnugk, tried 5_10_STABLE, but it seems that it works the same.

gatekeeper_1  | 2024/01/04 09:03:19.557 7           tlibthrd.cxx(1176)  PTLib   PThread::PXBlockOnIO(25,0)
gatekeeper_1  | 2024/01/04 09:03:19.557 2             RasSrv.cxx(185)   RAS     Read from 192.168.143.132:49300
gatekeeper_1  | 2024/01/04 09:03:19.557 3             RasSrv.cxx(262)   RAS
gatekeeper_1  | gatekeeperRequest {
gatekeeper_1  |     requestSeqNum = 2
gatekeeper_1  |     protocolIdentifier = 0.0.8.2250.0.2
gatekeeper_1  |     nonStandardData = {
gatekeeper_1  |       nonStandardIdentifier = object 2.16.840.1.113778.4.2.1
gatekeeper_1  |       data =  3 octets {
gatekeeper_1  |         85 01 40                                           ..@
gatekeeper_1  |       }
gatekeeper_1  |     }
gatekeeper_1  |     rasAddress = ipAddress {
gatekeeper_1  |       ip =  4 octets {
gatekeeper_1  |         c0 a8 8f 84                                        ....
gatekeeper_1  |       }
gatekeeper_1  |       port = 49300
gatekeeper_1  |     }
gatekeeper_1  |     endpointType = {
gatekeeper_1  |       terminal = {
gatekeeper_1  |       }
gatekeeper_1  |       mc = false
gatekeeper_1  |       undefinedNode = false
gatekeeper_1  |     }
gatekeeper_1  |     endpointAlias = 1 entries {
gatekeeper_1  |       [0]=dialedDigits "1000"
gatekeeper_1  |     }
gatekeeper_1  |     tokens = 1 entries {
gatekeeper_1  |       [0]={
gatekeeper_1  |         tokenOID = 2.16.840.1.114187.1.6.2
gatekeeper_1  |         dhkey = {
gatekeeper_1  |           halfkey = Hex {
gatekeeper_1  |             2f 41 10 27 50 21 e7 ce  14 ba f6 ab 9d 4f 8d 88 
gatekeeper_1  |             5d e8 3e 35 a1 14 7e a2  ae 0c a6 6d 91 3c 76 ac 
gatekeeper_1  |             ed 83 d0 5c f2 f9 be 5d  f5 3a 59 c7 ab 64 ac 79 
gatekeeper_1  |             ca 5a 5d 2e 94 b4 0d 82  04 25 ff b5 30 11 87 0e 
gatekeeper_1  |             41 dc eb bc 40 c5 06 5e  14 cc 8d 7e ee cb 35 18 
gatekeeper_1  |             b8 61 59 18 1b 36 74 d3  7f fa c3 26 26 9a b7 81 
gatekeeper_1  |             81 7b 39 07 09 cc 7f 3d  9a c2 dd 08 f2 ec 0f 93 
gatekeeper_1  |             10 af 30 f8 dd da 1c f9  c9 dd e7 59 0c 1d 82 d0           }
gatekeeper_1  |           modSize = 
gatekeeper_1  |           generator = 
gatekeeper_1  |         }
gatekeeper_1  |         profileInfo = 2 entries {
gatekeeper_1  |           [0]={
gatekeeper_1  |             elementID = 2
gatekeeper_1  |             element = octets  4 octets {
gatekeeper_1  |               00 00 3c 4c                                        ..<L
gatekeeper_1  |             }
gatekeeper_1  |           }
gatekeeper_1  |           [1]={
gatekeeper_1  |             elementID = 1
gatekeeper_1  |             element = octets  12 octets {
gatekeeper_1  |               0a 63 00 00 38 37 00 00  04 b1 0a 64               .c..87.....d
gatekeeper_1  |             }
gatekeeper_1  |           }
gatekeeper_1  |         }
gatekeeper_1  |       }
gatekeeper_1  |     }
gatekeeper_1  |     authenticationCapability = 2 entries {
gatekeeper_1  |       [0]=pwdSymEnc <<null>>
gatekeeper_1  |       [1]=keyExch 2.16.840.1.114187.1.6.2
gatekeeper_1  |     }
gatekeeper_1  |     algorithmOIDs = 2 entries {
gatekeeper_1  |       [0]=1.3.14.3.2.6
gatekeeper_1  |       [1]=2.16.840.1.114187.1.3
gatekeeper_1  |     }
gatekeeper_1  |     featureSet = {
gatekeeper_1  |       replacementFeatureSet = false
gatekeeper_1  |       supportedFeatures = 1 entries {
gatekeeper_1  |         [0]={
gatekeeper_1  |           id = oid 2.16.840.1.114187.1.10
gatekeeper_1  |           parameters = 8 entries {
gatekeeper_1  |             [0]={
gatekeeper_1  |               id = standard 5
gatekeeper_1  |             }
gatekeeper_1  |             [1]={
gatekeeper_1  |               id = standard 9
gatekeeper_1  |             }
gatekeeper_1  |             [2]={
gatekeeper_1  |               id = standard 10
gatekeeper_1  |             }
gatekeeper_1  |             [3]={
gatekeeper_1  |               id = standard 11
gatekeeper_1  |             }
gatekeeper_1  |             [4]={
gatekeeper_1  |               id = standard 13
gatekeeper_1  |             }
gatekeeper_1  |             [5]={
gatekeeper_1  |               id = standard 14
gatekeeper_1  |             }
gatekeeper_1  |             [6]={
gatekeeper_1  |               id = standard 15
gatekeeper_1  |             }
gatekeeper_1  |             [7]={
gatekeeper_1  |               id = standard 16
gatekeeper_1  |             }
gatekeeper_1  |           }
gatekeeper_1  |         }
gatekeeper_1  |       }
gatekeeper_1  |     }
gatekeeper_1  |   }
gatekeeper_1  | 2024/01/04 09:03:19.558 5                job.cxx(342)   JOB     Worker threads: 10 total - 10 busy, 0 idle
gatekeeper_1  | 2024/01/04 09:03:19.558 5                job.cxx(185)   JOB     Starting Job GRQ at Worker thread 140036037080768
gatekeeper_1  | 2024/01/04 09:03:19.558 1             RasSrv.cxx(401)   RAS     GRQ Received from 192.168.143.132:49300
gatekeeper_1  | 2024/01/04 09:03:19.558 3               gkauth.h(1148)  GKAUTH  default GRQ check ok
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(1184)  H460    Create FeatureSet from FeatureSet PDU
gatekeeper_1  | 2024/01/04 09:03:19.558 4              h4601.cxx(1266)  H460    Loaded OID 2.16.840.1.114187.1.10
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(1184)  H460    Create FeatureSet from FeatureSet PDU
gatekeeper_1  | 2024/01/04 09:03:19.558 4              h4601.cxx(1266)  H460    Loaded OID 2.16.840.1.114187.1.10
gatekeeper_1  | 2024/01/04 09:03:19.558 5             RasSrv.cxx(2046)  GRQ     Avaya: CCMS discoveryRequest
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 1
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 2
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 3
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 5
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 6
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 7
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 9
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 10
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 11
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 17
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 18
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 19
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(527)   H460    Add ID: standard 1 content number8 1
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 1
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(527)   H460    Add ID: standard 2 content number16 60
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 2
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(527)   H460    Add ID: standard 3 content number16 0
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 3
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(527)   H460    Add ID: standard 4 content bool true
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 4
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(527)   H460    Add ID: standard 5 content bool true
gatekeeper_1  | 2024/01/04 09:03:19.558 6              h4601.cxx(516)   H460    Add ID: standard 5
gatekeeper_1  | 2024/01/04 09:03:19.558 5             RasSrv.cxx(2108)  GCF     Avaya: Added featureSets
gatekeeper_1  | 2024/01/04 09:03:19.558 2             RasSrv.cxx(454)   GCF|192.168.143.132|1000|terminal;
gatekeeper_1  | 2024/01/04 09:03:19.558 3             RasSrv.cxx(274)   RAS     Send to 192.168.143.132:49300
gatekeeper_1  | gatekeeperConfirm {
gatekeeper_1  |     requestSeqNum = 2
gatekeeper_1  |     protocolIdentifier = 0.0.8.2250.0.2
gatekeeper_1  |     rasAddress = ipAddress {
gatekeeper_1  |       ip =  4 octets {
gatekeeper_1  |         c0 a8 8f b0                                        ....
gatekeeper_1  |       }
gatekeeper_1  |       port = 1719
gatekeeper_1  |     }
gatekeeper_1  |     featureSet = {
gatekeeper_1  |       replacementFeatureSet = true
gatekeeper_1  |       desiredFeatures = 3 entries {
gatekeeper_1  |         [0]={
gatekeeper_1  |           id = oid 2.16.840.1.114187.1.10
gatekeeper_1  |           parameters = 12 entries {
gatekeeper_1  |             [0]={
gatekeeper_1  |               id = standard 1
gatekeeper_1  |             }
gatekeeper_1  |             [1]={
gatekeeper_1  |               id = standard 2
gatekeeper_1  |             }
gatekeeper_1  |             [2]={
gatekeeper_1  |               id = standard 3
gatekeeper_1  |             }
gatekeeper_1  |             [3]={
gatekeeper_1  |               id = standard 5
gatekeeper_1  |             }
gatekeeper_1  |             [4]={
gatekeeper_1  |               id = standard 6
gatekeeper_1  |             }
gatekeeper_1  |             [5]={
gatekeeper_1  |               id = standard 7
gatekeeper_1  |             }
gatekeeper_1  |             [6]={
gatekeeper_1  |               id = standard 9
gatekeeper_1  |             }
gatekeeper_1  |             [7]={
gatekeeper_1  |               id = standard 10
gatekeeper_1  |             }
gatekeeper_1  |             [8]={
gatekeeper_1  |               id = standard 11
gatekeeper_1  |             }
gatekeeper_1  |             [9]={
gatekeeper_1  |               id = standard 17
gatekeeper_1  |             }
gatekeeper_1  |             [10]={
gatekeeper_1  |               id = standard 18
gatekeeper_1  |             }
gatekeeper_1  |             [11]={
gatekeeper_1  |               id = standard 19
gatekeeper_1  |             }
gatekeeper_1  |           }
gatekeeper_1  |         }
gatekeeper_1  |         [1]={
gatekeeper_1  |           id = oid 2.16.840.1.114187.1.9
gatekeeper_1  |           parameters = 5 entries {
gatekeeper_1  |             [0]={
gatekeeper_1  |               id = standard 1
gatekeeper_1  |               content = number8 1
gatekeeper_1  |             }
gatekeeper_1  |             [1]={
gatekeeper_1  |               id = standard 2
gatekeeper_1  |               content = number16 60
gatekeeper_1  |             }
gatekeeper_1  |             [2]={
gatekeeper_1  |               id = standard 3
gatekeeper_1  |               content = number16 0
gatekeeper_1  |             }
gatekeeper_1  |             [3]={
gatekeeper_1  |               id = standard 4
gatekeeper_1  |               content = bool true
gatekeeper_1  |             }
gatekeeper_1  |             [4]={
gatekeeper_1  |               id = standard 5
gatekeeper_1  |               content = bool true
gatekeeper_1  |             }
gatekeeper_1  |           }
gatekeeper_1  |         }
gatekeeper_1  |         [2]={
gatekeeper_1  |           id = standard 6
gatekeeper_1  |         }
gatekeeper_1  |       }
gatekeeper_1  |       supportedFeatures = 3 entries {
gatekeeper_1  |         [0]={
gatekeeper_1  |           id = oid 2.16.840.1.114187.1.10
gatekeeper_1  |           parameters = 12 entries {
gatekeeper_1  |             [0]={
gatekeeper_1  |               id = standard 1
gatekeeper_1  |             }
gatekeeper_1  |             [1]={
gatekeeper_1  |               id = standard 2
gatekeeper_1  |             }
gatekeeper_1  |             [2]={
gatekeeper_1  |               id = standard 3
gatekeeper_1  |             }
gatekeeper_1  |             [3]={
gatekeeper_1  |               id = standard 5
gatekeeper_1  |             }
gatekeeper_1  |             [4]={
gatekeeper_1  |               id = standard 6
gatekeeper_1  |             }
gatekeeper_1  |             [5]={
gatekeeper_1  |               id = standard 7
gatekeeper_1  |             }
gatekeeper_1  |             [6]={
gatekeeper_1  |               id = standard 9
gatekeeper_1  |             }
gatekeeper_1  |             [7]={
gatekeeper_1  |               id = standard 10
gatekeeper_1  |             }
gatekeeper_1  |             [8]={
gatekeeper_1  |               id = standard 11
gatekeeper_1  |             }
gatekeeper_1  |             [9]={
gatekeeper_1  |               id = standard 17
gatekeeper_1  |             }
gatekeeper_1  |             [10]={
gatekeeper_1  |               id = standard 18
gatekeeper_1  |             }
gatekeeper_1  |             [11]={
gatekeeper_1  |               id = standard 19
gatekeeper_1  |             }
gatekeeper_1  |           }
gatekeeper_1  |         }
gatekeeper_1  |         [1]={
gatekeeper_1  |           id = oid 2.16.840.1.114187.1.9
gatekeeper_1  |           parameters = 5 entries {
gatekeeper_1  |             [0]={
gatekeeper_1  |               id = standard 1
gatekeeper_1  |               content = number8 1
gatekeeper_1  |             }
gatekeeper_1  |             [1]={
gatekeeper_1  |               id = standard 2
gatekeeper_1  |               content = number16 60
gatekeeper_1  |             }
gatekeeper_1  |             [2]={
gatekeeper_1  |               id = standard 3
gatekeeper_1  |               content = number16 0
gatekeeper_1  |             }
gatekeeper_1  |             [3]={
gatekeeper_1  |               id = standard 4
gatekeeper_1  |               content = bool true
gatekeeper_1  |             }
gatekeeper_1  |             [4]={
gatekeeper_1  |               id = standard 5
gatekeeper_1  |               content = bool true
gatekeeper_1  |             }
gatekeeper_1  |           }
gatekeeper_1  |         }
gatekeeper_1  |         [2]={
gatekeeper_1  |           id = standard 6
gatekeeper_1  |         }
gatekeeper_1  |       }
gatekeeper_1  |     }
gatekeeper_1  |   }
gatekeeper_1  | 2024/01/04 09:03:19.559 5             RasSrv.cxx(294)   RAS     Sent Successful
gatekeeper_1  | 2024/01/04 09:03:19.559 5                job.cxx(393)   JOB     Job GRQ deleted
gatekeeper_1  | 2024/01/04 09:03:19.559 5                job.cxx(382)   JOB     Worker threads: 10 total - 9 busy, 1 idle
gatekeeper_1  | 2024/01/04 09:03:20.468 6            osutils.cxx(978)   PTLib   MONITOR: timers=0, expiries=0

I tried wiresharking, but the only thing that I see - a ras request from the phone and gnugk's response. Setting VLAN support to OFF instead of AUTO in the phone options removes the VLAN section in wireshark packets and the phone prints out 'contacting call server', but it still just reboots shortly.

gatekeeper.ini: https://github.com/nekromant/avaya-asterisk-docker/blob/master/gnugk/gatekeeper.ini
46xxsettings.txt: https://github.com/nekromant/avaya-asterisk-docker/blob/master/http/static/46xxsettings.txt
ooh323.conf: https://github.com/nekromant/avaya-asterisk-docker/blob/master/asterisk/ooh323.conf
OpenWRT UDHCP config:

 option dhcp_option '242,MCIPADD=192.168.143.176,HTTPSRVR=192.168.143.176,HTTPDIR=/,HTTPPORT=8080'

Here's my WiP repository with everything that's needed to start it from a single compose file: https://github.com/nekromant/avaya-asterisk-docker

For the sake of simplicity I'm using host mode networking, so that docker network stuff would not mess up anything.

no viable conversion from 'PString' to 'PIPSocket::Address'

Hi.

I am seeing a build gnugk-5.5 failure building on OpenBSD current.

Toolkit.cxx:3257:26: error: no viable conversion from 'PString' to 'PIPSocket::Address'
                    PIPSocket::Address gkip = retval[0];
                                       ^      ~~~~~~~~~
$ c++ --version 
OpenBSD clang version 8.0.1 (tags/RELEASE_801/final) (based on LLVM 8.0.1)
Target: amd64-unknown-openbsd6.7
Thread model: posix
InstalledDir: /usr/bin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.