This is the Chinese manual for GNU Gatekeeper 2.0.3.
A more recent (English) manual for your version is in your GnuGk download archive.

OpenH323 Gatekeeper - The GNU Gatekeeper �ϥΤ�U

�@�̡G ���Ӱ� <[email protected]>

v2.0.3, 20 February 2003
�o�O OpenH323 Gatekeeper - The GNU Gatekeeper �����媩�ϥΤ�U�C�����p��sĶ�B�w�ˡB�]�w�P�ʬ� OpenH323 Gatekeeper - The GNU Gatekeeper�C

1. ����

1.1 ���󦹭p�e

OpenH323 Gatekeeper - The GNU Gatekeeper �O�@�Ӧۥѳn��(�κٶ}���l�X)�p���A�ت��b��@�@�� H.323 gatekeeper�C H.323 gatekeeper �� H.323 ���I(endpoint)���ѳq�ܱ���A�ȡA���O H.323 �зǪ��@�����C

�ھ� H.323 �W��Ѫ��зǡAgatekeeper �����ѤU�C�A�ȡG

  • ��}�ഫ
  • �q�ܳ\�i�ި�
  • �W�e����
  • �ϰ�޲z
  • �H���ި�
  • �q�ܻ{��
  • �W�e�޲z
  • �q�ܺ޲z

GNU Gatekeeper �̾� OpenH323 ��@�X�H�W�j�������\��C

H.323 �W��ѬO�� ITU ���G����ڼзǡA�������ں����W�y���B�v���θ�ƪ��q�T�зǡC�ԲӪ������� Paul Jones' primer on H.323�C

1.2 ���v�n��

GNU Gatekeeper �O�ۥѳn��p���A�� GNU �q�Τ��@�\�i�� (GNU GPL) �ҫO�@�γW�d�C���~�A�ڭ̯S�O���\�����ɥi�P OpenH323 �� OpenSSL ���禡�w�s���C

²�檺���AGNU �q�Τ��@�\�i�Ҥ��\�A�i�H�ۥѪ��ƻs�B���G�B�X��Ϊ̭ק糧�n��C���O�n�D�Ҧ����l�ͧ@�~�]�����H GNU �q�Τ��@�\�i�Ҫ��W�d���X�C�o���ܡA�A�������}�Ҧ��A�ק糧�n�骺�{���X�A�H�Υ���A�[�i���n�骺�{��(�p�G������)�C�Ӹ`�Ш� COPYING �o���ɮת������CGNU �q�Τ��@�\�i�Ҫ�����½Ķ�i�b GPL ���o�C

����ۥѳn�骺�����βz�Q�A�i�Ѧ� �n��ۥѰ���| �����������C

�p�G�A���@�o�˰��A�A�����z�L���A�����H TCP �s�u���覡�P Gatekeeper ���q�C�Q�Φ��覡�A�i�H�u�N�̰򥻪��\��[�J Gatekeeper ���A�Ӥ����}�A�{�����䥦�����C

1.3 �W��

���p���������W�٬O OpenH323 Gatekeeper - The GNU Gatekeeper�A ²�� OpenH323GK �� GnuGK�C�Ф��n�N���p���P�䥦�����p���d�V�F!

1.4 �S��

2.0.3 ���D�n�ץ��@�ǿ��~�A�å[�J�ֳ\�s�W�\��G

  • �b���� Q.931 Facility callForwarded �ɪ����౵�ܫ��w���I�C
  • �i��ʫ��w�Y�Ǻ��I��� NAT ����C
  • �[�J�@��²�檺�Ӹܤ��e����C�Ӹܥi�e�ܤ@������C�A�A�g�ѥ~�����{���M�w���ѡC

2.0.2 ���s�W���D�n�\��]�A�G

  • �[�J�e�R������T�Ҭ�o�� Citron NAT Technology�A����b���ק�վ� NAT ���A�������p�U�A�䴩��V NAT �����V�q�ܡC�䴩�h���I�P�ɳq�ܡC
  • ���\ Gatekeeper �m�� NAT ����A���� public IP �����I�ӵ��U�C
  • �s���i�X�R fd_set ���c�A�i�b���ѼҦ��U�䴩�W�d�q�q�ܡA�Ӥ��� PWLib ������C
  • �b RTP/RTCP �ʥ]�[�W TOS flag �H�䴩 QoS�C
  • �i�H�W�٩M�K�X�ӵn�J���A�ɭ��C

���~���M�٥]�A�F�U�C�w�s�b�� 2.0 �����\��G

  • ���s�]�p�L�����U�γq�ܺ޲z����A�i�w�����b�h������U����A�঳�IJv���޲z�W�U�Ӻ��I�����U�ΤW�d�q�q�ܡC
  • �s�����ѫH���Ҧ��[�c�A�䴩��e H.225.0/Q.931 �H�� H.245 �H���A�Ӥ������ͧ�h��������C�]����������W�����|�v�T�`�q�ܼơC
  • �䴩 H.323 proxy �Ҧ��A�i��e RTP/RTCP �C��q�D�H�� T.120 ��Ƴq�D�C�H H.245 tunnelling �Ҧ��M�ֳt�s��(fast-connect)�Ҧ��}�Ҫ��q�D�ҥi�䴩�C�b proxy �Ҧ��U�Ҧ���ƬҸg�� Gatekeeper ��e�A���I���L�������q�H�q�A�]���D�`�A�X�b NAT �����ҤU�ϥΡC
  • �ǥѥ洫 LRQ/LCF/LRJ �i�䴩 Gatekeeper �O���A�ϳq�ܥi�H��V�ϰ�(zone)�C�p�G LRQ ���ت��a�����AGatekeeper �٥i�N����e��U�@�� Gatekeeper�C
  • �䴩�h�ػ{�Ҿ���A�]�A H.235 �K�X(MD5 �� SHA-1 �[�K)�BIP �˦��Ϋe�m�X�ǰt���覡�C�䴩�H MySQL �� LDAP ������ݻ{�Ҹ�Ʈw�C
  • �䴩 alternate gatekeepers ����H�F���ƴ��έt�����Ū��ت��C�p�G Gatekeeper �t��L���A�|�N���I���ɦܨ䥦�� gatekeepers �W�C
  • �i���U�ܤW�h Gatekeeper �����@���I(�h�D��)�C�H���覡�i�������إ� Gatekeeper �����h�[�c�C
  • �z�L���A�ɭ��i�ʵ��ñ��� Gatekeeper�A�]�A�Ҧ����U�γq�ܪ��έp�C
  • �i�Ѫ��A�ɭ���X�q�ܩ��ӰO��(CDR)�A�ѫ�ݭp�O�t�ΨϥΡC
  • ���j�������]�w���i�b����ɰʺA�����ܡC�ǥѪ��A�ɭ��U `reload' ���O�A�ΰe HUP �H������{(�ȾA�Ω� Unix ���x)�i�� Gatekeeper ���sŪ���]�w�ɡC

1.5 �U��

�̷s��í�w�εo�i�����������i�q�o�� �U������ ���o�C

�Y�A�Q�ϥ� CVS�A�i�q Sourceforge ���U���������o�C�Ъ`�N�A���O�̷s���o�i�����A�ܥi��|��í�w�C

�A�]�i�H�q Sourceforge �U���w���sĶ�n�������ɡA���L�u���Y�ǥ��x�������Ӥw�C

1.6 �q�H�׾�

���p������ӳq�H�׾�(mailing list)�A�@�ӬO���}�o�̥Ϊ��A�t�@�ӬO���@�몺�ϥΪ̥ΡC

�@�몺�ϥΡB�]�w���D�мg�H�� users mailing list�C�A�i�H�b�����Ҧ��� �l�󦬶��C���[�J���q�H�׾¡A���I ���B�C

�Y�n�^�����D�A�δ��ѿ��~�󥿡A�мg�H�� developers mailing list�C�I�� ���B �i�H���Ҧ����l�󦬶��C�Ъ`�N�A�@�몺�ϥΰ��D���n�H��o�̡A�ӸӱH��W�z���ϥΪ̽׾¡C�o�ӽ׾¬O���}�o�̨ϥΪ��C���M�A�p�G�A�Q�惡�p�����Ұ^�m�A�� �[�J���׾��C

�`�N�G �Ф��n�N�A�����D�Ψp�H�H��H���ӧO���}�o�̡C�ڭ̳q�`�D�`���L�C�ڭ��ä��O�A���p�H�U�ݡA���D�A�@�N�I�����ڭ̡C�N�A�����D�e�줽�}�ӾA�����q�H�׾¡A����h���H�����|�i�H���A�C

�]�Ъ`�N���n�N GnuGK �M�ݪ����D�H�� OpenH323 ���q�H�׾¡A�Ϊ̬ۤϡC�_�h�@�w�S���H�|�z�A�C�o�O��Ӥ��P���p���A���M���Y�K���C��ӭp�����}�o�̤]���ۦP�A���M�L�̱`�H�Y�ؤ覡���ۦX�@�C

1.7 �^�m��

�ثe���p�����D���H�O Jan Willamowius <[email protected]>�C

2.0 ���D�n���\��P�S�ʬO�ѥx�W�� ���Ӱ� �M �e�R��T���� �ҹ�@�A�]�A���s�]�p�H�A�X�b�h������æ椴�w���L�{�����U�γq�ܺ޲z����A�s�����ѼҦ�(routed mode)�[�c�BH.323 �N�z��(proxy)�BH.235 �{�ҼҲեH�� MySQL ��ݳs���C

���w�ꪺ mediaWays ���q���b�����p���[�J LDAP ��Ʈw�l�t�ΡA���|���e(overlapped sending)�H�Υ��i���Ѿ���C

���p���̪�O�� Xiang Ping Chen, Joe Metzger and Rajat Todi �ҵo�i�C

Ķ���G���ϥΤ�U�O���g���^�媩�A½Ķ������C�S�O�P�±i�R�Y�M�d���@��U½Ķ�C

2. �s�P�w��

2.1 �sĶ Gatekeeper

�n�sĶ Gatekeeper�A�A�ݭn PWLib 1.2 ���M OpenH323 1.8 ���ΥH�W�C�}�o���� Gatekeeper �����q�`�ݭn�f�t�̷s���� OpenH323�C

�������禡�w�i�H�� OpenH323 �U������ ���o�C�sĶ OpenH323 ���覡�A�аѦ� �o�� �����ܡC

�sĶ�����ǡG

  1. PWLib (release �� + debug ��)
  2. OpenH323
  3. OpenH323 test application (���@�w�n, �u�O�ΨӽT�w��ثe����@�����`�C)
  4. Gatekeeper

�b Unix �@�~�t�ΤU�A�Х����� Gatekeeper �ؿ��C���� make debug �ӽsĶ debug ���A�ΰ��� make opt �ӽsĶ release ���C���� make both �h�i�P�ɽsĶ��ت����C

�`�N�G�A�����ϥ� GCC 2.95.2 ���ΥH�W�A�ª��� GCC �i��L�k���`�sĶ�C

�b Windows �@�~�t�ΤU�A�ݶ}�� Microsoft Visual C++ 6.0 or 7.0 (Visual C++ 5.0 ����)�ӽsĶ�Ҵ��Ѫ� project (gk.dsw) �C

�q 2.0 ���}�l GnuGK �䴩�H MySQL �M LDAP ������ݸ�Ʈw�C�p�G�A���ݭn�o�Ǥ䴩�A�i�H�b make ���e�[�W�ѼơG

$ NO_MYSQL=1 make both

�Y�n���� LDAP ���䴩�G

$ NO_LDAP=1 make both

�άO������̡G

$ NO_MYSQL=1 NO_LDAP=1 make both

�� 2.0.1 ���_ GnuGK ��@�s�� fd_set ���c�A�ϱo GnuGK ��b���ѼҦ��U��䴩�W�d�q�q�ܡC���ϥΦ����\��A�i�b�sĶ�ɥ[�W LARGE_FDSET �ѼơA���w���}�Ҫ��̤j�ɮ׼ƥءC�Ҧp�G

$ LARGE_FDSET=16384 make opt

2.2 �w�� Gatekeeper

�w�� Gatekeeper ���ݭn����S�����w�˨B�J�A�u�ݱN�sĶ�n���i�����ɫ�����A�Q�s�񪺥ؿ��̡A�M��A��ʷs�W�@�ӳ]�w�ɡC

�]�w�ɪ��d�ҩ�b��l�{���X�� etc/ �l�ؿ����C�аѾ\ �]�w�� �@�`�A����Ժɪ������C

�|�ҡG�b Linux x86 ���x�U�A�̨Τƪ������� gnugk �|���ͦb obj_linux_x86_r/ �l�ؿ��̡C�A�i�H�⥦������ /usr/sbin/ �ؿ��A�M��A�s�W�]�w�� /etc/gnugk.ini �C�̫�A��J�H�U���O�ӱҰ� Gatekeeper�G

$ /usr/sbin/gnugk -c /etc/gnugk.ini -o /var/log/gnugk.log -ttt

�аѾ\ �R�O�C�Ѽ� �@�`�A����Ժɪ������C

2.3 �w���s�n��������

�p�G�A���Q�U����l�{���X�Ӧۦ�sĶ�A�b SourceForge �̦��@�Ǥw�g�sĶ�n���M��i�ѨϥΡC���ëD�Ҧ������������w���sĶ�n�������ɡA�U���e�Х��ݲM���C

Red Hat packages (.rpm)

�Х��U�� RPMs �A�A�H root �����A��J�H�U�����O�Ӧw�� Gatekeeper�G

$ rpm -Uvh gnugk-x.x.x.rpm�]�A�U�����ɮת��W�١^

Debian packages (.deb)

�p�G�A�O�ϥ� stable (woody) ������ Debian�A�ХH root �����A��J�H�U�����O�Ӧw�� Gatekeeper�G

$ apt-get install openh323gk

3. �J������

3.1 �Ĥ@��²�檺����

���x�s�W�ϰ������ Linux �u�@���A�̭��n�w�� OpenH323 1.1 ���ΥH�W�M OhPhone�C�b�Ĥ@�x�����W�}��ӥD���x�A���O���� Gatekeeper �M ohphone�C

jan@machine1 > gnugk -ttt

�W�@����O���ܡGGatekeeper �{�b�H�����H���Ҧ�����C-ttt �Ѽƫ��� Gatekeeper �Ⱓ���T����ܦb�D���x�C�A�]�i�H�� "-o logfile" �Ⱓ���T���s��@���ɮ׸̡C����H���Ҧ��������A�аѾ\ �U�@�` �������C

jan@machine1 > ohphone -l -a -u jan

�W�@����O���ܡGOhPhone �{�b���b���Ԩӹq(-l)�A�ӥB�|�۰ʱ�ť�ӹq(-a)�C���~�AOhPhone �|�۰ʰ��� Gatekeeper�A�M��� jan �o�ӨϥΪ̦W�٨ӵ��U�� Gatekeeper�C(�b�Y�ǭ�]�U�A�Y OhPhone �L�k�۰ʰ����� Gatekeeper�A�i�H�� "-g 1.2.3.4" �ӫ��w�B�� Gatekeeper ���@�x������ IP ��m�C)

�b�ĤG�x�����W�u�ݰ��� OhPhone�C

peter@machine2 > ohphone -u peter jan

�W�@����O���ܡG�ĤG�x�����W�� OhPhone �|�H peter �o�ӨϥΪ̦W�٨ӵ��U�즨�\�����쪺 Gatekeeper�A�M��յۥ��q�ܵ��ϥΪ� jan�CGatekeeper �|��ϥΪ̦W�� jan �ഫ�� jan �Ҧb�����@�x������ IP ��m(�b�o�ӱ��ΤU�O�Ĥ@�x����)�C�p���@�ӡA�ĤG�x�����W�� OhPhone �N���D���ӭn�����Ĥ@�x�����~���� jan�C

�����ӹq�ɡA�Ĥ@�x�����W�� OhPhone �N�|�۰ʱ��q�A�̫� Peter �M Jan �N��}�l����C

3.2 �Ϊ��A�ɭ��Ӻʱ� Gatekeeper

�{�b�ڭ̸յۨӬݬ� Gatekeeper �B�z�F���ǫH���C�b�Ĥ@�x�����}�@�ӷs���D���x�A�M��� telnet �ӳs�� Gatekeeper�C

jan@machine1 > telnet machine1 7000

�o�ɡA�A�ܦ��i��|���� "Access forbidden!" �o�ӰT���C�o�O�]���ëD�Ҧ����H������N�ʱ� Gatekeeper�C�{�b�ڭ̷s�W�@���ɮץs gatekeeper.ini�A���ڭ̱Ұ� Gatekeeper �����ӥؿ��̡Cgatekeeper.ini �����e�]�A�H�U�|��G

[Gatekeeper::Main]
Fourtytwo=42
[GkStatus::Auth]
rule=allow

�Х��� Ctrl-C ���� Gatekeeper�A�M��A���s�Ұʤ@�� Gatekeeper�C���ڭ̦A������ telnet machine1 7000�A�N��P Gatekeeper �O���s�u�F�C

�{�b�A���� Peter ���� Jan �����Ӹ���A�ݬ� Gatekeeper �b�����H���Ҧ��U�B�z�F���ǰT���C�b telnet session �̡A���ܦh���O�i�H�Q����C�A�i�H��J"help" �ӦC�X�i�Ϊ����O�C�p�G�A�n�����P Gatekeeper �� telnet session �A�h����J "quit" �A�A�� Enter�C

3.3 �H���ѫH���Ҧ��Ұ� Gatekeeper

�Ұ� Gatekeeper ����ѫH���Ҧ��A�N�O���� Gatekeeper �|�n�D�Ҧ����q�ܫH�����n�g�L Gatekeeper ����e�C�ѩ�Ҧ����H�����|�q�L Gatekeeper�A�]���i�H�� Gatekeeper ��q�ܦ欰����j�������v�C

jan@machine1 > gnugk -r

�W�@����O���ܥH���ѼҦ��Ӱ��� Gatekeeper�C�A�@�� telnet ��� 7000�A���@�q�q�ܬݬ� Gatekeeper �{�b�|�B�z���ǫH���C�`�N�G�Ҧ��P�h�C��������ʥ]�]�]�A�n���M�v���^�A���M�O�b��Ӻ��I(�N�O���礤����� OhPhone)�������ǰe�C�`�N�G�]�� Gatekeeper ���ѼҦ���[�������A�ҥH�A�ܦ��i��b�o�ӼҦ��U�J�� Gatekeeper �{���W�����~�C���L�]�L�ҿסA�A����@���N�n�o�C;-)

3.4 �������洫���G���_�q��

��ثe����AGatekeeper �Ҫ��{�X�Ӫ��\��u�O�N�Ÿ��W���ഫ�� IP ��m�C���M�o�O�@�ӭ��n���\��A���o�����H�O�H�P����_�C

�ƹ�W�AGatekeeper �����q�ܶi��h�ˤƪ�����A�Ҧp�G���_�q�ܡC���A�s���� Gatekeeper �����A�ɭ��A�i�H��J "PrintCurrentCalls" �ӦC�X�Ҧ��i�椤���q�ܡC�p�G�A�n�פ��Ӻ��I�����q�ܡA�A�i�H���N��ܨ䤤�@�x�� IP ��m�A�M����J Disconnectip xxx.xxx.xxx.xxx �Ӥ��_���q�ܡC

�A�]�i�H�g�@��²�檺�{���A�s�u�� Gatekeeper �����A�ɭ��Ӻʱ��Ҧ��i�椤���q�ܡC�άO����̪����q�ܮɶ����������A�H�K���H�ݥΨt�θ귽�C

Gatekeeper �]�వ��ӹq�౵(call transfers)�M�ӹq���H(call forwarding)���\��C���L�A�ثe�|���i���@�C

3.5 �N�q����e���@��q��

�n�O�S���� H.323 �h�D��(Gateway)�A�����q�ܪ��ϥΪ̥u�༷������L���ں����W�֦������q�ܪ��ϥΪ̡C�p�G�n�������Dzιq�ܪ��Τ�A�N�����ϥιh�D���C

_________________          ______________
| endpoint "jan"|          |            |
| 192.168.88.35 |--------->| Gatekeeper |
|_______________|          |            |
_________________          |            |
| gateway "gw1" | outgoing |            |
| 192.168.88.37 |<---------|____________|
|_______________|

�ϥιh�D���ɡA Gatekeeper �������������D���dzq�ܥ������Q��e��h�D���~�༷���X�h�A�ӭ��dzq�ܥi�H�����z�L Gatekeeper �����������C�A�i�ק� Gatekeeper �]�w�ɪ� [RasSrv::GWPrefixes] �p�`�ӥ[�H�W�d�A�i�� Gatekeeper�A���������X���e�X�Ӹ��X�ŦX�]�w����ɡA�N���ӭn��e��h�D���C

[RasSrv::GWPrefixes]
gw1=0

�H�W���]�w���� Gatekeeper �A�p�G�Q������ E.164 ���X�}�Y�O 0 �ɡA�N�N�o�q�q����e���� "gw1" H.323 alias ���U�� Gatekeeper �����@�x�h�D���A�M��A�ѹh�D�������ت��a�C�o�ɦp�G�S������@�x�h�D���O�� "gw1" �o�� H.323 alias ���U�� Gatekeeper�A���q�ܴN�L�k���q(�`�N�G�]�w�ɡA�����ϥ� Gateway �� alias �A����ϥιh�D���� IP ��m�ӳ]�w)�C

3.6 ��g E.164 ���X

�Y�A�ϥΤF�h�D���A�A�q�`�|�b�h�D�������ϥΤ��P�����X�CGatekeper �b����Q�������X�ɡA�i�H���N���X��g�A�M��A�N��g�᪺���X��e��h�D���A�i�J�q�ܺ��������X�h�C�A�i�H�ϥ� RasSrv::RewriteE164 �o�@�p�`�ӧ@���X����g�C

�H�U���Ҥl���A�A�i�H�κ����q�ܼ����@�ӳ��w�����X 12345 �A�ƹ�W�A�o�O���q�� "gw1" �o�x gateway �᪺�q�ܡA��ڸ��X�o�O 08765�C

[RasSrv::GWPrefixes]
gw1=0

[RasSrv::RewriteE164]
12345=08765

4. �ѦҤ�U

Gatekeeper ���欰�������M��R�O�C�ﶵ�M��]�w�ɮסC�@�ǩR�O�C�ﶵ�i��|�л\���]�w�ɤ����]�w�C�Ҧp: -l �ﶵ�N�|�л\�L�]�w�ɤ��� TimeToLive �]�w�C

4.1 �R�O�C�ﶵ

�X�G�C�@�ӿﶵ�����u�榡�Ϊ��榡�A�Ҧp: -c �M --config �O�ۦP���N��C

�򥻿ﶵ

-h --help

��ܩҦ��i��o���ﶵ�C

-c --config filename

���w�n�ϥΪ��]�w�ɦW�C

-s --section section

���w�n�ϥγ]�w�ɤ������@�`�����D�n���`�C�w�]�O [Gatekeeper::Main]�C

-i --interface IP

���w Gatekeeper ��ť���ɭ�(IP)�C�A�i�H�ٲ��o�ӿﶵ�� Gatekeeper �۰ʿ�ܺ�ť�� IP�A���D�A�Q�n�� Gatekeeper ��ť�S�w�� IP�C

-l --timetolive n

���w���I���U�ᦳ�Ħs�b���ɶ��A��쬰���C�o�ӿﶵ�N�|�л\���]�w�ɤ��� TimeToLive �]�w�C��ԲӪ������аѦ� �U�@�p�`�C

-b --bandwidth n

���w Gatekeeper �i��o���`�W�e�C�����w�o�ӿﶵ���ܡA�W�e�޲z�\��w�]�N�����C

--pid filename

���w pid �ɮ�,�� Unix �������ġC

�H���Ҧ�

�o�̩ҦC�X���ﶵ�N�|�л\���]�w�ɤ� [RoutedMode] �p�`���]�w�C

-d --direct

�ϥΪ����H���Ҧ��C

-r --routed

�ϥθ��ѫH���Ҧ��C

-rr --h245routed

�ϥθ��ѫH���Ҧ��A�åB�Ұ� H.245 ���ѼҦ��C

�����T��

-o --output filename

�N�����T���g����w���ɮפ��C

-t --trace

�[�V�h�� -t ,��X���T���N�|�V�h�V�ԲӡC �Ҧp: �ϥ� -ttttt �N�������ų]�� 5�C

4.2 �]�w��

���{�����]�w�ɬO�@�зǪ���r�ɡC�򥻪��榡�O�G

[Section String]
���=�]�w�r��

�@�檺�}�Y�Y�O����(#)�Τ���(;)�N���O���ѡC

�b etc/ �l�ؿ��U�� complete.ini �]�t�F�Ҧ������`�οﶵ�C�@��ӻ��A�ä��ݭn�ϥΥ����A���O�S���N�q���C��ܧA�ݭn�����`�ϥΡC�ӥؿ��U�٦��\�h���Ϊ��d�ҥi�ѰѦҡA�A�i�H�����p�ק��ϥΡC

�{������ɤ]�i�H���]�w�ɥH���� Gatekeeper ���欰�C���A�ק粒��A�O�o�n�q���A�ɭ��U reload ���O�A�Ϊ̡A�b Unix �W�i�H�e HUP �� Gatekeeper ����{�C�p�G

kill -HUP `cat /var/run/gnugk.pid`

�`�N�G ���H���X�b GnuGK 2.0 ���]�w�ɤ����Ǥp�`�W�٬O [RasSrv::*]�A�Ӧ��ǫo�O [RasSvr::*]�C�o�Ӥ��@�P���W�٨ϤH�x�b�C�b 2.0.1 �����Ҧ����W�٤w�ץ��� [RasSrv::*]�C�p�G�A�O�q 2.0 �ΥH�e�������ɯŪ��A�аO�o���W�١A�_�h�{���|�ڵ��ҰʡC

Section [Gatekeeper::Main]

  • Fourtytwo=42
    �w�]�ȡG�L

    ���]�w�u�O�ΨӴ��ճ]�w�ɬO�_�s�b�C�p�G�䤣�쪺�ܡA�|�X�{ĵ�ܰT���C�нT�w�A���]�w�ɥ]�t�F�o�@��C

  • Name=OpenH323GK
    �w�]�ȡGOpenH323GK

    ���w Gatekeeper ���ѧO�r��C�� Gatekeeper �ȷ|�^���]�t���ѧO�r�ꪺ GRQ�A�P�ɦb�^�������I���T�����]�|�]�t���r��C

  • Home=192.168.1.1
    �w�]�ȡG0.0.0.0

    ���w�� Gatekeeper ��ť(listen)�� IP ��}�C�]�N�O���AGatekeeper �ȷ|�����e�즹 IP ��}���s�u�ШD�C�Y�O���w�� 0.0.0.0 �h���ܩҦ��� IP ���i�����C�@��ӻ��A�ä��ݭn���w���ﶵ�A���D�A�Q�� Gatekeeper �u�j�b�Y�ӧA���w�� IP �W�C

  • NetworkInterfaces=192.168.1.1/24,10.0.0.1/0
    �w�]�ȡG�L

    ��ʫ��w Gatekeeper �������ɭ��C�@��ӻ� Gatekeeper �|�۰ʰ����Ҧ��������ɭ��C�Ȧ��b��ر��p�U�A�~�i��ݭn�ϥΦ��ѼơC�@�O�۰ʰ������G�����T�ɡA�G�O���N Gatekeeper �m�� NAT ���A������A���� public IP �����I�ӵ��U�C�b�o�ر��p�U�A�N�����ɭ��]�w���M NAT ���A���ۦP�A�N�n�� Gatekeeper �O�b NAT ���A���W����@�ˡC

  • EndpointIDSuffix=_gk1
    �w�]�ȡG_endp

    Gatekeeper �|���C�Өӵ��U�����I���w�@�ӿW�@�L�G���ѧO�r��C���ﶵ�i�Ψӫ��w�n���[�b�ѧO�r��᪺�r���C�Y�A���n�X�� Gatekeeper ���ﶵ�N�S�O���ΡC

  • TimeToLive=300
    �w�]�ȡG-1

    H.323 ���I�V Gatekeeper �����U�O���ɮĩʪ��CGatekeeper �i�b RCF �� timeToLive ��줤���w���U���ɶ��C�b���w���ɶ��L��A���U�N���ĤF�C���I�����w�����򪺧�s���U�A�åB�]�w RRQ ���� keepAlive ���C�o�ا�s���U���T���٬� lightweight RRQ�A�Ȼݥ]�t H.225.0 ���W�w���ָ̤�T�Y�i�C

    ���ﶵ�Ψӫ��w���U���ɶ��A���O���ơC���L���I�i�H�b RRQ ���� timeToLive �����w�@�Ӥ�o��u���ɶ��C�����F�קK���ͤj�q�� RRQ ���U�T���A�Y�A���w�� 60 ����u���ɶ��AGatekeeper �|�۰ʽվ㬰 60 ���C

    �@���Y�@���I�����U���ĹL�F�AGatekeeper �|���s�e�X��� IRQ �T���A�߰ݦ����I�O�_�����ۡC�Y�O�����I�^�� IRR�AGatekeeper �K�|�D�ʩ������U�����ġC�_�h�AGatekeeper �|�e URQ �q�������I���u�A�z�ѬO ttlExpired�C���ɺ��I�����H���㪺 RRQ �T�����s���U�C

    �Y�N���ﶵ���w�� -1�A�h�i�������U�ɮĪ��ˬd�C

  • TotalBandwidth=100000
    �w�]�ȡG-1

    �Ҧ��i�Ϊ��W�e�A��쬰 100 bits/s�C

  • RedirectGK=Endpoints > 100 || Calls > 50
    �w�]�ȡG�L

    ���� Gatekeeper �t��L���ɡA�Q�Φ��ﶵ�A�i�N�L�h���ШD���ɦܨ䥦�� Gatekeeper �W�C�Ҧp�A�W�z���]�w���ܭY�O���U�����I�ƶq��F 100 �ӮɡA��h�� RRQ �N�|�Q�ڵ��A�Ϊ̬O�P�@�ɶ����q�ܼƶq��F 50 �ɡA�A�h�� ARQ �]�N�|�Q�ڵ��C

    ���~�A�A�٥i�H�N���ﶵ�]�� temporary �� permanent �ӥD�ʱN�Ҧ������I�����ɦܨ䥦�� Gatekeeper�C�� Gatekeeper �b�^���� RAS �ڵ��T�����A�|�]�t�@�өw�q�b AlternateGKs ���� Gatekeeper �M��A���I�i�ھ��u���v��ܦV�䥦�� Gatekeeper �n�D�A�ȡC�`�N�Y�O�]�� permanent ���ܧA�����I�N�@�h���^�A�A�]���|�V��Ӫ� Gatekeeper ���U�F�C�t�~�ٽЪ`�N�o�ӥ\��u����䴩 H.323 version 4 �����I���ġC

  • AlternateGKs=1.2.3.4:1719:false:120:OpenH323GK
    �w�]�ȡG�L

    ���ﶵ�i���A���w�䥦�� Gatekeeper �����ƴ��ϥΡC�]�N�O���A�i�H���Y�Ǻ��I�V�Ĥ@�x Gatekeeper ���U�A�Ө�l���I�V�ĤG�x Gatekeeper�C�A�Ʀܥi�H����x Gatekeeper �����ϥΥH�F��t�����Ū��ت��C���L���\��|���g���㪺���աA�Фp�ߡC�ڭ̥H "primary GK" �N���o�x�A���b�]�w�� Gatekeeper�A�� "alternate GK" ���ܨ�l�����ƴ��Ϊ� Gatekeeper�CPrimary GK �|�b RCF ���]�t�@���A�i�D���I�������B�~�� Gatekeeper �i�H�ϥΡC���L�]�� alternate GK �ݭn���D�b primary GK �Ҧ������U��ơA�_�h���|�ڵ��q�ܡC�]�� primary GK �����N�Ҧ��� RRQ ��e�� alternate GK �W�C

    ���ﶵ�Ψӫ��w alternate GK ���M��A�H�����Ϲj�A�C�@�����A�H�_���ӲӤ��C�Ĥ@�βĤG�p�����w alternate GK �� IP �� port�A�ĤT�p�����w���I�b�ϥ� alternate GK �q�ܫe�O�_�n���V����U�C�]�� primary GK �|��e RRQ�A�]���q�`���ݭn�A����U�C�ĥ|�p�����w�u���v�A�ȷU�p�����u�����ǷU���C�q�` primary GK ���u���v�O 1�C�̫�@�p�����w alternate GK ���ѧO�r��C

  • SendTo=1.2.3.4:1719
    �w�]�ȡG�L

    ���w�n��e RRQ �� IP ��U�� port�C�ä��ݭn�M AlternateGKs �ۦP�A�]���]���W�ߪ��ﶵ�C

  • SkipForwards=1.2.3.4:5.6.7.8
    �w�]�ȡG�L

    ���קK�`����e�A�A���i�H�N���쪺��e�T���A��e�X�h(���� primary �� alternate GK ���@��)�C�ڭ̨ϥΨ�ؾ���ӿ�O�O�_����e�T���A�Ĥ@�O�d�ݰT���O�_�]�t�Y�@�S�w���A�A�ӬO�ݰT���O�_�q���ﶵ���w�� IP �e�L�ӡC

  • StatusPort=7000
    �w�]�ȡG7000

    ���w�ΨӺʬ� Gatekeeper �����A�ɭ����𸹡C �Ӹ`�Ѩ� �ʬ� �@�`�C

�j�h�ƪ��ϥΪ̤��ݭn���H�U���]�w�C�o�ǥD�n�O�ΨӰ������աA�άO�D�`�S�������p�U�ϥΡC

  • UseBroadcastListener=0
    �w�]�ȡG1

    �w�q�O�_�����s���� RAS �ШD�C�p�G�Ʊ�b�P�@�x���������P���ɭ����椣�P�� Gatekeeper ��{�A�i�N���ﶵ�����C

  • UnicastRasPort=1719
    �w�]�ȡG1719

    Gatekeeper �� RAS �𸹡C

  • MulticastPort=1718
    �w�]�ȡG1718

    Gatekeeper �� RAS �s���𸹡C

  • MulticastGroup=224.0.1.41
    �w�]�ȡG224.0.1.41

    Gatekeeper �� RAS �s���q�D��m�C

  • EndpointSignalPort=1720
    �w�]�ȡG1720

    ���I���w�]�H���q�D�𸹡C

  • ListenQueueLength=1024
    �w�]�ȡG1024

    TCP �i�����s�u����C���סC

  • SignalReadTimeout=1000
    �w�]�ȡG1000

    ���A�ɭ��q�D���O�ɮɶ��A��쬰�@���C

  • StatusReadTimeout=3000
    �w�]�ȡG3000

    �H���q�D(Q.931)���O�ɮɶ��A��쬰�@���C

Section [RoutedMode]

�����I�o�X�q�ܽШD�ɡA�q�ܪ��H���ǰe���覡����ءC�Ĥ@�غ٬������H���Ҧ��A�o�ӼҦ��U�H�������e����ܪ����I�C�ĤG�غ٬����ѫH���Ҧ��A���ؼҦ��U�H���|�g�� Gatekeeper ��e����ܪ����I�C�ĥΦ�ثH���Ҧ��O�� Gatekeeper �ӨM�w�C

�b���ѫH���Ҧ��U�AGatekeeper �٥i�H��ܬO�_�A��e H.245 ����q�D�A�H�λy���B�v���θ�ƪ��޿�q�D�C�]���l�ͥX�U�C�Ҧ��G

���p�@

����e�C�]�N�O�AH.245 �q�D���޿�q�D�ҥѨ�Ӻ��I�����إߡC

���p�G

��e H.245 ����q�D�A���޿�q�D���Ѩ�Ӻ��I�����إߡC�o�ر��p�٬� H.245 ���ѼҦ��C

���p�T

�Ҧ��q�D�ҥ� Gatekeeper ��e�A�]�A�y���B�v���� RTP/RTCP ��T�A�H�� T.120 ����Ƴq�D�C�o�ر��p�U�A��Ӻ��I�����S���������q�H�q�A�]���S�٬� H.323 �N�z��(Proxy)�A�i�����@�� H.323 �� H.323 ���h�D��(gateway)�C

���p�`�w�q�P�H�����ѼҦ��������@�ǿﶵ�A�]�A���p�@�ΤG�C���p�T���ﶵ�w�q�b �U�@�p�`�C���`�Ҧ����]�w���i�b����ɴ��z�L reload ���O�վ�C

  • GKRouted=1
    �w�]�ȡG0

    �O�_�Ұʸ��ѫH���Ҧ��C

  • H245Routed=1
    �w�]�ȡG0

    �O�_�Ұ� H.245 ���ѼҦ��C���M�A�u���b GKRouted=1 �ɤ~���ġC

  • CallSignalPort=0
    �w�]�ȡG1721

    �q�ܫH���ҨϥΪ��𸹡A�w�]�O 1721�C�ڭ̤��ϥ� H.323 �W�w�� 1720�A�]���A�i�H�b�P�@�x�����W�P�ɰ��� Gatekeeper �� H.323 ���I�{���C�Y�]�� 0 �h�|����@�ӥi�Ϊ��𸹡C

  • CallSignalHandlerNumber=2
    �w�]�ȡG1

    ���w�H���B�z�����ƥءC�Y�A�� Gatekeeper �t��ܭ��A�A�i�H�յۼW�[���ƥإH�ﵽ�IJv�C�`�N�{������ᦹ�ƥضȯ�W�[�����֡C�p�G�A�����D�ӳ]�h�֡A�N�]���A�����W�� CPU �ƥ�(�]�N�O�A�� CPU �������N�]�� 2)�C

  • AcceptNeighborsCalls=1
    �w�]�ȡG1

    ���}�o�ӿﶵ���ܡAGatekeeper �|�����Ӧ۾F�� Gatekeeper �άO�W�h Gatekeeper ���i�ۤv���ϰ�A�e�D�O Setup ���� destinationAddress ���ŦX�Y�@�w���U�����I�C���~�AGatekeeper �ٷ|�Υ��ۤv���H����}��i�^�� LRQ �� LCF ���C�o���ܡA�b GK-GK ���q�ܤ��H���|�g�ѲĤG�� Gatekeeper ����e�C�]���ĤG�� Gatekeeper �i�H���T���b CDR ���O���q�ܮɶ��C

  • AcceptUnregisteredCalls=1
    �w�]�ȡG0

    ���}�o�ӿﶵ���ܡAGatekeeper �|�������N�����U�����I���q�ܶi�ӡC���L�A�o�N�ް_�w���W���ü{�C���D�A�������O�i�H�����A�_�h���n�����}�ҳo�ӿﶵ�C

  • RemoveH245AddressOnTunneling=1
    �w�]�ȡG0

    �Y�Ǻ��I�|�b Q.931 �� UUIE ��줤�]�t h245Address�A�P�ɤS�]�w h245Tunneling �X���C���M�o�O�X�k���A�M�Ӧb�Y�Ǥ��}����@�W�|�ɭP���q�ʪ����D�C�p�G���}���ﶵ�AGatekeeper �|�b h245Tunneling �X���Q�]�w�ɲ��� h245Address ���C�]���N���ϥt�@���I���d�b tunnelling ���Ҧ��A���קK���q�ʪ����D�C��ij�N���ﶵ���}�C

  • RemoveCallOnDRQ=0
    �w�]�ȡG1

    �������ﶵ�ɡAGatekeeper ���|�b���� DRQ �ɲ����ӳq�ܪ������A�ӶȦb���� Release Complete �ɤ~�|�����C�o�קK�F�Y�ǥi�઺�v�t���p(race condition)�C ���M���ﶵ�Ȧ��b���ѼҦ��U�~���N�q�A�]���b�����Ҧ��U�AGatekeeper �ȷ|���� DRQ�C

  • DropCallsByReleaseComplete=1
    �w�]�ȡG0

    �ھ� H.323 �W��ѡAGatekeeper �i�H�ǥѰe�X RAS DisengageRequest (DRQ) ���T���q�����I���_�@�ӳq�ܡC�M�ӡA�Y�Ǥ��}�����I�|�������T���C�Y�O���}���ﶵ�AGatekeeper �|��e Q.931 Release Complete �ӱj�����_�q�ܡC�p�G�A�o�{�q Gatekeeper �L�k�j�����_�q�ܡA�i�H���ե��}���ﶵ�C

  • SendReleaseCompleteOnDRQ=1
    �w�]�ȡG0

    �b�q�ܵ����ɡA���I�|�P�ɳz�L Q.931 �e�X Release Complete�A�H�γz�L RAS �e�X DRQ�C���i��]�� DRQ ���Q����B�z�A�ɭP Gatekeeper �����H���q�D�A�Өϱo Release Complete �L�k�Q�e��t�@���I�C�Y�Ǻ��I(�Ҧp Cisco CallManager)�Y�Ϸ��H���q�D�����ɤ]���|�۰ʤ��_�q�ܡA�ӾɭP���D�A�Ҧp���ϵo�ܺݱ��_�F�A���ܺݤ������T�x�C�N���ﶵ���}�i�� Gatekeeper �b���� DRQ �������H���q�D�e�D�ʰe�X Release Complete�C

  • SupportNATedEndpoints=1
    �w�]�ȡG0

    �O�_���\���I�q NAT ���A���᭱�ӵ��U�C�p�G���}���ܡAGatekeeper �|�N Q.931 �� H.245 �q�D���� IP ��}�ഫ�� NAT ���A���� IP ��}�C

    GnuGK 2.0.2 �� NAT ���䴩�w�j�T�ﵽ�C�A�L�ݦA�ק�νվ� NAT ���A���A�u�ݱN���I���U�� Gatekeeper �W�A�Y�i���q�ܥX�h�C

  • ScreenDisplayIE=MyID
    �w�]�ȡG�L

    ��� Q.931 ���� DisplayIE �����w�ȡC

  • ScreenCallingPartyNumberIE=0965123456
    �w�]�ȡG�L

    ��� Q.931 ���� CallingPartyNumberIE �����w�ȡC

  • ForwardOnFacility=1
    �w�]�ȡG1

    �Y���}���ﶵ�A������z�Ѭ� callForwarded �� Q.931 Facility �T���ɡAGatekeeper �N�|�����N Setup �T����e���Q�౵�����I�A�ӫD�N�T���^�ǵ��I�s�ݡC�ѩ�Y�ǹ�@�����㪺���I�L�k�B�z Q.931 Facility callForwarded�A���}���ﶵ�i�ѨM�����D�C

  • ShowForwarderNumber=0
    �w�]�ȡG0

    �O�_�N�Ӹܸ��X�令�౵�̪����X�C�q�`�O���F�p�O���ت��C�Ȧ��b ForwardOnFacility=1 �~���N�q�C

  • Q931PortRange=20000-20999
    �w�]�ȡG0 (���N)

    ���w Q.931 �H���q�D�ϥΪ� TCP �𸹽d��C�`�N���d��N����i�P�ɳq�ܪ��ƶq�C

  • H245PortRange=30000-30999
    �w�]�ȡG0 (���N)

    ���w H.245 ����q�D�ϥΪ� TCP �𸹽d��C�`�N���d��N����i�P�ɳq�ܪ��ƶq�C

Section [Proxy]

���`�w�q Gatekeeper �@�� H.323 proxy ���@�ǯS�ʡC�b proxy �Ҧ��U�AGatekeeper �N��e�Ҧ��q�o�ܺݨ���ܺݪ��Ҧ���ơA�]����Ӻ��I�����S���������q�H�C�p�G�A���@�Ǻ��I��� NAT ���A������ϥΨp�� IP�A�Ӧ��Ǻ��I�b NAT �~�ϥΤ��� IP ���ܡAproxy �Ҧ��N��A�D�`���ΡC

GNU Gatekeeper �䴩��e�ǰe�n���μv���� RTP/RTCP �q�D�A�H�ζǰe��ƪ� T.120 �q�D�C���׬O�z�L�ֳt�s��(fast-connect)�{�ǩάO H.245 tunnelling �Ҧ��}�Ҫ��޿�q�D������䴩�C

�Ъ`�N�A�n�� proxy �Ҧ����Q�B�@�AGatekeeper ��o�ܺݩM���ܺݨ��䪺���������n���������s�u�C

  • Enable=1
    �w�]�ȡG0

    �O�_�}�� proxy �Ҧ��C���M�A�������ϥ� �e�@�`���Ъ����ѫH���Ҧ��C�A�������w�ϥ� H.245 ���ѡAGatekeeper �|�b���n�ɦ۰ʨϥΡC

  • InternalNetwork=10.0.1.0/24
    �w�]�ȡG�L

    �w�q���������Ϭq�C�i���w�h�Ӻ��q�A�H�����γr���Ϲj�C�Ȧ��b�o�ܺݤΨ��ܺݨ䤤���@���o�̩ҩw�q�����������Ϭq�A�ӥt�@�Ӧ�󤺳��������~�ɡAproxy �Ҧ��~�|�}�ҡC�p�G�����w�A�Ҧ����q�ܳ��|�ϥ� proxy �Ҧ��C

    �榡�G

    InternalNetwork=network address/netmask[,network address/netmask,...]

    �䤤 netmask �����i�� . �O���� CIDR ���ܪk�A�p�U�ҩҥܡG

    �d�ҡG

    InternalNetwork=10.0.0.0/255.0.0.0,192.168.0.0/24

  • T120PortRange=40000-40999
    �w�]�ȡG0 (random)

    ���w T.120 �q�D�� TCP �𸹽d��C�`�N���d��N����i�P�ɳq�ܪ��ƶq�C

  • RTPPortRange=50000-59999
    �w�]�ȡG10000-59999

    ���w RTP/RTCP �q�D�� UDP �𸹽d��C�`�N���d��N����i�P�ɳq�ܪ��ƶq�C

  • ProxyForNAT=1
    �w�]�ȡG1

    �Y�O�q�ܪ��䤤�@�Ӻ��I��� NAT ����A�O�_�ϥ� proxy �Ҧ��C�b�����p�U�ϥ� proxy �Ҧ��N�T�O RTP/RTCP �q�D�i��L NAT �Ӥ��ݭק蠟�C�M�ӡA��� NAT ���᪺���I�����ϥΦP�@�� port �Ӷǰe�α��� RTP/RTCP�C�Y�ǹ�@�����D�����I���ŦX�o�ӫe���A�o�ɧA�u�������o���\��A���� NAT ���A��e RTP/RTCP�C

  • ProxyForSameNAT=0
    �w�]�ȡG1

    �p�G�q��������I���P�@�� NAT ����A�O�_�ϥ� proxy �Ҧ��C�@��ӻ��A�L�ݶ}�ҳo���\��A�]���q�`�b�P�@�� NAT ���᪺���I�i�H�����q�T�C

Section [GkStatus::Auth]

�w�q���A�ɭ����s���v���C

  • rule=allow
    �w�]�ȡGforbid

    �i�έȦ�

    • forbid - �����\����s�u�C
    • allow - ���\����s�u�C
    • explicit - �z�L ip=value ���覡���T���w���� IP �i�H�s�u�A���Ǥ���C�䤤 ip �N�O����ť�ݪ� IP�A�� value �i�� 1,0�Ballow,forbid �άO yes,no�C�p�G�䤣������� ip �h�ϥ� default�C
    • regex - ��ť�ݪ� IP ���ŦX���B���w�����W���ܦ��C

      �d�ҡG

      �Y�����\ 195.71.129.0/24 �� 195.71.131.0/24 ���q�� IP �i�H�s�u�A�i�]�w

      regex=^195\.71\.(129|131)\.[0-9]+$

    • password - �ϥΪ̶��H�A�����W�٩M�K�X�ӵn�J�C�W�٩M�K�X���榡�P [Password] �@�`�ۦP�C

    ���~�A�o�dzW�h�ٯ�H "|" (��) �� "&" (�B) �ۤ��զX�C�Ҧp�G

    • rule=explicit | regex
      �Ȥ�� IP ���ŦX explicit �� regex ���W�h�C
    • rule=regex & password
      �Ȥ�� IP ���ŦX regex ���W�h�A�åB�H�W�٩M�K�X�ӵn�J�C

  • default=allow
    �w�]�ȡGforbid

    �Ȧb rule=explicit �ɱĥΡC

Section [RasSrv::GWPrefixes]

���`���w���� E.164 ���X����e����w���h�D���C

�榡�G

gw-alias=prefix[,prefix,...]

���ܱN�Ҧ��H���B���w���e�m�X�}�Y�����X��e�ܬY�@�֦��� alias ���h�D���A�Ъ`�N�A�����H�h�D���� alias �ӫ��w�A���i�� IP�C

�d�ҡG

test-gw=02,03

Section [RasSrv::RewriteE164]

���`�w�q dialedDigits (E.164 ���X)����g�W�h�C

�榡�G

[!]original-prefix=target-prefix[,target-prefix,...]

�Y�Ҽ������X�H original-prefix �}�Y�A�N�Q��g�� target-prefix�C�i���w�h�ا�g�覡�AGatekeeper �|����䤤�@�ءC�p�G�b original-prefix ���e�[ `!'�A�h�N�q��n�ۤϡC

�d�ҡG

08=18888

�Y�� 08345718 �N�Q��g�� 18888345718�C

�ﶵ�G

  • Fastmatch=08
    �w�]�ȡG�L

    �ȧ�g�H���}�Y�����X�C

Section [RasSrv::PermanentEndpoints]

���`�A�i�H��J���䴩 RAS �����I�A�άO��J�A���Ʊ�|�L���Q�𱼪����I�C�o�̫��w�����I�O���N�|�@���O���b Gatekeeper �����U���椤�C���L�A�A���i�z�L���A�ɭ���ʲ������C

�榡�G

IP[:port]=alias[,alias,...;prefix,prefix,...]

�d�ҡG

�h�D���G

10.0.1.5=Citron;009,008
�׺ݾ��G
10.0.1.10:1720=700

Section [RasSrv::Neighbors]

�p�G ARQ �����ت��a���s�b�� Gatekeeper �Һ޲z���ϰ�AGatekeeper �|���հe LocationRequest (LRQ) ��F�� gatekeeper �߰ݡA�o�ǾF�� gatekeeper �٬��� Gatekeeper �� neighbors�CGatekeeper �|�߰ݨ��� neighbors ���M�󸹽X�O�_�ŦX�� neighbor ���e�m�X�C�Y�e�m�X�� ``*'' ���ܳ��ŦX�C�ثe�@�� neighbor �u����w�@�ӫe�m�X�C

�t�@�譱�AGatekeeper �ȷ|�^���q���`�w�q�� neighbors �e�Ӫ� LRQ�C�A�i�H���w�Ū��e�m�X�A�o�ر��p�U Gatekeeper ���|�e LRQ �쨺�� neighbor�A���|�������� neighbor �e�Ӫ� LRQ�C

password ���Ψӻ{�� LRQ �O�_�T�q neighbors �e�ӡC�� [Gatekeeper::Auth] ���Բӻ����C

�榡�G

GKID=ip[:port;prefix;password;dynamic]

�d�ҡG

GK1=192.168.0.5;*
GK2=10.0.1.1:1719;035;gk2
GK3=gk.citron.com.tw;;gk3;1

Section [RasSrv::LRQFeatures]

�w�q LRQ �� LCF ���@�ǯS�ʡC

  • NeighborTimeout=1
    �w�]�ȡG2

    ���� neighbors �^�����O�ɮɶ��A�H�������C�p�G�W�L�ɶ���������^���AGatekeeper �|�^�� ARJ ���촣�X�ШD�����I�C

  • ForwardHopCount=2
    �w�]�ȡG�L

    �p�G Gatekeeper ���쪺 LRQ �ت��a�]���b���ϰ줤�A���i�N��A��e�ܨ䥦�� neighbors�C�b��e�e�AGatekeeper �|�N LRQ ���� hopCount ��@�C�Y�O hopCount �w��F 0�A�h���|�A��e�C�p���~���|�y�� LRQ �Q�L�����e�U�h�C���ﶵ�w�q LRQ ����e���ơC�`�N���v�T���O LRQ ���o�e�ݦӫD��e�ݡC

  • AlwaysForwardLRQ=1
    Default: 0

    �j�� Gatekeeper ��e LRQ�A�Y�ϸ� LRQ �����t hopCount �����C�ϥΦ��ﶵ�ɽФp�ߡA�_�h�i��ɦ� LRQ �`���j��C

  • AcceptForwardedLRQ=1
    �w�]�ȡG1

    �O�_�����q neighbors ��e�Ӫ� LRQ�C

  • IncludeDestinationInfoInLCF=0
    �w�]�ȡG1

    Gatekeeper �|�b�^���� LCF ���]�t destinationInfo �� destinationType ���A�� neighbor gatekeeper �i�H�x�s�U�ӡC�p���U���N���ΦA�� LRQ �Ӹ߰ݤF�C�M�ӡA�Y�Ǩ䥦�t�P�� gatekeeper �|�~�Φ���T�A�ӳy�����q�ʪ����D�C�p�G�A�P�䥦�t�P�� gatekeeper ���q�ɾD�J���D�A�i�յ��������ﶵ�C

  • CiscoGKCompatible=1
    �w�]�ȡG0

    �n�D Gatekeeper �b LRQ ���]�t�P Cisco gatekeepers �ۮe�� NonStandardParameter ��T�C

Section [RasSrv::RRQFeatures]

  • AcceptEndpointIdentifier=1
    �w�]�ȡG1

    �O�_�������I�ۦ�� RRQ �����w�� endpointIdentifier�C

  • AcceptGatewayPrefixes=1
    �w�]�ȡG1

    �h�D���i�z�L terminalType �̪� supportedPrefixes �V Gatekeeper ���U�e�m�X�C���ﶵ���w Gatekeeper �O�_�n�����h�D���ۦ���U���e�m�X�C

Section [RasSrv::ARQFeatures]

  • ArjReasonRouteCallToSCN=0
    �w�]�ȡG1

    �Y���}���ܡAGatekeeper �N�ڵ��q�h�D�����ӦA���^�h���q�ܡA�z�ѬO routeCallToSCN�C

  • ArjReasonRouteCallToGatekeeper=1
    �w�]�ȡG1

    �Y���}���ܡA�b���ѼҦ��U Gatekeeper �b����^�q ARQ �ɭY�b�q�ܪ��椤�S���������O���A���q�ܱN�Q�ڵ��A�z�ѬO routeCallToGatekeeper�C���I�b��������ߨ赲���q�ܡA�í��s�e�q�ܽШD�� Gatekeeper�C�o�N�O���A�o�ܺݤ���¶�L Gatekeeper �Ӫ����s�ܨ��ܺݡC

  • CallUnregisteredEndpoints=0
    �w�]�ȡG1

    �Y���}���ﶵ���ܡAGatekeeper �|�������I�� ARQ ���z�L destCallSignalAddress �ۦ���w���ܺݦ�}�A���צ���}�O�_�ݩ�Y�@�w���U�����I�C�o���ܻ��A�A�i�H���ժ����w���ܺݪ� IP ��}�C

  • RemoveTrailingChar=#
    �w�]�ȡG�L

    �Y ARQ �� destinationInfo ���̫�@�Ӧr���P���ﶵ���w���ۦP�A�h�������C�Ҧp�A�Y�Ǻ��I�|���~���N�����r���p `#' ��i destinationInfo�A�A�i�H�z�L���ﶵ�������C

Section [CallTable]

  • GenerateNBCDR=0
    �w�]�ȡG1

    ���ͱq neighbor �ϰ쥴�Ӫ��q�ܩ��ӡC�ѩ�o�ܺݤ��ݩ󦹰ϰ�A�� endpoint ID �|��ܬ��Ū��C

  • GenerateUCCDR=0
    �w�]�ȡG0

    ���ͥ����q�q�ܪ��q�ܩ��ӡC�q�`�ȨϥΩ󰻿����ت��C�Ъ`�N�q�ܱ��q���w�q���A�b���ѼҦ��U�A�H Gatekeeper ���� Q.931 Connect �T�����ǡC�b�����Ҧ��U�A�q���`�O�{���w���q�C

  • DefaultCallTimeout=3600
    �w�]�ȡG0

    �w�]���q���_�u�ɶ��A�H�������C�Y�]�� 0 ���ܨ������\��C

Section [Endpoint]

GNU Gatekeeper �i�H���U�ܨ䥦�� Gatekeeper �����@�Ӻ��I�C�Q�Φ��@�S�ʡA�A�i�H�������إ� Gatekeeper �����h�[�c�C

  • Gatekeeper=10.0.1.1
    �w�]�ȡGno

    �w�q�W�h�� Gatekeeper ��m�C���n���U��A�ۤv��A���D�A�ƤF�C�Y�]�� no �i�������@�\��C

  • Type=Gateway
    �w�]�ȡGGateway

    �w�q���I�������C�i�]�� Gateway �� Terminal�C

  • H323ID=CitronProxy
    �w�]�ȡG<Name>

    ���w���I�� H.323 ID�C�i���w�ƭӡA�H�r���j�}�C

  • E164=18888600000,18888700000
    �w�]�ȡG�L

    ���w���I�� E.164 (dialedDigits) aliases�C�]�i���w�ƭӡA�H�r���j�}�C

  • Password=123456
    �w�]�ȡG�L

    ���w�e���W�h Gatekeeper ���K�X�C�Ҧ��e��W�h Gatekeeper �� RAS �ШD���|�N�K�X�]�t�b cryptoTokens ��줤�C�Y�����w�A�h���|�[�W cryptoTokens ���C

    �t�~�A���K�X�]��e�� neighbors �� LRQ ���C

  • Prefix=188886,188887
    �w�]�ȡG�L

    ���U��W�h Gatekeeper ���e�m�X�C�Ȧ��b������ Gateway �ɤ~���ġC

  • TimeToLive=900
    �w�]�ȡG�L

    ��ij���U���ɮġC���L�u�����ɮĬO�ѤW�h Gatekeeper �b RCF �����w���C�� �e���������C

  • RRQRetryInterval=10
    �w�]�ȡG10

    �p�G�e�X�� RRQ ���o��^���A�j�h�[�A���e�@���A�H�������C

  • ARQTimeout=2
    �w�]�ȡG2

    �w�q ARQ �ШD���O�ɮɶ��C

  • UnregisterOnReload=1
    �w�]�ȡG0

    �w�q�l Gatekeeper �b���� reload ���O�ɬO�_�������A���s���U�ܤW�h Gatekeeper�C

  • NATRetryInterval=60
    �w�]�ȡG60

    �w�q NAT socket �����ծɶ��A��쬰���C�p�G�A�����աA�ιw�]�ȴN�n�C

  • NATKeepaliveInterval=86400
    �w�]�ȡG86400

    �w�q NAT socket �����Ǯɶ��A��쬰���C�p�G�A�����աA�ιw�]�ȴN�n�C

Section [Endpoint::RewriteE164]

�@���A���w���U��W�h Gatekeeper ���e�m�X��A�W�h Gatekeeper �|�N�H���e�m�X�}�Y�������e��U�h Gatekeeper�C�U�h Gatekeeper �i�H�ڦ��`�w�q���W�h�ӧ�g�ت��a���X�C�۹諸�A�ѤU�h Gatekeeper �o�X��W�h���q�ܤ]�|�g�Ѧ��`��g��ӷ����X�C

�榡�G

external prefix=internal prefix

�Ҧp�A�A���p�U���t�ΡG

                        [Parent GK]
                        ID=CitronGK
                        /         \
                       /           \
                      /             \
                     /               \
                [Child GK]          [EP3]
                ID=ProxyGK          E164=18888200
                Prefix=188886
                /       \
               /         \
              /           \
           [EP1]         [EP2]
           E164=601      E164=602

�w�q�o�˪���g�W�h�G

188886=6

�Y EP1 �� 18888200 �I�s EP3�A�b Q.931 Setup ���� CallingPartyNumber ���|�Q��g�� 18888601�C�ۤϪ��AEP3 �i�� 18888601 �� 18888602 �өI�s EP1 �� EP2�C���y�ܻ��A�C�@�ӵ��U�b Child GK �W�}�Y���X�� '6' �����I�A����U�b Parent GK �����I�ӻ��A�ݰ_�ӴN���O�������U�b Parent GK �B�}�Y���X��'188886'�C

���p�`�P RasSrv::RewriteE164 ���]�w�L���A�ӥB��̷|�u���ͮġC

Section [Gatekeeper::Auth]

���`�w�q Gatekeeper ���{�Ҿ���C

�y�k�G

authrule=actions

 <authrule> := SimplePasswordAuth | AliasAuth | PrefixAuth | ...
 <actions>  := <control>[;<ras>,<ras>,...]
 <control>  := optional | required | sufficient
 <ras>      := GRQ | RRQ | URQ | ARQ | BRQ | DRQ | LRQ | IRQ

�C�@���W�h�����T�ӵ��G�Gok�Bfail �� next�C
  • ok - ���Ҳջ{�i�Y�ӽШD�C
  • fail - �{�ҥ��������^�ڡC
  • next - ���ҲյL�k�M�w�O�_�i�����Y�ӽШD�C
�C�@�W�h�]���T�ؤ覡�i�H����G
  • optional - �p�G���ҲյL�k�M�w�O�_�i�����Y�ӽШD�A���N�Q�e��U�@�ҲաC
  • required - �Ҧ��ШD�����q�L���Ҳժ��{�ҡA�_�h�N�Q�^�ڡC�q�L�ШD���{�ұN�Q�e��U�@�ҲաC
  • sufficient - �p�G�Y�ӽШD�Q�{�i�A�h���N�Q�����A�_�h�N�Q�^�ڡC�o���ܡA�o�ӼҲըM�w�ШD���̫�R�B�C�b���Ҳդ��ᤣ���A��䥦�ҲաA�]�����N���|�Ψ�C

�ثe�䴩���Ҳզ��G

  • SimplePasswordAuth/MySQLPasswordAuth/LDAPPasswordAuth/ExternalPasswordAuth

    ���t�C���Ҳ��ˬd RAS �T������ tokens �� cryptoTokens ���A�䤤�ܤ֭n�]�t generalID �� password ������C�Y�O cryptoTokens ���A�ثe�Ȥ䴩 MD5 �s�X�� cryptoEPPwdHash �аO�A�H�Υ� HMAC-SHA1-96 �s�X�� nestedcryptoToken �аO(�����w�� libssl)�C

    �� SimplePasswordAuth�B MySQLPasswordAuth�B LDAPPasswordAuth �� ExternalPasswordAuth �ҲզӨ��AID �� password ���O�s�� [Password] �@�`�AMySQL ��Ʈw�BLDAP ��Ʈw�H�αq�~���{�����o�C�n�[�W�䥦��ݸ�Ʈw���䴩�]�ܮe���C

  • NeighborPasswordAuth

    �ȨϥΩ�{�� [RasSrv::Neighbors] �̩w�q�� neighbors �Ӥw�C

  • AliasAuth/MySQLAliasAuth/LDAPAliasAuth

    ���Ҳնȯ�ΨӰ� RegistrationRequest (RRQ) ���{�ҡC���I�� IP �����ŦX�Y�@���w���˦��CAliasAuth �Ҳժ��˦��w�q�� [RasSrv::RRQAuth] �@�`�AMySQLAliasAuth �Ҳթw�q�� [MySQLAliasAuth]�A�ӹ� LDAPAliasAuth �ҲզӨ��Aalias �� IP �����w�q�� LDAP ���ؤ��C

  • PrefixAuth

    ����s GkAuthorize�C�㦳�Y�@�e�m�X�� RAS �ШD�Ө��A�� IP �� aliases �����ŦX�Y�@���w���˦��C�� [PrefixAuth] ���Բӻ����C�ثe���Ҳնȯవ AdmissionRequest (ARQ) �� LocationRequest (LRQ) ���{�ҡC

�t�~�A�A�i�H�]�w�Y�@�Ҳեu�w��Y�� RAS �T�����ˬd�C�Ҧp�U�Ҥ��ASimplePasswordAuth �Q�w�� optional�A�Ȱw�� RRQ �� ARQ ���ˬd�C�Y�Y�� RRQ ���Q SimplePasswordAuth �{�i�A�A��� AliasAuth �Ҳ��ˬd�C�w�]�O�����Ҧ����ШD�C

�d�ҡG

SimplePasswordAuth=optional;RRQ,ARQ
AliasAuth=sufficient;RRQ
default=allow

Section [Password]

���`�w�q SimplePasswordAuth �Ҳժ��ϥΪ� ID �αK�X�C�Шϥ� `make addpasswd' ���� addpasswd �u��{���ӥ[�J ID �αK�X�C

�Ϊk�G

addpasswd config userid password

�ﶵ�G

  • KeyFilled=123
    �w�]�ȡG0

    �w�q�[�K����ȡC�`�N�p�G�A���]���Ȫ��ܡA�Ҧ����K�X���������s���͡C

  • CheckID=1
    �w�]�ȡG0

    �n���n�ˬd aliases �M ID �O�_�ۦP�C

  • PasswordTimeout=120
    �w�]�ȡG-1

    SimplePasswordAuth �t�Ϊ��Ҳշ|�N�d��L���K�X�Ȧs�U�ӥH�[�֤U�����ˬd�C���ﶵ�w�q�Ȧs���ɶ����u�A�H�������C�Y�]�� 0 ���������K�X�Ȧs�\��A�]���t�Ȫ��ܪ��ܤ��M���Ȧs���K�X�C

Section [MySQLAuth]

�w�q MySQLPasswordAuth �ҲըϥΪ���Ʈw�B����M���H���o���ϥΪ� ID �M�K�X�C

  • Host=localhost
    �w�]�ȡGlocalhost

    MySQL ���A�����D���W�٩� IP�C

  • Database=billing
    �w�]�ȡGbilling

    ���s������Ʈw�C

  • User=cwhuang
  • Password=123456

    �ϥΦ��W�٩M�K�X�ӳs����Ʈw�C

  • Table=customer

    ��m�ϥΪ� ID �M�K�X������C

  • IDField=IPN

    �ϥΪ� ID �����W�١C

  • PasswordField=Password

    �K�X�����W�١C

  • ExtraCriterion=Kind > 0
    �w�]�ȡG�L

    ���w�B�~���d�߱���C

�W�����]�w�N���ͦp�U�� SQL �d�߫��O�G

SELECT $PasswordField FROM $Table WHERE $IDField = %id [AND $ExtraCriterion]

Section [ExternalPasswordAuth]

���w�@�~���{���H���o�K�X�����{�ҡC���{�����q stdin ��J ID �ñq stdout ��X�K�X�C

  • PasswordProgram=/usr/local/bin/getpasswd
    Default: N/A

    �~���{���������ɦW�C

Section [RasSrv::RRQAuth]

���w AliasAuth �Ҧ��{�ҥΪ��˦��C�����H RRQ ���� alias ����ȨӬd�ߡA�Y��쪺�ܫh���θӳW�h�M�w�O�_������ RRQ�C�W�h�i�H�]�t�H `&' �j�}���h�ӱ���C

�y�k�G

<authrules> :=  empty  |  <authrule> "&" <authrules>

  <authrule>  := <authtype> ":" <authparams>
  <authtype>  := "sigaddr" | "sigip"
  <autparams> := [!&]*

<authparams> �O�����N�q�� <authtype> �өw�G

  • sigaddr - �� ``PrintOn(ostream)'' ��ܪ���m���ŦX���W���ܦ��C

    �d�ҡG

    sigaddr:.*ipAddress .* ip = .* c0 a8 e2 a5 .*port = 1720.*
    

  • sigip - �S���� `sigaddr'�A�H�@�몺 IP ���ܪk�Ӫ��ܡG ``byteA.byteB.byteC.byteD:port''.

    �d�ҡG

    sigip:192.168.242.165:1720
    

  • allow - ���\�� alias ���U�A���� IP ����C
  • deny - �ڵ��� alias ���U�A���� IP ����C

Section [MySQLAliasAuth]

�w�q MySQLAliasAuth �ҲըϥΪ���Ʈw�B����M���H���o�Y�@ alias ���{�Ҽ˦��C

  • Host=localhost
    �w�]�ȡGlocalhost

    MySQL ���A�����D���W�٩� IP�C

  • Database=billing
    �w�]�ȡGbilling

    ���s������Ʈw�C

  • User=cwhuang
  • Password=123456

    �ϥΦ��W�٩M�K�X�ӳs����Ʈw�C

  • Table=customer

    �d�ߪ�����C

  • IDField=IPN

    �ϥΪ� ID �����W�١C

  • IPField=Address

    IP �˦������W�١C

  • ExtraCriterion=Kind > 0
    �w�]�ȡG�L

    ���w�B�~���d�߱���C

�W�����]�w�N���ͦp�U�� SQL �d�߫��O�G

SELECT $IPField FROM $Table WHERE $IDField = %alias [AND $ExtraCriterion]

Section [PrefixAuth]

���`�w�q PrefixAuth �Ҳժ��{�ҳW�h�C�ثe�A���Ҳնȯ�Ψӻ{�� ARQ �� LRQ�C

�����A�̾� RAS �ШD���� destinationInfo ��̪ܳ����e�m�X�A�M��ھڥH�̲ŦX�����q�M�w�O�_�����ӽШD�C�p�G�䤣��A�����e�m�X�W�h�A�Ӧ����w default �ﶵ�A�h�̾� default �ӨM�w�A�_�h���ܴN�ھڼҲժ��]�w�M�w�N�ШD�൹�U�@�ҲթάO�����ڵ��C

�榡�G

prefix=authrule[|authrule|...]

�y�k�G

<authrule> :=  <result> <authrule>

  <result>    := deny | allow
  <authrule>  := [!]ipv4:<iprule> | [!]alias:<aliasrule>

�䤤 <iprule> �i���I���ܪk�� CIDR ���ܪk�A�� <aliasrule> �������W���ܪk�C�p�G�e���[ `!' �X�����ܷN�q�ۤϡC

�d�ҡG

555=deny ipv4:10.0.0.0/27|allow ipv4:0/0
5555=allow ipv4:192.168.1.1|deny ipv4:192.168.1.0/255.255.255.0
86=deny !ipv4:172.16.0.0/24
09=deny alias:^188884.*
ALL=allow ipv4:ALL

�b���]�w���A���F 10.0.0.0/27 ���q�~�Ҧ������I���i�H�� 555 ���D 5555 �}�Y�����X�C���F 192.168.1.1 �~ 192.168.1.0/24 ���q�Ӫ����I�����༷ 5555 �}�Y�����X�C���F 172.16.0.0/24 ���q�~�����I�����༷ 86 �}�Y�����X�C�� alias �}�Y�� 188884 �����I���༷ 09�C���~�Ҧ������γ��O���\���C

Section [GkLDAP::LDAPAttributeNames]

���`�w�q LDAP ��Ʈw�ϥΪ��ݩʦW�١C

  • H323ID

    ���I�� H.323 ID�C�b LDAP ��Ʈw�������ߤ@(�o�O����ڭ̿�� email �����w�]��)�C

  • TelephonNo

    ���I�� E.164 alias�C

  • voIPIpAddress

    LDAPAliasAuth �ҲեΥH��諸 IP ��m�C�ثe�u����w�@�ӭȡC

  • H235PassWord

    LDAPPasswordAuth �ҲեΥH��諸�K�X���C�ثe�u����w�@�ӭȡC

Section [GkLDAP::Settings]

���`�w�q LDAP ���A���ΫȤ�ݪ��@�ǰѼơC

  • ServerName
    �w�]�ȡGldap

    LDAP ���A��������W�١C

  • ServerPort
    �w�]�ȡG389

    LDAP ���A���� TCP ��(�q�`�O 389)�C

  • SearchBaseDN
    �w�]�ȡGo=University of Michigan, c=US

    LDAP ���A���𪬵��c���J�f�I�C�ȷ|�q���`�I���U�}�l�j�M�C

  • BindUserDN
    �w�]�ȡGcn=Babs Jensen,o=University of Michigan, c=US

    Gatekeeper �ΥH�s�� LDAP ���A�����ߤ@�W�١C�Y�����w�h�ϥΰΦW�d�ߡC

  • BindUserPW
    �w�]�ȡGReallySecretPassword

    �Y���w BindUserDN�A���b�����w�������K�X�C

  • sizelimit
    �w�]�ȡG0

    ��@�d�ߥi��^�Ǫ��̦h���G�C�]�� Gatekeeper �w���C���d�����ӥu���s�өΤ@�ӵ��G�A�ҥH���Ѽƫܤ֥Ψ�C

  • timelimit
    �w�]�ȡG0

    �d�ߪ��O�ɬ��ơC

Section [NATedEndpoints]

�z�פW Gatekeeper �|�۰ʰ������I�O�_��� NAT ����A�Ӱ��A�����B�m�C���Y�۰ʰ������ĮɡA�i�H�q���`�Ӥ�ʫ��w�C

�榡�G

alias=true,yes,1,...

�d�ҡG

���w���X�� 601 �����I��� NAT ����C

601=true

Section [CTI::Agents]

���`�Ψӳ]�w������C�A�N�Ӹܰe�ܥ~���{���M�w���ѡC�ҿת�������C�N���@�Ӻ��I�@�˥i�� H.323 ���O�W�өI�s�C

�������ݩ������C�� ARQ �ɡAGatekeeper �|�z�L status port �e�X RouteRequest�A�åB���ݥ~���{�����^���C�i�઺���G�� RouteReject�A���ܩڵ����@�q�ܡA�άO RouteToAlias�A�N���q�ܾɨ�ѥ~���{�����w�����X�C

�p�G���w���ɶ���������^���A�q�ܱN�����C

�ثe�C�@ Gatekeeper �W�ȯ���w�@�ӵ�����C�C

�������T���Φ^���Ш� �ʬ� �@�`�C

  • VirtualQueue
    �w�]�ȡG�L

    �w�q������C�� H.323 �O�W�C

  • CTI_Timeout
    �w�]�ȡG10

    ���� RouteRequest �^�����O�ɮɶ��C�Y�W�L�o�Ӯɶ����ܡA�|�e�X ARJ ����I�s�ݡC

5. ���A�ʱ�

5.1 ���A�ɭ�

���A�ɭ��O�@�ӥΨӺʵ��M���� gatekeeper ���~���ɭ��CGatekeeper �N�|�ǰe���󼷥��X�h���q�ܪ��T�����Ҧ������q���Τ�ݡA�åB�i�H�z�L�o�Ӭɭ��������O�C

�o�Ӭɭ��O�@��²�檺 TCP port (�w�]�O 7000)�A�A�i�H�ϥ� telnet �άO��L�����{���ӳs�u�C�t�@�Ӥ��P���Τ�ݵ{���d�ҧY�O Java GUI�A��٬� GkGUI�C

���ε{��

�A�n�Q�Ϊ��A�ɭ��Ӱ��Ǥ���ƨ��M��A�ۤv�A���o�̦��@�ǫ�ij�G

  • �ʵ��q�ܪ��p
  • �ʵ��w���U�����I
  • �ϧΤƨϥΪ̬ɭ�
    �Ѧ� GkGUI�C
  • �p�O���ε{��
    ���R�q�ܩ��ӰO�����T������e���p�O���ε{���C
  • �ɭ��~���X�R
    �Y�A���Q�o�G�Y�B�~�\�઺��l�X�A���N�ȵo�G�q�L���A�ɭ��D�n���֤߾���M�ɭ��ëO�d�~�b�p�K�����Y�i�C

�d��

���]�A��q�ܩ��ӰO��������åB�Q�n�b�T�w���j���妸���楦�̡C

�o�̦���²�檺 Perl script (gnugk_cdr.pl)�A���Ұ� gatekeeper �åB���ͤ@�Ӫ��A�ɭ���²��Τ�ݤl�{���A�åB�� CDRs �g�J��@�ӰO���ɤ��C

#!/usr/bin/perl
# sample program that demonstrates how to write the CDRs to a log file
use strict;
use IO::Socket;
use IO::Handle;

my $logfile = "/home/jan/cdr.log";
my $gk_host = "localhost";
my $gk_port = 7000;
my $gk_pid;

if ($gk_pid = fork()) {
        # parent will listen to gatekeeper status
        sleep(1);       # wait for gk to start
        my $sock = IO::Socket::INET->new(PeerAddr => $gk_host, PeerPort => $gk_port, Proto => 'tcp');
        if (!defined $sock) {
                die "Can't connect to gatekeeper at $gk_host:$gk_port";
        }
        $SIG{HUP} = sub { kill 1, $gk_pid; };   # pass HUP to gatekeeper
        $SIG{INT} = sub { close (CDRFILE); kill 2, $gk_pid; };  # close file when terminated

        open (CDRFILE, ">>$logfile");
        CDRFILE->autoflush(1);  # don't buffer output
        while (!$sock->eof()) {
                my $msg = $sock->getline();
                $msg = (split(/;/, $msg))[0];   # remove junk at end of line
                my $msgtype = (split(/\|/, $msg))[0];
                if ($msgtype eq "CDR") {
                        print CDRFILE "$msg\n";
                }
        }
        close (CDRFILE);
} else {
        # child starts gatekeeper
        exec("gnugk");
}

�ϧΤƨϥΪ̬ɭ�

�ثe���ƭӹϧΤƨϥΪ̫e�ݬɭ��A���O�Ѥ��P���H�̩γ��Ҷ}�o�C

  • Java GUI

    �� Jan Willamowius �Ҷ}�o�C�A�i�H�ʱ��q�L gatekeeper �����U�̩M�q�ܪ��p�C�� endpoint ���U�ƹ��k��ɱN�|�u�X�@�ӿ��C

    �o�ӹϧΤƨϥΪ̬ɭ�����b���� Java 1.0 ���j���������s�����W����C���w���]���A�ϧΤƨϥΪ̬ɭ������O��W����(standalone)���覡�A�άO�����b web ���A���W�A���O�� web ���A�������M gatekeeper �� IP �ۦP(�]�N�O�A�L�k�H���a���ɮת� applet �Φ��Ӱ���)�C

    ���{���i�q�U�C���}���o https://www.gnugk.org/h323gui.html�C

  • GkGUI

    �o�O�� �e�R��T�������q �Ҷ}�o���s Java �{���A�H��W���覡����A�ݭn Java 1.4�C�s�\��]�A�G

    • �P�ɥi�ʱ��h�� gatekeepers�C
    • ����˵��Ҧ��GButton List �M Tree List�C
    • �Բӳq�ܰO��(CDR)�M�έp��ơC
    • �i���ͪ��A�O���ɡC
    • ���P�����������I�ϥΤ��P���C��ӰϧO�C
    • �i�վ� gatekeeper �]�w�ɡC
    • �i�j��������I�����U�C
    • �x�s�M�C�L���A�O���ɤγq�ܩ��ӰO���C

    GkGUI �O�H GNU �q�Τ��@�\�i�Ҫ����v�Φ��o�G�A�i�q�U�C���}���o https://www.gnugk.org/h323develop.html#java�C

5.2 �R�O

help �� h �R�O�N�|��ܥX�Ҧ��i��o���R�O�M��C

  • Reload

    ���s���J�]�w�ɡC

  • Version, v

    ��ܪ����� gatekeeper ���@�~�t�θ�T�C

  • Statistics, s

    ��� gatekeeper ���έp��T�C

    �d�ҡG

    Statistics
    -- Endpoint Statistics --
    Total Endpoints: 21  Terminals: 17  Gateways: 4  NATed: 2
    Cached Endpoints: 1  Terminals: 1  Gateways: 0
    -- Call Statistics --
    Current Calls: 1 Active: 1 From Neighbor: 0 From Parent: 0
    Total Calls: 1539  Successful: 1076  From Neighbor: 60  From Parent: 5
    Startup: Fri, 21 Jun 2002 10:50:22 +0800   Running: 11 days 04:22:59
    ;
    

  • PrintAllRegistrations, r, ?

    ��ܩҦ��w���U�����I�C

    �榡�G

    AllRegistrations
    RCF|IP:Port|Aliases|Terminal_Type|EndpointID
    ...
    Number of Endpoints: n
    ;
    

    �d�ҡG

    AllRegistrations
    RCF|10.1.1.10:1720|800:dialedDigits=Wei:h323_ID|terminal|1289_endp
    RCF|10.0.1.43:1720|613:dialedDigits=Jacky Tsai:h323_ID|terminal|1328_endp
    RCF|10.0.1.55:1720|705:dialedDigits=Sherry Liu:h323_ID|terminal|1333_endp
    Number of Endpoints: 3
    ;
    

  • PrintAllRegistrationsVerbose, rv, ??

    ��ܩҦ��w���U���I���ԲӸ�T�C

    �榡�G

    AllRegistrations
    RCF|IP:Port|Aliases|Terminal_Type|EndpointID
    Registration_Time C(Active_Call/Connected_Call/Total_Call) <r>
    [Prefixes: ##] (gateway only)
    ...
    Number of Endpoints: n
    ;
    

    �d�ҡG

    AllRegistrations
    RCF|10.0.1.8:1720|Accel-GW2:h323_ID|gateway|1322_endp
    Wed, 26 Jun 2002 16:40:03 +0800 C(1/5/33) <1>
    Prefixes: 09,002
    RCF|10.1.1.10:1720|800:dialedDigits=Wei:h323_ID|terminal|1289_endp
    Wed, 26 Jun 2002 16:40:55 +0800 C(0/32/39) <1>
    RCF|10.0.1.66:1720|716:dialedDigits=Vicky:h323_ID|terminal|1425_endp
    Wed, 26 Jun 2002 16:40:58 +0800 C(1/47/53) <1>
    Number of Endpoints: 2
    ;
    

  • PrintCurrentCalls, c, !

    ��ܥثe�Ҧ����q�ܡC

    �榡�G

    CurrentCalls
    Call No. # | CallID | Call_Duration | Left_Time
    Dialed_Number
    ACF|Caller_IP:Port|Caller_EPID|CRV
    ACF|Callee_IP:Port|Callee_EPID|CRV
    ...
    Number of Calls: Current_Call Active: Active_Call From Neighbor: Call_From_Neighbor \
    From Parent: Call_From_Parent
    ;
    

    �d�ҡG

    CurrentCalls
    Call No. 29 | CallID bd c6 17 ff aa ea 18 10 85 95 44 45 53 54 77 77 | 109 | 491
    Dial 0953378875:dialedDigits
    ACF|10.0.1.49:1720|4048_CGK1|25263
    ACF|10.1.1.1:1720|4037_CGK1|25263
    Call No. 30 | CallID 70 0e dd c0 9a cf 11 5e 00 01 00 05 5d f9 28 4d | 37 | 563
    Dial 0938736860:dialedDigits
    ACF|10.0.1.48:1032|4041_CGK1|11896
    ACF|10.1.1.1:1720|4037_CGK1|11896
    Number of Calls: 2 Active: 2 From Neighbor: 0 From Parent: 0
    ;
    

  • PrintCurrentCallsVerbose, cv, !!

    ��ܥثe�Ҧ��q�ܪ��ԲӸ�ơC

    �榡�G

    CurrentCalls
    Call No. # | CallID | Call_Duration | Left_Time
    Dialed_Number
    ACF|Caller_IP:Port|Caller_EPID|CRV
    ACF|Callee_IP:Port|Callee_EPID|CRV
    # Caller_Aliases|Callee_Aliases|Bandwidth|Connected_Time <r>
    ...
    Number of Calls: Current_Call Active: Active_Call From NB: Call_From_Neighbor
    ;
    

    �d�ҡG

    CurrentCalls
    Call No. 48 | CallID 7d 5a f1 0a ad ea 18 10 89 16 00 50 fc 3f 0c f5 | 30 | 570
    Dial 0225067272:dialedDigits
    ACF|10.0.1.200:1720|1448_endp|19618
    ACF|10.0.1.7:1720|1325_endp|19618
    # Sherry:h323_ID|Accel-GW1:h323_ID|200000|Wed, 26 Jun 2002 17:29:55 +0800 <2>
    Number of Calls: 1 Active: 1 From NB: 0
    ;
    

  • Find, f

    �H alias �� prefix ���覡�ӷj�M�w���U�����I�C

    �榡�G

    Find Alias
    RCF|IP:Port|Aliases|Terminal_Type|EndpointID
    ;
    

    �d�ҡG

    f 800
    RCF|10.1.1.10:1720|800:dialedDigits=Wei:h323_ID|terminal|1289_endp
    ;
    f 801
    SoftPBX: alias 801 not found!
    

  • FindVerbose, fv

    �H alias �� prefix ���覡�ӷj�M�w���U���I���ԲӸ�T�C

    �榡�G

    FindVerbose Alias
    RCF|IP:Port|Aliases|Terminal_Type|EndpointID
    Registration_Time C(Active_Call/Connected_Call/Total_Call) <r>
    [Prefixes: ##] (gateway only)
    ;
    

    �d�ҡG

    fv 02
    RCF|10.0.1.100:1720|TFN:h323_ID|gateway|4037_CGK1
    Wed, 26 Jun 2002 17:47:29 +0800 C(0/84/120) <1>
    Prefixes: 02,09
    ;
    

  • UnregisterIP

    �j������Y�@�S�w IP �ΰ𸹺��I�����U�C

    �榡�G

    UnregisterIP IP[:Port]
    

    �d�ҡG

    UnregisterIP 10.0.1.31:1720
    URQ|10.0.1.31:1032|1326_endp|maintenance;
    SoftPBX: Endpoint 10.0.1.31:1720 unregistered!
    

  • UnregisterAlias

    �j������֦��Y�@ aliases ���I�����U�C

    �榡�G

    UnregisterAlias Alias
    

    �d�ҡG

    UnregisterAlias 601
    URQ|10.0.1.31:1032|1326_endp|maintenance;
    SoftPBX: Endpoint 601 unregistered!
    

  • UnregisterAllEndpoints

    �j������Ҧ����I�����U�C

    �榡�G

    
    

    �d�ҡG

    UnregisterAllEndpoints
    URQ|10.0.1.7:1024|1325_endp|maintenance;
    URQ|10.0.1.8:1024|1322_endp|maintenance;
    URQ|10.0.1.32:1032|1324_endp|maintenance;
    URQ|10.0.1.36:1032|1323_endp|maintenance;
    URQ|10.0.1.42:1032|1318_endp|maintenance;
    Done
    ;
    

  • DisconnectCall

    �j����_�Y�@�S�w���X���q�ܡC

    �榡�G

    DisconnectCall Number
    

    �d�ҡG

    DisconnectCall 1533
    

  • DisconnectIP

    �j����_�Y�@�S�w IP �ΰ𸹺��I���Ҧ��q�ܡC

    �榡�G

    DisconnectIP IP[:Port]
    

    �d�ҡG

    DisconnectIP 10.0.1.31:1720
    

  • DisconnectAlias

    �j����_�֦��Y�@ aliases ���I���Ҧ��q�ܡC

    �榡�G

    DisconnectAlias Alias
    

    �d�ҡG

    DisconnectAlias 601
    

  • ClearCalls

    �j����_�Ҧ����q�ܡC

  • GK

    ��ܬO�_���U��W�h�� Gatekeeper�C

  • Debug

    �ȥΦb�����ت��C�ﶵ�G

    • trc [+|-|n]

      ���/�վ㰣�����šC

    • cfg SEC PAR

      Ū���æC�X�@�ӳ��`�����]�w�ѼơC

    • set SEC PAR VAL

      �g�J�@�ӳ��`�����ѼƳ]�w�ȡC

    • remove SEC PAR

      �����@�ӳ��`�����ѼƳ]�w�ȡC

    • remove SEC

      �����@�ӳ��`�C

    • printrm VERBOSE

      �C�X�w�������U���|�����������I�O���C

    �d�ҡG

    debug trc 3
    debug set RoutedMode H245Routed 1
    

  • Who

    ��ܩҦ��ʬݪ��A�ɭ����H�C

  • RouteReject

    �ڵ��Y�@������C�����ӸܡC

    �榡�G

    RouteReject CallingEndpointID CallRef
    

    �d�ҡG

    RouteReject endp_4711 1234
    

  • RouteToAlias, rta

    �N������C�����q�ܰe����w�����I�C

    �榡�G

    RouteToAlias Alias CallingEndpointID CallRef
    

    �d�ҡG

    RouteToAlias Suzi endp_4711 1234
    

  • Exit, q

    ���}���A�ɭ��C

5.3 �T��

���`������X�ܪ��A�ɭ����Ҧ��T���Ψ�榡�C

  • GCF|IP|Aliases|Endpoint_Type;

    Gatekeeper ����@�� GatekeeperRequest (GRQ) �åB�^���@�� GatekeeperConfirm (GCF)�C

  • GRJ|IP|Aliases|Endpoint_Type|RejectReason;

    Gatekeeper ����@�� GatekeeperRequest (GRQ) �åB�^���@�� GatekeeperReject (GRJ)�C

  • RCF|IP:Port|Aliases|Endpoint_Type|EndpointID;

    Gatekeeper ����@�� RegistrationRequest (RRQ) �åB�^���@�� RegistrationConfirm (RCF)�C

  • RRJ|IP|Aliases|Endpoint_Type|RejectReason;

    Gatekeeper ����@�� RegistrationRequest (RRQ) �åB�^���@�� RegistrationReject (RRJ)�C

  • ACF|Caller_IP:Port|Caller_EndpointID|CRV|DestinationInfo|SrcInfo|IsAnswered;

    Gatekeeper ����@�� AdmissionRequest (ARQ) �åB�^���@�� AdmissionConfirm (ACF)�C

  • ARJ|Caller_IP:Port|DestinationInfo|SrcInfo|IsAnswered|RejectReason;

    Gatekeeper ����@�� AdmissionRequest (ARQ) �åB�^���@�� AdmissionReject (ARJ)�C

  • DCF|IP|EndpointID|CRV|DisengageReason;

    Gatekeeper ����@�� DisengageRequest (DRQ) �åB�^���@�� DisengageConfirm (DCF)�C

  • DRJ|IP|EndpointID|CRV|RejectReason;

    Gatekeeper ����@�� DisengageRequest (DRQ) �åB�^���@�� DisengageReject (DRJ)�C

  • LCF|IP|EndpointID|DestinationInfo|SrcInfo;

    Gatekeeper ����@�� LocationRequest (LRQ) �åB�^���@�� LocationConfirm (LCF)�C

  • LRJ|IP|DestinationInfo|SrcInfo|RejectReason;

    Gatekeeper ����@�� LocationRequest (LRQ) �åB�^���@�� LocationReject (LRJ)�C

  • BCF|IP|EndpointID|Bandwidth;

    Gatekeeper ����@�� BandwidthRequest (BRQ) �åB�^���@�� BandwidthConfirm (BCF)�C

  • BRJ|IP|EndpointID|Bandwidth|RejectReason;

    Gatekeeper ����@�� BandwidthRequest (BRQ) �åB�^���@�� BandwidthReject (BRJ)�C

  • UCF|IP|EndpointID;

    Gatekeeper ����@�� UnregistrationRequest (URQ) �åB�^���@�� UnregistrationConfirm (UCF)�C

  • URJ|IP|EndpointID|RejectReason;

    Gatekeeper ����@�� UnregistrationRequest (URQ) �åB�^���@�� UnregistrationReject (URJ)�C

  • IRQ|IP:Port|EndpointID;

    Gatekeeper �e�X�@�� InfoRequest (IRQ) �߰ݬY�@���I�O�_���s���ۡC�p�G�Ӻ��I�����۪��ܡA���ߧY�^���@�� InfoRequestResponse (IRR)�C

  • URQ|IP:Port|EndpointID|Reason;

    Gatekeeper �e�X�@�� UnregistrationRequest (URQ) �H�j������Y�@���I�����U�C�Ӻ��I���^�� UnregistrationConfirm (UCF)�C

  • CDR|CallNo|CallId|Duration|Starttime|Endtime|CallerIP|CallerEndId| \
    CalledIP|CalledEndId|DestinationInfo|SrcInfo|GatekeeperID;

    ���Y�@�q�ܵ�����A�|��ܩҦ����q�ܩ��ӡA�]�A�o�ܺݤΨ��ܺݪ� IP�B�_�l�M�����ɶ��A�H�γq�ܮɶ����C

  • RouteRequest|VirtualQueue|CallerEndId|CallRef|CallerAlias|SrcInfo;

    �n�D�~���{���M�w������C�Ӹܪ����ѡC



Last updated: 25. Dec 2020