Domanda

Sto cercando di iniziare a scrivere applicazioni scalabili di livello telecom con Asterisk e Ruby.Inizialmente avevo intenzione di utilizzare il framework Adhearsion per questo, ma non ha la maturità richiesta e la sua documentazione è gravemente carente.AsteriskRuby sembra essere una buona alternativa, poiché è ben documentato e sembra essere scritto da Vonage.

Qualcuno ha esperienza nella distribuzione di applicazioni IVR basate su AGI?Quale framework, se presente, hai utilizzato?Ne prenderei in considerazione anche uno non Ruby se è giustificato.Grazie!

È stato utile?

Soluzione

Dovresti rivisitare Adhearsion poiché è uscita la versione 0.8.1 e la documentazione è migliorata molto di recente.Dai un'occhiata qui:

http://adhearsion.com http://docs.adhearsion.com http://api.adhearsion.com

Altri suggerimenti

SipX è davvero la risposta sbagliata.Ho scritto alcuni VoiceXML estremamente complicati su SipX 3.10.2 ed è stato tutto inutile da quando SipX 4 ha abbandonato SipXVXML per un'interfaccia che richiede che gli IVR siano compilati JAR.Inoltre, Nortel ha dichiarato bancarotta, documentazione estremamente scarsa sulla versione open source, scarsa conformità con VXML 2.0 (a partire dalla 3.10.2) e standard SIP (a partire dalla 3.10.2, non si adatta bene agli ITSP).Lo applaudirò per l'ottimo lavoro svolto facendo ciò per cui è stato progettato, ovvero essere un PBX.Ma come IVR, se dovessi rifare tutto da capo, farei qualcosa di diverso.Non so cosa di sicuro, ma qualcosa di diverso.Sto giocando con Trixbox CE adesso e sto lavorando per collegarlo a JVoiceXML o VoiceGlue.

Inoltre, non leggere quella schifezza del wiki SipX.Confronta SipX 3.10 con AsteriskNOW 1 e Trixbox 1.Dai.È come confrontare Mac OS X con Win95!Un confronto più realistico sarebbe SipX 4 (previsto per il primo trimestre del 2009) con Asterisk 1.6 e Trixbox 2.6, che dimostrerebbe che ottengono risultati quasi identici tranne che nell'arena della scalabilità e dell'alta disponibilità;SipX vince in questo.Ma, per maturità e stabilità, consiglierei Asterisk.

Inoltre, i risultati delle mie prestazioni nel mondo reale con SipXVXML:
Dell PowerEdge R200, Xeon Dual Core da 3,2 GHz, gestisce 17 chiamate prima del nervosismo.
HP DL380 G4, Dual Xeon HT 3,2 GHz, gestisce 30 chiamate prima di lunghe pause.

Pubblicherò i miei risultati quando avrò finito di valutare VoiceGlue e JVoiceXML, ma penso che finirò per scrivere un PHP personalizzato chiamato da AGI poiché tutti gli strumenti sono nativi di Asterisk.

Se stai cercando applicazioni "di livello telecom", potresti voler esaminare SipXecs invece di asterisco.È ricco di funzionalità, gratuito e open source, con supporto commerciale disponibile da Nortel.Puoi interagire con esso tramite un'API dei servizi Web in Ruby (o qualsiasi altra lingua).

Vedi il Wiki di SipXecs per maggiori informazioni.C'è una matrice di confronto su quel sito, che confronta le funzionalità con AsteriskNOW e TrixBox.

In realtà non ci sono altri framework là fuori.Ovviamente ci sono collegamenti AGI per ogni lingua, ma per quanto riguarda i framework completi per lo sviluppo di applicazioni di telefonia, non siamo ancora arrivati.Almeno nel mondo open source.

Ho posto domande in qualche modo correlate Qui, Qui, E Qui.Sto utilizzando Speech Server di Microsoft e sono molto interessato a conoscere eventuali alternative disponibili, in particolare quelle open source.Potresti trovare alcune buone informazioni nelle risposte a una di queste domande.

ero solito JAGIServer ampiamente, anche se non è più in fase di sviluppo, ed è abbastanza buono e facile da usare.È un'interfaccia per FastAGI, che ti consiglio di utilizzare al posto della semplice AGI.

La nuova versione di questo framework è Chiamate ordinate che sembra avere molte più funzionalità ma poiché non ne ho avuto bisogno, non l'ho provato.

Immagino che tutto dipenda da cosa vuoi fare con AGI;di solito ho un dialplan piuttosto complesso per raccogliere e convalidare tutto l'input dell'utente e quindi utilizzare semplicemente AGI per connettersi a un'applicazione Java che leggerà alcune variabili, farà alcune cose con essa (eseguirà operazioni, query, ecc. ecc.) e quindi ne imposterà altre variabili sul canale AGI e si disconnette.A questo punto il dialplan prosegue a seconda del risultato delle variabili impostate dall'app Java.

Funziona molto velocemente perché hai un ServerSocket sull'app Java, che riceve connessioni in entrata da AGI, crea un JAGIClient con il nuovo socket e una nuova istanza di JAGIProcessor (che devi scrivere, è l'oggetto che farà tutto il tuo elaborazione), quindi eseguire JAGIClient all'interno di un pool di thread.Il tuo JAGIProcessor implementa il metodo processCall dove fa tutto il lavoro di cui ha bisogno, interagendo con JAGIClient passato come parametro, per leggere e impostare variabili o fare qualsiasi cosa l'interfaccia AGI ti consenta.

Quindi hai un'app Java sempre in esecuzione e può essere una semplice app J2SE o un'app EE su un contenitore, non importa;una volta in esecuzione, elaborerà le richieste AGI molto velocemente, poiché non è necessario avviare nuovi processi (a differenza del semplice AGI che esegue un programma per ogni chiamata AGI).

Spruzza di nuovo.Dopo aver migrato gli IVR del mio cliente da SipX ad Asterisk utilizzando PHPAGI, devo dire che non ho incontrato nessun'altra architettura altrettanto semplice e capace.Oggi effettuerò uno stress test su Trixbox CE 2.8 sullo stesso hardware su cui avevo testato SipX in precedenza.Ma devo dire che l'utilizzo di PHPAGI per l'IVR e della CLI di Asterisk per il debug ha funzionato perfettamente e mi ha permesso di sviluppare IVR molto più velocemente di qualsiasi altra azienda sul mercato.Sto lavorando all'implementazione di TTS e ASR oggi e pubblicherò i risultati dello stress test quando possibile.

Semplice piccolo asterisco flessibile AGI IVR scritto su PHPhttp://freshmeat.net/projects/phpivr

Per applicazioni piccole e semplici utilizzo Asterisk::AGI in perl.Esistono anche estensioni per l'AGI veloce.Per applicazioni più grandi, come i backend degli operatori VoIP, utilizzo qualcosa di simile a OrderlyCalls scritto in Java (il mio codice).OrderlyCalls è ottimo per iniziare con il motore Java Fastagi ed estenderlo alle tue esigenze.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top