ASTERISK: N'attendez pas que le script AGI (bash) se termine avant de continuer dans le plan d'alimentation

StackOverflow https://stackoverflow.com/questions/19840520

  •  29-07-2022
  •  | 
  •  

Question

J'ai un plan de dialcléaire Asterisk qui exécute un script bash qui correspond à l'appelrid avec une base de données pour géolocaliser l'appelant (en correspondant aux codes de pays et région). Étant donné que la base de données est assez grande (échelle mondiale), il faut jusqu'à 15 secondes pour terminer.

J'ai besoin d'exécuter ce script immédiatement après avoir répondu à l'appel (au cas où l'utilisateur raccroche avant la fin de l'appel), mais je ne veux pas que l'utilisateur attende l'exécution du script. Les valeurs de retour devraient idéalement être traitées à la fin du plan d'administration juste avant le raccrochage.

Q1: J'ai trouvé http://www.voip-info.org/wiki/view/asterisk+agi#forkandcontinualplan qui traite de mon problème en ce qui concerne les scripts Perl. Comment accomplir la même chose à Bash? Je sais que je peux envoyer n'importe quel script bash à l'arrière-plan en ajoutant un "&" à la fin, mais je ne sais pas comment le faire dans le plan d'alignement / lorsque vous utilisez des scripts AGI.

Q2: Comment puis-je traiter les valeurs même si l'utilisateur a raccroché avant / le plan d'administration "Overy Nonzero"?

Merci pour ton aide!

Était-ce utile?

La solution

Utilisez l'interface Fastagi. Ou Fire Userevent avec un auditeur AMI.

AGI n'est pas conçu pour fonctionner comme vous le souhaitez, donc cela ne fonctionnera pas.

Bien sûr, vous pouvez utiliser la commande noHup pour obtenir un script immortel bash, mais ce n'est pas comme ça.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top