%%% $Id: outdial_plugin.con,v 1.6 2003/11/08 06:43:16 hal Exp $ +NAME("outdial"). +VSN("ubf1.0"). +TYPES info() = info; description() = description; services() = services; contract() = contract; serviceList() = [string()]; user() = string(); password() = string(); logon() = {logon, user(),password()}; stop() = stop; error() = error; ok() = ok; intList() = [int()]; getMaxBus() = getMaxBus; okGetMaxBus() = {ok, int()}; setMaxBus() = {setMaxBus,int()}; okSetMaxBus() = ok; busName() = string(); callID() = string(); errReason() = string(); phoneNum() = string(); createBus() = {createBus,busName()}; okCreateBus() = ok; noCreateBus() = {error,errReason()}; deleteBus() = {deleteBus,busName()}; okDeleteBus() = ok; noDeleteBus() = {error,errReason()}; outdial() = {outdial,dnis(),ani(),busName()}; noOutdial() = {error,errReason()}; dnis() = phoneNum(); ani() = phoneNum(); okOutdial() = {ok,callID()}; hangup() = {hangup,busName(),callID()}; okHangup() = ok; noHangup() = {error,errReason()}; showBusses() = showBusses; busList() = [busName()]; callInfo() = {dnis(),ani(),callID()}; showCalls() = {showCalls,busName()}; callList() = [callInfo()]; noShowCalls() = {error,errReason()}; callBusyEvent() = {callEvent,busy,callID()}; callNoAnsEvent() = {callEvent,noAnswer,callID()}; callConnEvent() = {callEvent,connected,callID()}; callEndEvent() = {callEvent,ended,callID()}. +STATE start logon() => ok() & active | error() & start. +STATE active getMaxBus() => okGetMaxBus() & active; setMaxBus() => okSetMaxBus() & active; createBus() => okCreateBus() & active | noCreateBus() & active; deleteBus() => okDeleteBus() & active | noDeleteBus() & active; outdial() => okOutdial() & active | noOutdial() & active; hangup() => okHangup() & active | noHangup() & active; showBusses() => busList() & active; showCalls() => callList() & active | noShowCalls() & active; stop() => void() & stop; EVENT => callBusyEvent(); EVENT => callNoAnsEvent(); EVENT => callConnEvent(); EVENT => callEndEvent(). +ANYSTATE info() => string(); description() => string(); services() => serviceList(); contract() => term().