I am currently having a problem with asterisk 1.0.7 where after exactly 10 minutes of a call the inbound audio stops. My setup is fairly simple. I have a FreeBSD box running asterisk connected to the internet. It has a SIP or IAX client talking to it on a private network. The BSD box talks SIP to my PSTN gateway operated by a company called astratel.

softphone <----> FreeBSD asterisk <-----> AstraTEL gateway <------> PSTN Phone

The call establishes fine and works well. However, after exactly 600 seconds of the call the softphone user is unable to hear anything from PSTN phone user. I have verified that the RTP packets continue to flow both ways on the wire and I have tracked down the even that occurs at 600 seconds which seems to be the problem.

astratel asterisksrv RTP Payload type=ITU-T G.723, SSRC=384396275, Seq=18370, Time=1385593487
asterisksrv astratel RTP Payload type=ITU-T G.723, SSRC=515671647, Seq=9435, Time=4799696
astratel asterisksrv RTP Payload type=ITU-T G.723, SSRC=384396275, Seq=18371, Time=1385593727
asterisksrv astratel RTP Payload type=ITU-T G.723, SSRC=515671647, Seq=9436, Time=4799936
astratelctl asterisksrv SIP/SDP Request: INVITE sip:[EMAIL PROTECTED]:5060, with session description
asterisksrv astratelctl SIP/SDP Status: 200 OK, with session description
asterisksrv astratel RTP Payload type=ITU-T G.723, SSRC=515671647, Seq=9437, Time=4800176
astratel asterisksrv RTP Payload type=ITU-T G.723, SSRC=1762950467, Seq=43847, Time=265690106
astratel asterisksrv RTCP Sender Report
asterisksrv astratel RTP Payload type=ITU-T G.723, SSRC=515671647, Seq=9438, Time=4800416
astratelctl asterisksrv SIP Request: ACK sip:[EMAIL PROTECTED]
astratel asterisksrv RTP Payload type=ITU-T G.723, SSRC=1762950467, Seq=43848, Time=265690346
asterisksrv astratel RTP Payload type=ITU-T G.723, SSRC=515671647, Seq=9439, Time=4800656
astratel asterisksrv RTP Payload type=ITU-T G.723, SSRC=1762950467, Seq=43849, Time=265690586
asterisksrv astratel RTP Payload type=ITU-T G.723, SSRC=515671647, Seq=9440, Time=4800896
astratel asterisksrv RTP Payload type=ITU-T G.723, SSRC=1762950467, Seq=43850, Time=265690826


asterisksrv = My FreeBSD box running asterisk
astratelctl = astratel sip server
astratel = IP that the RTP data comes from at astratel

A couple of weird things:

1. Even though the call was established from astrisksrv -> astractl the invite comes the other way. Is this normal?
2. After the INVITE is sent, the astratel server suddenly changes SSRC, Sequence number and Time offset. I believe this is what is stopping the audio stream.
3. The ACK that is sent has a "Content-Type: application/SDP" header. This confuses asterisk and gives this warning:


WARNING[34979]: chan_sip.c:2645 process_sdp: Insufficient information for SDP (m = '', c = '')

I have fixed this error by adding a line to chan_sip.c to also verify the Content-Length is not "0".

chan_sip.c, line 7730:
if (!ast_strlen_zero(get_header(req, "Content-Type"))
    && strcasecmp(get_header(req, "Content-Length"), "0")) {      <- added
    if (process_sdp(p, req))
          return -1;
}

My questions are as follows:

1. Is it normal to receive a (re)INVITE from the host that you originally called?
2. Where in the code does asterisk check/process SSRC and/or sequence numbers if at all?
3. Do the codec's use the Time field in the packet to reassemble the stream? Is this why the audio stops? Is this normal for a SIP stream?


Below is the "sip debug"

Sip read:
INVITE sip:[EMAIL PROTECTED]:5060 SIP/2.0
From: <sip:[EMAIL PROTECTED]>;tag=901f40a-13c4-4257498c-19278f18-197f
To: "iaxComm User"<sip:[EMAIL PROTECTED]>;tag=as40722ded
Call-ID: [EMAIL PROTECTED]
CSeq: 103 INVITE
Via: SIP/2.0/UDP astratelctl:5060;branch=z9hG4bK-68d22-19974e76-3c66ebf
Via: SIP/2.0/UDP asterisksrv:5060;branch=z9hG4bK148a3978
Contact: <sip:[EMAIL PROTECTED]>
User-Agent: Asterisk PBX
Date: Sat, 09 Apr 2005 00:23:19 GMT
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER
Content-Type: application/SDP
Content-Length: 142

v=0
o=GW5250-V5 36 0 IN IP4 xxx.xxx.127.13
s=SipCall
c=IN IP4 xxx.xxx.127.13
t=0 0
m=audio 4360 RTP/AVP 18 101
a=rtpmap:18 G729/8000/1

13 headers, 7 lines
Using latest request as basis request
Sending to astratelctl : 5060 (non-NAT)
We're at asterisksrv port 18620
Answering with capability 0x100 (g729)
Answering with non-codec capability 0x1 (telephone-event)
Reliably Transmitting (no NAT):
SIP/2.0 200 OK
Via: SIP/2.0/UDP astratelctl:5060;branch=z9hG4bK-68d22-19974e76-3c66ebf
Via: SIP/2.0/UDP asterisksrv:5060;branch=z9hG4bK148a3978
From: <sip:[EMAIL PROTECTED]>;tag=901f40a-13c4-4257498c-19278f18-197f
To: "iaxComm User"<sip:[EMAIL PROTECTED]>;tag=as40722ded
Call-ID: [EMAIL PROTECTED]
CSeq: 103 INVITE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
Contact: <sip:[EMAIL PROTECTED]>
Content-Type: application/sdp
Content-Length: 220

v=0
o=root 34979 34980 IN IP4 xxx.yyy.75.91
s=session
c=IN IP4 xxx.yyy.75.91
t=0 0
m=audio 18620 RTP/AVP 18 101
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -

to zzz.aa.148.162:5060
Sip read:

ACK sip:[EMAIL PROTECTED] SIP/2.0
From: <sip:[EMAIL PROTECTED]>;tag=901f40a-13c4-4257498c-19278f18-197f
To: "iaxComm User"<sip:[EMAIL PROTECTED]>;tag=as40722ded
Call-ID: [EMAIL PROTECTED]
CSeq: 103 ACK
Via: SIP/2.0/UDP astratelctl:5060;branch=z9hG4bK-68d22-19974e76-3c66ebf
Via: SIP/2.0/UDP asterisksrv:5060;branch=z9hG4bK148a3978
User-Agent: Asterisk PBX
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER
Contact: <sip:[EMAIL PROTECTED]>
Content-Type: application/SDP
Content-Length: 0


I have ethereal traces as well.

If someone could please help that would be great.


Tony


_______________________________________________
Asterisk-Users mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-users
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to