Microphone streaming over SIP protocol.

Hello,
can I stream microphone voice over SIP protocol?
Is there a library to use SIP protocol without RTMP communication?
thanks

I'd recommend using UDP streams instead of TCP streams, and I'd recommend discarding out-of-order packets and packets that are delayed beyond a certain threshold (which you can play with)...

Similar Messages

  • Microphone Streaming over Network is Choppy

    Hello.
    Part of a program in development allows audio to be streamed over the Internet via microphone capture. The current solution seems to be working alright... however, at times the audio gets extremely choppy on the receiving side, almost to the point of being unable to hear it at all... 15 second gaps etc...
    I was wondering if you would look at this code and had any suggestions how I could improve this to make it flow better.
    Any help is appreciated. First is the server code. Second is the client (receiving code)
    public class MicrophoneManager implements Runnable {
    private static volatile ByteArrayOutputStream byteArrayOutputStream;
    private static String communicatorIP = null;
    public static volatile boolean interrupt = false;
    private AudioFormat getAudioFormat() {
    float sampleRate = 8000.0F;
    //8000,11025,16000,22050,44100
    int sampleSizeInBits = 8;
    //8,16
    int channels = 1;
    //1,2
    boolean signed = true;
    //true,false
    boolean bigEndian = false;
    //true,false
    return new AudioFormat(
    sampleRate,
    sampleSizeInBits,
    channels,
    signed,
    bigEndian);
    }//end getAudioFormat
    public static void setCommunicatorIP(String communicatorIP) {
    MicrophoneManager.communicatorIP = communicatorIP;
    @Override
    public void run() {
    try {
    AudioFormat audioFormat = getAudioFormat();
    DataLine.Info dataLineInfo = new DataLine.Info(TargetDataLine.class, audioFormat);
    TargetDataLine targetDataLine = (TargetDataLine) AudioSystem.getLine(dataLineInfo);
    targetDataLine.open(audioFormat);
    targetDataLine.start();
    ArrayList<Byte> byteArrayList = new ArrayList<Byte>();
    byte tempBuffer[] = new byte[10000];
    byteArrayOutputStream = new ByteArrayOutputStream();
    Thread mcThread = new Thread(new MicrophoneCommunicator());
    mcThread.start();
    //bos = new BufferedOutputStream(byteArrayOutputStream);
    while (!interrupt) {
    while (byteArrayList.size() < 10000) {
    targetDataLine.read(tempBuffer, 0, tempBuffer.length);
    for (byte b : tempBuffer) {
    byteArrayList.add(b);
    byte[] writerArray = new byte[byteArrayList.size()];
    tempBuffer = new byte[10000];
    for (int i = 0; i < byteArrayList.size(); i++) {
    writerArray[i] = byteArrayList.get(i);
    byteArrayList.clear();
    byteArrayOutputStream.write(writerArray, 0, writerArray.length);
    targetDataLine.close();
    } catch (Exception e1) {
    global.debug(e1);
    private class MicrophoneCommunicator implements Runnable {
    public void run() {
    try {
    Socket microphoneSocket = new Socket(communicatorIP, 5751);
    BufferedOutputStream netStreamOut = new BufferedOutputStream(microphoneSocket.getOutputStream());
    while (!interrupt) {
    if (byteArrayOutputStream.toByteArray().length >= 10000) {
    netStreamOut.write(byteArrayOutputStream.toByteArray());
    byteArrayOutputStream.reset();
    microphoneSocket.close();
    } catch (Exception e1) {
    global.debug(e1);
    }Now, here is the other code.
    public class Microphone implements Runnable {
    public void run() {
    try {
    byte[] tempArray = new byte[10000];
    ServerSocket micSocket = new ServerSocket(5751);
    micSocket.setSoTimeout(0);
    Socket microphoneSocket = micSocket.accept(); //Now connected
    BufferedInputStream bis = new BufferedInputStream(microphoneSocket.getInputStream());
    ByteArrayInputStream bais = new ByteArrayInputStream(tempArray);
    AudioFormat audioFormat = getAudioFormat();
    AudioInputStream audioInputStream =
    new AudioInputStream(bais,
    audioFormat,
    tempArray.length / audioFormat.getFrameSize());
    DataLine.Info dataLineInfo =
    new DataLine.Info(
    SourceDataLine.class,
    audioFormat);
    SourceDataLine sourceDataLine = (SourceDataLine) AudioSystem.getLine(
    dataLineInfo);
    sourceDataLine.open(audioFormat);
    sourceDataLine.start();
    ArrayList<Byte> byteArrayList = new ArrayList<Byte>();
    boolean interrupted = false;
    while (!interrupted) {
    int nextByte = 0;
    while ((nextByte = bis.read()) != -1 && (byteArrayList.size() < 10000)) {
    byteArrayList.add((byte) nextByte);
    for (int i = 0; i < byteArrayList.size(); i++) {
    tempArray[i] = byteArrayList.get(i);
    byteArrayList.clear();
    sourceDataLine.write(tempArray, 0, tempArray.length);
    interrupted = global.micInterrupt;
    microphoneSocket.close();
    micSocket.close();
    sourceDataLine.close();
    } catch (Exception e1) {
    e1.printStackTrace();
    private AudioFormat getAudioFormat() {
    float sampleRate = 8000.0F;
    //8000,11025,16000,22050,44100
    int sampleSizeInBits = 8;
    //8,16
    int channels = 1;
    //1,2
    boolean signed = true;
    //true,false
    boolean bigEndian = false;
    //true,false
    return new AudioFormat(
    sampleRate,
    sampleSizeInBits,
    channels,
    signed,
    bigEndian);
    }//end getAudioFormat
    }If you guys have any ideas on how to make this smoother... please feel free... Also, please feel free to use this code however you wish. I'd really appreciate this... It's hard for people to communicate when it's so choppy this way.
    However, the stream is currently only one way though, it only goes from one system to another... not two-way. One talks, the other types... it's complicated, but just might be useful info.
    Both sides are communicating via lan... so speed of connection isn't an issue...
    Thanks in advance.
    Best,
    Chris

    I'd recommend using UDP streams instead of TCP streams, and I'd recommend discarding out-of-order packets and packets that are delayed beyond a certain threshold (which you can play with)...

  • Flash sockets over SIP-protocol: HTTP/1.1 501 Not Implemented

    Hi there.
    I'm developing a chat app based on IRC server and flash client (flash sockets). Everything is OK but for some ISP flash client doesn't connect to IRC server: There are some logs from chat while connecting to IRC server:
        Send: PASS password
        Send: NICK nickname
        Send: USER username
        Receive: HTTP/1.1 501 Not Implemented
        Receive: Content-type: text/html
        Receive: Content-Length: 219
    There is only thing I'm aware - this issue occurs for SIP mobile network provider only. For other non-mobile providers issue doesn't occur and chat works good.
    I would really appreciate for any thoughts on this matter.

    Hi there.
    I'm developing a chat app based on IRC server and flash client (flash sockets). Everything is OK but for some ISP flash client doesn't connect to IRC server: There are some logs from chat while connecting to IRC server:
        Send: PASS password
        Send: NICK nickname
        Send: USER username
        Receive: HTTP/1.1 501 Not Implemented
        Receive: Content-type: text/html
        Receive: Content-Length: 219
    There is only thing I'm aware - this issue occurs for SIP mobile network provider only. For other non-mobile providers issue doesn't occur and chat works good.
    I would really appreciate for any thoughts on this matter.

  • HTTP 1.1: Using streams over socket; How ?

    Can anyone give me a short example as how to handle streams over a persistent socket-connection ?
    I've trouble handling this.
    I can't "reget" the stream (create a new input/output stream over an existing socket-connection).
    Is there someone who can help me ?
    I'm getting confused !!!

    Since no one helped I could only try to find out myself:
    The problem is I used some example-source that fitted well for HTTP 1.0, but led to erroneous results when applied to HTTP 1.1
    It's no problem in HTTP 1.1, but you need to read ALL input (headers and possibly content) before trying to process anything:
    From the headers you need to read until an empty line is discovered.... Don't just break on return or newline, this will leave an extra character in the input:
    Protocol requires both \r and \n. So you always break 1 char to early when scanning bytes and then concluding on a \r that the line is over.
    Then you should possibly read 'contentlength bytes' (I've not tried it out yet) in case of POST.
    Flushing is enough to write all data to output.
    Open and close can't work. "Regetting" a stream is not possible, so all input for this request must be taken from inputstream before trying to process the next request.

  • Streaming over HTTP

    I'm new to streaming, so hopefully this is a quick answer
    question.....due to firewall restrictions I would need to STREAM
    via HTTP protocol over (80)....I can't use RTMPT (which I was able
    to get working) because of protocol restrictions.....however, all
    the documentation keeps hinting that you can only progressive
    download via HTTP...is this true?
    However, other part of the doco say "you can stream via HTTP
    if you have APACHE installed". My assumption was that all this was
    doing was allowing Apache to serve the http "pages" and progressive
    download the files....so, long story short, can a file be streamed
    using FMIS over HTTP? Thanks for any help in advance.....

    No... I think the docs are just using the term "streaming" so
    the author didn't have to go into a long explanation of progressive
    video (to save the non-technical users from information overload
    maybe). You can't truly stream over HTTP. All HTTP flv delivery is
    progressive.
    That said, you can deliver a streaming-like experience using
    an HTTP application server. See the following:
    http://flashcomguru.com/index.cfm/2005/11/2/Streaming-flv-video-via-PHP-take-two

  • How to implement VoIP over SIP in J2ME

    Hi All,
    This is kapil from India and i want to implement VoIP over SIP in j2me.Any help will be appreciated.
    I know about SIP API in J2ME. I want to use VoIP over it.Please help.I will be grateful to you.
    regards
    kapil

    Why don't you give us the money your Boss pays you.. then we'll see what can be done ;)
    Seriously, it might be smart to start your own research first. Check out what VoiP and SIP are all about, and the check how it fits into J2me.

  • Slow streaming over wifi using ipad

    Why is streaming over wifi slower than over cellular connection?  Other devices don't have the same issue.

    generally we all think and expect wifi will be faster than a cell connection.  But that will not always be the case.  A good uncongested LTE runs pretty fast.
    But the wifi should be fast enough that you wouldn't notice any issues unless:
    You are using a public wifi spot where the signal is metered.  Where I work, they clamp the wifi for guests at 250k.
    The wifi cannot run any faster than your internet connection.  Is it clean?
    Recent stoires here are explaining how verizon and Comcast have been allowing you tube and netflix feeds to become overcongested, in an effort to extract $$ from them for the privilange of sending you the signal.
    a good place to start is to get a speed app - like Speed test (there are a bunch in the store) and see what speed your wifi is delivering.
    One thing that is almost certain, your wifi is a whole lot cheaper than your cell signal!

  • Identify Trading Partner EDI X12 over File Protocol

    Hi
    I am working on EDI X12 (835) over File Protocol.
    The EDI payloads I will be getting will hold same EDI InterchangeIds, Group, or Exchange.
    oracle.tip.adapter.b2b.edi.identifyFromTP = ANY
    and I have given oracle.tip.adapter.b2b.allTPInOneDirectory = false.
    So that it identifies based on the directory name.
    For this I changed my trading partner name same as directory name.
    Could you please suggest me is there any other way of identifying From Trading partner than changing the Trading partner name to directory name?
    Thanks & Regards,
    Praveena.

    Hi Praveena,
    Yes, TP name and directory name should be same.
    Put oracle.tip.adapter.b2b.allTPInOneDirectory = true (Idetifies the Trading partner by the directory name) in your tip.properties file.
    Check below thread for more information on TP identification -
    Re: Internal Delievery channel AIP-51505:  General Validation Error
    Regards,
    Anuj
    Edited by: Anuj Dwivedi on May 5, 2009 4:31 PM

  • TNSNames - Connect database over HTTP protocol - Webservices

    Hi,
    I just want to know whether I can connect oracle over HTTP protocol instead of TCP/IP protocol in TNSNames.ORA. I'm trying to connect Oracle database which is out of network (over internet). Is this possible? If yes, how secure it is? Can I use HTTPS for secure connection?
    Here is some background, previously we had two different databases within our network and we used database link to connect to the other database. Now, the database is going out of our network (seperated as different company). And we still need to use that database and we don't want to connect to database via NAT IP address.
    We are looking for some solution probably HTTP protocol connection in TNSNames.ORA (if possible) or webservices. Regarding webservices in Oracle, I can see some documents that uses UTL_DBWS and Oracle XML DB to handle this. I'm not sure how to expose webservice from Oracle 10g database. Also, how secure is the Oracle webservice?
    Appreciate any help on this.
    Thanks
    Kumar

    Once more, missleading advices. It is not me who pursues the 'Hollier than thou' attitude, it is you who put yourself in the target.
    You cannot connect directly to Oracle using the HTTP
    protocol or HTTPS protocol.Yes you can, OraDAV has been available since Oracle 8i, as I have previously mentioned this was the first use of the Listener as an application server and supports protocols such as http and ftp. This feature is not widespreaded used because either people don't know about it or becuase it is easier to manage a regular Application Server. This was used about 6 or 7 years ago for the iFS feature. Today the OraDAV protocol is used for the Oracle Portal application to easy the life of non-technical people who contribute with contents to the portal. One more platform where OraDAV is used is in the Oracle XE, it supports the XE web administrator console and is the point of access of APEX.
    If you could this would have been documented.
    Did you read the documentation?Have you? It would not be the first time you recommend something you don't do.
    Ref.
    * FTP, HTTP(S), and WebDAV Access to Repository Data.
    * Managing Network Connections
    * Configuring and Using mod_oradav
    -- ~ Madrid
    http://hrivera99.blogstpot.com

  • How to implement SIP protocol?

    hi there
    how to implement SIP protocol?
    I just want to know if there is API for it?
    I want to design a instant messaging service.
    thx
    varun

    Look for jain sip:
    jain-sip.dev.java.net

  • Feature request: support the SIP protocol

    Hello.  I noticed the other day that google voice is compatible with "SIP" friendly adapters, like obihai style ones, but skype is not by default.  Could I make a friendly request that Skype add SIP functionality so that I can use more devices with it?
    Thank you.
    -roger-

    Skype has supported the SIP protocol for quite some time now.  It is however not part of their normal service.  If you want to use the SIP version of Skype you will have to pay a premium.  The service is called Skype Connect.  http://www.skype.com/en/features/skype-connect/

  • IPhone HE-AAC Streaming over Mobile Network (3G)

    Developed an internet radio streamer using utilizing the html5 audio tags with jQuery and with a flash fall back for unsupported browsers, streaming through an icecast2 server. Upon testing the player on the iPhone Safari (iOS 5.0.1), we ran into a very peculiar issue.
    When the iPhone is connected to WiFi, it streams perfectly using the HE-AAC V2 stream @ 64kbps 44.1kHz (the preferred codec for apple products). However, when the iPhone is connected to the 3G mobile network (ATT and Verizon), it "stutters/buffers" or stops streaming for 1-2 secs every 1-2 minutes (does not stop streaming completely). The troubling thing is when the iPhone is forced to use a separate MP3 stream at the same bit rate, it does not have this issue and works very well on 3G.

    Hi Lawrence,
    Thanks for the fast response. I'm confused as to how AAC requires higher bandwidth over MP3 when it can produce higher quality audio at lower bit rates therefore requiring less bandwidth to stream over 3G. Are you referring to the bandwidth of the audio signal itself (at the codec level)?

  • Bought a Winegard  indoor HDTV antenna for streaming over-the-air TV. Will my Apple TV work

    FlatWave Mini
    FlatWave
    I Am considering cutting my cable service and have bought a Winegard indoor HDTV wall mount antenna for streaming over-the air tv? I would appreciate an advice you might give me on this project. Will my Apple TV work with this setup? Thanks so much.

    appetv is a media box not a OTA related product in any way
    it use the LAN network to play shared media from your computer
    and if it has an Internet connection it offer a range of Internet streaming services
    read more
    http://www.apple.com/appletv/

  • Will ipad allow higher quality video streaming over 4G?

    Will there be improved video quality on youtube and other video streaming on 4G compared to existing 3G connctions?  The ipad appears to dumb down video streaming in 3G compared to streaming the same thing on wifi.  It is often highly pixelated and blocky,   Will the new ipad allow higher quality video streaming over 4G, i.e. the same quality as wi-fi?

    The YouTube app is made by Google. Any suggestions you have about that app should be directed to them.

  • RTP Streaming over the internet

    Having some problems streaming over the internet - probably because im doing it wrong.
    I can stream over a network fine using Transmit2.java.
    But when i try over the internet cant pick up the stream.
    Im using www.whatismyip.com to get the internet IP of the 2 computers im trying to stream to and from - and using these in the code, but nothing happens.
    Help?

    natdeamer wrote:
    Having some problems streaming over the internet - probably because im doing it wrong.That's correct, you're doing it wrong.
    Im using www.whatismyip.com to get the internet IP of the 2 computers im trying to stream to and from - and using these in the code, but nothing happens.99% of the time, your public IP actually addresses your router, rather than your computer. That means your computer is not publically addressably by it's IP address alone. You'll need to do something called a "NAT holepunch", which you can look up online. Also, I've included two links to discussions I've had with people about the same issue.
    [http://forums.sun.com/thread.jspa?forumID=28&threadID=5355413]
    [http://forums.sun.com/thread.jspa?forumID=28&threadID=5356672]

Maybe you are looking for

  • AR Downpayment Request To Be Linked With The Corresponding AR Invoice

    Dear All, I created a sales order of amount 100000. Based On this Sales Order I created AR Downpayment Request of 100%  amount i.e 100000. Now I Opened the Incoming Payments Screen , selected the AR Downpayment Request and received the payment of 100

  • Problem making an Excel file from a jsp

    Hi. I'm developing a web application that uses Excel for printing the reports. So far everything has worked fine, at least for the created Excel files that do not have any images on them. Now I need to create an excel file with an image as the header

  • Help with XQuery in OSB

    Hi! I'm having trouble trying to build an XQuery expression in OSB. I defined a "do" action where I iterate over elements of XML. There I defined an assign action to get each Country Name element using expression "$query/Countryl[$index]/Name/text()"

  • Import wizard logon error

    When attempting to log onto a system using the cluster name, the Import                                                             Wizard returns the following error:                                                                                Err

  • I verified my email, then went to sign in and I can not get past the Sign In.

    I need some help. I made an account and verified my email. I then went to sign-in and a box pops up saying I need to review my account. I go back to review it and it takes me to the support page. In other words... I can not get past the Sign In.