2010-07-20 4 views
1

Мы только что купили некоторое программное обеспечение, которое предоставляет API в нашей телефонной системе, что позволяет нам набирать номера, зависать и т. Д. API был разработан для использования на стороне клиента (Internet Explorer/ActiveX). Мы хотим использовать эту серверную часть и выполнять команды набора с помощью вызова ajax на классический сценарий ASP.Захват событий в классическом ASP (vbscript) - это возможно?

Основной VBScript для инициализации компонента заключается в следующем:

<% 
set objPhone = server.createobject("XariosPhoneManager.PhoneManager") 
objPhone.RemoteHost = "192.168.0.17" 
objPhone.RemotePort = "2001" 
objPhone.OAIPassword = "" 
objPhone.Extension = "1000" 
objPhone.Initialise() 
set objPhone = nothing 
%> 

, но я не могу назвать диск управления

objPhone.MakeCall("1001") 

, пока «инициализирован» событие не произошло. Есть ли способ в классическом ASP ждать, пока событие будет запущено перед выполнением какого-либо кода?

ответ

1

получается, что это просто невозможно в ASP. Не существует свойства, в котором говорится, что компонент инициализирован, а только инициированное событие, которое срабатывает. К сожалению, ASP не может обнаружить события. Разработчик предложил обернуть свой компонент в новую DLL, которая занимается управлением событиями, но у меня нет ресурсов для этого. Они пообещали истинную способность к серверу в будущей версии программного обеспечения.

0

Я ничего не знаю об этом компоненте, поэтому следующее предполагает некоторые догадки.

1) Если компонент имеет свойство отслеживать, когда он инициализирован, вы можете проверить это и после его инициализации вызвать метод MakeCall.

2) Я предполагаю, что компонент имеет событие OnInitializedComplete (или что-то в этом роде), если это так, напишите свой код на стороне сервера в JScript и назначьте функцию для события.

+0

получается, что это просто невозможно в ASP. Не существует свойства, в котором говорится, что компонент инициализирован, а только инициированное событие, которое срабатывает. К сожалению, ASP не может обнаружить события. Разработчик предложил обернуть свой компонент в новую DLL, которая занимается управлением событиями, но у меня нет ресурсов для этого. Они пообещали истинную поддержку серверов в будущей версии программного обеспечения. –

1

Не самые изящные решения, но вы можете поймать ошибки, а затем повторите попытку и повторите попытку, если это не сработает, а затем повторите попытку - вы можете поставить паузу в цикл, чтобы дать возможность завершить процесс. Вы также можете установить ограничение на количество попыток, чтобы оно в конечном итоге сдавалось, а не заканчивалось в цикле infinate. Что-то вроде (не завершено или протестировано):

numTries = 0 
processComplete = False 
Do Until processComplete or numTries>=10 
    On Error Resume Next 
    '## YOUR CODE TO CALL THE PROCESS HERE 
    On Error Goto 0 
    numTries=CDbl(numTries)+1 
Loop 
Смежные вопросы