Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG]callee hangup call, b2b send bye to itself #3579

Open
QuincyGao opened this issue Feb 10, 2025 · 0 comments
Open

[BUG]callee hangup call, b2b send bye to itself #3579

QuincyGao opened this issue Feb 10, 2025 · 0 comments

Comments

@QuincyGao
Copy link

OpenSIPS version you are running

version: opensips 3.5.3 (x86_64/linux)
flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, HP_MALLOC, DBG_MALLOC, 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: unknown
main.c compiled on 01:25:49 Feb 10 2025 with cc 4.8.5

Describe the bug

caller A send invite to callee B by opensips b2b. B hangup call after answered the call, b2b also send bye to itself.

here is the sip sceen:

A                    opensips                B
| -----invite----->    | 
| <-----100 try ---    |
|                      | ------>invite----->  |
|                      | <-----100 try -----  |
|                      | <-----183   -------- |
|  <-----183-----      |
|                      | <----- 200 ok------|
| <-----200 ok ----    |
| ------ACK ----->     | 
|                      | ------ACK -------->|
|                      | <------ BYE ------- |
|                      | - ----
|                      |         | BYE      <--------- is the issue
|                      | <----
|   <----- BYE ----    |
|  ---- 200 ok --->    | 
|                      | ----
|                      |      | 200 ok    <------ is the issue
|                      |<---
|                      | ------200 ok ----->|

here is my cfg:

socket=udp:172.16.4.111:5360
socket=udp:172.16.4.111:5361
loadmodule "b2b_entities.so"
loadmodule "b2b_logic.so"
modparam("b2b_logic", "hash_size", 10)
modparam("b2b_logic", "script_req_route", "b2b_logic_request")
modparam("b2b_logic", "script_reply_route", "b2b_logic_reply")
modparam("b2b_logic", "cleanup_period", 60)
modparam("b2b_logic", "db_url", "mysql://opensips:[email protected]/opensips_3_5")
modparam("b2b_logic", "update_period", 30)
modparam("b2b_logic", "max_duration", 7200)
modparam("b2b_logic", "b2bl_from_spec_param", "$var(b2bl_from)")

#modparam("b2b_logic", "contact_user", 1)
#modparam("b2b_logic", "server_address", "sip:[email protected]:5361")
modparam("b2b_logic", "db_mode", 1)
modparam("b2b_logic", "b2bl_th_init_timeout", 60)
modparam("b2b_logic", "b2bl_early_update", 1)


 if(is_method("INVITE") && !has_totag()) {
                xlog("L_DBG","[$cfg_line][$ci]---b2b-server_new--:$rm|$rs|$tu|$socket_in(port)|$var(contact)\n");
                b2b_server_new("caller");
                #force_send_socket("udp:172.16.4.111:5360");
                b2b_client_new("callee", "sip:[email protected]:5080");
                # initialize B2B session
                b2b_init_request("prepaid");
                exit;
}

route[b2b_logic_request] {
        xlog("L_INFO","[$fU $tU $ci $rm] B2B_Request Received from $si:$sp User-Agent:$ua\n");
        xlog("L_INFO","[$fU $tU $ci $rm] B2B_Request message $ua:$rr received \n");
        b2b_pass_request();
}

route[b2b_logic_reply] {
        xlog("L_INFO","[$fU $tU $ci $rm] B2B_Reply Received from $si:$sp User-Agent:$ua\n");
        xlog("L_INFO","[$fU $tU $ci $rm] B2B_Reply message $rs:$rr received \n");
        b2b_handle_reply();
        exit;
}

here is B send BYE message:

2025/02/10 15:04:57.871627 172.16.4.114:5080 -> 172.16.4.111:5360
BYE sip:172.16.4.111:5360 SIP/2.0
Via: SIP/2.0/UDP 172.16.4.114:5080;rport;branch=z9hG4bKt5vZj7XpZQU1B
Max-Forwards: 70
From: <sip:[email protected]:5080>;tag=rmpBQ4Q2BQBvK
To: <sip:[email protected]>;tag=cfc5f4d0b5fd24bbe14e02acecc5c3a6-a699
Call-ID: B2B.377.2555327.1739171091.522369035
CSeq: 95031756 BYE
User-Agent: FreeSWITCH-mod_sofia/1.10.2-release+git~20230615T110520Z~4ce1b74880~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Supported: timer, path, replaces
Reason: SIP;description="User Hung Up"
Content-Length: 0

opensips send to itself BYE:

2025/02/10 15:04:57.872272 172.16.4.111:5360 -> 172.16.4.111:5360
BYE sip:[email protected]:57253;ob SIP/2.0
Via: SIP/2.0/UDP 172.16.4.111:5360;branch=z9hG4bKb744.a0237ed4.0
To: <sip:[email protected]>;tag=508e8ad48f15473cb1de26d5c84f8572
From: <sip:[email protected]>;tag=B2B.389.166.1739171091.795240520
CSeq: 2 BYE
Call-ID: 7e3c950067ab4b598086aa9f9c655e5a
Route: <sip:172.16.4.111:5360;lr>
Max-Forwards: 69
Content-Length: 0
User-Agent: OpenSIPS (3.5.3 (x86_64/linux))
Supported: timer, path, replaces
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Contact: <sip:172.16.4.111:5360>

opensips sent BYE to A:

2025/02/10 15:04:57.873504 172.16.4.111:5360 -> 172.16.80.21:57253
BYE sip:[email protected]:57253;ob SIP/2.0
Via: SIP/2.0/UDP 172.16.4.111:5360;branch=z9hG4bKb744.b0237ed4.0
Via: SIP/2.0/UDP 172.16.4.111:5360;branch=z9hG4bKb744.a0237ed4.0
To: <sip:[email protected]>;tag=508e8ad48f15473cb1de26d5c84f8572
From: <sip:[email protected]>;tag=B2B.389.166.1739171091.795240520
CSeq: 2 BYE
Call-ID: 7e3c950067ab4b598086aa9f9c655e5a
Max-Forwards: 68
Content-Length: 0
User-Agent: OpenSIPS (3.5.3 (x86_64/linux))
Supported: timer, path, replaces
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Contact: <sip:172.16.4.111:5360>

To Reproduce

Expected behavior

Relevant System Logs

OS/environment information

  • Operating System:
  • OpenSIPS installation:
  • other relevant information:
CentOS Linux release 7.9.2009 (Core)

Additional context

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant