Exemple #1
0
 $ev = Yate::GetEvent();
 /* If Yate disconnected us then exit cleanly */
 if ($ev === false) {
     break;
 }
 /* Empty events are normal in non-blocking operation.
    This is an opportunity to do idle tasks and check timers */
 if ($ev === true) {
     continue;
 }
 /* If we reached here we should have a valid object */
 switch ($ev->type) {
     case "incoming":
         switch ($ev->name) {
             case "engine.timer":
                 onTimer($ev->GetValue("time"));
                 break;
             case "engine.command":
                 $ev->handled = onCommand($ev->GetValue("line"), $ev->retval);
                 break;
             case "sip.subscribe":
                 $ev->handled = onSubscribe($ev);
                 break;
             case "user.update":
                 $ev->handled = onUserUpdate($ev);
                 break;
             case "chan.update":
                 $ev->handled = onChanUpdate($ev);
                 break;
             case "call.cdr":
                 $ev->handled = onCdr($ev);
Exemple #2
0
                    onComplete($ev, $ev->GetValue("partline"), $ev->GetValue("partword"));
                }
                break;
            case "engine.help":
                $ev->handled = onHelp($ev->GetValue("line"), $ev->retval);
                break;
        }
        $ev->Acknowledge();
    }
    if ($ev->type == "answer") {
        switch ($ev->name) {
            case "user.auth":
                $addr = $ev->GetValue("ip_host");
                if ($addr != "") {
                    updateAuth($addr, $ev->handled && $ev->retval != "-");
                }
                break;
            case "user.authfail":
                $addr = $ev->GetValue("ip_host");
                if ($addr != "") {
                    updateAuth($addr, false);
                }
                break;
            case "engine.timer":
                onTimer();
                break;
        }
    }
}
Yate::Output("banbrutes: bye!");
/* vi: set ts=8 sw=4 sts=4 noet: */