|
|
@@ -316,7 +316,7 @@ func processPacket(packet []byte) {
|
|
|
//Drop other handler in 2 sec
|
|
|
//PACUs---call---->ICP1
|
|
|
//PAD---->Chanspy(WEq)-->ICP1;PAD--->Call---->ICP2
|
|
|
- if handler == 0x01 {
|
|
|
+ if handler == 0x01 { //answer PAD
|
|
|
if _, loaded := suppressedExts.LoadOrStore(key, struct{}{}); loaded {
|
|
|
utils.LoggerDebug.Printf("Suppressed duplicate ICP Alarm (handler=0x01) for PAD: within 2 seconds")
|
|
|
return
|
|
|
@@ -326,12 +326,12 @@ func processPacket(packet []byte) {
|
|
|
suppressedExts.Delete(key)
|
|
|
utils.LoggerDebug.Printf("Suppression released .")
|
|
|
})
|
|
|
- }
|
|
|
+ //}
|
|
|
|
|
|
- //检查是否有任务正在创建
|
|
|
- action.WaitTaskCreate("PAD-TMS")
|
|
|
+ //检查是否有任务正在创建
|
|
|
+ action.WaitTaskCreate("PAD-TMS")
|
|
|
|
|
|
- if packet[8] == 0x01 { //answer PAD
|
|
|
+ //if packet[8] == 0x01 { //answer PAD
|
|
|
if priority.CheckPriority("PAD-TMS") {
|
|
|
|
|
|
//Before Answer PAD
|
|
|
@@ -355,7 +355,7 @@ func processPacket(packet []byte) {
|
|
|
} else {
|
|
|
alstatus.PaStatus("", "PAD-TMS", "refuse")
|
|
|
}
|
|
|
- } else {
|
|
|
+ } else { //hangup + hold
|
|
|
AlarmHandleTMS(packet)
|
|
|
}
|
|
|
|
|
|
@@ -391,34 +391,38 @@ func processPacket(packet []byte) {
|
|
|
suppressedExts.Delete(key)
|
|
|
utils.LoggerDebug.Printf("Suppression released for key: %s", key)
|
|
|
})
|
|
|
- }
|
|
|
+ //}
|
|
|
|
|
|
- //检查是否有任务正在创建
|
|
|
- action.WaitTaskCreate("PAD-ICP")
|
|
|
+ //检查是否有任务正在创建
|
|
|
+ action.WaitTaskCreate("PAD-ICP")
|
|
|
|
|
|
- if priority.CheckPriority("PAD-ICP") {
|
|
|
+ //if packet[8] == 0x01 { //answer PAD
|
|
|
+ if priority.CheckPriority("PAD-ICP") {
|
|
|
|
|
|
- //Before Answer PAD
|
|
|
- if packet[8] == 0x01 {
|
|
|
+ //Before Answer PAD
|
|
|
+ //if packet[8] == 0x01 {
|
|
|
|
|
|
runningTaskName := action.InterruptRunningTask("PAD-ICP") //PAD-ICP interrupt other
|
|
|
if runningTaskName != "" {
|
|
|
time.Sleep(time.Millisecond * 100) //wait endpoint release
|
|
|
}
|
|
|
- }
|
|
|
+ //}
|
|
|
|
|
|
- if active.QueueTimer != nil {
|
|
|
- utils.LoggerDebug.Printf("PAD Timeout timer != nil !")
|
|
|
- if active.QueueTimer.Stop() {
|
|
|
- utils.LoggerDebug.Printf("Stop PAD timer true !")
|
|
|
- } else {
|
|
|
- utils.LoggerDebug.Printf("Stop PAD timer false !")
|
|
|
+ if active.QueueTimer != nil {
|
|
|
+ utils.LoggerDebug.Printf("PAD Timeout timer != nil !")
|
|
|
+ if active.QueueTimer.Stop() {
|
|
|
+ utils.LoggerDebug.Printf("Stop PAD timer true !")
|
|
|
+ } else {
|
|
|
+ utils.LoggerDebug.Printf("Stop PAD timer false !")
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
+ AlarmHandleICP(packet)
|
|
|
+ } else {
|
|
|
+ alstatus.PaStatus("", "PAD-ICP", "refuse")
|
|
|
+ }
|
|
|
+ } else { //hangup + hold
|
|
|
AlarmHandleICP(packet)
|
|
|
- } else {
|
|
|
- alstatus.PaStatus("", "PAD-ICP", "refuse")
|
|
|
}
|
|
|
|
|
|
time.Sleep(3 * time.Second)
|