ถ้าต้องการให้ Gatekeeper ทำงานลักษณะนี้
- ไม่ต้องเร้าท์ H.245 และ Media -> ให้ endpoints คุยแลกเปลี่ยน H.245 control channels และ media channels กันเอง
- เร้าท์เฉพาะ H.245 แต่ไม่ต้องเร้าท์ Media -> เร้าท์ h.245 control channels ให้ แต่ให้ endpoints แลกเปลี่ยน media channels กันเอง
ให้คอนฟิกแบบนี้
[RoutedMode]
GKRouted=1
; enable gakekeeper routed signaling mode
H245Routed=1
; enable การเร้าท์ h.245 control channel ผ่าน gatekeeper แต่ก็จะมีผลก็ต่อเมื่อ disable H.245 tunneling บน endpoints
; ถ้า disable h.245 routed แต่ว่าเรา enable ProxyForNAT ไว้ ก็จะทำให้ gatekeeper เร้าท์ h.245 สำหรับ call ที่กำลังถูก proxy
CallSignalPort=1720
; เป็นพอร์ตสำหรับ call signaling บน gatekeeper พอร์ตดีฟอลท์คือ 1721 ถ้ามี H.323 โปรแกรมอื่นรันอยู่ในเครื่องเดียวกันก็ให้เซ็ตพอร์ตไม่ให้ตรงกัน
; เซ็ตเป็น 0 gatekeeper จะเลือกพอร์ตเอง
CallSignalHandlerNumber=10
; ดีฟอลท์ 5 ระบุจำนวน threads ที่จะใช้เพื่อ handle signaling/H.245 channels มี่ค่าระหว่าง 1-200 เพิ่มค่าให้มากขึ้นถ้า gatekeeper มีโหลดมาก
; แต่ละ thread สามารถประมวลผลได้ครั้งละ 1 signaling message ดังนั้นถ้าเพิ่มค่าขึ้นก็จะทำให้ throughput เพิ่มขึ้น
RtpHandlerNumber=2
;ดีฟอลท์ 1 เป็นจำนวนของ RTP proxy handling threads ค่านี้ควรจะเพิ่มก็ต่อเมื่อเจอปัญหา RTP delay หรือ jitter บน gatekeeper ที่มีโหลดมากๆ
AcceptNeighborsCalls=1
;ดีฟอลท์ 1 call signalig thread จะยอมรับคอลโดยไม่ต้องระบุ CallRec ไว้ใน CallTable ทำให้ endpoint ซึ่งตรงกับ destinationAddress ใน Setup สามารถ
;พบได้ใน Registration Table และ calling party เป็น neighbor หรือ parent gatekeeper ก็ได้
AcceptUnregisteredCalls=1
; gatekeeper จะยอมรับคอลจาก unregistered endpoint แต่ต้องมีกลไกอย่างอื่นในการตรวจสอบ endpoint เหล่านั้น เช่น เช็ค h323id, ip address
; ให้เปลี่ยน CallSignalPort เป็น 1720 ถ้าจะรับคอลจาก endpoint ที่ไม่ได้รีจเสเตอร์
RemoveH245AddressOnTunneling=1
; ดีฟอลท์ 0
; endpoint บางตัวส่ง h245Address ใน UUIE ของ Q.931 แม้ว่าจะเซ็ต h245Tunneling ให้เป็น true แล้วก็ตาม ซึ่งอาจทำให้เกิดปัญหาความเข้ากันได้
; ถ้าเราเซ็ตออปชั่นนี้ให้เป็น 1 จะทำให้ gatekeeper ลบ h245Address ออกไปเมื่อมันพบว่า h245Tunneling เป็น true จะเป็นการบังคับให้ endpoint ปลายทาง
; ยังคงอยู่ใน tunneling mode
RemoveCallOnDRQ=0
; การ disable ออปชั่นนี้จะทำให้ gatekeeper ไม่ disconnect คอลถ้ามันได้รับ DRQ สำหรับคอลนั้น ประโยชน์เพื่อหลีกเลี่ยงปัญหาที่อาจจะเกิดขึ้นจากการส่งทั้ง DRQ และ Release Complete
; จะมีประโยชน์ก็ต่อเมื่อทำงานแบบ routed mode เพราะว่าใน direct mode จะใช้ DRQ อย่างเดียวในการ disconnect
; และเมื่อใช้ call failover ต้องเซ็ตค่านี้เป็น 0
DropCallsByReleaseComplete=1
; ตามมาตรฐาน H.323 gatekeeper สามารถ disconnect call ได้โดยส่ง RAS DisengageRequest ไปยัง endpoints อย่างไรก็ตาม endpoint บางรุ่นก็อาจจะไม่สนใจคำสั่งนี้
; เมื่อเราอินาเบิลออปชั่นนี้ gatekeeper จะส่ง Q.931 Release Complete (แทนที่จะส่ง RAS DRQ) ไปยัง endpoints เพื่อบังคับให้ disconnect
SendReleaseCompleteOnDRQ=1
; เมื่อวางสาย endpoints ส่งทั้ง Release Complete ภายใน H.225/Q.931 และ DRQ ภายใน RAS ก็อาจจะเป็นไปได้ว่า DRQ จะถูกโพรเซสก่อน ทำให้ gatekeeper ปิด call signaling channels และดังนั้น gatekeeper จะไม่ฟอร์เวอร์ด Release Complete ไปยัง endpoint อีกด้าน เมื่อ gatekeeper ปิดคอนเน็คชั่น จะทำให้ endpoint บางตัว เช่น Cisco Callmanager ไม่ดร๊อป call แม้ว่า call signaling channels จะปิดแล้วก็ตาม ผลก็คือ phone ยังคงดังอยู แม้ว่าต้นทางจะวางสายแล้วก็ตาม วางก่อนจะรับสาย
; เซ็ตให้เป็น 1 ทำให้ gatekeeper ส่ง Release Complete ไปยัง endpoint ทั้งคู่เสมอ ก่อนจะปิด channel เมื่อมันได้รับ DRQ จาก endpoint ตัวใดตัวหนึ่ง
SupportNATedEndpoints=1
; ดีฟอลท์ 0
; เซ็ตให้เป็น 1 ยอมให้ endpoint หลัง NAT box รีจิสเตอร์เข้ามาได้ ไม่ฟ้องว่า "InvalidRRQAddress" โดย gatekeeper จะแปลงไอพีแอดเดรสใน Q.931 และ H.245 channel ให้เป็นไอพีของ NAT box
; GnuGK รองรับ NAT outbound call (call ส่งจาก endpoint ที่อยู่หลัง NAT ออกไปยัง internet) โดยตรง โดยไม่ต้องแก้ไขใดๆทั้งบน endpoint หรือ NAT box ทำเพียงแค่เอา endpoint รีจิสเตอร์กับ GnuGK และโทรออกเท่านั้น
SupportCallingNATedEndpoints=0
;ดีฟอลท์ 1
;ยอมให้ endpoint หลัง NAT box ซึ่งรองรับเทคนิค GnuGK NAT Traversal รับ call ใช้ออปชั่นนี้เพื่อ block เกตเวย์ที่ไม่รองรับเทคนิค GnuGK NAT Traversal ที่สมบูรณ์ ซึ่งอาจจะเป็นสาเหตุให้เกิดปัญหาได้ยินเสียงด้านเดียวเมื่อพยายามคอลไปยัง gatekeeper การ call ไปยัง gateway จะรีเทอร์น caller unreachable
;เพื่อให้มีผลต้องเซ็ต SupportNATedEndpoints=1 ด้วย
TreatUnregisteredNAT=1
;ดีฟอลท์ 0
;ใช้เพื่อเชื่อมกับ AcceptUnregisteredCalls และ SupportNATedEndpoints ซึ่งจะ automatically threat ทุก unregistered calls ที่ไม่สามารถตรวจสอบได้ว่าอยู่หลัง NAT หรือไม่ ว่าอยู่หลัง NAT
; ไม่ทุก endpoints ที่ส่ง sourceSignalAddres มาใน setup message ซึ่งจะใช้เพื่อหาว่า caller อยู่หลัง NAT box หรือไม่ ออปชั่นนี้รองรับปัญหาดังกล่าว
ScreenDisplayIE=MyID
; แปลง DisplayIE ของ Q.931 ให้เป็นตามนี้
ScreenCallingPartyNumberIE=123456
; แปลง CallingPartyNumberIE ของ Q.931 ให้เป็นตามนี้
ScreenSourceAddress=MyID
; แปลง sourceAddress field ของ UUIE elelement จาก Q.931 Setup message
ForwardOnFacility=1
ShowForwarderNumber=0
; จะให้แปลง calling party number ไปเป็น number ของ forwarder หรือไม่ ปกติจะใช้เพื่องานด้าน billing และต้องเซ็ต ForwardOnFacility=1
Q931PortRange=20000-20999
; ดีฟอลท์ ให้ OS เลือกให้
; ระบุช่วงพอร์ต TCP ที่จะใช้สำหรับ Q.931 signaling channels การระบุช่วงที่แคบไปก็จะจำกัดจำนวน concurrent calls ให้แน่ใจว่าช่วงนี้กว้างมากพอให้เหมาะสมกับค่า ;TIME_WAIT TCP socket timeot ก่อนที่ socket จะถูกนำกลับมาใช้ใหม่ได้หลังจากถูกปิดไป ค่า TIME_WAIT อาจจะมีค่าตั้งแต่ 15 วินาทีไปจนถึง 2-3 นาทีขึ้นอยู่;กับ OS ที่ใช้ ยกตัวอย่างเช่น ถ้าระบุช่วงพอร์ต 2000-2001 จะรับได้ 2 คอล อีก 2 คอลต่อไปต้องรอจนหมด TIME_WAIT timeout ก่อน
H245PortRange=30000-30999
SetupTimeout=4000
;ดีฟอลท์ 8000 ระบุค่า timeout (หน่วย ms) ที่จะคอยให้ signaling channel ถูกเปิดหลังจากส่ง ACF message ออกไป หรือคอย Alerting message หลังจาก signaling channel ถูกเปิดแล้ว
; ค่าๆนี้สามารถใช้เป็น PDD (Post Dial Delay) สูงสุดที่ยอมได้
AlertingTimeout=60000
;ดีฟอลท์ 180000
;ค่า timeout (หน่วย ms) ที่จะคอย Connect message หลังจาก call เข้าสู่สภาวะ Alerting แล้ว
; ค่านี้คือ max ringing time
TcpKeepAlive=1
;ดีฟอลท์ 0
TranslateFacility=1
;ดีฟอลท์ 0
SocketCleanupTimeout=1000
;ดีฟอลท์ 5000
ActivateFailover=1
;ดีฟอลท์ 0
GnuGK จะมองหาเร้าท์อื่นๆที่จะไปถึงปลายทางได้ถ้าเร้าท์แรก fail โดยรายการเร้าท์จะถูกสร้างขึ้นมานับแต่มี call แรกเข้ามา แต่เวอร์ชั่นปัจจุบันนี้ยังสร้างรายการ route จากหลายๆเร้าท์ไม่ได้ ตองให้ GnuGK สร้างเอง
FailoverCauses=1-15,21-127
; กำหนดว่า cause code ไหนใน ReleaseComplete ที่จะกระตุ้นการทำ call failover
DisableRetryChecks=1
; ดีฟอลท์ 0
CalledTypeOfNumber=1
;ดีฟอลท์ ไม่ระบุ
;เซ็ต Called-Party-Number type ของเบอร์ให้มีค่าตามที่ระบุ มีผลกับทุกคอล -> 0=UnknownType, 1=InternationalType, 2=NationalType, 3=NetworkSpecificType, 4=SubscriberType, 6=AbbreviatedType, 7=ReservedType
CallingTypeOfNumber=1
CalledPlanOfNumber=1
;เซ็ต Called-Numbering-Plan ของเบอร์ให้มีค่าตามที่ระบุ 0=UnknownType, 1=ISDN, 3=X.121 numbering, 4=Telex, 8=National standard, 9=private numbering)
CallingPlanOfNumber=1
ENUMservers=e164.org,e164.arap
RDServers=myvirtualhost.com
CpsLimit=10
;ดีฟอลท์ 0 ไม่จำกัด
; จำกัดจำนวน call ที่จะส่งเข้ามาต่อวินาที ถ้ามีคอลเข้ามาและถูกรีเจ็คออกในระดับ TCP level โดยไม่มี H.323 error message มันจะไม่โชว์ใน CDR
; มันจะจำกัดจำนวนคอลก็ต่อเมื่อ call ใน check interval มีมากกว่า call ใน check-interval * CPS-rate
CpsCheckInterval=1
; ดีฟอลท์ 5
GenerateCallProceeding=1
;ดีฟอลท์ 0
; GnuGK จะสร้าง CallProceeding สำหรับแต่ละ Setup message ที่มันได้รับ มีประโยชน์คือช่วยหลีกเลี่ยงปัญหา timeout ใน calling endpoints ถ้าปลายทางใช้เวลานานในการติดต่อ
; ใช้โดยไม่เซ็ต UseProvisionalRespToH245Tunnel=1 จะเป็นการ disable H.245 tunneling
;CallProceeding message ที่ส่งโดย endpoints หรือ gateways จะถูกแปลงไปเป็น Facility หรือ Progress message
UseProvisionalRespToH245Tunneling=1
;ดีฟอลท์ 0
EnableH450.2=1
H4502EmulatorTransferMethod=Reroute
TranslateReceivedQ931Cause=17:=34
TranslateSendQ931Cause=21:=34,27:=34
RemoveH235Call=1
RemoveH460Call=1
ForceNATKeepAlive=1
EnableH46018=1
H46018NoNat=0
EnableH46023=1
H46023STUN=stun.ekiga.net,192.168.1.10
NATStdMin=18
TranslateSorensonSourceInfo=1
RemoveFaxUDPOptionsFromRM=1
AlwaysRewriteSourceCallSignalAddress=0
