[OpenSIPS-Users] rtpengine (setid_avp) issue with BYE and CANCEL
Răzvan Crainea
razvan at opensips.org
Tue Nov 20 03:42:31 EST 2018
Hi, Mickael!
AVPs are only available during transaction - initial request and its
replies, but it is not avaialble to sequential requests (such as CANCEL
or BYE). If you want to store a value throughout the entire dialog, you
should save the variable in a dialog variable[1], something like this:
# initial INVITE
$avp(setid) = 1;
create_dialog();
$dlg_val(setid) = $avp(setid);
# CANCEL or BYE, *after* loose_route() is called
# so that the dialog is matched/found
loose_route();
$avp(setid) = $dlg_val(setid);
Hope this helps.
[1] https://opensips.org/html/docs/modules/2.4.x/dialog#pv_dlg_val
Best regards,
Răzvan
On 11/19/18 6:01 PM, Mickael Hubert wrote:
> Hi all,
> I have a rtpengine with opensips, when I use rtpengine without setid_avp
> all works like a charm
>
> modparam("rtpengine", "rtpengine_sock", "udp:10.13.0.129:12221
> <http://10.13.0.129:12221>")
>
> _When I want use setid_avp:_
>
> modparam("rtpengine", "setid_avp", "$avp(setid)")
> modparam("rtpengine", "rtpengine_sock", "1 == udp:10.13.0.129:12221
> <http://10.13.0.129:12221>")
>
> _I call manage function in initial INVITE:_
>
> $avp(setid) = 1;
> create_dialog();
> xlog("L_INFO","setid: $avp(setid)\n");
> if(rtpengine_manage("ICE=remove"))
> {
> xlog("L_INFO","SDP Offer: $ci for INVITE\n");
> }
>
> for an reply $avp(setid) is populate, and rtpengine works.
>
> _but for BYE and CANCEL I have an issue:_
> _
> _
> you can see the setid variable isn't populate for this CANCEL, but it is
> populate for 487 reply !
> I have this error log: ERROR:rtpengine:select_rtpe_node: script error
> -no valid set selected / ERROR:rtpengine:rtpe_function_call: no
> available proxies
>
> When I force the setid to 1 for BYE and CANCEL, there isn't issue.
>
> However, the module documentation explains :
> /IMPORTANT: if you use multiple sets, take care and use the same set for
> both rtpengine_offer()/rtpengine_answer() and rtpengine_delete()!!
> /
> /If the set was selected using setid_avp, the avp needs to be set only
> once before rtpengine_offer() or rtpengine_manage() call. /
>
> Can you help me please ?
>
> thanks in advance
>
> PS: same issue with BYE method
> __
>
> __
>
> Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22531]:
> ################################################################################
> Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22531]: CANCEL END
> OF CALL : call-id 1def6e7f-66b6-1237-7b9d-0050569229dc
> Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22531]:
> ################################################################################
> Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22531]: setid: <null>
> Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22531]:
> *ERROR:rtpengine:select_rtpe_node: script error -no valid set selected*
> Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22531]:
> *ERROR:rtpengine:rtpe_function_call: no available proxies*
> Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22521]:
> 1def6e7f-66b6-1237-7b9d-0050569229dc In ONREPLY ROUTE 2 - fu :
> sip:+******@am-isbc1-******** , ru : <null> , si : 10.13.0.80, status : 487
> Nov 19 16:53:41 am-scr1-test /usr/local/sbin/opensips[22521]: setid: 1
>
> if (is_method("CANCEL"))
> {
>
> xlog("L_INFO","################################################################################
> \n");
> xlog("L_INFO","CANCEL END OF CALL : call-id $ci \n");
>
> xlog("L_INFO","################################################################################
> \n");
> xlog("L_INFO","setid: $avp(setid)\n");
> if(rtpengine_manage("ICE=remove"))
> {
> xlog("L_INFO","SDP Offer: $ci for CANCEL\n");
> }
> .............
>
>
>
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
--
Răzvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
More information about the Users
mailing list