GNU Gatekeeper(简称GnuGK)是一个基于OpenH323来发展的开放源码H.323 gatekeeper计划。所谓的H.323 gatekeeper,定义于H.323标准中,负责对H.323的系统提供位址转换、通话控制、路由决定、认证计费等服务。
GnuGK 实现许多丰富实用的特性,包括
一、前述 对于H323协议来说,H460协议主要是用来完成网络穿透功能,而其中使用更多的是H460.18和H460.19协议,H460.18主要是完成信令上的协商穿透,其中就包括了H225信令和H245信令;而H460.19主要是完成媒体上的穿透。因此,本文在讲述gnugk的H245时,也会区分有H460协议过程和无H460协议过程。 二、gnugk相关配置项 gnugk对于H245协议的控制配置
前言 如果按前面第二节的内容,这节应该是接着讲Ras或者H225的socket收到包后,怎么去处理的事项。但是在开始讲如何数据包之前,我想先讲一下gnugk的模板工厂定义与实现。之所以要这样,是因为在接下来的很多地方都会用到这个实现,所以感觉应该先讲讲。 简单来说,gnugk的模板工厂定义,就是定义了四类工厂方法,不带参数、带1个参数、带2个参数、带3个参数的的工厂,这里讲到的工厂,是一种设计方法
作者: jiaxin_liu88 和linux相关 我多网守GateKeeper的理解:GK已监听端口方式等待用户注册,SjPhone可以使用任用username/password注册。GK记录注册的用户和其IP,这样下次如果有人播打某个电话时,比如h323-phone,则去查找有无这样的用户注册,如果有则进行地址翻译,转到其IP,进行呼叫,没有则返回无用户错误。 ooh323.conf
Upgrade gnugk from 4.7 to 4.9 on ubuntu 16.04.4(LTS) 背景 我之前使用了gnugk 来解决和h323 穿透NAT问题,可以参考这篇【历史博客】 今天看到gnugk 已经更新到了4.9了,fix 了不少BUG ,而我目前还是用的4.7。 操作系统已经升级到了16.04.04 ,怕有模组或者组件缺失,还是先找vagrant 起了台默认安装的ubunt
步骤 第一步打开GNUGK的启动文件 添加如下的内容: [SimplePasswordAuth];在这下面会存放简单账号认证中的账号密码信息 [Gatekeeper::Auth];启动认证机制 SimplePasswordAuth=required;RRQ,ARQ;简单账号密码认证是否为必须,对H323那些信令流程进行账号认证 第二步添加账号信息 使用gnugk提供的账号添加工具添加账号到配置
主要内容:基于 xinetd 服务的启动,基于xientd 服务的自启动本节学习基于 xinetd 服务的管理方法。基于 xinetd 的服务同样有启动管理和自启动管理之分,而且不管是启动管理还是自启动管理,都只有一种方法,相比独立的服务简单一些。 基于 xinetd 服务的启动 基于 xinetd 的服务没有自己独立的启动脚本程序,是需要依赖 xinetd 的启动脚本来启动的。xinetd 本身是独立的服务,所以 xinetd 服务自己的启动方法和独立服务的启动方法
每个程序至少有一个线程:执行main()函数的线程,其余线程有其各自的入口函数。线程与原始线程(以main()为入口函数的线程)同时运行。如同main()函数执行完会退出一样,当线程执行完入口函数后,线程也会退出。在为一个线程创建了一个std::thread对象后,需要等待这个线程结束;不过,线程需要先进行启动。下面就来启动线程。 2.1.1 启动线程 第1章中,线程在std::thread对象创
jfinal是由jfinal2.2+freemarker+easyui写的一个后台管理系统,参考了jty等一些优秀的开源项目,实现了一个基础的后台管理系统。 在线访问:http://moriiy.wicp.net/jfinal/ 有时可能无法访问(毕竟是部署在自己电脑上的),尽量白天访问,进入系统尽量不要做修改或删除操作。 帐号:admin 密码:123456 测试 test 密码123456
3. 基于UDP协议的网络程序 下图是典型的UDP客户端/服务器通讯过程(该图出自[UNPv13e])。 图 37.3. UDP通讯流程 以下是简单的UDP服务器和客户端程序。 /* server.c */ #include <stdio.h> #include <string.h> #include <netinet/in.h> #include "wrap.h" #define MAXLIN
2. 基于TCP协议的网络程序 下图是基于TCP协议的客户端/服务器程序的一般流程: 图 37.2. TCP协议通讯流程 服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()