[SR-Users] Issue handling SRTP and RTP with rtpproxy and rtpengine

Alberto Sagredo alberto.sagredo at avanzada7.com
Tue Jul 14 17:01:38 CEST 2015


Thanks Vasily i have changed a little today using a RTPPROXY route.

Thats what i have right now

But its not working as expected

What i try is to detect if i have SAVP from endpoint and translate to RTP
to ASterisk an later RTP from ASterisk translate to SRTP using rtpengine

I had extrange behaviour using rtpproxy that send SRTP to Asterisk and i
have SRTP calls, i though rtpproxy 2.0 could not manage SRTP calls. but it
pass it to Asterisk

Using RTPengine i have tested with rtpproxy_manage as you see and also with
rtpengine.

If i load both start_recording() feature is lost.

On rtpengine (behind NAT) im using it as:

INTERFACES="192.168.0.178 internal/192.168.0.178 external/192.168.0.179
!EXTERN_IP


On NATMANAGE route i call directly

route(RTPPROXY);


Hope this helps


-----

route[RTPPROXY] {

        if (is_method("INVITE")){

if(ds_is_from_list(1)){

                if (is_ip_rfc1918("$si")) {

                                xlog("L_INFO", "LLamada desde los
Asterisk_$si -> RTPPROXY\n");

                        if (sdp_get_line_startswith("$avp(mline)", "m="))

                        {

                                #!ifdef WITH_RTPENGINE

                                if ($avp(mline) =~ "SAVP")

                                {

                                xlog("L_INFO", "Tenemos SRTP ");

                                xlog("L_INFO", "Llamada entre Extensiones
-> RTPENGINE INTERNAL");

                                rtpengine_manage("direction=internal
replace-origin replace-session-connection ICE=remove");

                                return;

                                }

                                #!endif


                                if ($avp(mline) =~ "AVP")

                                {

                                xlog("L_INFO", "Tenemos RTP ");

                                xlog("L_INFO", "Llamada entre Extensiones
-> RTPROXY ");


                                #!ifdef WITH_RTPPROXY

                                 set_rtp_proxy_set("1");

                                rtpproxy_manage("fwei");

                                start_recording();

                                #!endif


                                #!ifdef WITH_RTPENGINE

                                set_rtp_proxy_set("2");

                                rtpproxy_manage("ie");

                                #!endif

                                }

                        }

                        }

               }else if(!ds_is_from_list()){


                        if (sdp_get_line_startswith("$avp(mline)", "m="))

                        {

                                 #!ifdef WITH_RTPENGINE

                                 if ($avp(mline) =~ "SAVP")

                                {

                                xlog("L_INFO", "Tenemos SRTP ");

                                xlog("L_INFO", "Llamada entre Extensiones
-> RTPENGINE EXTERNAL ");

                                rtpengine_manage("direction=external
replace-origin replace-session-connection ICE=remove");

                                return;

                                }


                                #!endif

                                if ($avp(mline) =~ "AVP")

                                {

                                xlog("L_INFO", "Tenemos RTP ");

                                xlog("L_INFO", "Llamada entre Extensiones
-> RTPROXY ");


                                #!ifdef WITH_RTPPROXY

                                set_rtp_proxy_set("1");

                                rtpproxy_manage("fwie");

                                start_recording();

                                #!endif


                                #!ifdef WITH_RTPENGINE

                                set_rtp_proxy_set("2");

                                rtpproxy_manage("ei");

                                #!endif


                                }

                        }



                }

      }


}



2015-07-14 14:24 GMT+02:00 Vasiliy Ganchev <vasiliy.ganchev at wildix.com>:

> Alberto Sagredo-2 wrote
> > ...
> > I have been able to make SRTP To RTP to Asterisk
> >
> > But im not able to call between SRTP extensions, i understand also SRTP
> to
> > RTP would work as im doing with Asterisk (Only the speak SRTP as
> rtpengine
> > trasncode)
> >
> >
> > If you need any more info let me know.
> >
> > _______________________________________________
> > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>
> > sr-users at .sip-router
>
> > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
> Hi!
> If you make SRTP to RTP to Asterisk, you possibly will need vice versa
> conversion (when request coming from Asterisk to client with SRTP).
>
> Can you describe the logic of test case: (UA-A (SRTP) --> Kamailio (make
> SRTP->RTP) .... etc.
>
> Because your explanation is difficult to understand.
>
> Cheers!
>
>
>
> --
> View this message in context:
> http://sip-router.1086192.n5.nabble.com/Issue-handling-SRTP-and-RTP-with-rtpproxy-and-rtpengine-tp139488p139521.html
> Sent from the Users mailing list archive at Nabble.com.
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20150714/7e2ace67/attachment.html>


More information about the sr-users mailing list