Hello,
you can play with the rtpengine module timeout parameter to get a faster detection of down
rtpengine daemons.
https://kamailio.org/docs/modules/5.5.x/modules/rtpengine.html#rtpengine.p.…
If you have some other detection/failover logic, it could also just deactivate the
rtpengine on the affected kamailio services by RPC commands.
Cheers,
Henning
--
Henning Westerholt -
https://skalatan.de/blog/
Kamailio services -
https://gilawa.com<https://gilawa.com/>
From: Arsenijs Kabihno <a.kabihno(a)dynatech.lv>
Sent: Dienstag, 13. Juni 2023 13:57
To: Kamailio (SER) - Users Mailing List <sr-users(a)lists.kamailio.org>
Subject: [SR-Users] Re: Cannot achieve rtpengine HA
Hi, thank you!
Probably the subject of this email is slightly misleading, the actual issue that we have
is that kamailio sticks to the rtpengine node selected in the beginning of the call.
If rtpengine node goes down and there are active calls, kamailio continues to try to
communicate with it, when it is already inactive:
Jun 12 07:01:26 ap07stvp.xxxxxxx.xxx docker[9373]: 27(33) ERROR: {2 3 INVITE
jdl9kq6fv51jcv1agk2e} rtpengine [rtpengine.c:3070]: send_rtpp_command(): can't send
command "offer" to RTPEngine <udp:10.5.0.183:22222>
Jun 12 07:01:26 ap07stvp.xxxxxxx.xxx docker[9373]: 54(60) INFO: {1 3 ACK
jdl9kq6fv51jcv1agk2e} <script>: RTPENGINE branch_id:0 ruri: sip:10.5.2.192:5060,
method:ACK, status:<null>, extra_id: <null>, rtpengine_offer: replace-origin
replace-session-connection SIP-source-address direction=pub1 direction=priv1
SIP-source-address rtcp-mux-demux DTLS=off SDES-off ICE=remove RTP/AVP
Jun 12 07:01:26 ap07stvp.xxxxxxx.xxx docker[9373]: 54(60) ERROR: {1 3 ACK
jdl9kq6fv51jcv1agk2e} rtpengine [rtpengine.c:2706]: rtpp_function_call(): no available
proxies
Regards,
Arsenijs
________________________________
From: Kiss Zoltán <kiss.zoltan@adertis.hu<mailto:kiss.zoltan@adertis.hu>>
Sent: Tuesday, June 13, 2023 9:19
To: Kamailio (SER) - Users Mailing List
<sr-users@lists.kamailio.org<mailto:sr-users@lists.kamailio.org>>
Subject: [SR-Users] Re: Cannot achieve rtpengine HA
Hi,
You have to move the IP address of the original rtpengine node to the "failover"
node also.
All of the virtual interfaces must exist on both nodes and you have to enable non local IP
bind support in the Linux kernel to achive this.
Regards,
Zoltan
From: Arsenijs Kabihno <a.kabihno@dynatech.lv<mailto:a.kabihno@dynatech.lv>>
Sent: Monday, June 12, 2023 9:18 AM
To: sr-users@lists.kamailio.org<mailto:sr-users@lists.kamailio.org>
Subject: [SR-Users] Cannot achieve rtpengine HA
Hello,
We are trying to achieve rtpengine HA solely with kamailio and rtpengine module.
In the following example call goes to rtpengine node 10.5.0.183:22222 and then we stop
rtpengine service on this node to simulate failure.
Client is triggering re-INVITE, but, apparently, kamailio sticks to initially selected
rtpengine, producing the following errors:
Jun 12 06:59:48 ap07stvp.xxxxxxx.xxx docker[9373]: 27(33) INFO: {2 2 INVITE
jdl9kq6fv51jcv1agk2e} <script>: RTPENGINE branch_id:0 ruri: <null>,
method:INVITE, status:200, extra_id: z9hG4bK55018600, rtpengine_answer: replace-origin
replace-session-connection SIP-source-address direction=priv1 direction=pub1
SIP-source-address via-branch=extra rtcp-mux-offer generate-mid DTLS=passive SDES-off
ICE=force RTP/SAVPF
Jun 12 06:59:49 ap07stvp.xxxxxxx.xxx docker[9373]: 27(33) NOTICE: {2 2 INVITE
jdl9kq6fv51jcv1agk2e} acc [acc.c:287]: acc_log_request(): ACC: transaction answered:
timestamp=1686553189;method=INVITE;from_tag=fcn109nfe9;to_tag=01284cc8-bc58-4104-9629-8e6bb827d97f;call_id=jdl9kq6fv51jcv1agk2e;code=200;reason=OK;src_user=90362;src_domain=10.181.0.1;src_ip=10.5.0.145;dst_ouser=123;dst_user=123;dst_domain=10.181.0.1
Jun 12 06:59:49 ap07stvp.xxxxxxx.xxx docker[9373]: 31(37) INFO: {2 2 INVITE
jdl9kq6fv51jcv1agk2e} <script>: RTPENGINE branch_id:0 ruri: <null>,
method:INVITE, status:200, extra_id: z9hG4bK55018600, rtpengine_answer: replace-origin
replace-session-connection SIP-source-address direction=priv1 direction=pub1
SIP-source-address via-branch=extra rtcp-mux-offer generate-mid DTLS=passive SDES-off
ICE=force RTP/SAVPF
Jun 12 06:59:49 ap07stvp.xxxxxxx.xxx docker[9373]: 51(57) INFO: {1 2 ACK
jdl9kq6fv51jcv1agk2e} <script>: RTPENGINE branch_id:0 ruri: sip:10.5.2.192:5060,
method:ACK, status:<null>, extra_id: <null>, rtpengine_offer: replace-origin
replace-session-connection SIP-source-address direction=pub1 direction=priv1
SIP-source-address rtcp-mux-demux DTLS=off SDES-off ICE=remove RTP/AVP
Jun 12 06:59:49 ap07stvp.xxxxxxx.xxx docker[9373]: 51(57) INFO: {1 2 ACK
jdl9kq6fv51jcv1agk2e} <script>: RTPENGINE branch_id:0 ruri: sip:10.5.2.192:5060,
method:ACK, status:<null>, extra_id: <null>, rtpengine_offer: replace-origin
replace-session-connection SIP-source-address direction=pub1 direction=priv1
SIP-source-address rtcp-mux-demux DTLS=off SDES-off ICE=remove RTP/AVP
Jun 12 07:01:26 ap07stvp.xxxxxxx.xxx docker[9373]: 27(33) INFO: {2 3 INVITE
jdl9kq6fv51jcv1agk2e} <script>: RTPENGINE branch_id:0 ruri: <null>,
method:INVITE, status:200, extra_id: z9hG4bK20888040, rtpengine_answer: replace-origin
replace-session-connection SIP-source-address direction=priv1 direction=pub1
SIP-source-address via-branch=extra rtcp-mux-offer generate-mid DTLS=passive SDES-off
ICE=force RTP/SAVPF
Jun 12 07:01:26 ap07stvp.xxxxxxx.xxx docker[9373]: 27(33) ERROR: {2 3 INVITE
jdl9kq6fv51jcv1agk2e} rtpengine [rtpengine.c:3070]: send_rtpp_command(): can't send
command "offer" to RTPEngine <udp:10.5.0.183:22222>
Jun 12 07:01:26 ap07stvp.xxxxxxx.xxx docker[9373]: 54(60) INFO: {1 3 ACK
jdl9kq6fv51jcv1agk2e} <script>: RTPENGINE branch_id:0 ruri: sip:10.5.2.192:5060,
method:ACK, status:<null>, extra_id: <null>, rtpengine_offer: replace-origin
replace-session-connection SIP-source-address direction=pub1 direction=priv1
SIP-source-address rtcp-mux-demux DTLS=off SDES-off ICE=remove RTP/AVP
Jun 12 07:01:26 ap07stvp.xxxxxxx.xxx docker[9373]: 54(60) ERROR: {1 3 ACK
jdl9kq6fv51jcv1agk2e} rtpengine [rtpengine.c:2706]: rtpp_function_call(): no available
proxies
We also found Daniel answer on similar issue here:
https://github.com/kamailio/kamailio/issues/2713#issuecomment-823138302
Please advise how it can be solved.
Kind regards,
Arsenijs