OpenSIPS sending 200 OK with SDP

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

OpenSIPS sending 200 OK with SDP

Andreas Sikkema
Hi,

I know what I'm trying to do is very much frowned upon, but I'm
hitting walls everywhere to make this work.

We have this platform that is using what seems to be RFC3311 UPDATE
messages as part of a call transfer. A calls B, B answers, A calls C
and during the ringing phase A transfers C to B. During the transfer A
sends an UPDATE message to C to signal that it should send RTP to B
instead of A. B is notified using re-INVITE messages. B and C are both
behind an OpenSIPS install built especially for this sceanrio.

Most free software products have a hard time supporting this. Some
have bugs (see the bugfix for OpenSIPS where we reported the initial
problem) and others just don't support it at all. Since we're running
quite a lot of those products I'd rather have something handle the
UPDATE but don't bother other clients with it.

So, is there a way for OpenSIPS to receive the UPDATE, handle the SDP
change using either one of the media proxies and respond back to A
with a 200 OK containing the (perhaps) newly updated SDP?

We're already running an older installation of OpenSIPS that we can't
(yet) upgrade so we're introducing a new one (I'm hoping temporarily).
We found this issue while trying to connect our existing OpenSIPS
based platform to our hosted PBX platform using a SIP connection.

Thanks!

--
Andreas Sikkema

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: OpenSIPS sending 200 OK with SDP

Ali Pey
Hi Andreas,

I don't see why you can't do this. In your routing script you can look for the update message (there should be something about this update message that you can detect it), make changes as required and generate a response to any destination you want. This is what the routing script (opensips.cfg) is for.

Regards,
Ali Pey

On Tue, Aug 28, 2012 at 8:06 AM, Andreas Sikkema <[hidden email]> wrote:
Hi,

I know what I'm trying to do is very much frowned upon, but I'm
hitting walls everywhere to make this work.

We have this platform that is using what seems to be RFC3311 UPDATE
messages as part of a call transfer. A calls B, B answers, A calls C
and during the ringing phase A transfers C to B. During the transfer A
sends an UPDATE message to C to signal that it should send RTP to B
instead of A. B is notified using re-INVITE messages. B and C are both
behind an OpenSIPS install built especially for this sceanrio.

Most free software products have a hard time supporting this. Some
have bugs (see the bugfix for OpenSIPS where we reported the initial
problem) and others just don't support it at all. Since we're running
quite a lot of those products I'd rather have something handle the
UPDATE but don't bother other clients with it.

So, is there a way for OpenSIPS to receive the UPDATE, handle the SDP
change using either one of the media proxies and respond back to A
with a 200 OK containing the (perhaps) newly updated SDP?

We're already running an older installation of OpenSIPS that we can't
(yet) upgrade so we're introducing a new one (I'm hoping temporarily).
We found this issue while trying to connect our existing OpenSIPS
based platform to our hosted PBX platform using a SIP connection.

Thanks!

--
Andreas Sikkema

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


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: OpenSIPS sending 200 OK with SDP

Andreas Sikkema
> I don't see why you can't do this. In your routing script you can look for
> the update message (there should be something about this update message that
> you can detect it), make changes as required and generate a response to any
> destination you want. This is what the routing script (opensips.cfg) is for.

I know in theory that it's possible to code something that might look
like what I want to do (pseudocode):

if (method="") && (src_ip="w.x.y.z") {
    rtpproxy_answer();
    send_reply("200 OK");
}

But I'm not sure that the 200 OK will contain the correct SDP lines
from the media/rtpproxy, if I can add some (thankfully predictable)
codec parameters, etc to the 200 response. I can't remember ever
having seen someone do something like that here on the mailinglist.
Google also doesn't seem to be able to find  something like this.

I'd prefer to do this without running as a B2BUA, but if that's
necessary, not a problem.

For now I have a workaround, but for the longer term I need something
to prevent those UPDATE messages getting passed through to the rest of
my network.

--
Andreas

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: OpenSIPS sending 200 OK with SDP

Ali Pey
If I understand your question correctly, you need to examine and manipulate the SDP parameters in the 200 OK?

You can use the sipmsgops module for that. There are functions such as codec_exists(), codec_delete(), etc. Check out the module here. There are lots of good function in there. You can also check out the textops module as well for manipulation.


Regards,
Ali Pey

On Thu, Aug 30, 2012 at 10:09 AM, Andreas Sikkema <[hidden email]> wrote:
> I don't see why you can't do this. In your routing script you can look for
> the update message (there should be something about this update message that
> you can detect it), make changes as required and generate a response to any
> destination you want. This is what the routing script (opensips.cfg) is for.

I know in theory that it's possible to code something that might look
like what I want to do (pseudocode):

if (method="") && (src_ip="w.x.y.z") {
    rtpproxy_answer();
    send_reply("200 OK");
}

But I'm not sure that the 200 OK will contain the correct SDP lines
from the media/rtpproxy, if I can add some (thankfully predictable)
codec parameters, etc to the 200 response. I can't remember ever
having seen someone do something like that here on the mailinglist.
Google also doesn't seem to be able to find  something like this.

I'd prefer to do this without running as a B2BUA, but if that's
necessary, not a problem.

For now I have a workaround, but for the longer term I need something
to prevent those UPDATE messages getting passed through to the rest of
my network.

--
Andreas

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


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