Code Monkey home page Code Monkey logo

restcomm-android-sdk's Introduction

Try Restcomm Cloud NOW for FREE! Zero download and install required.

All Restcomm docs and downloads are now available at Restcomm.com.

RestComm Mobile - Android SDK

CI Status FOSSA Status

Android Mobile SDK to easily integrate communication features (WebRTC, messaging, presence, voice, video, screensharing) based on RestComm into native Mobile Applications.

restcomm-android-sdk's People

Contributors

atsakiridis avatar bscheurman avatar deruelle avatar fossabot avatar ivelin avatar ognjenns avatar slackingveteran avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

restcomm-android-sdk's Issues

Create Hello World sample Application

It will resemble the same sample App for iOS SDK and will have just a Dial Button and a Hang up button and try to register on startup. It will be contacting our Demo Restcomm instance.

Clean up RTP Stream if call is not connected

If the INVITE from the application doesn't result in a call(user busy, not picked, congestion etc) then the RTP stream that is created before sending the INVITE should be destroyed.

Phone audio state issue

When call is disconnected phone's state is not being set to normal
audio.setMode(AudioManager.RINGER_MODE_NORMAL); in MainActivity
is not setting the mode correctly

Reorganise repo so that components are easy to use

Currently, the low level, JAIN library is part of the example 'JAIN', as a separate package. What we need is for the existing JAIN library to be turned into a separate module and pull it outside example code so that it is easy to use and introduce yet another module that will hold the high level android client API (which will be using the JAIN module). Example directory, except from 'JAIN' example that exists currently will also get two more projects HelloWorld and Messenger, as discussed

Custom SIP Header Parameters

Modify the SDK so that the API to place a call allows to take a List of parameters as Key,Value pair. Those would be added as custom SIP Headers in the initial INVITE sent by the SDK to Restcomm so that RestComm can pass those headers to the application on RVD as described in https://www.twilio.com/docs/sip/sip-twiml.

Custom SIP headers are converted to HTTP headers when Restcomm makes requests to an RVD application and are finally available as RVD variables.

For example, the following sip header:

X-MyApp-Language

will be available as an RVD variable named:

x_myapp_language

Mind the name mangling between the initial SIP header and the final RVD variable name:

"All alpha characters are converted to lowercase and all non-alphanumeric characters are converted to underscore "_".

Add error handling to SDK

This means adding

  • callbacks for connection and device entities
  • error codes/texts definitions in a central place

Implement incoming call

  1. In SipStackAndroid>processResponse() add a case for INVITE
  2. Read the SDP packet and fire SipEvent with type CALL
  3. In MainActivity catch the event, update UI and create rtp stream to connect with the call

Support WebRTC compatibility

Be Able to use the android WebRTC compliant media capabilities to make calls to WebRTC Clients in the browser.

Null pointer Exception at DeviceImpl.GetInstance().Call in new uploaded sdk

i am upgrading previous Sdk with new one, Null pointer Exception at DeviceImpl.GetInstance().Call in new uploaded sdk
java.lang.NullPointerException
06-18 21:37:48.052: E/AndroidRuntime(11588): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343)
06-18 21:37:48.052: E/AndroidRuntime(11588): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
06-18 21:37:48.052: E/AndroidRuntime(11588): at android.app.ActivityThread.access$600(ActivityThread.java:162)
06-18 21:37:48.052: E/AndroidRuntime(11588): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
06-18 21:37:48.052: E/AndroidRuntime(11588): at android.os.Handler.dispatchMessage(Handler.java:107)
06-18 21:37:48.052: E/AndroidRuntime(11588): at android.os.Looper.loop(Looper.java:194)
06-18 21:37:48.052: E/AndroidRuntime(11588): at android.app.ActivityThread.main(ActivityThread.java:5371)
06-18 21:37:48.052: E/AndroidRuntime(11588): at java.lang.reflect.Method.invokeNative(Native Method)
06-18 21:37:48.052: E/AndroidRuntime(11588): at java.lang.reflect.Method.invoke(Method.java:525)
06-18 21:37:48.052: E/AndroidRuntime(11588): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
06-18 21:37:48.052: E/AndroidRuntime(11588): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
06-18 21:37:48.052: E/AndroidRuntime(11588): at dalvik.system.NativeStart.main(Native Method)
06-18 21:37:48.052: E/AndroidRuntime(11588): Caused by: java.lang.NullPointerException
06-18 21:37:48.052: E/AndroidRuntime(11588): at com.android.internal.os.LoggingPrintStream.println(LoggingPrintStream.java:298)
06-18 21:37:48.052: E/AndroidRuntime(11588): at org.mobicents.restcomm.android.sipua.impl.sipmessages.Invite.MakeRequest(Invite.java:129)
06-18 21:37:48.052: E/AndroidRuntime(11588): at org.mobicents.restcomm.android.sipua.impl.SipManager.Call(SipManager.java:735)
06-18 21:37:48.052: E/AndroidRuntime(11588): at org.mobicents.restcomm.android.sipua.impl.DeviceImpl.Call(DeviceImpl.java:183)
06-18 21:37:48.052: E/AndroidRuntime(11588): at me.cs.oicalls.CallOut.onCreate(CallOut.java:78)
06-18 21:37:48.052: E/AndroidRuntime(11588): at android.app.Activity.performCreate(Activity.java:5122)
06-18 21:37:48.052: E/AndroidRuntime(11588): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1084)
06-18 21:37:48.052: E/AndroidRuntime(11588): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
06-18 21:37:48.052: E/AndroidRuntime(11588): ... 11 more

Sporadically there's no outgoing media

Scenario:

  • Call from Android Messenger -> Linksys phone through Restcomm
  • Everything is ok, media flows both directions
  • Hangup from Messenger
  • Retry the same call, but this time now outgoing media from Messenger only incoming

On the 3rd call some times it works some times it doesn't

When second incoming call is answered we get an exception

First call works fine. Here's the exception:

06-17 18:26:18.015 4003-4327/com.telestax.restcomm_helloworld I/System.out﹕ Dispatching event:CALL_CONNECTED
06-17 18:26:18.015 4003-4327/com.telestax.restcomm_helloworld I/System.out﹕ Sip Event fired
06-17 18:26:18.015 4003-4327/com.telestax.restcomm_helloworld W/dalvikvm﹕ threadid=18: thread exiting with uncaught exception (group=0x41b71db8)
06-17 18:26:18.025 4003-4327/com.telestax.restcomm_helloworld E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-1518
Process: com.telestax.restcomm_helloworld, PID: 4003
java.lang.IllegalStateException: Busy
at android.net.rtp.RtpStream.associate(RtpStream.java:155)
at org.mobicents.restcomm.android.sipua.impl.SoundManager.setupAudio(SoundManager.java:59)
at org.mobicents.restcomm.android.sipua.impl.DeviceImpl.onSipMessage(DeviceImpl.java:82)
at org.mobicents.restcomm.android.sipua.impl.SipManager.dispatchSipEvent(SipManager.java:178)
at org.mobicents.restcomm.android.sipua.impl.SipManager.access$300(SipManager.java:65)
at org.mobicents.restcomm.android.sipua.impl.SipManager$2.run(SipManager.java:675)
06-17 18:26:18.075 4003-4021/com.telestax.restcomm_helloworld I/System.out﹕ ACK

Add DTMF support

Would it be possible to add DTMF support? I need this for my application :) I'll be willing to spend some time on this, if someone can give me directions..

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.