1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397
|
- new switch [Gatekeeper::Main] MaxStatusClients= to limit number of status port connections (default: 20)
Changes from 2.3.5 to 3.0
=========================
- BUGFIX(RasTbl.cxx) fix possibility of stale calls when using failover
- when using alias "-" in RouteToGateway, no destination alias will be set
- BUGFIX(gk.cxx) fix trace level if the trace file is in the config file and the trace level on the command line
- [Routing::Explicit] rules now allow IP destinations to be mapped to any kind of alias destination
- BUGFIX(gkauth.h,gkauth.cxx) don't check GRQ in password auth modules
- BUGFIX(RasSrv.cxx) fix crash if H.460.18 client sends only invalid RAS addresses in RRQ
- BUGFIX(Routing.cxx) the DNS policy didn't properly handle ports (eg. joe@company.com:1720)
- rds policy now supports routing unregistered calls
- new switch [Routing::ENUM] ResolveLRQ=
- new switch [Routing::RDS] ResolveLRQ=
- new switch [Routing::SRV] ResolveNonLocalLRQ=
- TraceLevel switch in config now re-read on config reload
- new switch [GkStatus::Filtering] Enable=1
- new config section [PortNotifications] to run scripts whenever GnuGk opens or closes a port
and new status port command PrintCurrentCallsPorts
- H.235 Media encryption/decryption support for a single leg of a call (EnableH235HalfCallMedia=1) - doesn't work, yet
- stop accepting the old config format for [Gatekeeper::Main] AlternateGKs= (deprecated since 2.3.3)
- IPv4-IPv6 proxying
- IPv6 support
- massive performance improvement when (re-)loading large numbers of GW rewrites
- support for RTP multiplexing (with H.460.19)
- improved H.235 password authentication with neighbors
- support for gatekeeper to gatekeeper H.460.18/.19 (traversal zones)
- BUGFIX(ProxyChannel.cxx) fix H.239 where only one sides uses H.460.19
- BUGFIX(RasSrv.cxx) use correct callSignalAddress for H.460.18 enabled endpoint if H.460.18
has been disabled per endpoint
- BUGFIX(ProxyChannel.cxx) fix crash when handling a OLCA without mediaControlChannel
on a NATed connection
- always include destCallSignalAddress in Setup to avoid crash in Polycom m100
- BUGFIX(ProxyChannel.cxx) remove endpointIdentifier from Setup before forwarding
- new switch [Routed::H46023SignalGKRouted] to force all signalling to be Gatekeeper routed for H.460.23/.24
- added more interop support for Sorenson equipment
Changes from 2.3.4 to 2.3.5
===========================
- new switch [Routing::DNS] ResolveNonLocalLRQ=1 to configure if DNS policy resolves hostnames
in LRQs that don't terminate locally
- BUGFIX(ProxyChannel.cxx) silently drop GnuGk NAT message if endpoint is not NATed
- BUGFIX(ProxyChannel.cxx) make sure ReleaseComplete gets dropped if it doesn't belong to a call
- BUGFIX(ProxyChannel.cxx) strip Private: prefix from H.450.2 transfer destinations
- new switch [Gatekeeper::Main] MaxASNArraySize=
- BUGFIX(ProxyChannel.cxx) rewrite H.460.19 port detection logic
- BUGFIX(RasTbl.h) make sure H.460.18 registrations expire, even without global TimeToLive
- support GWRewriteE164 for neighbors by neighbor ID or neighbor GK-ID
- BUGFIX(Toolkit.cxx) fix PTLib assert when using empty string as regex
- actively reject Home=0.0.0.0
- enable stack protection and full RELRO on Linux
- new setting [RoutedMode] H46023PublicIP to allow Non-NAT endpoints provide NAT support (default=0).
- the config file is now checked for unrecognized entries and a warning is printed
- config switch Fortytwo=42 is now obsolete
- add encryption support (StartTLS) for H.350 (needs PTLib 2.11.x)
- BUGFIX(gnugk.rc) fix tray icon for Windows service
- BUGFIX(gkauth.cxx) remove newline from H.235 password from H.350 server
- BUGFIX(Toolkit.cxx) fix H.350 AssignedAliases and GatekeeperDiscovery
- BUGFIX(gksql_pqsql.cxx) use PQescapeStringConn() instead of PQescapeString()
- add the called IP as alternativeAliasAddress to a routeCallToGK Facility if none is provided
- BUGFIX(ProxyChannel.cxx) fix rare crash for H.460.18 calls
- support for SSH encryption of the status port connection
- BUGFIX(*.cxx) treat empty ExternalIP and NetworkInterfaces settings correctly
- BUGFIX(Toolkit.cxx) fix setting of the default IP, make sure its include in the
Home= setting, unless explicitly specified in Bind=
- BUGFIX(Routing.cxx) populate calledIP field in RouteRequests resulting from ARQs
- jitter values reported through Radius are now in msec (was codec dependent clock rate)
- new switches: [RasSrv::ARQFeatures] SendRIP=<delay> and [RasSrv::LRQFeatures] SendRIP=<delay>
- new status port command: PrintEndpointQoS
- use H.460.9 data in the same way as sniffed RTCP stats for status port and Radius reporting
- BUGFIX(RasSrv.cxx) fix handling of H.460.9 in ARQ/ACF, signal support in RCF
- BUGFIX(ProxyChannel.cxx) remove callDestSignalAddress from incoming Setup if its the
ExternalIP to avoid loops
- BUGFIX(RasSrv.cxx) don't include a callSignalAddress in RCFs in direct mode
- BUGFIX(RasSrv.cxx) fix bandwidth calculation
- enable failover to CatchAll endpoint
- enable failover for calls released by the gatekeeper (eg. timeouts)
Changes from 2.3.3 to 2.3.4
===========================
- convert 2nd CallProceeding even if the first was sent through the status port
- BUGFIX(Toolkit.cxx) fix handling of ModeSelection rules (sponsored by Charite, Berlin)
- BUGFIX(gksql_mysql.cxx) set MySQL connect timeout to 10 seconds (was 10000 seconds)
- BUGFIX(RasTbl.cxx) add NULL pointer checks when searching for endpoints
- BUGFIX(RasSrv.cxx) fix handling of BRQs reducing the bandwidth
- BUGFIX(ProxyChannel.cxx) fix H.239 from H.460.19 client (sponsored by Nanjing Southern Telecom)
- BUGFIX(ProxyChannel.cxx) fix H.245 IP in H.460.18 call
- BUGFIX(ProxyChannel.cxx) sourceCallSignalAddr rewrite and RemoveH235Call= were ignored
when calling endpoint who uses H.460.18
- BUGFIX(yasocket.cxx) fix crash on Windows service shutdown
- new switch: [EP::...]AdditionalDestinationAlias=
- BUGFIX rewrite memory mangement for routeToAlias
- BUGFIX(RasSrv.cxx) allow calls with zero bandwidth
- BUGFIX(ProxyChannel.cxx) fix crash when call being retried is deleted by another thread
- new switch: [Proxy]EnableRTCPStats=, must be enabled to send RTCP stats to Radius server
- BUGFIX(ProxyChannel.cxx) fix crash in RTCP handling
- new switch: [RoutedMode]AlwaysRewriteSourceCallSignalAddress=, defaults to 2.3.2 behavior
Changes from 2.3.2 to 2.3.3
===========================
- BUGFIX(ProxyChannel.cxx) avoid bug in H323Plus so H.460.19 feature indicator can be removed
- "make" with no target builds optnoshared now
- BUGFIX(ProxyChannel.cxx) fix crash on failover with DisableRetryChecks=1
- ignore a 2nd column in SQL routing if it equals "IGNORE"
- addpasswd moved to subdir
- BUGFIX(routedmode.sgml): TcpKeepAlive= has always defaulted to 0
- BUGFIX(Toolkit.cxx): disregard IPv6 addresses if the machine has any
- BUGFIX(SoftPBX.cxx): DisconnectIP now disconnects all calls on the IP as specified
- database drivers load their libraries at runtime now, added Library= switch
- documented [RoutedMode] EnableH460P= and H460PActThread= switches
- BUGFIX(Routing.cxx): apply ENUM policy also to Setup and Facility messages
- BUGFIX(gk.cxx): fix crash when setting a non-writable trace file in the config file
- improved bandwidth management: calls that exceed the bandwidth limit
will be allowed with reduced bandwidth instead of rejected
- limit bandwidth per call: [Gatekeeper::Main] MinimumBandwidthPerCall= and MaximumBandwidthPerCall=
- limit bandwidth for registered endpoints with [EP::...] MaxBandwidth=
- change to the format of [Gatekeeper::Main] AlternateGKs=
- new config section [RasSrv::AlternateGatekeeper] for alternate gatekeeper configuration by endpoint IP
- new config section [Routing::Explicit] to define mappings for IP dialing
- include BMV, a web front-end for SQLBill (in contrib/bmv2/)
- new config section [ReplyToRasAddress]
- BUGFIX(RasSrv.cxx): fix multicast discovery
- document status port command: DisconnectEndpoint
- H.450.2 emulator extended for unregistered calls
- new switch: [CTI::MakeCall]TransferMethod=
- added vendor string in RouteRequest event
- extended status port commands RouteToAlias/RouteToGateway/BindAndRouteToGateway with caller-ID parameter
- updated status port command: TransferCall by call-id and with transfer method
- new status port command: DisconnectCallId
- BUGFIX(GkClient.cxx) signal change of destination alias in parent policy
- gatekeeper-based TCS=0 call transfer: activated through H.450.2 emulator
or new status port command RerouteCall
- BUGFIX(yasocket.cxx, RasTbl.cxx) don't accept new calls or retry calls when shutdown is
in progress, avoids possible crash
- BUGFIX(Routing.cxx) check if routing policies have been configured, before using them
- BUGFIX(ProxyChannel.cxx) only rewrite sourceCallSignalAddress if proxying
- BUGFIX(ProxyChannel.cxx) fix NAT detection for unregistered callers
- BUGFIX(RasTbl.cxx) fire unregister event also when endpoint expired
- BUGFIX(Toolkit.cxx) fix order of home IPs
- display H323Plus and PTLib version in GnuGk's version string
Changes from 2.3.1 to 2.3.2
===========================
- new GKClient supports SRV lookup on registrations
- BUGFIX(RasSrv.cxx) set unresolved interface to the default gateway IP as first is loopback on windows
- BUGFIX(Toolkit.cxx) Setting ExternalIP when behind a NAT on a private network
- BUGFIX(ProxyChannel.cxx) fix memory leak in BuildReceiverReport()
- new status port command BindAndRouteToGateway
- new setting [Neighbor::...] SendAliases= to specify aliases to send to the neighbor
- new setting [EP::...] AddNumbers= to add numeric aliases to an endpoint
- new variable for sql routing: %{client-auth-id}
- new switch [RoutedMode]RemoveFaxUDPOptionsFromRM=1 to remove t38FaxUdpOptions
from t38FaxProfile eg. for Avaya Communication Manager (thanks Denis Kochmashev)
- BUGFIX(Toolkit.cxx) consider H245Routed setting for implied [ModeSelection]
rules for internal networks (based on patch by Denis Kochmashev)
- BUGFIX(Toolkit.cxx) make sure explicit [ModeSelection] rules override implied
rules for internal networks
- BUGFIX(RasSrv.cxx) don't start GnuGk, if we can't open a signaling port in routed mode
- BUGFIX(gksql_mysql.cxx) make sure /etc/my.cnf gets read
- changed default for [CTI::MakeCall]UseH450= to 0 (supported by more endpoints)
- new switch [RoutedMode]NATStdMin for registering endpoints behind NAT to support NAT standard.
- extend statusport commands UnregisterIP and DisconnectIP to find endpoints on non-standard ports
- BUGFIX(GkClient.cxx) fix race condition when unregistering child
- BUGFIX(GkClient.h) fix memory leak
- rewrite srv policy, add handling of LRQs and Setups
- BUGFIX(Neighbor.cxx) fix memory leaks in neighbor, srv and rds policy
- more presence work added
- added H.460.24 Annex B support
- add new accounting events: AcctAlert, AcctRegister, AcctUnregister
- BUGFIX(ProxyChannel.cxx, gkauth.cxx) always check if DecodeSubType() was successfull
before using the result value
- BUGFIX(ProxyChannel.cxx) remove supportedFeature H.460.19 from Setup when called party
doesn't support it
- added support for multiple DefaultDomains
Changes from 2.3.0 to 2.3.1
===========================
- Firebird database driver updated for Firebird 2.0.x and 2.1.x
- BUGFIX(Toolkit.cxx) don't ignore ExternalIP settings when NetworkInterfaces= is set
- BUGFIX(SoftPBX.cxx) make response messages more consistent
- the old format (2.0) to specify neighbor gatekeepers is deprecated now and has been
removed from the manual; it still works, but may be removed from future versions
- BUGFIX(ProxyChannel.cxx) only close endpoints logical channel on CloseLogicalChannel, use
[Proxy]SearchBothSidesOnCLC=1 to retain the old behavior
- BUGFIX(Toolkit.cxx) Enable RewritePString to rewrite address correctly if unregistered full URI.
- BUGFIX(Neighbor.cxx) srv policy now fails calls and doesn't pass them to the next policy
if a SRV record exists for a domain, but doesn't have a destination for the call
- allow to set proxy mode through 'proxy' variable in Radius h323-ivr-in attribute (thanks to Yuriy Georgiewskiy)
- BUGFIX(Routing.cxx) let dns policy handle LRQs that resolve locally, so URI dialing from neighbors works
- the manual has been improved (thanks to Robert Kulagowski)
- set Radius VSA attribute h323_rtp_proxy in stop event (thanks to Yuriy Georgiewskiy)
- BUGFIX(ProxyChannel.cxx) fix memory leak when creation of a fastStart channel fails
- status port command DisconnectIP now also works with unregistered endpoints using the std port
- BUGFIX(ProxyChannel.cxx) fix handling of H.460.19 RTP keepalive packets
- new switch [Proxy]DisableRTPQueueing=1
- BUGFIX(ProxyChannel.cxx) fully initialize UDP proxy IPs and ports
- BUGFIX(Routing.cxx) don't apply dns policy to aliases of type dialedDigits
- BUGFIX(Toolkit.h/.cxx) use default IP for networks specified in InternalNetwork=, not ExternalIP
- enable data execution protection on Windows versions that support it (starting with XP SP3)
- BUGFIX(gk.cxx) make sure Windows service writes same trace format as application (including file and line)
- BUGFIX(Neighbor.cxx) fix memory leak in srv policy, only send the local part of the alias in the LRQ
- new switch [RoutedMode]H46018NoNat to disable H.460.18 if no NAT detected (default enabled)
- new routing policy 'catchall' to route all calls to one alias or IP
- new Radius attributes on stop: h323pddtime, h323ringtime, h323routeattempts
- BUGFIX(Neighbor.cxx) fix srv policy for direct mode, don't send LRQ if SRV points to us
- new switch [RoutedMode]TranslateSorensonSourceInfo=1 to convert the Sorenson VP200 caller information
- BUGFIX(GkStatus.cxx) don't flush status port socket when access is denied to avoid blocking
- new switches in [Gatekeeper::Main]: CompareAliasType and CompareAliasCase to switch off
alias type and case matching
- BUGFIX(Routing.cxx) fix dns policy for direct mode
- BUGFIX(Neighbor.cxx) try next policy if SRV lookup fails
- neighbor type (GnuGk|CiscoGk|ClarentGk|GlonetGk) is now case insensitive
- features documented: [AssignedAliases::SQL], [AssignedGatekeepers::SQL] and [GkQoSMonitor::SQL]
- BUGFIX(RasTbl.cxx) use rewritten number when decrementing prefix capacity counters, so they match the increment
- feature to set a ClientAuthId in SqlAuth that is provided as %{client-auth-id} on all accounting events
- new status port command ResetCallCounters
- changed ProxyForSameNAT default from 0 to 1 (to avoid media failure uncertainty)
- BUGFIX(RasSrv.cxx) IsReachable looks at correct route table. (virtual was ignored)
- changed [RoutedMode]EnableH46024= to be consistent with H.460.18 switch
- BUGFIX(RasSrv.cxx) RCF messages H.460 features now supported Features not GenericData
- BUGFIX(ProxyChannel.cxx) H.460.19 working with Fast Connect
- BUGFIX(RasSrv.cxx,ProxyChannel.cxx) Tandberg MXP interoperability fixes
- BUGFIX(ProxyChannel.cxx) check capacity on routes supplied by authenticators (Radius, SQL etc.)
- BUGFIX(RasSrv.cxx) avoid cutting off status messages after 1000 chars (problem in PString::Printf)
- BUGFIX(ProxyChannel.cxx) fix for fastStart with H.460.19
- new switch [RoutedMode]EnableH.460.24=, which defaults to OFF
- send RTCP statistics to Radius server (thanks to Yuriy Georgiewskiy)
- BUGFIX(Toolkit.cxx) fix a crash in RewriteE164() when casting aliases
- new config section [ModeSelection] to specify the routing/proxy mode by IP network
Changes from 2.2.8 to 2.3.0
===========================
- codec filtering using [CallTable]DisableCodecs= or Radius (based on a patch by Georgiewskiy Yuriy)
- H.460.18 and H.460.19 support
- BUGFIX(Routing.cxx) fix round-robin that broke in 2.2.8
- new switch [Gatekeeper::Main]DisconnectCallsOnShutdown=0 to avoid disconnecting calls on shutdown
- new switch: [Proxy] ProxyAlways=1
- new variable for sql routing: %{Calling-Station-Id}
- BUGFIX(RasTbl.cxx) fix pointer check in SingleGatekeeper()
- BUGFIX(RasSrv.h) fix memory leak in assignedGK code
- BUGFIX(ProxyChannel.cxx) only set CallInProgress on Alerting and Connect so a 3rd and following
routes can be tried on failover even when DisableRetryChecks is not set
- BUGFIX(ProxyChannel.cxx) make sure the DisableRetryChecks switch also covers the cases
where the remote side didn't accept the call (without a ReleaseComplete)
- new switch [SimplePasswordAuth]DisableAlgorithm= to disable H.235 algorithms
- re-enable H.235.1 (Annex D / Baseline Profile) when compiling against OpenH323 < 1.19.x or H323Plus
- BUGFIX(gkauth.cxx) fix CAT authentication when compiling against OpenH323 < 1.19.x or H323Plus
Changes from 2.2.7 to 2.2.8
===========================
- new RadAcct attribute: RewriteE164
- enable multiple failover routes with sql routing policy
- BUGFIX(RasTbl.*) %{last-cdr} was wrong if last call succeeded
- forward the destCallSignalAddress in ARQs to the parent gatekeeper
(set [Endpoint]ForwardDestIp=0 to get the old behavior)
- BUGFIX(RasTbl.cxx) never overwrite dialed_number after is has been set
- BUGFIX(RasSrv.cxx) add check to avoid crash on GRQ
- BUGFIX(ProxyChannel.cxx) fix reading of fragmented TPKT packets
- new switches Called/CallingPlanOfNumber in [RoutedMode] and [EP::...] to set numbering plan
- enable SRV policy for all OpenH323 versions as long as DNS services are available
- global switches for TranslateReceivedQ931Cause and TranslateSentQ931Cause in [RoutedMode],
similar to those in [EP::...]
- BUGFIX(ProxyChannel.cxx) supress 2nd acct start event for 2nd Setup with same callid
- allow outbound number rewrite through SQL/RADIUS modules
- rewrite also aliases of type partyNumber (public and private), don't change alias type during rewrite
- BUGFIX(MakeCall.cxx) MakeCall didn't work on Windows
- implemented status port gai/gci commands for SQLAcct, SQLAuth, SQLPasswordAuth and SQLAliasAuth modules
- BUGFIX(capctrl.cxx) added a missing lock during config reload for CapacityControl module
- BUGFIX InternalPolicy should set a reject reason to something like gatewayResources/resourcesUnavailable
instead of calledPartyNotRegistered when terminating gateways were found, but there was no capacity
- BUGFIX(gksql.cxx) SQL reconnect thread-safety fixes
- new q931cause variable in SQLAuth module
- status port connection can now be closed with Ctrl-D (instead of 'exit')
- selective reload on the status port: Reload <AcctConfig|AuthConfig|CapConfig|EpConfig>
- BUGFIX(radauth.cxx) fixed crash in processing h323-redirect-ip
when no h323-redirect-number is present
- BUGFIX (RasTbl.cxx) read GWPrefixes even if there is an EP:: section for this endpoint
- BUGFIX (GkStatus.cxx) make sure status port threads don't share string memory with other threads
- new compile option COMPILE_AS_SERVICE to create a native Windows service
- new config options [Logfile]Filename=, [Gatekeeper::Main]TraceLevel= (same as -o and -t on cmd line)
- BUGFIX (ProxyChannel.cxx) always check m_call in H.450.2 call transfer emulator
- allow mutiple results per query from MySQL (and ignore all after the first)
needed for using strored procedures (patch by Matteo Piscitelli)
- Added Bind INI setting to set the default interface for multihomed virtual servers.
- BUGFIX (Toolkit.cxx) on reload, check if new config is not empty (Fortytwo=42)
- BUGFIX (ProxyChannel.cxx) add NULL pointer checks to avoid crashes
- CapacityControl H.323 Id rules work now also for SetupUnreg calls
- BUGFIX (ProxyChannel.cxx) make sure Q.931 cause is included in generated ReleaseComplete
- new ^= and /= RewriteCLI rules for H.323 ID only rewritting
- new getauthinfo/getacctinfo status port commands
- Changed P2Pnat from H.460 OID to the standard allocated H.460.23/24
- BUGFIX(RasTbl.cxx): dynamically registered prefixes are added with the GatewayPriority
- BUGFIX(GkClient.cxx): use [Endpoint] Type= setting for GRQ, not only for RRQ
- merged P2Pnat support
- added first cut of Presence support
- set radius release-source attribute in stop accounting packet, like %r in sqlacct
- ./configure support for Windows
- new database driver 'SQLite'
- new database driver 'ODBC'
- auto-reconnect on database errors (for all database drivers)
- allow setting a reject reason when rejecting using the sql policy
Changes from 2.2.6 to 2.2.7
===========================
- clarified optional rule effect on auth modules, new "alternative" rule added
WARNING: semantics of optional rules has changed slightly
- BUGFIX(gk.cxx) don't look for the default config file gatekeeper.ini if -c switch is given
- BUGFIX(RasTbl.cxx) honor setting of Called/CallingTypeOfNumber in [EP::..] section (patch by Mauricio Nuez)
- BUGFIX(Toolkit.cxx) fix detection of default IP when host has a default route, but no default gateway
- SQLBill: implement fixed per-call billing
- BUGFIX(contrib/sqlbill/sql/src/upgrade_tables.sql): fix wrong foreign key reference
- implement SendProceeding command on status port (experimental)
- BUGFIX(Routing.*): calls from registered endpoints to IPs should match vqueue ^.*$
- added cause code translation (see [EP::..] TranslateReceivedQ931Cause and TranslateSentQ931Cause)
- Added H.450 Call Transfer emulator [RoutedMode] EnableH450.2=1
- implement MakeCall command on status port
- BUGFIX SRV policy correctly detects E.164 number.
- BUGFIX Radius module now sent public IP of endpoints behind NAT.
- new switches [RoutedMode] GenerateCallProceeding, UseProvisionalRespToH245Tunneling (experimental)
- new SQLAUth variable %{CallId}
- BUGFIX(RasTbl.*,SoftPBX.cxx) status port commands (find,disconnectcall,transfercall) could influence round-robin order
- enable auto-reconnect for MySQL >= 5.0
- BUGFIX(capctrl.cxx) counters were incorrectly updated for H.323ID and CLI rules
- Added %{CallLink} SQL parameter for correct billing of H.450 call transfer
- BUGFIX (proxychannel.cxx) Detect call signalling is using H.245 Tunneling but says it doesn't
- BUGFIX (RasSrv.cxx) Endpoint registered on same machine as GnuGk should not be treated as being NAT.
- added H.460.interop support for interworking of NetMeeting with everything else (req. OpenH323 v1.19.5)
- added [GkQoSMonitor] H.460.9 realtime QoS monitoring (req. OpenH323 v1.19.5)
- BUGFIX (statusacct.*) output callID in same format as other status port events (spaces replaced with dashes)
- new status port command: printcc
- BUGFIX (RasTbl.cxx) preserve internal call number for each failed call record
if we have SingleFailoverCDR option enabled. This allow CapacityControl and other
modules to work fine with failover enabled
- BUGFIX (RasTbl.cxx) don't send URQ to permanent endpoints on shutdown
- BUGFIX (Routing.cxx) fix LRQ canMapAlias detection for vqueue
- BUGFIX (RasTbl.cxx) added missing include file for H.350 support
- added Prefix support for MCU's
- extend virtual queue functionality to unregistered calls (anonymous sponsor)
- remove SignalCallId switch, now call ID is always sent with status port events
- new status port command: PrintPrefixCapacities/printpc
- implement rate limiting, configured by CpsLimit and CpsCheckInterval in the [RoutedMode] section, defaults to OFF
- BUGFIX (RasSrv.cxx, GkClient.cxx) deal better with having no RAS interfaces at all
- BUGFIX (RasSrv.cxx) ensure compatibility with PWLib < 1.9.3
- new 'sql' routing policy configured via [Routing::Sql], sponsored by CoProSys
- BUGFIX (RasTbl.cxx) fix race condition where same call number could be assigned multiple times
- BUGFIX (RasTbl.cxx) avoid memory reference in AliasTypeFilter that causes crash on endpoint delete
- Added [GkH350::Settings] H.350 LDAP directory support (req. OpenLDAP,OpenH323 v1.19.5)
- Added H.350 Authenticator module (req. OpenLDAP,OpenH323 v1.19.5)
- new accounting variable %{bandwidth}
- allow Radius server to send multiple destinations in "h323-redirect-number" attribute for call failover (patch by Lucas Martinez)
- Added Alias Filter via [RasSrv::RRQFeatures] AliasTypeFilter
- Added RDS (resolver discovery service) Routing policy
- BUGFIX (RasTbl.cxx) check route capacity just before it is used for failover, not only at the beginning of the call (patch by Vladimir Voronin)
- Added HTTP Service control via [RasSrv::RRQFeatures] AccHTTPLink
- BUGFIX (GkStatus.cxx) add semicolon after status port 'debug cfg' output for consistency
- Added [RasSrv::AssignedAlias] to gatekeeper assign aliases
- Added [RasSrv::AssignedGKs] to assign gatekeepers based on alias or IP.(req. H.323v6)
- Added [Gatekeeper::Main] Authenticators option to select which authenticators to use. (req. openh323 v1.19)
- BUGFIX (ProxyChannel.cxx) Finally fixed same nat bug with GnuGk NAT method
- [EP::xxx] PrefixCapacities: limit capacity by prefix on an endpoint
- BUGFIX (gkauth.cxx) Fixed H.235.1 Authenticator
- [RoutedMode] added ENUMservers setting
Changes from 2.2.5 to 2.2.6
===========================
- BUGFIX(toolkit.cxx) Fixed DefaultDomain Alias rewrite
- BUGFIX(routing.cxx) ENUM policy not to be used with LRQ
- BUGFIX(Neighbors.cxx) Fixed SRV policy to try both CS and LR records and not use with LRQ request
- remove ArjReasonRouteCallToSCN (was inactive + broken for a long time)
- BUGFIX(Toolkit.cxx) enable SQLConfig also if only Firebird is available
- BUGFIX(RasTbl.cxx) reject the call if no gateway has capacity, don't just use the first matching gateway
- BUGFIX(RasTbl.cxx) the first route was duplicated and a call was sent twice to the same gw.
Thanks to Alex Golyshev for pointing this out!
- BUGFIX(RasSrv.cxx) fixed crash inside IRR handler
- BUGFIX(yasocket.cxx) due to recent changes, it was impossible to send
more than 10240 bytes of data when data queuing had to be involved
- move status port examples to contrib/statusport/
- fix nonStandardData field usage, make use of assigned T.35 codes
- BUGFIX(RasTbl.cxx) ensure that full gateways are eliminated, when failover
is active and remaining gateways are sorted due to their priority correctly
- BUGFIX(ProxyChannel.cxx) preserve presentation and screening indicators
in Calling-Party-Number IEs
- BUGFIX(RasTbl.cxx) restore default value for capacity and priority
on config reload, if removed from an EP section (or if the whole section
has been removed)
- BUGFIX(Neighbor.cxx,ProxyChannel.cxx): fix canMapAlias for LRQs with
unregistered endpoints
- new config section [H225toQ931] to change the H.225 reason to Q.931
cause code mapping
- optional priorities for gateway prefixes: gw-alias=prefix[:=priority][,prefix[:=priority],...] (patch by Alex Golyshev and Andrey Pasukov)
- change default value for CallSignalHandler to 5
- BUGFIX(Toolkit.cxx): fix for calling between 2 internal networks
- Added AcceptNonNeighborLCF to LRQFeatures settings
- Added GnuGk OID & T.35 Codes
- BUGFIX(Toolkit.cxx): fix to allow URI rewriting on ARQ processing
- BUGFIX(ProxyChannel.cxx): fix to show correct Setup CallSignallingAddress when behind NAT
- Added RemoveH235Call & RemoveH460Call Settings
- BUGFIX(ProxyChannel.cxx): H.245 addresses being incorrectly written in NATHandler for public proxies.
Changes from 2.2.4 to 2.2.5
===========================
- RADIUS AAA module now handles a Class attribute correctly
- BUGFIX(clirw.cxx) missing iterator check, that could cause an invalid
memory access, fixed - thanks to Vladimir Voronin
- implement optional call-id parameter for Routing commands
- Bugfix(RasSrv.cxx) fix SignalCallID=1
- Bugfix(Proxychannel.cxx) avoid inserting same socket twice in cleanup list
- Bugfix(Proxychannel.cxx) make sure all members of CallSignalSocket are
initialized on creation
- Bugfix(yasocket.cxx) send very large status port messages
in 10KB chunks and sleep after each
- new feature: StatusPort filtering by Doron Bleiberg
- new switch: [RoutedMode]DisableRetryChecks retries all calls
- BUGFIX(ProxyChannel.cxx) make sure we preserve the original Setup message for
retries and not only copy the buffer address
- Bugfix(Neighbor.cxx) copy canMapAlias when forwarding LRQs
- implement virtual queues for LRQs sponsored by Associated Engineering Srl.
- implement canMapAlias for LCFs sponsored by TelecomUnity Ltd.
- copy all unknown IEs in Notify messages when forwarding
(fixes some failed transfers)
- BUGFIX(*.cxx) set all deleted pointers to NULL
- new SyslogAcct accounting module for the Unix syslog
- (gkauth.cxx)Reapplied H235.1 (formally known as H235AnnexA) by using OpenH323 Authenticator factory loader
- (rassrv.cxx)Registration Priority Added
- (Proxychannel.cxx)TreatUnregisteredNat added. Treat unregistered calls unknown NAT status as being NAT
- (routing.cxx)DNS SRV support to DNS Routing policy
- (toolkit.cxx)RewriteAlias section added
- BUGFIX(ProxyChannel.cxx) WaitAndSignal added to OnInformation to avoid NAT support crash.
- BUGFIX(ProxyChannel.cxx) Check for NATSupport added.
- BUGFIX(RasTbl.cxx) WaitAndSignal added to FindByEndPointid()
- BUGFIX(ProxyChannel.cxx) Added SupportCallingNATedEndpoints.
- Moved DNS SRV to it's own seperate policy
- Registration pre-emption support added
- Support for EP's on dynamic IP's
- fixed code to compile with the latest pwlib CVS (STL string conversion)
- Added support for GnuGk to work behind NAT box
- Added support for Third party (non-neighbor) Gatekeepers (AcceptNonNeighborLRQ=1)
- Added auto-detection on internal network for proxy mode.
- Added DefaultDomain for H323 URI rewriting
Changes from 2.2.3 to 2.2.4
===========================
- new Calling/CalledTypeOfNumber and Proxy configuration variables
in [RouteMode] section and endpoint configuration. Thanks to Vladimir Voronin
- (ipauth.cxx) added support for prefixes. Thanks to Vladimir Voronin
- (gksql_firebird.cxx) Firebird/Interbase driver for SQL modules. Sponsored
by Roitel Telecommunication S.A.
- (Routing.cxx) NumberAnalysis routing policy can handle Setup messages now.
Thanks to Vladimir (vl@kamatele.com)
- (pwlib_compat.h) adapt to changed mutexes starting with PWLib 1.9.2
- call mute in proxy mode using userinput * (patch by Simon Horne)
- NAT support for unregistered callers (patch by Simon Horne)
- (gk.cxx) allow correct spelling for FortyTwo=42 entry
- BUGFIX(yasocket.h) fix compilation with gcc 4.1
- (clirw.cxx) process CLI ranges with leading zeros correctly
- new CapacityControl auth/acct modules to control inbound traffic
- BUGFIX(ProxyChannel.cxx) check added for a NULL pointer in NAT traversal code
- (RasTbl.cxx) default SignalTimeout value increased from 15 to 30 seconds
- BUGFIX(RasSrv.cxx) remove call records correctly in direct signaling mode,
when only called party is registered. Thanks to Julius Bajzik
- BUGFIX(RasTbl.cxx) fixed race condition when accessing endpoint records
- BUGFIX(ProxyChannel.cxx) fixed race condition in H245Socket when H.245
tunneling is disabled
- (configure) better detection of PostgreSQL on FreeBSD
- BUGFIX(RasSrv.cxx) allow bandwidth=0 in ARQ / ACF
- BUGFIX(ProxyChannel.cxx) fix bug when using RADIUS/SQL based routing
for Setup messages
- BUGFIX(ProxyChannel.cxx) check for poor NAT implementations, that might
have crashed GnuGk (by Simon Horne)
- new accounting variables: %{media-oip}, %{codec}
- new accounting variables: %{call-attemps}, %{last-cdr}, %{caller/callee-epid}
- new feature: call failover (see manual)
- BUGFIX(clirw.cxx) set presentationIndicator correctly in H.225.0 Setup UUIE
- BUGFIX(RasTbl.h) when active, perform IRR checks for local
endpoints only, others (parent, neighbor etc.) won't send us IRRs
- BUGFIX(Routing.cxx) remove leading zeros for ENUM queries
- BUGFIX(RasSrv.cxx) have AcceptNeighborsCalls default to 1 like
the documentation always said
- BUGFIX(Routing.cxx) fix ENUMPolicy implementation
- new StatusAcct accounting module for the status port sponsored by Grupo Isec
Changes from 2.2.2 to 2.2.3
===========================
- (ProxyChannel.cxx) use Calling-Party-Number to perform inbound per-gateway number rewrite
(GWRewriteE164), if no sourceAddress is present in H.225.0 Setup UUIE
- IRR checking for active calls [CallTable] IRRFrequency=n, IRRCheck=TRUE
- BUGFIX(RasSrv.cxx) terminate all calls before unregistering endpoint
when OverwriteEPOnSameAddress=1
- new RewriteCLI options to control CLIR features precisely
- new CLIR/CLIP (Calling Line Identification Restriction/Presentation) features in
RewriteCLI module. Ability to hide CLI (enable CLIR/CLIP) per endpoint
- Unix man page in the docs folder by Ivan Lopez <ilopez@enress.gov.ar>
- do not leave sockets open when proxy handlers are idle. Peform proper cleanup
all the time
- manual updated with notes on TIME_WAIT and Q931PortRange/H245PortRange/T120PortRange
- new SocketCleanupTimeout config variable to control time to wait before
a socket is deleted
- more reliable port allocation making better call throughput better on a heavily
loaded server or when using very small port ranges
- more detailed description of network operations
- if Home contains a single IP address, bind RTP sockets to this specific address,
instead of INADDR_ANY
- do not remove addresses specified in Home that are not found in PWLib interface table,
just generate a warning
- BUGFIX(clirw.cxx) random rewrite did not work for outbound rules and comma separated items
- Solaris compilation errors fixed, thanks to Mikko Oilinki
- BUGFIX(yasocket.cxx) fixed address reuse for UDP sockets in LARGE_FDSET mode,
broadcast RAS socket did not work previously
- better error reporting on socket allocation
- new ENUM routing policy from Simon Horne
- added check for PWLib/OpenH323 minimum version supported
- optionally signal call ids in the status port with ACF/ARJ/DCF/DRJ/RouteRequest
messages (switch on with SignalCallIds=1 in main section)
- NetMeeting compatibility problems fixed
- new [RasSrv::RRQFeatures] IRQPollCount config variable, default number
of "poll" IRQ messages changed from 2 to 1
- FileIPAuth module moved from the contrib section into the main branch
- BUGFIX(ProxyChannel.cxx) tunnelled H.245 messages were not processed
correctly
Changes from 2.2.1 to 2.2.2
===========================
- allow empty key values in SQLConfig ConfigQuery/RewriteE164Query
- restored MSVC6.0 compatibility
- BUGFIX(radproto.cxx) GetSocket could use an invalidated iterators
under some circumstances. Thanks to kubuqi cn
- (ProxyChannel.cxx) ignore incorrect mediaChannel offers with port number 0,
internal option [Proxy] RemoveMCInFastStartTransmitOffer to enable removing
mediaChannel from fast start transmit channel open offers
- creditamout and billingmode fields may appear in a result for SQLAuth CallQuery
- exclude all SQL modules from build if no SQL support is enabled
- BUGFIX(ProxyChannel.cxx) originate an H.245 TCP connection from the same IP
as an associated signalling connection is established
- (clirw.cxx) new CLI rewrite types - prefix replacement (*=) and an identity
match (~=)
- don't lock the call table when logging accounting data on call disconnect,
to prevent gatekeeper long lock periods when a backend is not working properly
- new TranslateFacility config variable to enable Facility message conversion
between H.323v4 and previous versions of the protocol
- %t, %p, %{ring-time}, %{alerting-time} accounting variables ported from 2.0
branch. ConnectTimeout config variable replaced with SignalTimeout and AlertingTimeout
- new %r accounting variable to get who disconnected a call, thanks to Freddy Parra
- new generic SQLAuth module to authenticate and authorize RRQ, ARQ, LRQ and Setup messages
- BUGFIX(ProxyChannel.cxx) another attempt to solve race issues in H.245 routed
mode that may cause occasional crashes
- new --core command line argument to enable core dump generation for Unix
- new Vendor config variable for [Endpoint] section to provide vendor specific
extensions when registering with a parent gatekeeper
- added support for Connect event in SqlAcct module, thanks to Boian Bonev
- BUGFIX(Neighbor.cxx) nonStandardData field was not included for CiscoGK neighbors
- a new module to rewrite ANI/CLI numbers. Sponsored by Gabriel Georgescu.
- new FreeBSD 5.3 startup script
- BUGFIX(ProxyChannel.cxx) send proper Release Complete when the remote side
does not respond to a Setup message
- BUGFIX(ProxyChannel.cxx) correctly remove calls from the call table,
when setup processing fails for some reason (auth failed, acct failed, ...)
- BUGFIX(ProxyChannel.cxx) fixed config reload deadlock when using H.245
routed mode and listening sockets are holding the config reload mutex
- (Routing.cxx) new routing policy NumberAnalysis to support overlapped digit
sending with ARQs
- WinSvc from Franz J Ehrengruber updated to work with GnuGk 2.2.2 and 2.0.10
- new FileIPAuth module in the contrib/ipauth directory
- (RasTbl.cxx) call accounting updates/disconnecting is now more robust
and does not lock up the call table and (effectively) the gatekeeper
for long time periods
- Makefile for docs, make sure generated PDF manual is searchable
- do not support mutiple rewrite targets, as this feature does not work well
if rewrite is performed more than once
- BUGFIX(GkStatus.cxx) the gatekeeper could crash if the connection
was closed before the welcome message has been sent
- BIGFIX(gkacct.cxx) different Username was reported during Setup auth
and acct step, if no sourceAddress has been present for an unregistered call
- more missing config reload locks added to allow seamless config reload
- BUGFIX(ProxyChannel.cxx) the code could reference an invalid H.245 socket
due to recent changes
- BUGFIX(h323util.cxx) conference/call-id could get incorrectly converted
to a string with some compilers
- (Routing.cxx) ability to do per-call proxy mode control from routing handlers
- BUGFIX(ProxyChannel.cxx) fixed race condition between signaling/H.245 channel
closure
- parts of signalling code rewritten
- default value for config variable ForwardOnFacility changed to 0
- BUGFIX(ProxyChannel.cxx) inbound rewrite code did not check for presence
of sourceCallSignalAddress field in Setup messages. Use real peer IP instead
- ability to encrypt all passwords in the config (radius shared secrets,
database passwords). A new EncryptAllPasswords config variable and KeyFilled
usage extended
- SQLConfig ported from 2.0
- BUGFIX(radauth.cxx) Framed-IP-Address could not be determined
for unregistered calls with no Setup-UUIE.sourceCallSignalAddress field,
causing authentication to fail
- (ProxyChannel.cxx) small optimizations in signaling handling
- fixed bug with aliases handling in various places, introduced by recent changes
- BUGFIX(Toolkit.cxx) correct handling of '!' character in rewrite rules
- provide proper handling of aliases of type partyNumber (e164Number or privateNumber)
- BUGFIX(ProxyChannel.cxx) fix for RTP/Q931/H245/T120PortRange
to correct a bug with port range wraparound if the last port is 65535.
This caused a next port to be set to 0 and any subsequent port allocation
to fail
- BUGFIX(ProxyChannel.cxx) dynamic allocation of RTP ports did not work,
use a fixed range 1024-65535 as a default for RTPPortRange config variable
- (RasTbl.cxx) LRQs received on a multicast interface triggered LCFs
with an invalid signalling port number (0) in signalling routed mode
- get rid of redundant config reload mutex inside accounting modules
- obsolete auth modules MySQLAliasAuth and MySQLPasswordAuth are now removed
- (GkStatus.cxx) fixed a missing lock during config reload
- accept LRQs from any port (check only an IP address)
- SQL modules accept only one database host now (the failover was not supported
properly either, so it has been removed)
Changes from 2.2.0 to 2.2.1
===========================
- enchanced prefix matching for routing policies. A dot (.) matches any digit
- enchanced prefix matching for neighbors. A dot (.) matches any digit,
! at the beginning disables the prefix
- (ProxyChannel.cxx) critical fix - a missing lock during config reload
caused the gatekeeper to crash
- (ProxyChannel.cxx) more reliable port number selection for Q.931, H.245,
T.120 and RTP port ranges (before, a config reload could cause many calls
to fail because of unability to get a new socket)
- (ProxyChannel.cxx) default setting for RTPPortRange is now to let the OS select a port number
- more flexible rewrite rules (both global and per-gw) with '.' and '%'
wildcard characters
- security fix for socket handle/select oveflow issue
- new accounting event 'connect' (only in routed mode)
- timestamp microseconds field has a fixed length of 3 digits
- enchanced prefix matching for gateways. A dot (.) matches any digit,
! at the beginning disables the prefix
- BUGFIX(radproto.cxx) VSA matching routing ignored a vendor identifier
causing incorrect attributes to be matched
- insert missing Calling-Party-Number-IE/Display-IE if corresponing
Screen... options are enabled
- shutdown the gatekeeper if there are errors in SQL auth/acct modules
configuration, thanks to Mikko Oilinki
- (gkslq.cxx) try to reconnect to the database, if the initial attempt
failed. Thanks to Mikko Oilinki
- another changes to Calling/Called-Station-Id handling, always use
Calling/Called-Party-Number IEs when available. Calling/Called-Station-Id
is now set outside auth modules, so acct modules receive correct
values, independetly of auth modules usage
- BUGFIX(Toolkit.cxx) correctly replace %u in timestamps with number
of microseconds instead of passing %u to strftime
- ability to select Called-Station-Id number type between the original one
(dialed number) and the rewritten one. New UseDialedNumber config option
for RadAuth/RadAliasAuth/RadAcct modules, new %{Dialed-Number} variable
for SQLAcct and FileAcct modules
- ability to customize timestamp formats. New TimestampFormat config variables
for main, SqlAcct, RadAcct, FileAcct and CallTable sections
- (ProxyChannel.cxx) safety check before a signaling socket is actually deleted
for being removed from an associated call record
- new TcpKeepAlive option to remove problem with network errors and hanging
calls (see docs/keepalive.txt for more details)
- RadAuth/RadAliasAuth modules can now add/remove endpoint aliases during
endpoint registration (using h323-ivr-in=terminal-alias: Cisco AV-Pair)
- per-call proxy control
- new status port command RouteToGateway
Changes from 2.2beta5 to 2.2.0
==============================
- BUGFIX(RasSrv.cxx) invalid/unsupported RAS/signaling addresses are ignored
in RRQ messages
- GCC 3.4.2 compilation errors fixed
- BUGFIX(gkauth.cxx) PrefixAuth module crashed when checking ARQ without
a destinationInfo field
Changes from 2.2beta4 to 2.2beta5
=================================
- BUGFIX(ProxyChannel.cxx) race condition with NAT sockets fixed, thanks to Daniel Liu
- new RoundRobinGateways config option in the RasSrv::ARQFeatures sections
to enable/disable round-robin gateway selection
- call capacity limits and gateway prioritization (new EP:: config sections)
- BUGFIX(ProxyChannel.cxx) errors during H.245 channel establishment caused
calls to not disconnect correctly
- check VirtualQueueRegex on startup
- BUGFIX(gk.cxx) reopen a log file on reload (HUP) signal to allow logrotate
to manage logs
- BUGFIX(RasTbl.cxx) multithreading issues with an access to endpoint record
data fixed. Thanks to kubuqi cn!
- BUGFIX(ProxyChannel.cxx) RTP proxy handling moved to a separate RTP proxy
threads. New RtpHandlerNumber config option
- BUGFIX(yasocket.cxx) enabled REUSE_ADDRESS option on listening sockets
in non-LARGE_FDSET mode to allow fast gatekeeper restarting
- better disconnect cause reporting in Setup processing
- ability to set call destination in auth modules. RADIUS based call routing
- BUGFIX(Neighbor.cxx) fixed sourceInfo LRQ field handling - now it contains
an H.323 identifier of the gatekeeper
- (radproto.cxx) ability to set shared secrets for each radius server
separatelly, more Radius optimizations
- new, much faster, Radius client implementation. Thanks to Pavel Pavlov
for numerous ideas and suggestions!
- BUGFIX(ProxyChannel.cxx) Called-Party-Number-IE rewrite occured too late,
causing auth/acct modules to receive the original number instead of the rewritten one
- (RasSrv.cxx) duplicated RAS messages are now simply discarded
- BUGFIX(ProxyChannel.cxx) fixed proxying of RTP packets, so RTP sockets are
not closed on temporary errors (like remote socket not yet ready). This bug
affected especially NAT traversal and situation, when audio was sent very
early, when reverse proxy path has not been yet established
- BUGFIX(RasSrv.cxx) fixed handling of RRJ (fullRegistrationRequired)
from an alternate GnuGk
- BUGFIX(GkStatus.cxx) fixed bug in status client authentication introduced
by recent changes, thanks to Razvan Radu!
- (sqlbill) examples how to setup SQLAcct, SQLPasswordAuth and SQLAliasAuth
with the billing
- direct SQL accounting module (SQLAcct) ported from 2.0 branch
- BUGFIX(gkauth.cxx) gcc 2.95.x compilation errors fixed
- BUGFIX(Neighbor.cxx) handling reply messages (RIP/LCF/LRJ) from neighbors
fixed, thanks to kubuqi cn (kubuqi@hotmail.com)
- support for CallCreditServiceControl in RCF and ACF messages, which allows
reporting call duration limit and user's account balance to endpoints.
Currently RadAuth and RadAliasAuth modules support this feature.
- BUGFIX(gk.cxx) removed an invalid test for the log filename, preventing
from creating log files in a directory other than the current one
- BUGFIX(GkClient.cxx) TTL bug fixed (RRQ every second), documentation updates
- fixed assertions caused by attempts to get/set config keys with an empty key name
- BUGFIX(gk.cxx) fixed log file rotation under Windows, thanks to Cristian Bullokles!
- log file rotation, new LogFile config section, new setlog and rotatelog
status interface commands
- BUGFIX(gkacct.cxx) a fix to rotation interval calculation for monthly
CDR file rotation
- BUGFIX(gkacct.cxx) FileAcct monthly rotation rotated a CDR file unnecessary
on gatekeeper restart
- BUGFIX(gkacct.cxx) fixed a critical bug in Username determination
for unregistered endpoints, introduced by recent changes
- BUGFIX(RasSrv.cxx) do not include an invalid access token (with null object
identifier) in LCF to prevent interoperability problems, thanks to Andreas Sikkema!
- BUGFIX(ProxyChannel.cxx) better handling of multiple calls over a single
signalling channel by setting multipleCalls and maintainConnection
H.225.0 fields to FALSE in all messages. Thanks to Ian Campbell!
- better Username, Calling-Station-Id and Called-Station-Id determination,
consistant across all auth/acct modules, redundant code removed
- new Gatekeeper::Auth flag SetupUnreg to toggle Q.931 Setup authentication
for unregistered endpoints only
- IncludeEndpointIP flag for RadAuth, RadAliasAuth and RadAcct is obsolete,
these modules will always send Framed-IP-Address
- (sqlbill) reject gracefully Access-Requests without Framed-IP-Address
- (sqlbill) improvements for IP only authorization
- BUGFIX(sqlbill) FreeRadius accounting_stop_query changed to not check h323id
in order to allow IP only authorization
- BUGFIX(sqlbill) FreeRadius accounting_update_query changed to not check h323id
in order to allow IP only authorization
- (radacct.cxx) new RADIUS h323-ivr-out=h323-call-id parameter that contains
an H.323 Call Identifier
- BUGFIX(radauth.cxx) better Framed-IP-Address handling in RadAliasAuth Setup check
- BUGFIX (ProxyChannel.cxx) With a certain combination of endpoints it
was possible to have UDPProxySocket trying to forward incoming RTP /
RTCP trafic to 127.0.0.1:0. Added a check for this situation and send
traffic to non-loopback address and hope it is the correct address.
- (sqlbill) added ability to authenticate users only by their IP
(ignoring User-Name)
- BUGFIX(radauth.cxx) RadAliasAuth will use Calling-Party-Number as User-Name
if no sourceAddress inside is present in Setup-UUIE
- (sqlbill) new, more flexible tariff/rating engine
- BUGFIX(gk.cxx) fixed signal handling to use sigaction instead of signal
to prevent accidental gatekeeper crashes because of restored signal handlers
- BUGFIX(gkacct.cxx) rotation per number of lines works correctly now
Changes from 2.2beta3 to 2.2beta4
=================================
- BUGFIX(radauth.cxx) check if generalID matches one of endpoint's aliases
only when authenticating RRQ
- (gkacct.cxx) parametrized FileAcct CDR output
- BUGFIX(gkauth.cxx) do not declare H.235 Auth Procedure I support as it is
not fully implemented
- (RasSrv.cxx) do not copy nonStandardData field from RAS requests to RAS replies,
as it does not make any sense and cause interoperability problems with some
Cisco IOSes
- (yasocket.cxx) fixed a bug in TCPListener::IsTimeout() which prevented
GNUgk from running > 596 hours
- (ProxyChannel.cxx) fixed a critical bug with referencing already deleted
socket, when the remote party did not accept signalling tcp connection
- (ProxyChannel.cxx) more UDP proxy optimizations
- new flexible CDR file rotation for FileAcct module
- (gktimer.cxx) new generic support for time-based events
- BUGFIX(Routing.cxx) processing LRQ request should not apply round robin
selection to gateways with the same prefix
- BUGFIXes: make sure we delete list items _after_ we have removed
them from the list
- BUGFIX(RasTbl.cxx) make sure PrintCurrentCalls prints ACF messages
in the same format as all ACFs
- improved performance of the socket code (especially when LARGE_FDSET
is enabled). Faster select for a single socket and an unnecessary
write lock for UDP sockets removed
- BUGFIX(radproto.cxx) default auth/acct ports are now set to fixed values
1812 and 1813, due to problems with getservbyname and multithreading
- (gksql.cxx) improved SQL query parameters replacement routine
- removed descendancy check in radproto to allow compilation with the latest
RTTI enabled PWLib
- BUGFIX(Neighbor.cxx) fixed missing parentheses, thanks to kubuqi cn
- BUGFIX(h323util.cxx) GetIPAndPortFromTransportAddr now checks if the address
is valid
- BUGFIX(ProxyChannel.cxx) fixed bugs in ForwardCall, thanks to Daniel Liu
- header file usage more consistent
- SQL authenticators moved to a separate file
- added VSNET2003 sln and vcproj files
- fixed Windows DSP files to not enable some optimizations for Windows
that result in VC6 linker throwing away some gnugk modules (static variables)
- improved configure script to detect installed PWLib/OpenH323
- significant API changes to authentication/accounting modules
- added logparser application from Saad Faisal to the contrib section
- pgsqlauth removed from the contrib section, as it is obsolete now
- BUGFIX(Routing.cxx) the absense of a regexp for virtual queues wasn't detected
- BUGFIX(ProxyChannel.cxx) multiple calls over a single signalling channel
are now gracefully handled using ReleaseComplete with newConnectionNeeded code.
- (RasTbl.cxx) permanent endpoints are correctly reloaded now, with removal
of permanent endpoints for which config entries have been deleted
- (gkauth.cxx) depreciated ExternalPasswordAuth finally removed
- SQL engine rewritten completelly to use a concept of SQL driver.
New modules SQLPasswordAuth and SQLAliasAuth added. MySQL and PostgreSQL
drivers implemented. Funded by Doxum Technologies Inc.
Backward compatibility (MySQLAliasAuth and MySQLPasswordAuth) maintained.
- BUGFIX(Routing.h) fixed referencing to a temporary PString object
after it is destroyed
- better LOG_OFF Windows event handling to prevent gatekeeper shutdown
when user logs out. The patch from Franz J Ehrengruber
- added GNU Gatekeeper Service for Windows from Franz J Ehrengruber
- added Windows icon and version info from Franz J Ehrengruber
- (manual.sgml) corrected MySQLPasswordAuth, MySQLAliasAuth sections,
removed NeighborPasswordAuth documentation (not necessary anymore)
- (gkauth.cxx) fixed SimplePasswordAuth module to read settings from
[SimplePasswordAuth] section instead of [Password] section.
Fixed MySQLPasswordAuth module to accept CacheTimeout parameter.
Default CacheTimeout for MySQLPasswordAuth and MySQLAliasAuth set to 0
(do not cache passwords/aliases at all)
- applied the concept of output trace levels for the status interface.
It allows to select amount of information a status client receives
(level 0 - silent mode + reloads; level 1 - CDRs, RouteRequests, reloads;
level 2 - everything: the default mode)
- (GkStatus.cxx) some cleanup, better tracing, new trace command introduced
to support multiple output levels in the future
- added missing addpasswd Visual Studio project files (dsp and dsw)
- (configure.in) added check for MSG_NOSIGNAL flag support with send/recv calls
- (configure.in) better pwlib/openh323 detection patches from Klaus Kaempf
- (RasTbl.cxx) treat MCUs as gateways and allow MCUs to register prefixes
- (Toolkit.cxx) use in-place constructors and destructors inside RewriteData
to prevent Windows exceptions on rewrite rules reload in debug mode
- removed duplicated build timestamp from 'version' command output.
Added special file versionts.h to ensure version.cxx is rebuilt each
time GnuGk is recompiled, in order to get proper build timestamp
- (job.cxx) jobs simplified, optimised and checked for thread safety
- (version.cxx) modified to list all extensions in the version string
- (ProxyChannel.cxx) support for H.323 V4 provisionalRespToH245Tunneling
and parallelH245Control H.225.0 elements
- log rotation now maintains the original filename and stores rotated
log files with precise timestamp (YYYYMMDD_HHMMSS) to prevent overwritting.
Thanks to Rafael Costa dos Santos.
- added Q.931 Setup authentication to RadAuth module to allow
authentication based on crypto tokens carried inside Setup
- modified GkAuthenticator and RADIUS authenticators prototypes
to allow modifications of messages being processed
(NOTE: This may break compatibility with some customer derived classes)
- (ProxyChannel.cxx) RTP proxy fixed to not require RTCP channel
and work better with T.38 faxes
- (ProxyChannel.cxx) added new config parameter ScreenSourceAddress
to screen calling party aliases from UUIE Setup element
- added sample SQL/RADIUS billing example to the contrib directory
- removed Makefile to force users running configure script before compilation
- added per gateway E.164 rewriting of dialedDigits in addition to
global E.164 rewriting
Changes from 2.2beta2 to 2.2beta3
=================================
- addpasswd utility changed to require section name where the encrypted
username/password will be stored
- BUGFIX(gkauth.cxx) fixed call duration limit handling when multiple
authenticator modules are specified
- BUGFIX(gkacct.cxx) changed accounting reload handling to first cleanup
the old modules and then create the new ones. This allows the FileAcct
logger to work fine with the reload command
- BUGFIX(h323util.cxx) additional check for H225_TransportAddress
to prevent NULL pointer assertions. Thanks to Andrey Pankov!
- added Q.931/H.225 Setup authentication (RadAliasAuth module implementation)
- BUGFIX(radproto.cxx) fixed invalid signed/unsigned conversion that caused
some functions to return unexpected results
- BUGFIX(Neighbor.cxx) LCF is considered to come from a given neighbor
if either IP:PORT or neighbor identifier inside LCF nonstandarparam field matches
(was: neighbor identifier inside LCF nonstandarparam field or, if the field
is missing, IP:PORT)
- added PostgreSQL authenticator modules to the contrib directory
- API for AliasAuth has changed slightly
- better checking of tokens/cryptoTokens by SimplePasswordAuth derived authenticators
- BUGFIX(RasTbl.cxx) fixed NULL reference in CallRec::SetSocket - caused crash
in ForwardCall. Thanks to kubuqui cn!
- check ReleaseComplete for H225 reason field, if no Q.931 cause IE is found
- set disconnect cause to "normal call clearing" on DRQ received with normalDrop
disengageReason and no termination cause set
- BUGFIX(ProxyChannel.cxx) fixed h225 termination cause setting for ReleaseComplete
- better hop count handling for neighbors - now LRQ m_hopCount field
is forwarded/generated correctly, according to an original hop count
or a ForwardHopCount config settings
- small radius accounting/authentication module optimizations and better trace ouput
- changed handling of multiple accounting modules (added new "alternative" control)
- added new VirtualQueuePrefixes and VirtualQueueRegex config variables
to [CTI::Agents] section. These make possible to call virtual queue
not only with the exact alias name, but also with an alias that matches
configured prefixes or configured regular expression. Thanks to Max Speransky
- renamed config variable VirtualQueue to VirtualQueueAliases
(backward compatibility is maintained)
Changes from 2.2beta1 to 2.2beta2
=================================
- BUGFIX(RasTbl.cxx) fixed connect/disconnect time handling and call duration
calculation. Thanks to Aivis Olsteins
- BUGFIX(GkClient.cxx) changed SetPassword to fill LRQs with all recognized
tokens/cryptoTokens
- better disconnect cause handling
- BUGFIX(ProxyChannel.cxx) ReleaseComplete now always contains either CauseIE
or H225_ReleaseCompleteReason, because one of these fields is mandatory
- added status line improvements (command expansion, repeat last command,
backspace handling for windows) from Hu Yuxin
- BUGFIX(GkStatus.cxx) removed unimplemented "disconnect" and "unregister"
commands
- ACF is filled with destinationInfo if aliases have changed during
ARQ processing and ARQ.canMapAlias is TRUE
- added more tracing and human readable names to routing policies
- added modified CTI virtual queues implementation from Chih-Wei Huang
- BUGFIX(singleton.cxx): incorrect singleton instance counting with different trace levels
- added "run as user" feature
- plain text CDR accounting logger module from Tamas Jalsovszky
- call duration limit features introduced for ARQ handlers
- old LDAP support removed from the source code tree
- full Radius - authentication and accounting(start/stop/update)
- added configure script to detect system settings and create Makefile
Changes from 2.0.x to 2.2beta1 (by cwhuang)
===========================================
- new method to detect NATed endpoints
- better handling of call timeout
- support multiple mysql servers
- add authentication method selection for GkClient
- the underlying architecture is almost rewritten entirely, includes
object factory
new thread model
universal sockets handling mechanism
RAS type traits
multi-threaded RAS server
new neighboring system
configurable routing policies
thread-safed gkauth
- use MySQL C API directly instead of MySQL++
Changes from 2.0.3 to 2.0.4 (by cwhuang)
========================================
- add multiple prefixes for neighbors from Rodrigo Gonzalez
- TransferCall patch from Olivier GRALL <olivier.grall@caramail.com>
- fix H.235 compatibility with lastest CVS of Openh323
- set m_h245Tunneling as h245Tunneling flag in Setup_UUIE
- allow h245 reverting work for calltype=1
- allow disable Shutdown command
- permanent endpoints can be reloaded now
- fix conflict between AcceptGatewayPrefixes option and permanent endpoints
- fix bug for multiple SupportedProtocols
- add StatusWriteTimeout option
- add OverwriteEPOnSameAddress option
- add Shutdown command (jan)
Changes from 2.0.2 to 2.0.3 (by cwhuang)
========================================
- add VendorIdentifier in RRQ
- more elegant way to detect version of Openh323
- fix typo for CheckID :(
- fix nattype bug on fullRRQ
- reject nated endpoint from private IP 127.0.0.1
- fix problem if receiving DRQ before than ReleaseComplete
- fix compile problem with latest CVS of Openh323
- add AcceptEndpointIdentifier option
- fix hang bug on GkStatus
- allow to reject forwarded LRQ
- forward call on Facility
- fix bug LRQ with empty destinationInfo
- send endpoint alias via sourceInfo of LRQ
- allow set nated endpoints forcedly
- let virtual queue feature be optional
- fix a bug on startH245
- implemented inbound call distribution with virtual queues
(based on patch by Dennis Lazreg)
- workaround for Setup contains empty destinationAddress
- workaround to copy cryptoTokens for the latest CVS of OpenH323
- fix shutdown problem on SMP machine
- reject lightweightRRQ if IP has changed
- send DRQ to parent if reject a call
- fix billing issue for forwarded calls
- change 'ifdef PTRACING' to 'if PTRACING' since it is always defined
- fix warnings of unused variables in non PTRACING mode
- expire endpoints even in active calls
- send endSessionCommand before closing h245socket
Changes from 2.0.1 to 2.0.2 (by cwhuang)
========================================
- show NAT IP in print verbose command
- fix reply of pending ARQs to NATed endpoint
- fix bug on handling Facility
- allow hide DisplayIE and CallingPartyNumberIE
- fix an interoperability bug with old NAT solution
- fix a bug that prefixes is not changed on full RRQ
- support 'H323-GW' prefixes
- fix leaking messages on status port
- fix a security bug OnDRQ
- rewrite Setup.destinationAddress even if no CalledPartyNumber
- fix interoperability problem on CloseLogicalChannel for some bad endpoints
- reload route table on RRJ with reason fullRegistrationRequired
Changes from 2.0.0 to 2.0.1 (by cwhuang)
========================================
- add statistics for nated ep and calls from parent
- avoid looped calls
- add NetworkInterfaces option for OS that don't support GetRouteTable()
- add H.245 Reverting technology(Patent Pending)
- fix H.225.0 procotolID problem
- fix a long existing bug according to Packetizer
http://www.packetizer.com/in/q14.html
- add TOS flag for RTP/RTCP, thanks to Thomas Jalsovsky
- add Citron NAT technology(Patent Pending)
- allow multiple nated endpoints with the same private IP but
different public IP register simultaneously
- fix possible race conditions in all STL list::size()
- fix a sigfault when name of parent GK is unresolved
- add 'gk' command to show parent GK
- add AlwaysForwardLRQ option
- don't do round-robin for LRQ and find command
- fix a bug in proxy mode (when there are several session IDs in fast start)
- improve support NATed endpoints
- only include alternateGatekeeper field in GCF/RCF if GRQ/RRQ has supportsAltGK
- add a workaround so OpenH323 clients won't reject our confirm messages
when use H.235 authenticators
- add UseBroadcastListener option
- fix incorrect bandwidth in answered ARQ as a child GK
- add DisconnectSession command, thanks to Rodrigo Gonzalez
- change debug level of received messages(Q931, H245) to 4,
only show sent messages if modified
- change RasSvr to RasSrv for consistent
- fix bandwidth problem of the answered ARQ
- add password rule for GkStatus, thanks to Rodrigo Gonzalez
- large fd_set patch
- fix problem of h245socket handling
- fix incorrect lightweight RRQ handling
Changes from 2.0b8 to 2.0.0 (by cwhuang)
========================================
- allow to find by epid or ip address
- improve ProxySocket for thread-safe writing
- improve BRQ handling
- add alternateGKs support for GkClient
- improve alternateGKs support
- sort the AuthRules by priority
- clean up BroadcastListen.cxx and MulticastGRQ.cxx
- fix a serious bug in MulticastGRQ.cxx
- let setting options from status port work
- print version when connect to status port
Changes from 2.0b5 to 2.0b8 (by cwhuang)
========================================
- allow to limit port range
- allow call unregistered endpoints
- add RemoveTrailingChar feature
- show CallerIP for CDR from neighbors
- disconnect all calls on shutdown
- disconnect calls when unregister an endpoint
- accept LRQ from registered endpoints
- add AcceptGatewayPrefixes option
- always rewrite dialedDigits OnARQ
- create symbolic link in /tmp to avoid permission problem
- rewrite GkAuthorize to PrefixAuth module
- accept broadcasting RRQ (workaround for Cisco Call Manager)
Changes from 2.0b4 to 2.0b5 (by cwhuang)
========================================
- add ExternalPasswordAuth module
- accept unregistered call if Q.931 contains CalledPartyNumber
- add IncludeDestinationInfoInLCF option
- allow a second ARQ if srcCallSignalAddress is in SkipForwards
- support forwarding LRQs
- add call duration in seconds, thanks to Rodrigo Gonzalez
- change executable name to gnugk
- add DropCallsByReleaseComplete option
- support NATed endpoints by NATHandler
- add AcceptNeighborsCalls, change the meaning of AcceptUnregisteredCalls
Changes from 2.0b3 to 2.0b4 (by cwhuang)
========================================
- add MySQLAliasAuth module
- add ExtraCriterion to MySQLAuth, remove CheckField
- bandwidth management is disable by default
- remove resourceManager, bandwidth management now in CallTable
- allow set neighbors without prefix, no LRQs will be sent to such neighbors
- send IRQ to an endpoint before expiring it
- only accept unregistered call from neighbors
- in SimplePasswordAuth module, allow expire password cache
- add NeighborPasswordAuth module
- check if LRQs is from IP of my neighbors
- add dynamic resolving name for neighbors, thanks to Rodrigo Gonzalez
- add GkClient module
- allow remove a key or a section in the config from status thread
- remove isalnum check for aliases, we hope to use unicode. :)
- add total call counting for EndpointRec
Changes from 2.0b2 to 2.0b3 (by cwhuang)
========================================
- add AcceptUnregisteredCalls feature
- fix problem of RouteTable in Linux with alias interfaces
- show endtime in CDR even if call not connected
- in routed mode, reject answered ARQ if no CallRec found
- add detailed explanations of known options
- support proxy for fast start logical channels
- fix GKHome not work for proxy
Changes from 2.0b1 to 2.0b2 (by cwhuang)
========================================
- add proxy for T.120 logical channels
- add proxy for RTP logical channels, add Proxy section
Changes from 1.3 to now (by mmuehlen)
====================================
- added destination analysis module list (gkDestAnalysis.cxx, gkDestAnalysis.h)
with a similar structure as the authentication module list
(can be enabled with compiler option WITH_DEST_ANALYSIS_LIST)
- added base class 'GkLDAP' for LDAP access (gkldap.h gkldap.cxx)
- changed the following section names in ini-file
(reason: LDAP is not only used for authentification):
LDAPAuth::LDAPAttributeNames -> GkLDAP::LDAPAttributeNames
LDAPAuth::Settings -> GkLDAP::Settings
Changes from 1.3 to 2.0b1 (by cwhuang)
======================================
- redesign routed model, add RoutedMode section
- add H.245 routed support, including early connect
- TimeToLive now can be specified in config file
- improve multi-homed support
- new command unregisterip (jan)
- other minor cleanup
Changes from 1.2 to 1.3 (by mmuehlen)
====================================
- fix a bug in Toolkit::GKName (13.11.01)
- add SrcInfo and GkName to CDR:
CDR|CallNo|CallId|Duration|Starttime|Endtime|CallerIP|CallerEndId|CalledIP|CalledEndId|DestInfo|
srcInfo|GkName (13.11.01)
- add SHA1 support for SimplePasswordAuth (14.12.01)
- add LDAPAliasAuth (03.01.02)
- add support for new voip.schema (15.01.02)
Changes from 1.2 to 1.3 (by cwhuang)
====================================
- fix problem for lightweightRRQ without callSignalAddress & rasAddress
- rotate log on SIGHUP signal
- write pid to /var/run/gk.pid (can be specified by --pid option)
- rewrite dialedDigits OnLRQ
Changes from 1.1 to 1.2 (by cwhuang)
====================================
- add MySQLPasswordAuth, need mysql++ to compile it
- show left time of calls in PrintCurrentCalls
- add 'Statistics' command
- Rewrite destinationAddress in H225_Setup_UUIE
- fix a bug in Toolkit::RewritePString
- send DRQ to endpoints when tear down a call, give up send Release Complete
(in some situation it causes deadlock, very strange!!)
however, some buggy endpoints would ignore DRQ, sigh...
only send Release Complete on 'DisconnectCall' command
- fix 'connectionList returned NULL' bug in SignalChannel.cxx
- modify SignalConnection::Send to more thread-safe
- modify OnARQ to fix routed mode problem
- show count of current calls of endpoints in PrintAllRegistrationsVerbose
- add 'Find' and 'FindVerbose' commands
- check endpoint identifier for fullRegistrationRRQ
- fix a (security) bug in lightweightRRQ
- add startup and running time to 'Version' command
- change EndpointRec::m_terminalType to be a pointer to reduce memory
consumed (sizeof H225_EndpointType = 2552 in x86)
- send Release Complete to endpoints when tear down a call (routed mode)
- disconnect calls of an endpoint on URQ
- add DefaultCallTimeout to remove staled calls
- fix bug in DisconnectAlias
- only use CallId to find CallRec if it presents, this fix a potential
CRV conflict in ARQ
- re-use endpoint identifier if call signal address found in RemovedList
- send URQ & DRQ from RAS port instead of arbitrary port
- print dialed number, number of calls in PrintCurrentCalls cmd
- print number of endpoints in PrintAllRegistrations cmd
- allow generate NB, UC CDR
- don't let ttl < 60
- only generate CDR for call that originated from my zone and connected
(must work in routed mode)
- redesign CallRec & CallTable
- extend debug cfg SEC command to retrieve a whole section
Changes from 1.0 to 1.1 (by cwhuang)
====================================
- change neighbors structure
- add class GkAuthInitializer for authenticators initialization
- add authentication modules (gkauth.cxx, gkauth.h)
Changes from 1.0pre9 to 1.0 (by cwhuang)
========================================
- add 'debug printrm' command
- change EndpointRec::Ptr to template
Changes from 1.0pre8 to 1.0pre9 (by cwhuang)
============================================
- Neighbor function based on LRQ/LCF.
GK would cache the records in a list.
A command "PrintAllCached" is added to GkStatus.
- Add more information in LCF reply, including terminal type, aliases
and supportedProtocols (if any) so that the neighbors could cache it.
- Re-design EndpointRec & RegistrationTable.
The output format of "PrintAllRegistrations" is also changed.
- Add permanent endpoints support for endpoints without RAS.
- Add gateway SupportedPrefix support.
Note the gateway aliases no longer be treated as prefixes.
If you want an alias to be a prefix, add it to SupportedPrefix
or config file.
- Replace using directive by using declaration to avoid namespace pollution.
Changes from 0.17 to 1.0pre8
============================
- add destInfo to CallRec and CDR (cwhuang)
- rewrite some codes in OnRRQ to be more clean and compact (cwhuang)
- change H323RasSrv to be a separate thread, do housekeeping in the main thread (cwhuang)
- shutdown handler refine (cwhuang)
- allow aliases begin with '#' (cwhuang)
- don't search endpoint table for an ARQ to an answerCall (cwhuang)
- add registration timeout (cwhuang)
- add mutex to RegistrationTable for thread-safe (cwhuang)
- almost rewrite SoftPBX.cxx (cwhuang)
- add singleton.h, singleton.cxx, change all singleton objects to derive from a
template singleton base to avoid code duplication and allow a better cleanup
(cwhuang)
- remove all usages of for_each_with by STL for_each (cwhuang)
- add RegistrationTable::RemovePrefixes(const PString &) (cwhuang)
- add more fields to CDR output, add port number to ACF output (cwhuang)
- rewrite UnixShutdownhandler for graceful shutdown (cwhuang)
- change some members and methods in Toolkit to non-static (cwhuang)
- ensure Toolkit::Config be called after SetConfig
some order of initialization in gk.cxx changed accordingly (cwhuang)
- fix the reload mechanism, set m_RewriteFastmatch when reload (cwhuang)
- add 'reload' command to status thread and remove 'debug reload' command
'shutdown' command is also added, but not implemented yet (cwhuang)
- show a copyright notice to be compliant to GPL requirement (cwhuang)
- more documentation
- status thread: changed Disconnect command to DisconnectIp,
added DisconnectAlias, DisconnectCall, DisconnectEndpoint,
UnregisterAlias
- better handling of DCF
- better error checking for command arguments via status thread
- dummy implementation for TransferCall and MakeCall (doesn't do anything, yet)
- slightly different handling of SIGHUP
- RewriteE164: multiple comma-separated targets, randomly chosen
- simplified conversion between socket and H225 ip addresses
- first steps to implement H.245-routing (doesn't do anything, yet)
- commands via status thread are case insensitive
- changed command line option -h (home interface) to -i, new option -h (help)
- updated to latest OpenH323 version (pwlib 1.1.32, openh323 1.5.4)
- use callIndentifiers instead of callReferences (the first are globally unique)
- generate CallProceeding messages
- using all aliases of endpoint, not only the first alias
- generate CDRs, signal all ACFs
- check H.225 connections with Q.931 StatusEnquiry heartbeat (optional)
- changed default for RasSrv::RRQAuth back to confirm (so you can use
the gatekeeper without a config file)
- compile fixes for Visual C++ 6.0
Changes from 0.16 to 0.17
=========================
- fixed crash in status reporting of ACF in routed mode
- fixed bug, where the destCallSignalAdress still pointed to the GK
after being forwarded in routed mode (prevented routed call from
OhPhone -> Netmeeting)
- the config file gatekeeper.ini is no longer mandatory; simple
configurations will work without any config file, but you'll need
it for more complicated setups
Changes from 0.15 to 0.16
=========================
- small fixes to make the gatekeeper compile under Visual C++ 6.0
Changes from 0.14 to 0.15
=========================
- fixed unsafe cast from H323 alias to PASN_BMPString
Bacci Emiliano found it
Changes from 0.13 to 0.14
=========================
- major bug-fix for ohphone compatibility
Christoph Stueckjuergen found it
Changes from 0.12 to 0.13
=========================
- updated to compile with OpenH323 beta 3
- small fix in SignalConnection for Windows NT
by rama@anwsi.com
- multicast requests are answered to the specified port (not the
sender port
by Denver Trouton
- RegistrationTable::FindByPrefix now finds the longest prefix, not
the first one
by Michael Rubashenkov
- fix in H323RasSrv::OnLRQ to allow it to work with Cisco gatekeeper
by Michael Rubashenkov
- fix to allow Netmeeting to call ohphone (the other always way has
been working)
by Andreas Hofmeister
Changes from 0.11 to 0.12
=========================
- you must have a config file now to set the various new options
(eg. gatekeeper.ini in the current directory, or set a path on the
command line with -c)
- support for failover to other gatekeepers
- RAS messages can be forwarded to other gatekeepers
- TCP parameters can be configured in the config file
- what gateway to use on what E.164 prefix can be specified in the
config file
- overlapped sending: specify in the config file when to send
"incompleteAddress" on ARQ and collect more digits
- detailed authentication rules which endpoints may register based on
their IP numbers
- rule based authentication for usage of the status port
- alias rewriting: the gatekeeper has a list of E.164 aliases
that are replaced by another E.164 number
- many bug fixes...
- the timeToLive filed in RCF can be set on the command line with -l
- more detailed status messages (see GkStatusMsgFmt.html)
many patches from Henrik Joerring
Most of the changes in this release are donated by folks at MediaWays
(Markus Storm and Torsten Will).
They sent more stuff than I can mention here.
Changes from 0.10 to 0.11
=========================
- many memory leaks fixed
by Damian Slee
- LRQ implemented
patch by Ashley Unitt
- accept LRQ as Multicast, too
- when more bandwidth is requested than available we now grant ACF with
the bandwidth that's still available
input from Robert Jongbloed
- more attempts for a clean shutdown handling
- status thread accepts commands now (see gkstatus.txt)
patch by Ashley Unitt
- more detailed status messages (see GkStatusMsgFmt.html)
input from Henrik Joerring
- general code fixups
by nils@shkoo.com
Changes from 0.9 to 0.10
========================
- trace messages now use the Pwlib trace facility (use -t or -tt ... to
turn them on and -o to write to a file)
patch from Seungoh Jhung
- support for lightweight registration updates
- on shutdown all registered endpoint receive a UnregistrationRequest
- support for gateways: for gateways we only compare the prefix of
the E.164 address the gateway registered and assume that the gateway
provides access to the whole address space (needs testing!)
input from Frank Breitenbach
- new command line option -h <ip> to specify the ip number the
gatekeeper binds to. Now you can use IP aliases on Linux and
start as many gatekeepers as you want.
input from Markus Storm
- status messages with ip numbers
input from Seungoh Jhung
- bugfixes
from many contributors...
Changes from 0.8 to 0.9
=======================
- gatekeeper routed signaling implemented (only H.225; no H.245, yet)
provided by Sergio Artero Martinez
- Bugfix: RRQ from Innovaphone IP400 now ok
input by Markus Storm
- gk sends status messages to all clients connected to TCP port 7000
(eg. for SNMP agent) - this is experimental and may evolve into
a full-fledged interface to the gatekeeper
- all mandatory RAS messages implemented
|