$m->params["targetid"] = $partycallid; $m->Dispatch(); /* If the user is unknown we need to identify and authenticate */ if ($mailbox == "") { setState("user"); } else { if ($untrusted) { $collect_user = $mailbox; setState("pass"); } else { initUser(); } } break; case "chan.notify": gotNotify($ev->GetValue("reason")); $ev->handled = true; break; case "chan.dtmf": $text = $ev->GetValue("text"); for ($i = 0; $i < strlen($text); $i++) { gotDTMF($text[$i]); } $ev->handled = true; break; } /* This is extremely important. We MUST let messages return, handled or not */ if ($ev) { $ev->Acknowledge(); }
$ev->params["targetid"] = $ourcallid; $num = $ev->GetValue("caller"); $ev->handled = true; // we must ACK this message before dispatching a call.answered $ev->Acknowledge(); // we already ACKed this message $ev = false; $m = new Yate("call.answered"); $m->params["id"] = $ourcallid; $m->params["targetid"] = $partycallid; $m->Dispatch(); setState("prompt"); break; case "chan.notify": if ($ev->GetValue("targetid") == $ourcallid) { gotNotify(); $ev->handled = true; } break; case "chan.dtmf": if ($ev->GetValue("targetid") == $ourcallid) { $dtmfs = $ev->GetValue("text"); for ($i = 0; $i < strlen($dtmfs); $i++) { gotDTMF($dtmfs[$i]); } $ev->handled = true; } break; } /* This is extremely important. We MUST let messages return, handled or not */