|
|
|
|
Strumenti |
12-09-2021, 09:40 | #1 |
Member
Iscritto dal: Nov 2020
Messaggi: 75
|
[VOIP]effettuare una chiamata voce ad un applicazione
Buongiorno sono un programmatore di siti internet ma vorrei realizzare un software "penso con tecnologia voip".
Per capirci, chiamo il numero telefonico che corrisponde anche ad una macchina server, mi risponde un'applicazione che registra cio che ho detto. Su cio che ho detto il programma estrae alcune keywords. Esempio chiamo 3273509509 il server mi risponde A questo punto gli dico che mi serve un taxi a chiari per andare ad erbusco. Io chiudo la chiamata. Il server registra la mia richiesta. Volevo chiedere quale è la tecnlogia per implementare uno scenario del genere?voip in particolare un server Asterisk? grazie dell'aiuto |
13-09-2021, 08:20 | #2 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 2990
|
La cosa è molto complessa, perchè ti serve un centralino (VOIP si va bene, asterisk anche), un speec to text (per convertire l'audio in testo) e un analizzatore semantico (mica cazzi).
Comunque per rispondere alla tua domanda: si. Un centralino asterisk con banalmente la funzione voicemail (segreteria telefonica) sul numero. Da lì poi hai un Mp3 che ci fai quello che vuoi. |
13-09-2021, 10:30 | #3 | |
Member
Iscritto dal: Nov 2020
Messaggi: 75
|
Quote:
|
|
13-09-2021, 15:42 | #4 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 2990
|
Scusa ma secondo me hai poche idee e ben confuse.
Non esistono "client che si collegano asterisk". In primis asterisk è un centralino VOIP -> Voip è un protocollo per far transitare l'audio su protocollo IP . Da come l'avevi messa giù è "Col mio telefono faccio una chiamata a un numero e questo registra la mia telefonata: poi con l'audio cerco di fare altre cose". Suggerirei prima di definire ben gli use case/abstract e poi dopo ragionare su cosa utilizzare e come. |
13-09-2021, 17:04 | #5 | |
Member
Iscritto dal: Nov 2020
Messaggi: 75
|
Quote:
Dal mio telefono chiamo un numero tramite zoiper (un app per chiamare), numero che è registrato sul server asterisk che pero' non è un utente che puo rispondere alla chiamata ma un'operatore automatico: stile segreteria. A questo operatore poi gli vado a chiedere un taxi in zona Chiari etc... e l'operatore automatico mi registra l'audio. Ora avrò bisogno di una applicazione stile zoiper che però vorrei creare per conto mio. Ecco che librerie opensource esistono? https://play.google.com/store/apps/d...adge-Mar2515-1 |
|
14-09-2021, 07:39 | #6 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 2990
|
OK adesso sei un pelo più chiaro.
Prima di tutto creare un client VOIP non è per nulla così facile (ad es https://gitlab.linphone.org/BC/public/linhome-android ) Io in te inizierei con una versione semplificata, ovvero usando un numero pubblico (ad es. guarda con eutelia) e inizierei a studiare come configurare una voicemail su asterisk associata a un numero geografico e quindi facendo telefonate normali... dopodichè.. avanti coi prossimi step. |
14-09-2021, 09:05 | #7 | |
Member
Iscritto dal: Nov 2020
Messaggi: 75
|
Quote:
Per questo sto gia guardando librerie software, linguaggi di programmazione e altro. Mio zio mi chiede un servizio simile a UBER. Posso chiamare un call center automatico e chiedere la prenotazione di un taxi in un preciso posto che poi mi porterà in un altro posto. Attualmente l'imprenditore della società dei taxi ha gia un servizio del genere, ma paga molto diciamo 2000 euro al mese. Vorrebbe capire se puo avere lo stesso servizio software per 1000 euro al mese perchè 2000 gli sembravano tanti per mantenere i server e tutto cio che ci sta dietro. Non si capisce come si programma sdk di linphone. Si puo programmare in python con questo sdk? |
|
14-09-2021, 09:18 | #8 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 2990
|
Secondo me stai guardando il problema dal lato sbagliato.
Il costo più grosso non lo hai secondo me nella parte di sviluppo di una app che fa una chiamata VOIP(e poi, perchè una APP? non puoi indicare banalmente un numero telefonico e bom? ) ma nella parte di riconoscimento del linguaggio parlato e relativo processamento da parte del software. Se dovessi fare io un analisi (sommaria eh) di quello che server direi "Il sistema prevede la chiamata a un numero geografico unico (ad esempio 02/123456789) al quale risponde un centralino automatico che pone domande specifiche e rileva la risposta audio da parte dell'utente e analizza la risposta. Al termine della chiamata sulla base dei dati ottenuti fa le azioni necessarie". Quindi 1) Costo di attivazione di un centralino su server con numero geografico associato (1.000 euro di attivazione + 100 euro/mese per mantenimento?) 2) Costo di attivazione di un software che riconosca il linguaggio naturale interfacciato con il centralino ed effettui le attività necessarie( $$$ Non ho la più pallida idea $$$ + canone di manutenzione/evoluzione/bugfix) 3bis) sostituire il punto 1 con una app (android + iphone) che mette in comunicazione il centralino con il telefono (imho inutile, bypassi unicamente la parte di dover fare una telefonata, introducendo poi i problemi che possono derivare in caso di qualità scarsa della connessione): a naso direi una cifra tra i 5.000 e i 10.000 euro |
14-09-2021, 09:37 | #9 | |
Member
Iscritto dal: Nov 2020
Messaggi: 75
|
Quote:
Il progetto non ha fretta di essere finito ma devo consegnarlo entro un anno solare cioè entro Settembre dell'anno prossimo. Ora un attimo, il VOIP è un protocollo che sul Ip consente di instradare pacchetti voce da un mittente ad una destinazione. Ma nella pratica di cosa ho bisogno per usarlo? Di certo di un client che sappia interpretare i dati ricevuti via voip. ho cercato librerie voip python/java ma trovo scarsi risultati. C'è qualcosa che mi manca nella comprensione del sistema e come dici faccio gia confusione o rischio di fare altra confusione. Se potete darmi una mano più nello specifico. |
|
14-09-2021, 09:57 | #10 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 2990
|
Davvero non capisco perchè incaponirti ora sulla parte VOIP. Mi sembra assurdo.
Per quello che devi fare ti basta una app che registri l'audio e lo spedisca dall'altra parte, venga elaborato e inviata la risposta. Se proprio vuoi impelagarti con il voip https://developers.sinch.com/docs/vo...pp-with-sinch/ Ma ripeto che, secondo me, devi ancora definire bene i requisiti del progetto... sei già oltre. |
14-09-2021, 11:12 | #11 | |
Member
Iscritto dal: Nov 2020
Messaggi: 75
|
Quote:
Il centralino lo configuro in modo che deve registrare l'audio della telefonata in mp3 e salvarlo nel database. Nell'mp3 sono registrate il luogo in cui il taxi deve venire a prendermi e dove mi deve portare. Non posso inviare al taxista l'mp3 se prima non estraggo il luogo. Al taxista gli viene detto dal luogo in cui si trova dove portare il passeggero mediante una notifica che riceve sul app del tablet. Mi serve una libreria che analizza mp3 e e faccia le trasformazioni voce a testo. L'utente avrà certamente detto a voce "via" "paese" "taxi" "andare" "portare" altrimenti il sistema non capisce. Posso percio prendere la frase che viene dopo a "via" e cercare in google maps api l'indirizzo con località. Se non mi dice "mi puo portare" l'operatore virtuale gli suggerisce "Il taxi dove vuole che la porti?" Quindi anche durante la telefonata prima che il passeggero chiuda la chiamata l'operatore virtuale deve capire se ha tutte le informazioni per segnalare al taxista la richiesta. Quindi pensavo di procedere 1 installando un server asterisk, 2 scovando delle librerie per parsare gli mp3 e fare trasformazioni voce a testo 3 installando un database mysql per avere salvati i dati dell'mp3 e il testo effettuando cosi interrogazioni. 4 Sviluppando un app sul tablet che con un server push notification comet o webrtc l'app su tablet sia sempre connesso al server cosi che il taxista riceve le richieste senza che debba tutte volte refreshare la pagina per capire se ce ne sono di nuove. Domanda: installando il server asterisk devo avere un nuovo numero? un numero attivo telecom italia diciamo 030716455 non puo fare da server asterisk perchè telefonando suonerebbe sia sul server che sia su quello di casa? Ho esaurito le domande, si puo chiudere il thread, mi è stato utile. |
|
14-09-2021, 11:45 | #12 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3594
|
|
14-09-2021, 13:17 | #13 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 2990
|
Rispondo un po "a caso".
Puoi attivare un numero geografico con Clouditalia e configurarlo in asterisk ( https://orchestra.irideos.it/wp-cont...E_ASTERISK.pdf ) Magari piuttosto che asterisk "puro" che potrebbe sembrarti ostico, vai di freepbx (in pratica hai l'interfaccia grafica). Per il sistema del "risponditore dinamico" (in asterisk IVR) puoi guardare qualcosa tipo https://github.com/alerios/Asterisk-...ster/agilib.py In pratica asterisk ha delle interfacce/api che puoi gestire con il linguaggio che più ti aggrada Riguardo il riconoscimento vocale secondo me la fai moooolto semplice, però con le API di google forse hai la strada più agevole |
15-09-2021, 09:49 | #14 | |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3594
|
Quote:
<un valore calcolato in qualche modo analizzando il campione sonoro><parola associata al calcolo, secondo una certa percentuale di probabilità> |
|
15-09-2021, 10:04 | #15 | |
Member
Iscritto dal: Nov 2020
Messaggi: 75
|
Quote:
Serve di certo una lib che traduca MP3 da audio in testo. Il problema è estrarre le informazioni dal testo. Come faccio a capire se mi ha chiesto un taxi in un certo posto? Se l'operatore imposta delle domande in automatico del tipo in che località/posto desidera il taxi? Allora io posso prendere tutto ciò che viene dopo la domanda fino alla successiva domanda. Perché non è come le form web in cui hai il campo località e lo compili e sai esattamente che è quello. Qui informazione è sparsa nel testo. Come si potrebbe fare? |
|
15-09-2021, 10:41 | #16 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 2990
|
Appoggiati ai servizi google: https://cloud.google.com/natural-language
Fai decisamente prima. Android non ha nulla interno, manda tutto verso i server google che fanno questa elaborazione e rispondo con le relative chiamate alle app Il riconoscimento del linguaggio naturale è oggetto di corsi universitari se vi interessa :-) |
15-09-2021, 10:48 | #17 | |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3594
|
Quote:
La mia era solo curiosità. Ho già provato scrivere codice per il riconoscimento di immagini senza usare librerie, così, tanto per capire come funziona questo mondo. Ricordo un PDF "Introduzione alle Reti Neurali di Gianluca Baldassarre" che mi aveva aperto un mondo. Comunque ipotizzo che il metodo usato per la voce, sia similare alle immagini: lo penso ma non ne sono certissimo Ultima modifica di misterx : 15-09-2021 alle 10:57. |
|
17-09-2021, 15:54 | #18 | |
Member
Iscritto dal: Nov 2020
Messaggi: 75
|
Quote:
sono riuscito a installare Asterisk 18 su ubuntu. Ho poi installato sul mio smartphone l'application ZOIPER che è un client per chiamate voip. Ho dovuto creare sul client l'account registrato anche su Asterisk. Ho poi installato su un altro computer di nuovo ZOIPER, creato l'account sul client e l'account su Asterisk. Ho impostato un numero interno della rete 6001 e 6002 per chiamarsi reciprocamente. La configurazione è preso da un how-to in internet pero' che ho testato /etc/asterisk/sip.conf [demo-user1] ; first user type=friend host=dynamic secret=mysecret123 ; put a strong, unique password here instead context=users deny=0.0.0.0/0 permit=192.168.0.6/255.255.255.0 [demo-user2] ;second user type=friend host=dynamic secret=mysecret123 ; put a strong, unique password here instead context=users deny=0.0.0.0/0 permit=192.168.0.4/255.255.255.0 /etc/asterisk/extensions.conf [users] exten=>6001,1,Dial(SIP/demo-user1,20) exten=>6002,1,Dial(SIP/demo-user2,20) Ora come si fa 1 a fare che il server Asterisk mi faccia anche da client zoiper? 2 rispondere in automatico ad una chiamata? con il client deve cliccare su accetta o rifiuta la chiamata mentre vorrei che se la linea è libera rispondesse l'operatore dinamico. 3 I due client zoiper chiamano 6001 e 6002, due codici che corrispondono agli ID di chiamata di demo-user1 e demo-user2. Quindi devo fare che demo-user2 chiami il "client/server" unico demo-user1 e che il centralino registri sempre questa chiamata. Come posso avere un ID corrispondente al numero di telefono 3273609509? 4 Quindi per utilizzare il servizio taxi l'utente deve registrarsi per avere un proprio ID che via programma viene registrato in asterisk per instaurare la chiamata tra demo-user1 e demo-usernuovo? dovro' avere una vps con indirizzo ip pubblico cui far ascoltare un server asterisk. Alla fine il committente del lavoro dice che non serve il NATURAL LANGUAGE perchè una volta registrata la chiamata questI mp3 deve essere inviato ad piu tablet contemporaneamente per essere ascoltati. Quindi il taxi driver riceve gli mp3 che sono le richieste e le ascolta una o piu volte, poi deve confermare che ha preso in carico la richiesta, notificare che il servizio è in corso una volta che è giunto sul luogo, terminare/chiudere la richiesta quando il lavoro è finito. Ultima modifica di zabnicola : 17-09-2021 alle 16:10. |
|
20-09-2021, 09:39 | #19 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 2990
|
Credo che hai ancora le idee più confuse di prima.
Dovresti forse prima capire meglio come funziona asterisk. Ti ripeto quella che è secondo me la mia idea: Installi asterisk (ottimo lo hai già fatto) Attivi un numero geografico (ad esempio https://www.clouditalia.com/index.ph...nda/linea-voip ) Crei un IVR su asterisk che risponde a quel numero con dei messaggi preconfigurati tipo "Digita il CAP" - "Dimmi in che via vuoi essere preso" ecc Fai si che quando chiamano il numero risponda l'ivr di cui sopra Quando è finita la conversazione con l'IVR, tutti i dati vengono elaborati dalla tua applicazione lato server e al tassista arrivano tutti i dati richiesti. |
21-09-2021, 08:55 | #20 |
Member
Iscritto dal: Nov 2020
Messaggi: 75
|
Ti ringrazio kaya, non è che ho le idee confuse.
Come ho scritto all'inizio della thread sto iniziando a studiare. E' il committente del progetto che non vuole nemmeno l'IVR. Cercherò di fargli cambiare idea. Ho scritto in un'altra discussione i nuovi requisiti che mi chiede. Non si tratta piu di creare un centralino con IVR ma un'applicazione come Zoom meeting perchè i taxi devono comunicare tutti contemporaneamente concedendosi la parola a turno. Cioè una stanza in cui si collegano i 20 taxi e la comunicazione è sempre attiva tra loro. Questi 20 taxi connessi aspettano che un cliente chiami il servizio taxi e uno di loro gli dirà: "Sono l'autista Nicola di Rovato, posso venire io a prenderla ad Erbusco" Ora il mio problema con le telefonate è questo: il cliente chiama un numero 3273509509 da rete telefonica verso rete voip, il server gli risponde in automatico, la chiamata viene registrata e mentre è registrata via socket trasferisco l'audio della chiamata inoltrandola in broadcast ai 20 taxi e uno dirà a tutti gli altri taxi e al cliente "Sono autista Nicola, posso venire io a prenderla ad Erbusco" Posso in tempo reale leggere la chiamata e inviarla via socket ai 20 taxi cosi che la ascoltano? Inoltre dentro in un applicazione come zoom è possibile rispondere alla chiamata telefonica? |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:56.