Comments (1)
This is true and the situation is even worse than described with the inconsistency even happening for similar APIs of the same component, for example:
pjsip_endpt_send_response()
does the decrement only upon PJ_SUCCESS, but for some reason,
pjsip_endpt_send_request()
will always decrement the counter, and pjsip_endpt_send_request_stateless()
only upon PJ_SUCCESS.
Here is a summary of other APIs that I check (the list may not be complete):
pjsip_transport_send() PJ_SUCCESS only
pjsip_inv_send_msg() always
pjsip_dlg_send_mg() always
pjsip_tsx_send_msg() PJ_SUCCESS only
Unfortunately I think it's already too late to change this since it will introduce significant backward compatibility.
When I modified the behavior such as pjsip_tsx_send_msg()
to always decrement the counter and tested it here, it will introduce crashes in pjsip test and the application, due to double destruction. The only possible workaround is to use a timer to create a delayed destruction. Still, it's quite a hackish workaround and is not guaranteed to completely eliminate the issue.
Conclusion: the issue is valid and it's not ideal, but won't/can't fix.
from pjproject.
Related Issues (20)
- vidStreamModifyCodecParam API not working HOT 5
- how to use PjCamera2 HOT 1
- importerror: module use of python24.dll conflicts with this version of python. HOT 2
- I want to build pjsua for python 3 i tried different ways can you guide me how to do this....... HOT 3
- The makefile for SWIG does not pass parameters for conditional compilation HOT 1
- Build android error HOT 1
- Loading the so file crashed in android5.1 HOT 4
- Crash in ioqueue_common_abs.c pj_ioqueue_sendto when checking IPv6 address length
- can't build ok in ubuntu16 HOT 1
- Failed to call the makeCall method(-560705187) HOT 1
- Crash in PjCamera2 PushFrame2 HOT 5
- send Dtmf does not work in pjsip 2.14.1 HOT 4
- sip parser memory overflow HOT 3
- ip to ip.NullPointerException: null upcall object in pj::Call::onCallState , java.lang.NullPointerException: null upcall object in pj::Call::onCallTsxState and resend old msg 180 rinding HOT 2
- Ip To Ip and c to s to c runing .NullPointerException: null upcall object in pj::Call::onCallState ,NullPointerException: null upcall object in pj::Call::onCallTsxState HOT 1
- When I connect to a network that doesn't have WAN access. If PIJSIP performs domain name login, it will be blocked in the DNS resolution function getaddrinfo. This will last about 40 seconds. During the blocking period, calls between IP and IP cannot be received, and calls cannot be made.
- When you call stopTransmit, rtp data is sent all the time HOT 1
- misalignedI pointer when deallocating address in android12 HOT 1
- Possibility to support stereo wav player
- Hangup inside a DTMF callback causes assertion
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pjproject.