Hello,

On 17.12.25 23:35, David Cunningham wrote:
> Hi Henning and Daniel,
>
> Thank you very much for the replies. We moved the following
> configuration to reply_route{}, and now it inserts "a=sendonly"
> immediately before the "a=sendrecv" rather than appending it to the
> SDP as before. This configuration does use RTPengine as the call is
> from a WebRTC client. Have you any further idea why it's not actually
> replacing the "a=sendonly"?
>
>                                 replace_body_all( "a=sendrecv",
> "a=sendonly" );
>                                 msg_apply_changes();
>
> Daniel, from reading the sdpops documentation it's not clear how to
> iterate through an SDP. Could you please give us a pointer on that?

the functions to remove/insert/append should show how to use the
iterator, e.g.,:

-
https://www.kamailio.org/docs/modules/stable/modules/sdpops.html#sdpops.f.sdp_iterator_rm

For example, to replace for all media sessions:

    sdp_iterator_start("s1");
    while(sdp_iterator_next("s1")) {
        if($sdpitval(s1) =~ "^a=sendrecv") {
            sdp_iterator_rm("s1");
            sdp_iterator_append("s1", "a=sendonly\r\n");
        }
    }
    sdp_iterator_end("s1");

Cheers,
Daniel

 

>
> Thanks again.
>
>
> On Thu, 18 Dec 2025 at 00:23, Daniel-Constantin Mierla
> <[email protected]> wrote:
>
>     Hello,
>
>
>     On 17.12.25 02:08, David Cunningham via sr-users wrote:
>>     Hello,
>>
>>     We need to replace a=sendrecv with a=sendonly in the 200 OK reply
>>     to an INVITE. In theory it should be something straightforward,
>>     like in the onreply_route using:
>>
>>     replace_body_all( "a=sendrecv", "a=sendonly" );
>>
>>     or:
>>
>>     subst_body( '/^a=sendrecv/a=sendonly/' )
>>
>>     Our first problem is that these both are appending a=sendonly to
>>     the end of the SDP, not replacing values within it. Does anyone
>>     know why this might happen?
>
>     it could be because of conflicting operations with rtpengine (or
>     rtpproxy). You could try the replacement in the core reply_route()
>     and then use msg_apply_changes.
>
>
>>
>>     Our second problem is that we really only want to do this for
>>     video media, and not touch the audio media. Are there any text
>>     tools that allow you to work with specific media within the SDP?
>>
>     The sdpops has an sdp iterator that could help: once you match the
>     video stream, look for the sendrecv attrbute and replace the line.
>
>     Cheers,
>     Daniel
>
>
>     -- 
>     Daniel-Constantin Mierla (@ asipto.com <http://asipto.com>)
>     twitter.com/miconda <http://twitter.com/miconda> -- 
> linkedin.com/in/miconda <http://linkedin.com/in/miconda>
>     Kamailio Consultancy, Training and Development Services -- asipto.com 
> <http://asipto.com>
>     Kamailio World Conference, May 7-8, 2026 - Berlin, Germany -- 
> kamailioworld.com <http://kamailioworld.com>
>
>
>
> -- 
> David Cunningham, Voisonics Limited
> http://voisonics.com/
> USA: +1 213 221 1092
> New Zealand: +64 (0)28 2558 3782

-- 
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com
Kamailio World Conference, May 7-8, 2026 - Berlin, Germany -- kamailioworld.com
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions -- 
[email protected]
To unsubscribe send an email to [email protected]
Important: keep the mailing list in the recipients, do not reply only to the 
sender!

Reply via email to