import win32ras

stateStrings = {
	win32ras.RASCS_OpenPort : "OpenPort",
    win32ras.RASCS_PortOpened : "PortOpened",
    win32ras.RASCS_ConnectDevice : "ConnectDevice",
    win32ras.RASCS_DeviceConnected : "DeviceConnected",
    win32ras.RASCS_AllDevicesConnected : "AllDevicesConnected",
    win32ras.RASCS_Authenticate : "Authenticate",
    win32ras.RASCS_AuthNotify : "AuthNotify",
    win32ras.RASCS_AuthRetry : "AuthRetry",
    win32ras.RASCS_AuthCallback : "AuthCallback",
    win32ras.RASCS_AuthChangePassword : "AuthChangePassword",
    win32ras.RASCS_AuthProject : "AuthProject",
    win32ras.RASCS_AuthLinkSpeed : "AuthLinkSpeed",
    win32ras.RASCS_AuthAck : "AuthAck",
    win32ras.RASCS_ReAuthenticate : "ReAuthenticate",
    win32ras.RASCS_Authenticated : "Authenticated",
    win32ras.RASCS_PrepareForCallback : "PrepareForCallback",
    win32ras.RASCS_WaitForModemReset : "WaitForModemReset",
    win32ras.RASCS_WaitForCallback : "WaitForCallback",
    win32ras.RASCS_Projected : "Projected",
    win32ras.RASCS_StartAuthentication : "StartAuthentication",
    win32ras.RASCS_CallbackComplete : "CallbackComplete",
    win32ras.RASCS_LogonNetwork : "LogonNetwork",
    win32ras.RASCS_Interactive : "Interactive",
    win32ras.RASCS_RetryAuthentication : "RetryAuthentication",
    win32ras.RASCS_CallbackSetByCaller : "CallbackSetByCaller",
    win32ras.RASCS_PasswordExpired : "PasswordExpired",
	win32ras.RASCS_Connected : "Connected",
    win32ras.RASCS_Disconnected : "Disconnected"
}

def TestCallback( hras, msg, state, error, exterror):
	print("Callback called with ", hras, msg, stateStrings[state], error, exterror)

def test(rasName = "_ Divert Off"):
	return win32ras.Dial(None, None, (rasName,),TestCallback)