STDver 0.8.0 + SIP

Can anyone help!? No audio either way. SIP Messaging is perfect, audio is not getting sent. Same with Version 0.7.0 and 0.8.0_RC2

Red5 with sip app is on my computer in a LAN, No NAT blocking, No Firewall Blocking.

Remote sip server is a production sip server running SIP Express.

**
**

From the Red5 Console:

RegisterAgent: Registration success:
SIP Registration success 200 OK
SIPUser Calling 1022
RTMPUser startStream
[INFO] [pool-4-thread-16] org.red5.server.adapter.MultiThreadedApplicationAdapte
r - W3C x-category:session x-event:connect c-ip:127.0.0.1 c-client-id:3
[INFO] [pool-4-thread-16] org.red5.server.stream.ClientBroadcastStream - Stream
start
SipUserAgent - setMedia -> Init…
SipUserAgent - hangup -> Init…
SipUserAgent - closeMediaApplication -> Init…
SipUserAgent - call -> Init…
SipUserAgent - onCallRinging -> Init…
SipUserAgent - onCallRinging -> RINGING.
SipUserAgent - onCallRinging -> Init…
SipUserAgent - onCallRinging -> RINGING.
SipUserAgent - onCallRinging -> Init…
SipUserAgent - onCallRinging -> RINGING.
SipUserAgent - onCallAccepted -> Init…
SipUserAgent - onCallAccepted -> ACCEPTED/CALL.
SipUserAgent - onCallAccepted -> localSdp = v=0
o=777012000004 0 0 IN IP4 192.168.7.46
s=Session SIP/SDP
c=IN IP4 192.168.7.46
t=0 0
m=audio 3000 RTP/AVP 18 111 8 0
a=rtpmap:18 G729/8000/1
a=fmtp:18 annexb=no
a=rtpmap:111 ILBC/8000/1
a=fmtp:111 mode=30
a=rtpmap:8 PCMA/8000/1
a=rtpmap:0 PCMU/8000/1
a=ptime:20
.
SipUserAgent - onCallAccepted -> remoteSdp = v=0
o=Sippy 149651212 1 IN IP4 84.45.70.8
s=-
c=IN IP4 84.45.70.8
t=0 0
a=rtpmap:0 PCMU/8000
a=rtpmap:100 NSE/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:30
a=sendrecv
a=direction:active
.
SdpUtils - makeMediaPayloadsNegotiation -> Init…
SdpUtils - makeMediaPayloadsNegotiation -> End…
SdpUtils - getNegotiatedAudioCodec -> Init…
Error handling a new incoming message
java.lang.NullPointerException
at org.red5.server.webapp.sip.SdpUtils.getNegotiatedAudioCodec(SdpUtils.
java:32)
at org.red5.server.webapp.sip.SIPUserAgent.onCallAccepted(SIPUserAgent.j
ava:632)
at org.zoolu.sip.call.Call.onDlgInviteSuccessResponse(Call.java:247)
at org.zoolu.sip.dialog.InviteDialog.onTransSuccessResponse(InviteDialog
.java:630)
at org.zoolu.sip.dialog.ExtendedInviteDialog.onTransSuccessResponse(Exte
ndedInviteDialog.java:283)
at org.zoolu.sip.transaction.TransactionClient.onReceivedMessage(Transac
tionClient.java:103)
at org.zoolu.sip.provider.SipProvider.processReceivedMessage(SipProvider
.java:926)
at org.zoolu.sip.provider.SipProvider.onReceivedMessage(SipProvider.java
:1032)
at org.zoolu.sip.provider.UdpTransport.onReceivedPacket(UdpTransport.jav
a:111)
at org.zoolu.net.UdpProvider.run(UdpProvider.java:174)
SIPUser hangup
SipUserAgent - hangup -> Init…
SipUserAgent - closeMediaApplication -> Init…
SipUserAgent - listen -> Init…
SIPUser closeStreams
RTMPUser stopStream
[INFO] [pool-4-thread-14] org.red5.server.adapter.MultiThreadedApplicationAdapte
r - W3C x-category:session x-event:disconnect c-ip:127.0.0.1 c-client-id:3
SipUserAgent - onCallClosed -> Init…
SipUserAgent - onCallClosed -> NOT the current call.

By reading your post, I notice that an error occurs during the negotiation of the codec to use (red5<–>sip). Try check codecs supported by your sip server, or those enabled for your sip account

You are right, that is exactly what I did.

I used this softphone(Desktop Application) called ZoIPer. It has the ability to select which codecs to use to establish a call.

I tested the below codecs with my sip server.

The server authorized calls with 2way audio for u-law and a-law.
Codecs that werent accepted were: speex, GSM, iLBC 20, iLBC 30.

Is it possible that within the SDP classes, Red5 is unable process the codec related?

No matter what I do, Red5 is not initiating an RTP streap. It is obvious that it wont unless it knows which codec to start the stream with, hence the exception.

Or some trouble with the G711 codec in red5. I dont see an RTP stream being established, probably SIPutility class is unable to trace the codec to begin with?

Hi

its hard to tell the reason.

the RD5 0.1.11 that I use send rtp at g711 and if you use same version it should work for you too.

if you use it on Linux you might need to compile the plugin on the Linux pc before it will work correctlly (see som post in this forum from the peoeple that create the make.sh)

one other thing you can check is the “call me” API with direct call to a sip client with in the same lan as red5, like that you will not need to register to any proxy and just send call (INVITE) to a sip soft phone that configured to use only G711. (point to point connection)

when you post some traces here try them to be detailed as possible as just call fllow can to show wrong sip signaling in the headers of the message.

also debug logs from red5 itself can tell whats happened.

in sip.conf set log level to debug and after making call look in red5/log folder to the results.

Lior

Hi Lior | Dele

I installed Openfire 3.6.3 on a fresh install of XP sp2 with LAN ip (192.168.7.75)

Installed Red5.war | Red5 plugin.

HTTP_Port binding to 7070


Restart OpenFire


Opened the browser on a diff computer with, http://192.168.7.75:7070/red5

In the entries I gave my sip account details as shown in Picture 11.png (images.zip).

You can also check my openfire configuration within the images.

Then I called one of our pbx phones, routed to a number 1022. Phone rings instantly but no audio either way.

I have also attached the log files.

I have not compled anything.

Regards,

Ajay Luke
images.zip (469667 Bytes)
logs.zip.zip (48758 Bytes)

Haa… and i thought i was alone!

I dont know where to start, i also think it is a codec issue. I tried with asterisk and also another propietary switch.

Here are some facts i noticed.

  • Asterisk internal number (echotest) --> works fine (g711u)

– termination to pstn --> dead air / but connected (also g711u) <-- no rtp packets seen while doing sip debug.

I tried finetuning the settings in sip.cfg but no luck yet.

Any ideas?

EDIT:

I think there are some other threads which might be related to this issue?

http://www.igniterealtime.org/community/message/189589#189589

http://www.igniterealtime.org/community/message/189319#189319

Your red5 log file confirms that no auidio is exchanged. Your log file shows :

2009-03-28 01:55:52,265 [AnonymousIoService-6] DEBUG org.red5.server.net.rtmp.RTMPClient - onInvoke:Invoke: Service: null Method: onStatus Num Params: 10: {clientid=1, level=status, details=speaker_1238230547437, description=, code=NetStream.Play.PublishNotify}
2009-03-28 01:55:52,828 [AnonymousIoService-8] DEBUG org.red5.server.net.rtmp.RTMPClient - onPing
2009-03-28 01:55:54,296 [AnonymousIoService-10] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65
2009-03-28 01:55:54,296 [AnonymousIoService-10] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65
2009-03-28 01:55:54,312 [AnonymousIoService-11] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65
2009-03-28 01:55:54,343 [AnonymousIoService-12] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65
2009-03-28 01:55:54,375 [AnonymousIoService-13] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65
2009-03-28 01:55:54,406 [AnonymousIoService-14] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65
2009-03-28 01:55:54,453 [AnonymousIoService-15] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65
2009-03-28 01:55:54,484 [AnonymousIoService-16] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65
2009-03-28 01:55:54,515 [AnonymousIoService-1] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65

Instead of what my red5 log file shows when the codec exchange is sucessfull and SIPAudioLancher is invoked

2009-03-29 15:35:32,653 [AnonymousIoService-6] DEBUG o.j.o.plugin.red5.sip.RTMPUser - onStreamEvent Publish start
2009-03-29 15:35:34,946 [Thread-36] DEBUG o.j.o.p.**red5.sip.SIPAudioLauncher **- new audio sender to 192.168.1.20:19252
2009-03-29 15:35:34,956 [Thread-36] DEBUG o.j.o.p.red5.sip.SIPAudioLauncher - new audio receiver on 3000
2009-03-29 15:35:35,006 [Thread-36] DEBUG o.j.o.p.red5.sip.SIPAudioLauncher - starting sip audio…
2009-03-29 15:35:35,006 [Thread-36] DEBUG o.j.o.p.red5.sip.SIPAudioLauncher - start sending
2009-03-29 15:35:35,006 [Thread-36] DEBUG o.j.o.p.red5.sip.RTPStreamSender - RtpStreamSender: using blocks of 160 bytes
2009-03-29 15:35:35,056 [Thread-36] DEBUG o.j.o.p.red5.sip.SIPAudioLauncher - start receiving
2009-03-29 15:35:35,276 [AnonymousIoService-7] DEBUG org.red5.server.net.rtmp.RTMPClient - onInvoke:Invoke: Service: null Method: onStatus Num Params: 10: {clientid=1, level=status, details=speaker_1238337328617, description=, code=NetStream.Play.PublishNotify}
2009-03-29 15:35:35,286 [Thread-45] DEBUG o.j.o.p.red5.sip.RTPStreamReceiver - RtpStreamReceiver: Reading blocks of max 32768 bytes
2009-03-29 15:35:35,547 [Thread-45] DEBUG o.j.o.plugin.red5.sip.RTMPUser - +++ Audio ts: 0
2009-03-29 15:35:35,547 [Thread-45] DEBUG o.j.o.plugin.red5.sip.RTMPUser - +++ Audio ts: 64
2009-03-29 15:35:35,547 [Thread-45] DEBUG o.j.o.plugin.red5.sip.RTMPUser - +++ Audio ts: 128
2009-03-29 15:35:35,577 [AnonymousIoService-8] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65
2009-03-29 15:35:35,597 [Thread-45] DEBUG o.j.o.plugin.red5.sip.RTMPUser - +++ Audio ts: 192
2009-03-29 15:35:35,667 [Thread-45] DEBUG o.j.o.plugin.red5.sip.RTMPUser - +++ Audio ts: 256
2009-03-29 15:35:35,727 [Thread-45] DEBUG o.j.o.plugin.red5.sip.RTMPUser - +++ Audio ts: 320
2009-03-29 15:35:35,727 [Thread-45] DEBUG o.j.o.plugin.red5.sip.RTMPUser - +++ Audio ts: 384
2009-03-29 15:35:35,727 [Thread-45] DEBUG o.j.o.plugin.red5.sip.RTMPUser - +++ Audio ts: 448
2009-03-29 15:35:35,727 [Thread-45] DEBUG o.j.o.plugin.red5.sip.RTMPUser - +++ Audio ts: 512
2009-03-29 15:35:35,867 [AnonymousIoService-8] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65
2009-03-29 15:35:35,867 [AnonymousIoService-8] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65
2009-03-29 15:35:35,867 [AnonymousIoService-8] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65
2009-03-29 15:35:35,867 [AnonymousIoService-8] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65
2009-03-29 15:35:35,877 [AnonymousIoService-8] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65
2009-03-29 15:35:35,907 [AnonymousIoService-8] DEBUG o.j.o.plugin.red5.sip.RTMPUser - *** 65

Searching your SIP log file for events at the same time shows :

01:55:52.234 Sat 28 Mar 2009, 84.45.70.8:5060/udp (713 bytes): SIP/2.0 200 OK, received

01:55:52.234 Sat 28 Mar 2009, 84.45.70.8:5060/udp (461 bytes): ACK sip:84.45.70.8:5061 SIP/2.0, sent

I wondered why mjsip was sending back the ACK message to 5061 when it registered with 5060. The answer to that is the last message from your SIP proxy “Sippy”

SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.7.75:5071;received=202.63.125.156;rport=5071;branch=z9hG4bK0530020
Record-Route: sip:84.45.70.8;ftag=z9hG4bK58741856;lr
From: 777012000004 sip:777012000004@84.45.70.8;tag=z9hG4bK58741856
To: sip:1004@84.45.70.8;tag=8eca1364c69b240b5f69e3fdd20bdc60
Call-ID: 056582581073@192.168.7.75
CSeq: 2 INVITE
Server: Sippy
Contact: Anonymous sip:84.45.70.8:5061
Content-Length: 251
Content-Type: application/sdp

v=0
o=Sippy 141842252 1 IN IP4 84.45.70.8
s=-
t=0 0
m=audio 64054 RTP/AVP 0 100 101
c=IN IP4 84.45.70.8
a=rtpmap:0 PCMU/8000
a=rtpmap:100 NSE/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:30
a=sendrecv
a=direction:active
-----End-of-message-----

The next question is: Why did your proxy change its port to 5061 and is this normal. Could it be that this was an error and it did not get the ACK because it was listening on 5060 instead of 5061.

As I do not have any more information, the trail ends here for me. I hope you can pick it up from here and solve the mystery

Its really hard to trace things out unless you know Java I guess, I am not a Pro at networking or java, but this issue is making me pull my hair off so to speak.

I am still hoping for a solution to this. I request the Gurus to kindly shower some insight into this issue and nail it.

Look Like Dele had more time than me on weekend

I suggested you on the past to test against other phone to see if problem is on your Proxy or red5 openfire.

the simple test would be with the call me API when you send just Invite with no Registration to some sip phone directlly. (i must admit I never tested the call me API myself because i made my own click2talk object).

put X-lite or other sip softphone on a pc in same lan as RED5 and configure it listen to port 5060. use this ip and port as domain and realm in the call me API and send it a call.

other option is to use Asterisk for win on the same pc you have the openfire and see if you have voice.

3rd option is try to register with your red5 phone directlly to other service provider and make calls.

any way if you test with red5 pluging for openfire ver 0.1.11from windows you should have no problem with voice as many users already test it.

the Mjsip is not yet perfect and need some improvment like in your case to handle early media with message 183 progress…but it should work when basic signaling are correct.

try to solve one problem at a time - first make sure red5 openfire is work correctlly with voice working … (test with asterisk or other proxies).

when you know this part can work for you than investigate against your prefered proxy.

while you test try avoid complicated scenario with NAT… so all will work fine on same lan .

try make and recieve calls to red5 as when signaling are in oposite directions it might teach you someting on the error, for example you get a call and RED5 send the 200ok and get ACK …

its more easy to help you with well known implemntation use by other users to make someting to work than shoting to all directions.

when we know what is working for sure we can try see where are the others problems.

hope its help.

Lior

I made some progress after following your instruction. I made some other observations that I believe is the problem here.

1. After setting up Astrisk, I was able to make calls perfectly well on my LAN.

2. I used a paid VoIP/SIP account from voipstunt.com and tried to login, it Timed out

3. Switched my computers IP to a public IP

**4. **Red5 Flashphone registered and the call was made with perfect clarity to my mobile

5. Keeping the public IP on, I used my preferred VoIP serice account to login to its server. The call was made to my mobile, but no audio both ways

6. Checked the captured data on Wireshark and I found that an incoming RTP stream was made, Wireshark played back my voice coming from my mobile. There was no RTP stream established from Red5

7. Switched back to my local LAN IP, Account registration was done. Call to mobile was established. No audio, No RTP incoming stream, No audio stream capture

8. I had earlier installed Openfire + Red5 on a remote server, i logged into Red5 with voipstunt.com credentials and it did not time out, but rather logged in perfectly with my computer on LAN IP

**9. **Call was established to my mobile, perfect audio clarity

**10. **Logged into my preferred VoIP provider, no audio either way.

So I believe this is more of a network related issue with my preferred VoIP service provider. The provider does have Sippy SIP B2BUA to establish reliable SIP signalling, but perhaps an RTPproxy might be even better to make reliable calls from behind NAT devices?

I believe voipstunt.com SIP url, which is sip.voipstunt.com is the same for its STUN server as well. This I believe is helping it to establish reliable calls to my Public IP or via remote server. My preferred provider does not have a STUN server. What do you suggest

Luke

I was wondering as to why I was unable to hear the audio stream when I was on a public IP. Wireshark captured the stream but I couldnt hear it on Red5Phone.

Any clue and also can anyone tell me if RTPproxy can be of any use in my case.

Also, is anyone aware of voipstunt.com, if they use STUN only or RTPproxy as well?

Thanx

Luke

Hi

until today its not clear to me what exactlly your goals with red5 phone:

do you want it to run public services like service provider?

do you want it as some solution with in your company like click to talk for support department…?

where are your users are going to connect from (home, office, vpn…) ?

is your pstn/voip gateways are on the same lan as the red5 or is it possible to put the red5 on same subsnet as your proxy?

why do you use voipstunt and not other more professionals services which can work with SBC and not stun for good deal of nat transversal?

if one of your call destination will be phones bihind nat you will need media realy solution. if just your red5 clients is behind nat and red5 server is on the same subsnet as your voip gateways (or all of the components are on public network) than you don’t need media relay solution.

hope its help

Lior

Hey!

Listed below is what I am looking to do with Red5 and details about what we already have.

  1. We are a service provider and currently have a VoIP client, similar to skype

  2. We want to web enable this application so as to help our users to make calls from a browser using flash/flex

  3. As I said, we are a service provider where users can purchase plans to make calls anywhere in the world to normal phones

  4. I choose Voipstunt just for testing purposes, it connects and has shown reliable performence compared to our own service, with NO audio

  5. I have Red5 on a server which is located in the same LAN as my voip Gateway and so is my PSTN Gateway, I am not sure of the subnet though

  6. We have sippy SIP Proxy and forceRTP enabled on Sip Express Router

Keeping the present infrastructure in mind, I dont think I can opt for any other service provider to do what we want to do with our own service. Our users are from all over the world calling from all kinds of networks. Since the client they are using was developed by us and is better tuned to the network. All calls are routed without any problems from the client.

Let me know if you need more info.

Luke

Hi,

find attached a diagram that I think will make this setup work, please let me know if I am on the right track.

I am in the process of it, the servers are at a remote location so it might take a while to get this done.

I think the current scenario in the diagram is whats causing most of the issues.

Regards,

Luke