I had a bit of free time yesterday night and I noticed the first google android powered phone hit the market in USA so I said to myself, what if I tried to port jain sip stack to android...
Not so much work should be needed since android supports a lot of the JDK 1.5 packages natively. So I tried and believe it or not, no work was actually required to make the jain sip stack work on android, it just runs :-)
Again kudos to Ranga for such a great stack :-) and to Google for having a nice OS where you can really reuse most of your Java applications (pending a rewrite of the UI)
So here is my proof of concept :
I ported the well known Shootist and Shootme examples from the sip stack to android and uploaded a zip here that you can play with.
The zip contains shootist and shootme standard examples and shootist and shootme android examples. Unzip in a location that we will call
So first you need to have the android SDK installed and have the android tools on your path (see the Android installation instructions for that)
Then you can start the android emulator with the following command:
from , do the following :
and then
this install the shootme android example application into the emulator
go back to and do the following :
and then
this install the shootist android example application into the emulator
You can see the applications installed in the emulator by clicking on the gray arrow at the bottom of the android phone screen :
Ok so much for the installation of the applications into android. Now let's get real and have some fun. Let's try the shootme android application first.
on the emulator, go to the menu and select the application called shootme.
It says that the jain sip stack has started on 10.0.2.15 (localhost's emulator ip address of android)
Since the emulator has its own ip address system we need to setup a UDP redirection from our host's localhost:5070 to the emulated system's localhost:5070 so that teh shootme android application can be pinged from our shootist standard application with the following command
let's start the standard shootist example so that it calls shootme and that a SIP call flow (INVITE-OK-ACK and then BYE-OK) is done between them.
go back to and do the following :
and then
you should now see the messages being exchanged between the shootme android application and the shootist standard application.
if the emulator sip messages are not enough, more log is available through the command
now kill the shootist app with Ctrl+C and close the emulator
You can also do the reversed example and start first the shootme:
Since the emulator has its own ip address system we need to setup a UDP redirection from our host's localhost:5060 to the emulated system's localhost:5060 so that the shootist example application can be pinged back from our shootme standard application with the following command
let's start the standard shootme example so that it waits to be called by the shootist android applicationand that a SIP call flow (INVITE-OK-ACK and then BYE-OK) is done between them.
go back to and do the following :
and then
on the emulator, go to the menu and select the application called shootist.
You should now see the messages being exchanged between the shootme android application and the shootist standard application.
if the emulator sip messages are not enough, more log is available through the command
Please post comments if you have problems running the examples or if you want to give me some feedback...
Not so much work should be needed since android supports a lot of the JDK 1.5 packages natively. So I tried and believe it or not, no work was actually required to make the jain sip stack work on android, it just runs :-)
Again kudos to Ranga for such a great stack :-) and to Google for having a nice OS where you can really reuse most of your Java applications (pending a rewrite of the UI)
So here is my proof of concept :
I ported the well known Shootist and Shootme examples from the sip stack to android and uploaded a zip here that you can play with.
The zip contains shootist and shootme standard examples and shootist and shootme android examples. Unzip in a location that we will call
$ emulator
$ cd shootme-android/bin/
$ adb install shootme-android.apk
$ cd shootist-android/bin/
$ adb install shootist-android.apk
$ adb emu redir add udp:5070:5070
$ cd shootist/dist
$ java -jar shootist.jar
$ adb logcat
$ adb emu redir add udp:5060:5060
$ cd shootme/dist
$ java -jar shootme.jar
$ adb logcat
Please post comments if you have problems running the examples or if you want to give me some feedback...
Hi,
ReplyDeleteThanks for the article. I tried the app but no messages are being trasferred from/to emulator and the console app. I can see the text that the shootme android app has connected to 10.0.2.15:5070/UDP, but when I tried running the console, nothing seems to happen. I also tried telnetting to 10.0.2.15:5070 but still, can't connect. Am I missing something here? Thanks in advance
I'm going to stop everything I was doing and try this right now ;-).
ReplyDeleteGreat stuff Jean !
Francesco
@Marc : AFAIK, you won't never be able to to telnet a SIP server even more so on UDP, but you can try this command instead netcat -u -v -z localhost 5070. Also you will not be able to ping 10.0.2.15:5070 since this is the ipaddress on the emulator (it will not be available from your OS). Make sure you used the following command after having started the eumlator and the shootme application :
ReplyDeleteadb emu redir add udp:5070:5070. This allow the host OS to contact the Android emulator on port 5070.
Hope this helps.
dicussion started here on this too
ReplyDeletehttp://groups.google.com/group/mobicents-public/t/e38fbdd874083d49
Hi,
DeleteThanks for the article.
I was installing shootme/shootist app on Nexus 4(Android 4.2.2).
When I run these application, its always getting crashed with following logs:
05-28 11:15:43.730: E/AndroidRuntime(5048): FATAL EXCEPTION: main
05-28 11:15:43.730: E/AndroidRuntime(5048): java.lang.NoSuchMethodError: javax.sip.SipFactory.setPathName
05-28 11:15:43.730: E/AndroidRuntime(5048): at org.jeanderuelle.android.sip.examples.shootme.Shootme.init(Shootme.java:75)
05-28 11:15:43.730: E/AndroidRuntime(5048): at org.jeanderuelle.android.sip.examples.shootme.Shootme.onCreate(Shootme.java:64)
05-28 11:15:43.730: E/AndroidRuntime(5048): at android.app.Activity.performCreate(Activity.java:5104)
05-28 11:15:43.730: E/AndroidRuntime(5048): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-28 11:15:43.730: E/AndroidRuntime(5048): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
05-28 11:15:43.730: E/AndroidRuntime(5048): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-28 11:15:43.730: E/AndroidRuntime(5048): at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-28 11:15:43.730: E/AndroidRuntime(5048): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
05-28 11:15:43.730: E/AndroidRuntime(5048): at android.os.Handler.dispatchMessage(Handler.java:99)
05-28 11:15:43.730: E/AndroidRuntime(5048): at android.os.Looper.loop(Looper.java:137)
05-28 11:15:43.730: E/AndroidRuntime(5048): at android.app.ActivityThread.main(ActivityThread.java:5041)
05-28 11:15:43.730: E/AndroidRuntime(5048): at java.lang.reflect.Method.invokeNative(Native Method)
05-28 11:15:43.730: E/AndroidRuntime(5048): at java.lang.reflect.Method.invoke(Method.java:511)
05-28 11:15:43.730: E/AndroidRuntime(5048): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-28 11:15:43.730: E/AndroidRuntime(5048): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-28 11:15:43.730: E/AndroidRuntime(5048): at dalvik.system.NativeStart.main(Native Method)
Actually I have to use JAIN SIP to send Register and Invite Request to SIP Server so that I can send command to SIP server to initiate GSM call.
Please reply!!
I manage to run the shootist/shootme example by following the instructions and it's working properly. I'm running the android emulator under MacOSX. Marc be sure to redirect the UDP socket using the command described in the post and start the shootist program inside the console.
ReplyDeleteThe great thing about this example is that uses plain JSIP stack not the j2me version. This allows developers to use the same API to develop server side application and device applications.
To understand the implications of what jain sip on top of android means. See this blog post by Francesco Moggia
ReplyDeletehttp://framtech.wordpress.com/2008/10/24/jsip-working-on-google-android/
Thanks a million. I cant express how happy I am :).
ReplyDeleteIt is great to see some active developement on this. I saw over on the google groupe page that there is intrest in RTP and getting this working for streaming voice. I have to say that would be wonderful. One step closer to a working VoIP client. Thanks for all your work.
ReplyDeleteHi, I tried to run but do not see messages being trasferred from/to emulator. I did do UDP redirect thingy. Any suggestions will be appriciated. Thx
ReplyDeletethanks it works!
ReplyDeleteThanks for the reply Jean. I will try it once again.
ReplyDeleteI am new to Log4J and I noticed JAIN SIP uses it for logging. How do I make Log4J redirect the log statement to Android's console? Thanks!
ReplyDeleteI tried ur way but,
ReplyDeletegetting following out:
E:\Application\Android\jain-sip-android on ps4025\shootist\dist>java -jar shooti
st.jar
createSipStack gov.nist.javax.sip.SipStackImpl@1404536
Transaction Time out
Transaction terminated event recieved
what is the problem?
Hi All,
ReplyDeleteThis is very nice article i have read.
I am unable to extract the uploaded the Files.
Can any one tell me where i can get the uploaded files.
Regards
Parasuraman
Dear Jeane,
ReplyDeleteI am a student and I have been trying to implement an SIP IM client on android using the JAIN SIP stack implementation. There is an error that I get which i cannot understand how to debug and was wondering if you can throw some light on it:
There is a frontend GUI which calls the SIPclient through Intents but when executing the code this fails when we create the `Listeningpoint` , this application runs properly when it is invoked directly without an intent.
Could you please tell me if there are any precaurtions that have to be taken when creating the Listeningpoint ?
@J : I think just logging to the console (Standard output) will allow to see the messages in adb logcat
ReplyDelete@Su : I'm sorry my knowledge of Android is still somewhat limited and I never used Intents, so I guess you're on your own. sorry about that
ReplyDeleteHi Folks,
ReplyDeleteGot it working finally. I wasn't able to make it work using this command:
adb emu redir add udp:5070:5070
but using these steps instead: First telnet to your emulator. 5554 is the port on first emulator instance.
telnet localhost 5554
then inside telnet session, execute the following command:
redir add udp:5070:5070
then it will reply OK. then try running your java program again. You should now be seeing messages from/to emulator and java program.
I'm using android SDK 1.0 by the way.
Hi Jean,
ReplyDeleteThanks for the great work...I could run your zipped code and they worked just fine. However, when I tried running the code by creating a project of my own in Eclipse, I am getting some errors from the dalvik compiler...probably the same Intent related error as Su had mentioned earlier in this comments section..I am using the same set of jars you have used for your shootist-android. The only possible difference could be in the android version that we are using - I am using 1.0_r2. Could you please let me know which version you used to compile your code? I would greatly appreciate any other suggestions/insight/comments regarding the problem. the I am copying below the error that I am getting for your reference:
I/ActivityManager( 53): Starting activity: Intent { flags=0x10000000 comp={com.client/com.client.CallAndroid} }
D/AndroidRuntime( 181): Shutting down VM
D/dalvikvm( 181): DestroyJavaVM waiting for non-daemon threads to exit
I/dalvikvm( 181): DestroyJavaVM shutting VM down
D/dalvikvm( 181): HeapWorker thread shutting down
D/dalvikvm( 181): HeapWorker thread has shut down
D/jdwp ( 181): JDWP shutting down net...
I/ActivityManager( 53): Start proc com.client for activity com.client/.CallAndroid: pid=188 uid=10024 gids={}
D/dalvikvm( 181): VM cleaning up
D/dalvikvm( 181): LinearAlloc 0x0 used 539316 of 4194304 (12%)
I/jdwp ( 121): received file descriptor 26 from ADB
D/SSLSocketFactory( 188): Using factory org.apache.harmony.xnet.provider.jsse.OpenSSLSocketFactoryImpl@4011c688
E/OSNetworkSystem( 188): unknown socket error -1
W/System.err( 188): log4j:WARN No appenders could be found for logger (shootist).
W/System.err( 188): log4j:WARN Please initialize the log4j system properly.
W/System.err( 188): javax.sip.InvalidArgumentException: unknown error
W/System.err( 188): at gov.nist.javax.sip.SipStackImpl.createListeningPoint(SipStackImpl.java:807)
W/System.err( 188): at com.client.CallAndroid.init(CallAndroid.java:130)
W/System.err( 188): at com.client.CallAndroid.onCreate(CallAndroid.java:105)
W/System.err( 188): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1122)
W/System.err( 188): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2103)
W/System.err( 188): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2156)
W/System.err( 188): at android.app.ActivityThread.access$1800(ActivityThread.java:112)
W/System.err( 188): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1580)
W/System.err( 188): at android.os.Handler.dispatchMessage(Handler.java:88)
W/System.err( 188): at android.os.Looper.loop(Looper.java:123)
W/System.err( 188): at android.app.ActivityThread.main(ActivityThread.java:3742)
W/System.err( 188): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 188): at java.lang.reflect.Method.invoke(Method.java:515)
W/System.err( 188): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
W/System.err( 188): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497)
W/System.err( 188): at dalvik.system.NativeStart.main(Native Method)
W/System.err( 188): Caused by: java.io.IOException: unknown error
W/System.err( 188): at gov.nist.javax.sip.stack.UDPMessageProcessor.< init > (UDPMessageProcessor.java:141)
W/System.err( 188): at gov.nist.javax.sip.stack.SIPTransactionStack.createMessageProcessor(SIPTransactionStack.java:1844)
W/System.err( 188): at gov.nist.javax.sip.SipStackImpl.createListeningPoint(SipStackImpl.java:788)
W/System.err( 188): ... 15 more
I use 1.0_r1 indeed. I will give it a try on rc2 and get back to you. (this is on my free time so it might take a few days, sorry)
ReplyDeleteThanks a lot Jean..I will look forward to hear about your experience with the later distribution. Meanwhile I will give a shot with 1.0_r1. Thanks again.
ReplyDeletei'm write a jain-sip registration code but my program terminate what i do???????
ReplyDeletehow to port j2me sip stack(which is already built) on to android
ReplyDeleteHi Jean, do you have any idea if anyone has done the IMS registration portion using the JAIN SIP stack similar to yours?
ReplyDelete@Joseph Teo : no but you can look at the http://imscommunicator.berlios.de/ source code. This is an IMS client based on SIP Communicator (which is using JAIN SIP) and try to extract the registration part and port it to Android.
ReplyDeleteIs there a way to capture the packets like using wireshark?
ReplyDeleteIs there a way to capture the packets (like using wireshark)
ReplyDelete@jpena930 : yes you should be able to do so to at least see the packets coming from the emulator or going to the emulator
ReplyDeleteHi, I can't get it done right. I'm using android-sdk-windows-1.1_r1.
ReplyDeleteAndroid shootist sends SIP message, classic java app shootme process this sip message, send response..but this response never arrives to android shootist...
I tried adb emu redir add udp:5070:5070 and every possible port combinations :P and also the telnet thing like Marc Lester said but...nothing :-/
Please do you have any idea why?
Hi Jean
ReplyDeleteI have a j2me sip stack which has been written using jsr 180.Do u have any idea of porting it to android if so wat changes i need to make.please throw some light on this issue
"...and to Google for having a nice OS where you can really reuse most of your Java applications (pending a rewrite of the UI)..."
ReplyDeleteNOT AGREE AT ALL!
An update to this wonderful post.
ReplyDeleteI tried to compile the jain sip stack source on the android platform (instead of importing the jars in the project).
This converted the class files into dex format and i observed a 20% reduction in the static footprint of the dummy application.
Also, the runtime heap allocation for the dummy app reduced by 20-25%.
A bit of profiling for the Shootist app also revealed that the CPU utilization was pretty nice and stable..at around 1%.
@Aayush : Thanks :-) That's definitely interesting. Could you provide the steps for compiling the jain sip stack source on the android platform ? I will then update this post with your findings or if you have a blog post about that I can link to you.
ReplyDeleteWould also be interested in knowing what you use to profile on android ?
There are 2 ways to do the compilation: The easy way and the hard way !
ReplyDeleteEasiest way is to include the jain sip source packages in the android project and create the apk.
The classes.dex inside the apk will contain the dex bytecode for the stack+application. Doing this itself helped reduce the footprint (static on the disk and also at the heap).
The harder way is to use the dx command line utility like this:
Navigate to the installation of the SDK on your machine and then go to the tools folder under platforms (there is another tools folder..so beware!):
Now give this command:
dx --dex --output=classes.dex jain-sip-ri-1.2.122.jar jain-sip-api-1.2.jar
I had copied the jsip jars in the tools folder itself before this command.
For memory profiling and allocation tracking etc, we can do the following:
1. go to ANDROID_HOME/tools (the other tools folder i was talking about).
2. issue emulator -adb adb-name
3. issue ddms command. Now the dalvik debug monitor will appear. Select the PID of your application and then go to the allocation tracker tab. Click on Start allocation to see the object allocations.
4. On the DDMS, goto sysinfo tab and click on "Update from device" to see the CPU utilization.
5. For heap usage details, select your process ID from the list and then click on the little green cylindrical button on the toolbar. Now goto he VM heap tab and click on Cause GC to see the information.
6. For tracing method-by-method calls..there is a separate procedure. Its a little more complicated though..but very useful.
Pretty kool tools !! I can mail u the screen shots if u like.
aayush
I am a newbie...Needs to develop an IMS registration code using JAIN SIP..Can you please suggest"how to start the develoment procedure or from where i can get some thorough assistence...
ReplyDeleteHello all real nice job and thanks for sharing. Also well done to jain-sip creators and google for the quality software. I have found this stack for RTP: http://www.hsc.com/tabid/87/ItemId/20/Default.aspx
ReplyDeleteand also I think sipdroid has rtp support so it can be ported from there.
Actually I decided to post for new developers looking for this and I am wondering why the port mentioned above have stopped? thanks maxsap
@maximos Lack of time unfortunately...
ReplyDeleteHi Jean,
ReplyDeleteI have the shootme-android running on my device but is there anyway to see the messages being passed to an actual device?
Hi jean, just thinking if you have a snippet on how to make a call using JAIN SIP?
ReplyDelete@Michael, the zip mentionned in the article http://mobicents.googlecode.com/files/jain-sip-android.zip contains Shootist.java which does create a SIP Call (sends INVITE and reply to 200 OK with ACK). Did u check it out or are you looking for something else ?
ReplyDeleteHi jean, when i say call it means, trying to call my cellularphone's number i think it was always a sip URI. This i don't understand where to start thanks...i need to make a simple test call using JAIN SIP to android and then call my cell number - a ring in my cell would be a success hehehe
ReplyDeleteone more thing i am new to SIP technology so maybe i can ask you questions regarding these... heheh thanks.. do you have a IM or in skype?
ReplyDelete@Michael you would need to use a voip online provider such as callwithus.com or SIP gateway to bridge to the legacy telephony network. I'll try to do another blog post about next week.
ReplyDeleteGoogle Talk id : jean.deruelle
Hi Jean,
ReplyDeleteI have taken down your Shootist android example and I have tried to get a SIP registration working by changing the code around a bit.
I am able to create the correct Sip Message and content to send it.
However the request always seems to get sent back to the device and the processRequest method is run.
I expect this shouldn't be happening and I was wondering is there something in the code that stops me sending the request to a server over wifi from a device?
Nevermind Jean, I got it working :-)
ReplyDeleteHi Jean,
ReplyDeleteI have used the Shootist example to send a register message.
Get the 401 UnAuth back with the challenge.
Generate the response and send the register again.
And get the 200 OK response back.
So thats all ok, but when I try to re register after a set time I get null pointers no matter what I try.
Would you have any advice for me on how to re register properly?
I've added you on Google Talk if you dont mind?
Hi Donal,
DeleteCan you please tell me steps how did you sent register message.
I have to send register message and after receiving acknowledgement, I have to send Invite request.
So I can send request to SIP Gateway to initiate GSM call.
This comment has been removed by the author.
ReplyDeleteIs it possible to get/store the received Message Body (plain/text) in a String?
ReplyDelete@George just do String content = new String(message.getRawContent()); (you may want to pass the charset in param as well to the String constructor)
ReplyDelete@jean thanks! that worked.
ReplyDeleteI am now trying to send a 200 OK message every time I get a requestEvent. I guess I should mess around with processRequest() for this, right?
yes, I would suggest you check out jain sip https://jain-sip.dev.java.net/ from CVS and look at the code in src.examples.simplecallsetup
ReplyDeleteHi Jean,
ReplyDeleteIn this your shootist/shootme example I tried to put MOBICENTS Sip servlet as a proxy. I used an example "LocationServices" taken from mobicents documentation with small changes in code. With standard shootist/shootme examples this works perfectly, but when I take the shootist android example, shootist fails to send the ACK message, and he receiving in the loop OK messages from shootme.
Do you know where could be a problem?
This comment has been removed by a blog administrator.
ReplyDeleteHi, Jean D.
ReplyDeleteThanks for the work done on Android with sip jain libraries and posting them for every one.
I'm quiet new at Sip and also Android...i'm trying to figure out how I could establish a call (Voip) between an Android device and the emulator (P2P) in a private Lan...
can you suggest a way I should follow to achieve this purpose?
(I'm thinking of installing the shootist code on the device and the shootme on the emulator, changing addresses)
Very Very cool, interesting, and very informative, really nice, keep it up.
ReplyDeleteandroid mobile
when i tried to run shootist.jar(in windows), its giving Address already in use. Cannot bind. Please suggest me to make it run.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteNice example, it worked for me.
ReplyDeleteI am looking for an example for making a call [instead of MESSAGE] using JainSIP to SIP Server [owned by VoIP provider] to place a telephone call.
I used JainSIP to Create a SIP Client and connect/communicate with a SIP Sever [owned by VoIP provider] and send Requests for INVITE, REGISTER etc and it works fine.
But, I want to advise SIP Server to place a call to real phone number "sip:00213550003785@sip.something.com".
SIP Server allows following Request types [Allow: ACK,BYE,CANCEL,INVITE,
REGISTER,OPTIONS,INFO,MESSAGE], which one should I use to tell SIP server to place a call and what is the format, should I create anew Header etc.
Thanks,
Sreedhar.
Hi Sreedhar,
DeleteMy requirement is same as you have done.
I took reference from Shootist.java but I am unable to connect/communicate to SIP server.
I would be really great help if you can share some piece of code.
Please help me in this.
This looks actually perfect. All these tinny capacity are fabricated with lot of accomplishments knowledge. I like it a lot. This was a advantageous column and I anticipate it is rather accessible to see from the added comments as able-bodied that this column is able-bodied accounting and useful
ReplyDeleteWhere can one download Jain SIP library source code that can be compiled for Android?
ReplyDeletehttp://java.net/projects/jsip
ReplyDeleteHi Jean, I'm a Java/Android newbie and I need to develop an android application which discusses in SIP with an existing server application.
ReplyDeleteCould you help on the following two issues:
1.
I use Eclipse as development environement.
I've imported jain-sip-api-1.2.jar as a library into my android project but I faced Dalvik conversion problem:
trouble processing "javax/sip/ClientTransaction.class":...Conversion to Dalvik format failed with error 1
I've tried to make it works with Android 3.2 and Android 4.0. Both resulted in the same issue.
2.
I've followed step by step procedure you've written in this post.
When I launch Shootme application on device emulator I see a message "Unfortunatly, shootme has stopped."
In Eclipse, LogCat window shows me the following error:
FATAL EXCEPTION: main
java.lang.NoSuchMethodError: javax.sip.SipFactory.setPathName
at org.jeanderuelle.android.sip.examples.shootme.Shootme.init(Shootme.java:75)
at org.jeanderuelle.android.sip.examples.shootme.Shootme.onCreate(Shootme.java:64)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Force finishing activity org.jeanderuelle.android.sip.examples.shootme/.Shootme
I suppose I missed a major step or component.
Your help would be welcomed. Thanks.
Can you post your question to https://groups.google.com/group/mobicents-public/ ?
ReplyDeleteI never tried on Android 3.2 or 4 so not sure I can be of any help as my time to play with it is a bit scarce now.
Be aware that Android devices from 2.3+ already ship the JAIN-SIP Stack and provide an abstraction layer on top of http://developer.android.com/reference/android/net/sip/package-summary.html
Not sure if that could help you out.
Jean
I need to deal with particular SIP headers. Provided abstraction layer doesn't seem to meet my needs.
DeleteThanks for answer and advice.
Chris.
the emulator has its own IP address system we need to setup a UDP redirection from our host's localhost:5070.you should now see the messages being exchanged between the short time android application
ReplyDeleteHi jean
ReplyDeleteI have taken down your Shootist android example and I done with connecting two emulators and able to send INVITE and INVITE-ACK
Now i am trying send voice stream through Rtp, here i am not succeed ,Please you guide me how send and receive media using Rtp
Regard:
Satyam
枫林网, 楓林網(8maple.biz替代舊域名8maple.ru)每天更新海量高清1080P電影免費在線觀看,追劇零時差。內容豐富多元,涵蓋劇集、電影、綜藝、動漫、娛樂等優質影視節目,觀眾可以在線觀看台劇、港劇,日劇、韓劇、陸劇、美劇等熱門劇集。影音視頻播放清晰流暢,操作界面簡單友好,真正為用戶帶來最舒適順暢的線上觀看體驗
ReplyDeleteThanks and that i have a dandy present: How To Budget House Renovation house renovation montreal
ReplyDelete