2010-07-20 7 views
1

Nous venons d'acheter un logiciel qui fournit une API dans notre système téléphonique nous permettant de composer, de raccrocher, etc. L'API a été conçue pour être utilisée côté client (Internet Explorer/ActiveX). Nous voulons utiliser ce côté serveur et exécuter les commandes de numérotation via un appel ajax à un script ASP classique.Capture d'événement en ASP classique (vbscript) - est-ce possible?

Le VBScript de base pour l'initialisation du composant est la suivante:

<% 
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 
%> 

mais je ne peux pas appeler la commande de numérotation

objPhone.MakeCall("1001") 

jusqu'à ce que l'événement « initialisées » est arrivé. Existe-t-il un moyen dans ASP classique d'attendre qu'un événement se déclenche avant d'exécuter du code?

Répondre

1

il s'avère que ce n'est simplement pas possible en ASP. Il n'y a aucune propriété exposée qui dit que le composant est initialisé, juste l'événement initialisé qui se déclenche. Malheureusement ASP ne peut pas détecter les événements. Le développeur a suggéré d'encapsuler leur composant dans une nouvelle DLL qui s'occupe de la gestion des événements, mais je n'ai pas les ressources pour le faire. Ils ont promis de véritables fonctionnalités côté serveur dans une future version du logiciel

0

Je ne sais rien à propos de ce composant, donc ce qui suit implique quelques conjectures.

1) Si le composant a une propriété à suivre lors de son initialisation, vous pouvez le vérifier et, une fois initialisé, appeler la méthode MakeCall.

2) Je suppose que le composant a un événement OnInitializedComplete (ou quelque chose comme ça), si c'est le cas, écrivez votre code côté serveur dans JScript et affectez une fonction à l'événement.

+0

s'avère qu'il n'est simplement pas possible dans ASP. Il n'y a aucune propriété exposée qui dit que le composant est initialisé, juste l'événement initialisé qui se déclenche. Malheureusement ASP ne peut pas détecter les événements. Le développeur a suggéré d'encapsuler leur composant dans une nouvelle DLL qui s'occupe de la gestion des événements, mais je n'ai pas les ressources pour le faire. Ils ont promis une véritable capacité côté serveur dans une future version du logiciel. –

1

Pas la plus gracieuse des solutions, mais vous pourriez attraper des erreurs, puis bouclez et réessayez l'appel si elle échoue, puis vous essayez à nouveau - vous pourriez mettre une pause dans la boucle pour donner au processus la chance de finir. Vous pouvez également mettre une limite sur le nombre d'essais afin qu'il abandonne finalement et ne se retrouve pas dans une boucle infinie. Quelque chose comme (pas complet ou testé):

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