Hi Remco,

Indeed, I found some issues in the sipmsgops module - the T38 stream seems to be slightly different than an audio stream. I made a fix on SVN (trunk rev #9612, 1.8 rev #9613 and 1.7 rev #9614) - please update and re-test.

Now, the "search" part is fine, but on the delete part is strange. If you do the delete, you end up with like:

v=0
o=- 144969 144969 IN IP4 111.222.111.111
s=-
c=IN IP4 111.222.111.111
t=0 0
m=audio 12345 RTP/AVP 8 0 18
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
m=image 13444 udptl
a=T38FaxVersion:0
a=T38MaxBitRate:14400
a=T38FaxRateManagement:transferredTCF
a=T38FaxMaxBuffer:200
a=T38FaxMaxDatagram:200
a=T38FaxUdpEC:t38UDPRedundancy

See the 'm' line for image, where the codec name was removed, but you end up with a stream with no codec at all....Is this something valid ? or should the entire stream be removed ? if we remove the stream (and let's say there is only one stream), a session without any stream is still valid ??

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com


On 01/22/2013 01:36 AM, Remco . wrote:
Hi Bogdan,

I'm using opensips 1.7.2 (debian package from opensips apt sources).

$>  opensips -V
version: opensips 1.7.2-notls (x86_64/linux)
flags: STATS: Off, USE_IPV6, USE_TCP, DISABLE_NAGLE, USE_MCAST,
SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
MAX_URI_SIZE 1024, BUF_SIZE 65535
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
svnrevision: 2:9543M
@(#) $Id: main.c 9331 2012-10-16 17:26:53Z bogdan_iancu $
main.c compiled on 05:29:22 Jan  9 2013 with gcc 4.4.5

I modified sipp a bit to accept t.38, to be able to reproduce the
issue (I don't have the offending equipment at hand), using the
following xml config:

       v=0
       o=- 144969 144969 IN IP[local_ip_type] [local_ip]
       s=-
       c=IN IP[media_ip_type] [media_ip]
       t=0 0
       m=audio [media_port] RTP/AVP 8 0 18
       a=rtpmap:8 PCMA/8000
       a=rtpmap:0 PCMU/8000
       m=image [media_port] udptl t38
       a=T38FaxVersion:0
       a=T38MaxBitRate:14400
       a=T38FaxRateManagement:transferredTCF
       a=T38FaxMaxBuffer:200
       a=T38FaxMaxDatagram:200
       a=T38FaxUdpEC:t38UDPRedundancy

That's  the plaintext version of the exact SDP, except for addresses and ports.
I tried the different matching options (regex, non-regex). I ended up
using subst_body() to solve the issue for now but that feels a bit
like modifying the SDP with a chainsaw ;).

Thanks,
Remco.


On Mon, Jan 21, 2013 at 7:57 PM, Bogdan-Andrei Iancu
<[email protected]>  wrote:
Hi Remco,

The double "m" means you have two media streams in your SDP. This should not
affect the codec related functions.

What exact version/revision of OpenSIPs are you using (OpenSIPS -V) ? also
could you paste here the plain/text SDP you are fighting against ?

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com



On 01/21/2013 11:15 AM, Remco . wrote:
Hi,

Trying to remove T.38 using the following:

          if (is_method("INVITE")&&
codec_exists_re(".*(T38|t38|t.38|T.38).*")) {

                  xlog("L_WARN", "[$Tf]: A=[$fU] : B=[$rU] :
Call-id=[$ci] : T.38 found in SDP");
                  # Test if other codec present, and delete T.38 if so.
                  if (codec_exists("PCMU") || codec_exists("PCMA")) {
                          codec_delete_re(".*(T38|t38|t.38|T.38).*");
                          xlog("L_WARN", "[$Tf]: A=[$fU] : B=[$rU] :
Call-id=[$ci] : T.38 removed from SDP");
                  } else {
                          xlog("L_WARN", "[$Tf]: A=[$fU] : B=[$rU] :
Call-id=[$ci] : SDP with only T.38");
                  }
          }


It seems not to match the following SDP:

              Media Description, name and address (m): audio 54106 RTP/AVP
8 0 101
                  Media Type: audio
                  Media Port: 54106
                  Media Protocol: RTP/AVP
                  Media Format: ITU-T G.711 PCMA
                  Media Format: ITU-T G.711 PCMU
                  Media Format: DynamicRTP-Type-101
              Media Attribute (a): rtpmap:101 TELEPHONE-EVENT/8000
                  Media Attribute Fieldname: rtpmap
                  Media Format: 101
                  MIME Type: TELEPHONE-EVENT
                  Sample Rate: 8000
              Media Attribute (a): fmtp:101 0-15
                  Media Attribute Fieldname: fmtp
                  Media Format: 101 [TELEPHONE-EVENT]
                  Media format specific parameters: 0-15
              Media Attribute (a): ptime:20
                  Media Attribute Fieldname: ptime
                  Media Attribute Value: 20
              Media Description, name and address (m): image 56122 udptl
t38
                  Media Type: image
                  Media Port: 56122
                  Media Protocol: udptl
                  Media Format: t38
              Media Attribute (a): T38FaxRateManagement:transferredTCF
                  Media Attribute Fieldname: T38FaxRateManagement
                  Media Attribute Value: transferredTCF
              Media Attribute (a): T38FaxudpEC:t38UDPFEC
                  Media Attribute Fieldname: T38FaxudpEC
                  Media Attribute Value: t38UDPFEC

Could it be that the double media description (m=) is confusing the
codec_* functions from the textops module?
According to the relevant RFC's, it shouldn't but somehow I can't get
it to work..

Regards,
Remco.

_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to