[asterisk-dev] Regarding realtime audio streaming from mixmonitor

Mani Kanta Gadde manikanta.gadde at zemosolabs.com
Tue Jul 10 00:48:06 CDT 2018


Hi Dennis,
I want to see the transcription while I am on a call, so I looking for
real-time transcriptions.

Thanks & Regards
Manikanta


On Tue, Jul 10, 2018 at 2:26 AM Dennis Guse <hallo at dennisguse.de> wrote:

> Hi Mani,
>
> just out of curiosity: what is your actual goal?
> Do you need to create the transcriptions live or afterwards?
>
> Best,
> Dennis
>
> On Fri, 2018-07-06 at 13:28 +0530, Mani Kanta Gadde wrote:
> > Hi,
> > We are trying to stream audio coming from calls to an NLP engine to get
> the text transcription, for this we created a socket
> in app_mixmonitor.c and we are writing audio frames to socket descriptor.
> > We have tried with TCP(SOCK_STREAM) and UDP(SOCK_DGRAM) protocols to
> send the audio frames to the socket server.
> >
> > We are using latest asterisk complied from GitHub source code (asterisk
> repo).
> >
> > Here are some of the suggestions I found on asterisk forums
> > http://forums.asterisk.org/viewtopic.php?f=13&t=89365#p196720
> > on this thread, it was suggested to use CHANSPY, but we have edited
> mixmonitor code to both record and stream in realtime, which has sufficed
> our needs.
> >
> > Here is the socket code we used inside the mixmonitor_thread function in
> app_mixmonitor.c file.
> >
> > +
> > + int sockfd;
> > + char buffer[1024];
> > + char *hello = "Hello from client";
> > + struct sockaddr_in servaddr;
> > +
> > + // Creating socket file descriptor
> > + if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) {
> > + ast_log(LOG_NOTICE, "socket creation failed");
> > +// exit(EXIT_FAILURE);
> > + }
> > +
> > + memset(&servaddr, 0, sizeof(servaddr));
> > +
> > + // Filling server information
> > + servaddr.sin_family = AF_INET;
> > + servaddr.sin_port = htons(8080);
> > + servaddr.sin_addr.s_addr = INADDR_ANY;
> > +
> > + if (connect(sockfd,(struct sockaddr *) &servaddr,sizeof(servaddr)) < 0)
> > + ast_log(LOG_ERROR, "ERROR connecting\n");
> > + ast_log(LOG_NOTICE, "socket connected with server \n");
> > +
> > + //socket code ends here
> >
> > and here is the code of writing audio frames to the socket.
> >
> > for (cur = fr; cur; cur = AST_LIST_NEXT(cur, frame_list)) {
> >                                       ast_writestream(*fs, cur);
> > +                                     // writing to socket
> > +                                     write(sockfd, cur->data.ptr,
> cur->datalen);
> > }
> >
> >
> > And we were able to see the frames on the other side of the socket.
> >
> > We want to ask you if there is any other better approach to stream audio
> in real time.
> >
> > Thanks & Regards
> > Manikanta
> > Zemoso Technologies
> >
> --
> Dennis Guse
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20180710/7289fe7b/attachment.html>


More information about the asterisk-dev mailing list