[OpenSIPS-Users] Extract data from AVP

Mickael Hubert mickael at winlux.fr
Wed Nov 27 13:27:29 EST 2019


Thanks Ben,
yes I tried this:
$var(toto) = $(avp(aline){re.subst,/.*:(.*)/\1/g}); # delete a=channel:

xlog("line in the SDP body is $(var(toto){re.subst,/(.*)@.*/\1/g})\n");
xlog("line in the SDP body is $(var(toto){re.subst,/.*@(.*)/\1/g})\n");

It works like a charm, maybe there is a better way ...

Le mer. 27 nov. 2019 à 17:51, Ben Newlin <Ben.Newlin at genesys.com> a écrit :

> Have you tried using the substitution transformation?
>
>
>
> https://www.opensips.org/Documentation/Script-Tran-2-4#toc82
>
>
>
> Ben Newlin
>
>
>
> *From: *Users <users-bounces at lists.opensips.org> on behalf of Mickael
> Hubert <mickael at winlux.fr>
> *Reply-To: *OpenSIPS users mailling list <users at lists.opensips.org>
> *Date: *Wednesday, November 27, 2019 at 11:11 AM
> *To: *OpenSIPS users mailling list <users at lists.opensips.org>
> *Subject: *[OpenSIPS-Users] Extract data from AVP
>
>
>
> Hi all,
>
> I want to extract the channel ID from a line in SDP
> (a=channel:d87c363c1b5b4f13 at speechrecog)
>
> I can extract this line, but I don't know how can I have only the ID
> (d87c363c1b5b4f13)
>
>
>
> Do you have a way for me please ?
>
>
>
> thanks in advance
>
>
>
> SDP example:
>
> ***********
> m=application 1544 TCP/MRCPv2 1
> a=setup:passive
> a=connection:new
> a=channel:d87c363c1b5b4f13 at speechrecog
> a=cmid:1
> m=audio 5002 RTP/AVP 8 101
> *************
>
>
>
> My conf:
>
>
>
> My result: "line in the SDP body is a=channel:d87c363c1b5b4f13 at speechrecog
> "
>
> I want only: d87c363c1b5b4f13 in specific avp
>
>
>
> onreply_route[reply_mrcp]
>
>
>
> {
>
>
>
> xlog("L_INFO","$avp(startlog) In REPLY ROUTE MRCP - fu : $fu , si : $si ,
> rs: $rs\n");
>
>
>
> if(has_body_part("application/sdp"))
>
>
>
> {
>
>
>
> if (search_body("m=application.*TCP\/MRCPv2"))
>
> {
>
>
>
> if(search_body("a=channel:.*")) {
>
>
>
> $var(i)
>
> =
>
> 0;
>
>
>
> $var(whileflag)
>
> =
>
> 0;
>
>
>
> while ($var(i)
>
> <
>
> 10
>
> &&
>
> $var(whileflag)
>
> !=
>
> 1)
>
>
>
> {
>
>
>
> $avp(aline)
>
> = $(rb{sdp.line,a,$var(i)});
>
>
>
> if($avp(aline)=~"a=channel")
>
>
>
> {
>
>
>
> xlog("line in the SDP body is $avp(aline)\n");
>
>
>
> $var(whileflag)
>
> =
>
> 1;
>
>
>
> }
>
>
>
> $var(i)
>
> =
>
> $var(i)
>
> +
>
> 1;
>
>
>
> }
>
>
>
> xlog("var i = $var(i)\n");
>
>
>
> }
>
>
>
> }
>
>
>
> }
>
>
>
> }
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20191127/76911d66/attachment-0001.html>


More information about the Users mailing list