Update of /usr/cvsroot/asterisk/utils
In directory mongoose.digium.com:/tmp/cvs-serv8900/utils

Modified Files:
        Makefile 
Added Files:
        streamplayer.c 
Log Message:
support new format for musiconhold.conf (issue #4908)
support non-SLINEAR moh streams (issue #4908)
add external app to feed TCP stream into Asterisk for moh (issue #4908)


--- NEW FILE: streamplayer.c ---
/*
* streamplayer.c
*
* A utility for reading from a stream
* 
* Copyright (C) 2005, Digium, Inc.
*
* Russell Bryant <[EMAIL PROTECTED]>
*
* This program is free software, distributed under the terms of
* the GNU General Public License
*/

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <netdb.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>


int main(int argc, char *argv[])
{
        struct sockaddr_in sin;
        struct hostent *hp;
        int s;
        int res;
        char buf[2048];
        fd_set wfds;
        struct timeval tv;

        if (argc != 3) {
                fprintf(stderr, "Usage: ./streamplayer <ip> <port>\n");
                exit(1);
        }

        hp = gethostbyname(argv[1]);
        if (!hp) {
                fprintf(stderr, "Unable to lookup IP for host '%s'\n", argv[1]);
                exit(1);
        }

        memset(&sin, 0, sizeof(sin));
        
        sin.sin_family = AF_INET;
        sin.sin_port = htons(atoi(argv[2]));
        memcpy(&sin.sin_addr, hp->h_addr, sizeof(sin.sin_addr));
        
        s = socket(AF_INET, SOCK_STREAM, 0);
        
        if (s < 0) {
                fprintf(stderr, "Unable to allocate socket!\n");
                exit(1);
        }       

        res = connect(s, (struct sockaddr *)&sin, sizeof(sin));
        
        if (res) {
                fprintf(stderr, "Unable to connect to host!\n");
                close(s);
                exit(1);        
        }

        while (1) {
                res = read(s, buf, sizeof(buf));

                if (res < 1)
                        break;          
        
                memset(&tv, 0, sizeof(tv));             
                FD_ZERO(&wfds);
                FD_SET(1, &wfds);

                select(2, NULL, &wfds, NULL, &tv);

                if (FD_ISSET(1, &wfds))
                        write(1, buf, res);
        }

        close(s);
        exit(res);
}

Index: Makefile
===================================================================
RCS file: /usr/cvsroot/asterisk/utils/Makefile,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- Makefile    21 Jun 2005 20:16:51 -0000      1.13
+++ Makefile    22 Aug 2005 19:29:29 -0000      1.14
@@ -21,7 +21,7 @@
 CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include 
-L$(CROSS_COMPILE_TARGET)/usr/local/lib
 endif
 
-TARGET=stereorize
+TARGET=stereorize streamplayer
 
 TARGET+=$(shell if [ -f $(CROSS_COMPILE_TARGET)/usr/include/popt.h ]; then 
echo "smsq"; else if [ -f $(CROSS_COMPILE_TARGET)/usr/local/include/popt.h ]; 
then echo "smsq"; fi ; fi)
 TARGET+=$(shell if [ -f $(CROSS_COMPILE_TARGET)/usr/include/newt.h ]; then 
echo "astman"; else if [ -f $(CROSS_COMPILE_TARGET)/usr/local/include/newt.h ]; 
then echo "astman"; fi ; fi)
@@ -53,6 +53,9 @@
 smsq: smsq.o
        $(CC) $(CFLAGS) -o smsq ${SOL} smsq.o -lpopt
 
+streamplayer: streamplayer.o
+       $(CC) $(CFLAGS) -o streamplayer ${SOL} streamplayer.o
+
 ifneq ($(wildcard .depend),)
 include .depend
 endif

_______________________________________________
Asterisk-Cvs mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-cvs

Reply via email to