[OpenSIPS-Users] How to process CANCEL in b2b anycast mode?

Denys Pozniak denys.pozniak at gmail.com
Thu Jan 19 15:25:32 UTC 2023


Hello!

Sorry for bumping the topic up.
Does anyone have any ideas about what could be the source of this problem?


вт, 17 янв. 2023 г. в 10:59, Denys Pozniak <denys.pozniak at gmail.com>:

> Hello!
>
> I'm trying to build a solution with anycast + b2b.
> But I ran into a problem, if the dialogue is in an early state on node1,
> and CANCEL arrives on node2, then this request itself is no longer
> processed in the context of the b2b (does not jump into the
> route[b2b_request] on node2).
> If I turn off b2b, then everything works as it should. I attached a part
> of the script in the thread.
>
> Maybe I have an error in the logic of the script?
>
> Script snippet from node1:
>
> loadmodule "clusterer.so"
> modparam("clusterer", "db_mode", 0)
> modparam("clusterer", "my_node_id", 1)
> modparam("clusterer", "my_node_info", "cluster_id=1, url=bin:
> 192.168.56.104:5566, flags=seed")
> modparam("clusterer", "neighbor_node_info",
> "cluster_id=1,node_id=2,url=bin:192.168.56.105:5566")
> modparam("clusterer", "sharing_tag", "anycast1/1=active")
> modparam("clusterer", "seed_fallback_interval", 10)
>
> loadmodule "b2b_entities.so"
> modparam("b2b_entities", "script_req_route", "b2b_request")
> modparam("b2b_entities", "script_reply_route", "b2b_reply")
> modparam("b2b_entities", "db_mode", 0)
> modparam("b2b_entities", "cluster_id", 1)
>
> loadmodule "b2b_logic.so"
> modparam("b2b_logic", "contact_user", 1)
> modparam("b2b_logic", "db_mode", 0)
>
> ####### Routing Logic ########
>
> route{
>
>         sl_send_reply(100, "Trying-1");
>         create_dialog();
>         set_dlg_sharing_tag("anycast1");
>
>         if (is_method("INVITE") && !has_totag() ) {
>                 $du = "sip:192.168.56.106:5080";
>                 b2b_init_request("top hiding");
>                 exit;
>         }
>
>        #route(b2b_request);
>         exit;
> }
>
> route[b2b_request] {
>
>         if (is_method("CANCEL")) {
>                 sl_send_reply(100, "Canceling-1");
>                 if (t_check_trans()) {
>                         b2b_pass_request();
>
>                 } else {
>                         t_anycast_replicate();
>                 }
>
>                 exit;
>         }
> }
>
> [root at localhost opensips]# opensips-cli -x mi clusterer_list_cap
> {
>     "Clusters": [
>         {
>             "cluster_id": 1,
>             "Capabilities": [
>                 {
>                     "name": "b2be-entities-repl",
>                     "state": "Ok",
>                     "enabled": "yes"
>                 },
>                 {
>                     "name": "dialog-dlg-repl",
>                     "state": "Ok",
>                     "enabled": "yes"
>                 },
>                 {
>                     "name": "tm-repl",
>                     "state": "Ok",
>                     "enabled": "yes"
>                 }
>             ]
>         }
>     ]
> }
>
> [root at localhost opensips]# opensips -V
> version: opensips 3.4.0-dev (x86_64/linux)
> flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC,
> Q_MALLOC, F_MALLOC, HP_MALLOC, DBG_MALLOC, CC_O0, FAST_LOCK-ADAPTIVE_WAIT
> ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
> MAX_URI_SIZE 1024, BUF_SIZE 65535
> poll method support: poll, epoll, sigio_rt, select.
> git revision: dda7717fa
> main.c compiled on 05:45:40 Jan 15 2023 with gcc 4.8.5
>
> --
>
> BR,
> Denys Pozniak
>
>
>

-- 

BR,
Denys Pozniak
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20230119/2a8b9934/attachment.html>


More information about the Users mailing list