>> I think there are also other codecs that could be selected along with
>> single codec, like CN codec. Perhaps a list of codecs, specified by
>> yet an another tag.
>
> I added SOATAG_AUDIO_AUX() for that purpose.
>
> Denis, could you test the attached patch (against 1.12.1)?

What about auxiliary audio - it seems to work fine, but there still problems
with respond to re-INVITE:

send 825 bytes to udp/[192.168.138.60]:5060 at 04:49:40.885611:
   INVITE sip:[EMAIL PROTECTED] SIP/2.0
   Via: SIP/2.0/UDP 192.168.138.65;rport;branch=z9hG4bK7F4QU3rUmXmUK
   Max-Forwards: 70
   From: <sip:[EMAIL PROTECTED]>;tag=7a93c1ZSmerrg
   To: <sip:[EMAIL PROTECTED]>
   Call-ID: 62afc021-989d-1200-f481-8d6be3d4a18d
   CSeq: 30761267 INVITE
   Contact: <sip:[EMAIL PROTECTED]>
   User-Agent: TAU-32.IP v1.1 with sofia-sip/1.12.1
   Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE, SUBSCRIBE,
NOTIFY, REFER, UPDATE
   Supported: timer, 100rel
   Content-Type: application/sdp
   Content-Disposition: session
   Content-Length: 260

   v=0
   o=- 4055417593070913274 8147886360907374363 IN IP4 192.168.138.65
   s=-
   c=IN IP4 192.168.138.65
   t=0 0
   m=audio 23000 RTP/AVP 4 8 0 101
   a=rtpmap:4 G723/8000
   a=rtpmap:8 PCMA/8000
   a=rtpmap:0 PCMU/8000
   a=rtpmap:101 telephone-event/8000
   a=fmtp:101 0-15
...
recv 732 bytes from udp/[192.168.138.60]:5060 at 04:49:50.232295:
   SIP/2.0 200 OK
   Via: SIP/2.0/UDP 192.168.138.65;rport=5060;branch=z9hG4bK7F4QU3rUmXmUK
   Record-Route: <sip:192.168.138.60:5060;lr>
   From: <sip:[EMAIL PROTECTED]>;tag=7a93c1ZSmerrg
   To: <sip:[EMAIL PROTECTED]>;tag=202699017
   Call-ID: 62afc021-989d-1200-f481-8d6be3d4a18d
   CSeq: 30761267 INVITE
   Contact: <sip:[EMAIL PROTECTED]:5060;user=phone;transport=udp>
   Server: Cisco ATA 186  v3.1.0 atasip (040211A)
   Allow: ACK, BYE, CANCEL, INVITE, NOTIFY, OPTIONS, REFER, REGISTER
   Content-Type: application/sdp
   Content-Length: 199

   v=0
   o=4000 15814 15814 IN IP4 192.168.138.70
   s=ATA186 Call
   c=IN IP4 192.168.138.70
   t=0 0
   m=audio 16384 RTP/AVP 4 101
   a=rtpmap:4 G723/8000/1
   a=rtpmap:101 telephone-event/8000
   a=fmtp:101 0-15
...
recv 831 bytes from udp/[192.168.138.60]:5060 at 04:49:52.185998:
   INVITE sip:[EMAIL PROTECTED] SIP/2.0
   Via: SIP/2.0/UDP
192.168.138.60:5060;rport;branch=z9hG4bK38aa6edee6d55bac.3
   Via: SIP/2.0/UDP 192.168.138.70:5060
   From: sip:[EMAIL PROTECTED];tag=202699017
   To: sip:[EMAIL PROTECTED];tag=7a93c1ZSmerrg
   Call-ID: 62afc021-989d-1200-f481-8d6be3d4a18d
   CSeq: 1 INVITE
   Contact: <sip:[EMAIL PROTECTED]:5060;user=phone;transport=udp>
   User-Agent: Cisco ATA 186  v3.1.0 atasip (040211A)
   Expires: 10
   Allow: ACK, BYE, CANCEL, INVITE, NOTIFY, OPTIONS, REFER, REGISTER
   Record-Route: <sip:192.168.138.60:5060;lr>
   Content-Type: application/sdp
   Content-Length: 225

   v=0
   o=4000 16010 16010 IN IP4 192.168.138.70
   s=ATA186 Call
   c=IN IP4 192.168.138.70
   t=0 0
   m=audio 16384 RTP/AVP 0 8 101
   a=rtpmap:0 PCMU/8000/1
   a=rtpmap:8 PCMA/8000/1
   a=rtpmap:101 telephone-event/8000
   a=fmtp:101 0-15
...
send 811 bytes to udp/[192.168.138.60]:5060 at 04:49:52.194398:
   SIP/2.0 200 OK
   Via: SIP/2.0/UDP
192.168.138.60:5060;rport=5060;branch=z9hG4bK38aa6edee6d55bac.3
   Via: SIP/2.0/UDP 192.168.138.70:5060
   Record-Route: <sip:192.168.138.60:5060;lr>
   From: sip:[EMAIL PROTECTED];tag=202699017
   To: sip:[EMAIL PROTECTED];tag=7a93c1ZSmerrg
   Call-ID: 62afc021-989d-1200-f481-8d6be3d4a18d
   CSeq: 1 INVITE
   Contact: <sip:[EMAIL PROTECTED]>
   User-Agent: TAU-32.IP v1.1 with sofia-sip/1.12.1
   Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE, SUBSCRIBE,
NOTIFY, REFER, UPDATE
   Supported: timer, 100rel
   Content-Type: application/sdp
   Content-Disposition: session
   Content-Length: 188

   v=0
   o=- 4055417593070913274 8147886360907374365 IN IP4 192.168.138.65
   s=-
   c=IN IP4 192.168.138.65
   t=0 0
   m=audio 23000 RTP/AVP 101
   a=rtpmap:101 telephone-event/8000
   a=fmtp:101 0-15
...

The majority problem is that the answer on offer in second round is based on
the last negotiated SDP, but not user supplied
(soa_base_set_params does not increment ss_user_version number in most
cases, which is compared in offer_answer_step).

Unfortunately i have not good idea how to solve this.

In my previous patch soa_sdp_upgrade was called in case if remote version
have been changed:

  /* Step B: upgrade local SDP (add m= lines to it)  */
....
  case generate_answer:
    /* Upgrade local SDP based on remote SDP */
    if (ss->ss_local_user_version == user_version &&
   ss->ss_local_remote_version == remote_version)
      break;
    if (ss->ss_local_user_version != user_version ||
+    ss->ss_local_remote_version != remote_version ||
   soa_sdp_upgrade_is_needed(local, remote)) {
      if (local != local0)
   *local0 = *local, local = local0;
      SU_DEBUG_7(("soa_static(%p, %s): %s\n", ss, by,
        "upgrade with remote description"));
      soa_sdp_upgrade(ss, tmphome, local, user, remote);
    }
...

but that is of course is not good decision.

May be there should be more precision test to increment ss_user_version or
may be it always should be incremented when user pass SDP to SOA?

In last case i think there should not be a problems: if the user want to use
last negotiated session parameters, there no need to pass session
description to SOA again.

Best regards,
Legostayev Denis


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Sofia-sip-devel mailing list
Sofia-sip-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel

Reply via email to