[OpenSIPS-Users] About obstacles to implement the matched Id in event header of NOTIFY(REFER)

Vlad Patrascu vladp at opensips.org
Tue Aug 16 19:19:10 UTC 2022


Hi Li,

For passing around data between the b2b request route and local_route, 
in the context of an ongoing B2B session, you can use the $b2b_logic.ctx 
variable[1]. That would take care of transferring the Cseq from step 1 
to step 2 and the id from step 3 to step 4.

As for your cseq map, you can use the cachedb_local module, and maybe 
the $b2b_logic.key variable alongside Cseq2 for building a proper key.

[1] https://opensips.org/docs/modules/3.3.x/b2b_logic.html#b2b_logic.key

Regards,

-- 
Vlad Patrascu
OpenSIPS Core Developer
http://www.opensips-solutions.com

On 22.07.2022 23:02, Li Cai wrote:
>
> Hi experts,
>
> I’m working on the implementation for ‘2.4.6 Multiple REFER Requests 
> in a Dialog’ of RFC3515 in a B2B SIP Proxy. Right now, I got stuck 
> with two problems in the solution. Please see the paragraph from RFC-
>
>    A REFER creates an implicit subscription sharing the dialog
>
> identifiers in the REFER request.  If more than one REFER is issued
>
>    in the same dialog (a second attempt at transferring a call for
>
> example), the dialog identifiers do not provide enough information to
>
> associate the resulting NOTIFYs with the proper REFER.
>
>    Thus, for the second and subsequent REFER requests a UA receives in a
>
>    given dialog, it MUST include an id parameter[2] in the Event header
>
>    field of each NOTIFY containing the sequence number (the number from
>
>    the CSeq header field value) of the REFER this NOTIFY is associated
>
>    with. This id parameter MAY be included in NOTIFYs to the first
>
>    REFER a UA receives in a given dialog.  A SUBSCRIBE sent to refresh
>
>    or terminate this subscription MUST contain this id parameter.
>
> Different from the definition in RFC, the NOTIFY forwarded by the 
> proxy contains the same Id in Event header as the other side. Please 
> see the below chart –
>
>                    B2BProxy
>
>                                            |
>
>                 <- REFER 2 (Cseq=2) |                  <-REFER 1 
>  (Cseq=1003)
>
>                            . . .                  | . . .
>
> ->NOTIFY 1 (event:*id=2*)         |  ->NOTIFY 2 (_event*:id=2*)_
>
> The current problem is, the above NOTIFY on the right side should 
> _include ‘id=1003’ instead of ‘id=2’_.
>
> The solution I’m trying is as in the following flow –
>
>       1.         get CSeq 1 of REFER 1 in route[b2b_request]{}  ->
>
>       2.         get CSeq 2 of REFER 2 in local_route{},  then save 
> the pair(key=CSeq2, value=CSeq1) in a map set->
>
>       3.         get Id  from NOTIFY 1 event in route[b2b_request]{}  ->
>
>       4.         use Id  as key then get matched CSeq1 from the map 
> set, use remove_hf() and append_hf() to modify the event header in 
> local_route{}
>
> My two questions are:
>
>  1. To transfer Cseq 1 from step1 to step2, I tried a variable in the
>     AVP type but it didn’t work. The script variable can work but it
>     doesn’t fit because the processing is based on per request.  Can I
>     ask if you have any suggest on how to transfer the value from
>     route[b2b_request]{} to local_route{}?
>  2. In the step2, I tried to create and operate a JSON map set to save
>     the CSeq pairs. But the JSON data didn’t work for me.
>
>             My source :
>
>                                     $json(csList) = ””;       # 
> Initialize the data set, not sure if it’s correct
>
> $json(csList/”$cs”) = “$avp(csNum)”;
>
>             The error I got:
>
> ERROR:core:do_assign: setting PV failed
>
> ERROR:core:do_assign: error at /usr/local//et/opensips/opensips.cfg:531
>
> Thank you very much for the help! Any your suggests are very welcomed.
>
> Thanks,
>
> Li
>
> NOTICE TO RECIPIENT: This email, including attachments, may contain 
> information which is confidential, proprietary, attorney-client 
> privileged and / or controlled under U.S. export laws and regulations 
> and may be restricted from disclosure by applicable State and Federal 
> law. Nothing in this email shall create any legal binding agreement 
> between the parties unless expressly stated herein and provided by an 
> authorized representative of Comtech Telecommunications Corp. or its 
> subsidiaries. If you are not the intended recipient of this message, 
> be advised that any dissemination, distribution, or use of the 
> contents of this message is strictly prohibited. If you received this 
> message in error, please notify us immediately by return email and 
> permanently delete all copies of the original email and any attached 
> documentation from any computer or other media.
>
> _______________________________________________
> 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/20220816/8eef3031/attachment.html>


More information about the Users mailing list