Custom Query (2195 matches)
Results (1901 - 2000 of 2195)
Ticket | Summary | Owner | Type | Priority | Milestone | Component |
---|---|---|---|---|---|---|
#543 | Test framework for pjsua | bennylp | enhancement | normal | release-0.9.0 | applications |
Description |
Test framework for pjsua which automates testing of various settings and scenarios. |
|||||
#2154 | Test with Opus 1.3 | nanang | task | normal | release-2.9 | pjmedia |
#1289 | Test with miscellaneous SDP scenarios | bennylp | enhancement | normal | release-2.x | unit-tests |
#272 | The From parameter on_pager() callback contains Contact instead (thanks Nicholas Xu) | bennylp | defect | minor | release-0.5.10.4 | pjsua-lib |
#273 | The From parameter on_pager() callback contains Contact instead (thanks Nicholas Xu) | bennylp | defect | minor | release-0.7.0-rc1 | pjsua-lib |
Description |
See ticket #272 |
|||||
#274 | The From parameter on_pager() callback contains Contact instead (thanks Nicholas Xu) | bennylp | defect | minor | release-0.7.0-rc1 | pjsua-lib |
Description |
See ticket #272 |
|||||
#1078 | The STUN utility in pjlib-util is unable to handle XOR_MAPPED_ADDRESS attribute | bennylp | defect | normal | release-1.7 | pjlib-util |
Description |
Some STUN servers return XOR_MAPPED_ADDRESS attribute even though client doesn't send the STUN2 MAGIC number in the request. This would cause the (old) STUN resolver in PJLIB-UTIL to fail to resolve the address, with typical error messages look like this:
The solution is either to add XOR_MAPPED_ADDRESS parsing capability to the resolver, or to upgrade this resolver with the new STUN stuffs in PJNATH, or to deprecate this old resolver and create similar functionality in PJNATH (this probably is the best option). |
|||||
#1152 | The base64 decoder should ignore whitespaces in the input (thanks Johan Lantz for the suggestion) | bennylp | defect | normal | release-1.8.10 | pjlib-util |
Description |
It is common for an agent to place whitespaces (typically newlines) in the base64 encoded input. Currently this would raise assertion in the base256_char() function. |
|||||
#1689 | The bound address is not updated when UDP transport is restarted | bennylp | defect | normal | release-2.2 | pjsip |
#722 | The case of no gap/burst may not be handled correctly in VoIP metrics calculations in RTCP-XR (thanks Johan Lantz for the report). | nanang | defect | normal | release-1.1 | pjmedia |
Description |
The VoIP metrics calculations needs to be revisited to check if it handles correctly these cases:
There is a symptom reported by Johan Lantz about possibility of division by zero, see here. |
|||||
#723 | The case of no gap/burst may not be handled correctly in VoIP metrics calculations in RTCP-XR (thanks Johan Lantz for the report). | nanang | defect | normal | release-1.0.2 | pjmedia |
Description |
This is a duplication of ticket #722 for the 1.0 branch. |
|||||
#1492 | The echo options field in the media config and pjsua_set_ec() argument are ignored | bennylp | defect | minor | release-1.14 | pjsua-lib |
Description |
Both the EC options (ec_options) field in the media config and in pjsua_set_ec() argument are ignored and don't have any effect to the echo cancellation setting. |
|||||
#568 | The hash table ignores the last row of the table in hash table iteration, causing some memory leaks during shutdown routine because some objects are not destroyed | bennylp | defect | normal | release-1.0-rc1 | applications |
#1042 | The pjmedia echo cancellation wrapper causes Speex AEC to stop working (thanks Bill Gardner for the report) | nanang | defect | major | release-1.6 | pjmedia |
Description |
As it is, the pjmedia echo canceller (which uses Speex AEC by default on desktop platforms) would barely reduce any echo. Experimenting with plain Speex AEC API shows that it works, so there must be something in the wrapper/framework that causes it to stop working. |
|||||
#1125 | Thread based ioqueue to reduce power consumption on some mobile/embedded platforms | bennylp | enhancement | normal | release-2.x | pjlib |
Description |
We use polling for the ioqueue and timer heap on most platforms except Symbian. This wastes CPU and power, which is an important issue on mobile devices. |
|||||
#939 | Throwing exception inside exception handler will cause infinite loop (thanks Roman Puls for the report) | bennylp | defect | normal | release-1.4 | pjlib |
Description |
The following snippet: void test() { int id = 101; PJ_USE_EXCEPTION; PJ_TRY { PJ_LOG(3, ("", "throwing signal %d now", id)); PJ_THROW(id); } PJ_CATCH_ANY { id = PJ_GET_EXCEPTION(); PJ_LOG(3, ("", "caught and reraising %d", id)); PJ_THROW(id); } PJ_END; PJ_LOG(3, ("", "Never gets called")); }; leads to an endless loop: INFO: 08:58:50.682 throwing signal 101 now INFO: 08:58:50.682 caught and reraising 101 INFO: 08:58:50.682 caught and reraising 101 INFO: 08:58:50.682 caught and reraising 101 ... Thanks Roman Puls for the report. |
|||||
#2230 | Timer crash in STUN session | nanang | defect | normal | release-2.10 | pjnath |
Description |
Reported that there is a time gap in function pj_timer_heap_poll() after the unlock_timer_heap(ht) that pj_stun_session can be destroyed and crash inside on_cache_timeout() Stack trace: Exception thrown: read access violation. tdata->sess was 0xFFFFFFFFFFFFFFF7. occurred on_cache_timeout(pj_timer_heap_t * timer_heap, pj_timer_entry * entry) Line 226 at pjnath\src\pjnath\stun_session.c(226) pj_timer_heap_poll(pj_timer_heap_t * ht, pj_time_val * next_delay) Line 651 at pjlib\src\pj\timer.c(651) Analysis: This should be the crashing line: sess = tdata->sess; which indicates that tdata pool was already released when on_cache_timeout() was invoked. Who destroyed the tdata? It should not be STUN session destroy because the timer is scheduled using sess->grp_lock. So far, the (only) suspect is app, i.e: via pj_stun_msg_destroy_tdata(). So, created a patch that introduces tdata->grp_lock which is used in scheduling tdata cache timeout timer (was scheduled using sess->grp_lock). However, it still crashed on different location: Exception thrown: read access violation. atomic_var was 0xFFFFFFFFFFFFFFFF. occurred pj_atomic_dec_and_get(pj_atomic_t * atomic_var) Line 800 at pjlib\src\pj\os_core_win32.c(800) grp_lock_dec_ref(pj_grp_lock_t * glock) Line 554 at pjlib\src\pj\lock.c(554) pj_grp_lock_dec_ref(pj_grp_lock_t * glock) Line 647 at pjlib\src\pj\lock.c(647) pj_timer_heap_poll(pj_timer_heap_t * ht, pj_time_val * next_delay) Line 654 at pjlib\src\pj\timer.c(654) Analysis: The call stack indicates that tdata had been destroyed after timer callback on_cache_timeout() returned (might be destroyed by the callback itself or by other thread). For STUN response scenario (the only scenario that triggers cache timer scheduling), delete_tdata() should only be invoked by either on_cache_timeout() callback or STUN session destroy. And in this case, it seems that both invoked delete_tdata() in a race scenario which destroyed tdata prematurely. The initial patch is then updated with additional ammo:
Thanks Hugo Sobral for the report. |
|||||
#91 | Timer for buddy presence subscription in PJSUA | bennylp | enhancement | normal | release-0.7.0 | pjsua-lib |
Description |
Currently when buddy's presence subscription fails in pjsua-api (i.e. SUBSCRIBE request fails to establish subscription), PJSUA-API will not try to send another SUBSCRIBE ever, so if buddy is online then we won't get notified. Application is currently responsible for managing timer to send another subscribe periodically to probe to buddy's presence. Ideally PJSUA-API should maintain this timer internally on behalf of application to make life easier. Note that this only applies to when SUBSCRIBE fails - if SUBSCRIBE succeeds, then buddy's presence will be monitored normally. |
|||||
#1648 | Timer heap new API pj_timer_heap_cancel_if_active() should not assert if given bad entry | bennylp | defect | normal | release-2.2 | pjlib |
Description |
The pj_timer_heap_cancel_if_active() API may be given bad timer entry to cancel, because as the name suggest, caller does not check if the entry is active or not. In this case it should just ignore it rather than raising an assertion. |
|||||
#2225 | Timer heap refactoring | ming | enhancement | normal | release-2.10 | pjlib |
Description |
Some timer crash reports that are difficult to reproduce and analyse from log & callstack. Here are typical reported callstacks: #0 0x00007f7ae3dc0249 in copy_node (ht=0x184cbf0, slot=2305, moved_node=0x7f797732f0c0) at ../src/pj/timer.c:137 #1 0x00007f7ae3dc0677 in reheap_up (ht=0x184cbf0, moved_node=0x7f780e0f2990, slot=2305, parent=1152) at ../src/pj/timer.c:208 #2 0x00007f7ae3dc0882 in remove_node (ht=0x184cbf0, slot=2305) at ../src/pj/timer.c:254 parent = 1152 moved_node = 0x7f780e0f2990 removed_node = 0x7f797f4a9e08 #3 0x00007f7ae3dc0b64 in cancel (ht=0x184cbf0, entry=0x7f797f4a9e08, flags=1) at ../src/pj/timer.c:353 timer_node_slot = 2305 #4 0x00007f7ae3dc1061 in cancel_timer (ht=0x184cbf0, entry=0x7f797f4a9e08, flags=0, id_val=0) at ../src/pj/timer.c:591 count = 32634 #5 0x00007f7ae3dc10ea in pj_timer_heap_cancel (ht=0x184cbf0, entry=0x7f797f4a9e08) at ../src/pj/timer.c:611 #6 0x00007f7ae3d0f0c8 in pjsip_endpt_cancel_timer (endpt=0x184c908, entry=0x7f797f4a9e08) at ../src/pjsip/sip_endpoint.c:848 #0 0x00007f543c47dc2a in copy_node (ht=0xbdc8f0, slot=0, moved_node=0x7f51653ca820) at ../src/pj/timer.c:137 #1 0x00007f543c47e146 in remove_node (ht=0xbdc8f0, slot=0) at ../src/pj/timer.c:245 parent = 139999765322679 moved_node = 0x7f51653ca820 removed_node = 0x7f50e53f7e30 #2 0x00007f543c47eb97 in pj_timer_heap_poll (ht=0xbdc8f0, next_delay=0x7f5123517cd0) at ../src/pj/timer.c:643 node = 0x7f50fe3fad70 grp_lock = 0x7f52d8e53ba8 now = {sec = 12628573, msec = 998} count = 1 As we can see, the callstack does not really tell the owner of the entry or if the entry is still valid or already freed, because the entry is allocated by application. Moreover, timer structure is public, including its internal states such as _timer_id, _timer_value, _grp_lock, so application may access those internal states directly, which is potentially harmful. So the goal of this ticket are to:
|
|||||
#1961 | Timer not fired due to timestamp clock issue in Android | bennylp | defect | normal | release-2.6 | pjlib |
Description |
Currently PJLIB timer heap uses CLOCK_MONOTONIC for timestamp clock on some platforms including Android, unfortunately it will stop when CPU goes deep sleep, so certain event may not fire at the scheduled time. Thank you Itay Bianco for the report. |
|||||
#2140 | Timestamp clock issue when device is asleep in iOS | bennylp | defect | normal | release-2.8 | pjlib |
Description |
SYSTEM_CLOCK will stop when the device is in deep sleep (on mobile, this can be achieved by pressing the screen lock key and having no app running in background) (see here). This is similar to ticket #1961 for Android. |
|||||
#1290 | Timestamp in media flow | nanang | enhancement | minor | release-2.x | pjmedia |
Description |
Rules about who should generate the timestamp is not clear. There may also be places where timestamp information is regenerated. |
|||||
#1767 | Tone generation API in pjsua2 and SWIG wrappers | bennylp | enhancement | normal | release-2.3 | pjsua2 |
Description |
Tone generation API in pjsua2 and the SWIG wrappers |
|||||
#1242 | Too many re-INVITEs sent by PJSUA-LIB, to lock codec and to conclude ICE negotiation | bennylp | enhancement | normal | release-2.1 | pjsua-lib |
Description |
If remote sends answer with multiple codecs, we will send re-INVITE to lock to one of the codec. When ICE negotiation completes, we would also need to send re-INVITE to update the default candidate (as per ICE spec). It would be nice if these re-INVITES are combined, to reduce message round-trips, because anyway we are not able to send/receive media until ICE negotiation completes. Based on SIPit tests, some remote may also not be able to handle re-INVITE before ICE negotiation completes. |
|||||
#906 | Transaction is not destroyed when transport timeout event comes later than transaction timeout (thanks Norma Steveley for the report) | bennylp | defect | normal | release-1.4 | pjsip |
Description |
Steps to reproduce:
The corresponding ticket for 1.0 branch is #907 |
|||||
#1056 | Transaction termination on transport failure (thanks Tamàs Solymosi for the request) | bennylp | defect | normal | release-1.6 | pjsip |
#362 | Transaction timer I in Completed state should be zero for reliable transports (thanks Ivan F. Skripov) | bennylp | defect | normal | release-0.8.0 | pjsip |
Description |
Transaction timer I should be set to zero for reliable transports, not T4. |
|||||
#1094 | Transmit RTCP keep alive even when the stream is paused (thanks Johan Lantz for the suggestion) | nanang | defect | normal | release-1.7 | pjmedia |
Description |
Ticket #883 added a new keep-alive mechanism for the stream, which would still be performed even when the stream is being paused. Unfortunately, no packet is transmitted on the RTCP port in this situation. This ticket would enable packet transmission for this situation. With this ticket, an RTCP packet would be transmitted periodically as long as PJMEDIA_STREAM_ENABLE_KA is set to non-zero (note that by default it is disabled). |
|||||
#1898 | Transport may never gets destroyed when connected event comes while transport is shutting down | bennylp | defect | normal | release-2.5 | pjsip |
Description |
Changeset r5000 tries to avoid transport-state "Connected" event getting propagated to application after the transport is shutdown. However it introduces a bug that may prevent the transport from getting destroyed because reference counter may never reaches zero. Sample scenario in function stateless_send_transport_cb() in sip_util.c:
|
|||||
#2243 | Transport reuse stops working after a transport error | nanang | defect | normal | release-2.10 | pjsip |
Description |
Original report
After investigation, the pjsip_tpmgr_acquire_transport2() actually tries to lookup any matching transport to be reused, but unfortunately the search does not check if the matching transport is in shutdown state. And later, when it realizes that the transport is in shutdown state, it simply drops the transport and create a new one. Thanks to George Joseph for the report. |
|||||
#1699 | Transport state callback to report transport shutdown events | bennylp | enhancement | normal | release-2.2.1 | pjsip |
Description |
At the moment, the transport state is only called when TCP connection is closed abnormally. It won't be called if the TCP closure is initiated by us. Some application wants to keep track of alive TCP (and possibly TLS) connections. For this, they need to be notified when:
|
|||||
#1874 | Truncated IPv6 address during address lookup on iOS | bennylp | defect | normal | release-2.4.5 | pjlib |
Description |
On iOS, when doing an IPv6 address lookup, the sockaddr structure copied back to the caller is too short so the IPv6 address is truncated. |
|||||
#2049 | Try to allocate larger buffer size instead of immediately returning error when converting pjsip_hdr to SipHeader | bennylp | enhancement | normal | release-2.7.1 | pjsua2 |
Description |
Method SipHeader::fromPj() which converts pjsip_hdr to SipHeader, uses a local char array with a fixed size of 256 to buffer information from the pjsip_hdr. This buffer is quite small, which leads to an unnecessary exception when large headers are exchanged. In one instance we encountered such an exception while receiving a large “Authorization”-Header. This patch will try to allocate larger buffer space, instead of returning error on the first try. Thanks to David Wichter for the report. |
|||||
#152 | UAC dialog doesn't update route_set when calling RFC 2543 UAS (thanks Binu K S) | bennylp | defect | normal | release-0.5.10.2 | pjsip |
Description |
Scenario:
In this case, dialog MUST update the route set, according to section 13.2.2.4 of RFC 3261. Thanks Binu K S for reporting and observing this. |
|||||
#153 | UAC dialog doesn't update route_set when calling RFC 2543 UAS (thanks Binu K S) | bennylp | defect | normal | release-0.7.0-rc1 | pjsip |
Description |
This is copy of ticket #152 for trunk. |
|||||
#798 | UAC disconnect call when receiving BYE in early state (thanks Gang Liu for the suggestion) | bennylp | defect | normal | release-1.2 | pjsip |
Description |
Currently BYE on early state (before final response is received) is not handled by the invite session. Consider the following scenario:
The corresponding ticket for the 1.0.x branch is ticket #799 |
|||||
#799 | UAC disconnect call when receiving BYE in early state (thanks Gang Liu for the suggestion) | bennylp | defect | normal | release-1.0.3 | pjsip |
Description |
This is duplicate of ticket #798 for the 1.0.x branch. Please see ticket #798 for the description. |
|||||
#387 | UAS dialog should add Contact header in 1xx response | bennylp | defect | normal | release-0.8.0 | pjsip |
Description |
This would cause subsequent request from the UAC (such as PRACK) to fail. |
|||||
#264 | UDP connect()/send() fails with Symbian S60 3rd Edition | bennylp | defect | normal | Symbian-trunk-integration | pjlib |
Description |
Normally we should be able to call UDP connect() and just call send(). This however will trigger exception on Symbian S60 3rd Edition, for both the base and MR2 version. The PJLIB test to reproduce this is:
|
|||||
#1495 | UDP keep-alive is still running even after account is deleted. It cannot be updated with pjsua_acc_modify() either. | bennylp | defect | normal | release-1.14 | pjsua-lib |
Description |
The UDP keep-alive on the account is still running even after the account is deleted with pjsua_acc_del(). Updating the ka_interval with pjsua_acc_modify() also has no effect on the keep-alive. |
|||||
#2235 | UDP transport restart might not get called when replace_udp_socket() fails. | riza | defect | normal | release-2.10 | pjlib |
Description |
Ticket #2201 will restart UDP transport when replace_udp_socket() fail when sending data. Currently when the send data fail, the library will try to resend after trying to replace the socket by calling replace_udp_socket(). However if if it fails again, it will try to restart the transport. It is possible that the replace_udp_socket() fails, and the UDP transport restart is not called. In this case, restarting UDP transport is preferred rather than trying to resend the data. |
|||||
#1159 | UPDATE is sent to lock codec even though call is being disconnected | bennylp | defect | normal | release-1.8.10 | pjsua-lib |
Description |
Scenario:
|
|||||
#592 | URI comparison may crash the application (thanks Pedro Gonçalves for the report) | bennylp | defect | normal | release-1.0-rc1 | pjsip |
Description |
The URI comparison for name address (pjsip_name_addr_compare() function) doesn't check if the object being passed is indeed a name address object, and not other URI object. |
|||||
#1165 | Unable to create SDP answer for new offer with SRTP duplicated m line (thanks Arie Velthoen for the report and patch) | bennylp | defect | normal | release-1.8.10 | pjsua-lib |
Description |
Original report can be found here. The scenario is:
So, on such case PJSUA-LIB should be able to choose a media appropriately depending on the SRTP setting (in the account setting). And it should also handle SRTP status changes, e.g: from inactive to active and perhaps to inactive again and so on. |
|||||
#2061 | Unable to destroy certain PJSIP transports | bennylp | defect | normal | release-2.8 | pjsip |
Description |
Once a pjsip transport is removed from the hash table, it cannot be manually destroyed. Scenario:
Thanks to Joshua Colp for the patch. |
|||||
#1442 | Unable to make call if disabled media is included | bennylp | defect | normal | release-2.0-rc | pjsua-lib |
Description |
When making call using the flag PJSUA_CALL_INCLUDE_DISABLED_MEDIA with video being disabled, call initialization will get stuck because we are waiting for all media (including disabled) to finish media transport creations. |
|||||
#1255 | Unable to parse the short version of Event header (thanks Marcus Froeschl for the report) | bennylp | defect | normal | release-1.12 | pjsip |
Description |
PJSIP is unable to recognize the Event header if it is encoded with the short from ("o" character). |
|||||
#139 | Unable to play next tone after stop is called on tone generator (thanks Antonio F. Cano) | bennylp | defect | normal | release-0.5.10.2 | pjmedia |
Description |
Calling pjmedia_tonegen_play() to play next tone after pjmedia_tonegen_stop() did not play the tone. |
|||||
#140 | Unable to play next tone after stop is called on tone generator (thanks Antonio F. Cano) | bennylp | defect | normal | release-0.7.0-rc1 | pjmedia |
Description |
This is the copy of ticket #139 for main trunk. |
|||||
#1060 | Unable to register transaction (key exists) error message | bennylp | defect | normal | release-1.7 | pjsip |
Description |
Transaction may fail to be created/registered to the hash table with the following error message:
It has been reported that this happened in this scenario:
|
|||||
#401 | Unable to register when account URI contains display name | bennylp | defect | normal | release-0.8.0 | pjsip |
Description |
When account URI contains display name, pjsip incorrectly interpret successful REGISTER response as unregistration response. |
|||||
#1405 | Unable to reject unknown algorithm in authentication challenge | bennylp | defect | normal | release-1.12 | pjsip |
Description |
A bug causes PJSIP to respond to authentication challenge with unknown algorithm when it should reject it. |
|||||
#34 | Unable to send registration in the callback | bennylp | defect | minor | release-0.5.10 | pjsip |
Description |
The client registration temporarily increases the pending_tsx flag before calling the callback. This is intended to prevent application from deleting the registration while it's in the callback. Unfortunately this also prevents application from sending another REGISTER request before the pending_tsx flag is not zero. The solution for this is to separate the has_pending_tsx flag with the flag to prevent deletion. |
|||||
#92 | Undefined OpenSSL/ALSA symbols when running Python | bennylp | defect | normal | release-0.5.10 | applications |
Description |
When the configure script detects the availability of OpenSSL and ALSA libraries, TLS and ALSA support will be included with the library. But unfortunately this causes undefined symbol error when running Python application, for example: python pjsua_app.py Traceback (most recent call last): File "pjsua_app.py", line 8, in ? import py_pjsua ImportError: /usr/lib/python2.4/site-packages/py_pjsua.so: undefined symbol: snd_pcm_close Thanks Matthias Laur for the report. |
|||||
#1583 | Unexpected SIP message transmission after transaction has timed-out | bennylp | defect | normal | release-2.1 | pjsip |
Description |
Scenario:
Thank you Roni Salfati for the report. |
|||||
#1483 | Unexpected re-registration in modifying account config | bennylp | defect | normal | release-1.14 | pjsua-lib |
Description |
Modifying account config settings, i.e: via pjsua_acc_modify(), is not supposed to always trigger re-registration, for example modifying call or media settings such as SIP session timer, SRTP settings. However, such unexpected re-registration case has been found. After investigation, it seems to be caused by that proxy setting is mistakenly detected as being modified. The proxy change detection is done using CRC comparison, and the initial CRC calculation in pjsua_acc_add() is performed before the proxy URI normalization. |
|||||
#1671 | Unfreed transmit buffer (pjsip_tx_data) upon stack shutdown/restart | bennylp | defect | normal | release-2.2 | pjsip |
Description |
On stack shutdown/restart, some pending operations on a transmit buffer may be forced to break/stop the operation without notifying the application and cause the transmit buffer dangling unfreed. As the transmit buffer may hold OS resources (e.g: atomic counter, mutex, memory), this will introduce OS resource leak issue (especially on resource with 'OS handle' such as mutex, note that memory will automatically be freed by PJLIB memory pool framework on stack shutdown). After investigation, here are possible async operations involving transmit buffer:
Note that even usually there is timeout timer on every async operation, normally the timer poll is stopped during shutdown stage, so we cannot rely on it. Alternative solution:
Steps to reproduce with pjsua app
|
|||||
#1774 | Unfreed transports upon stack shutdown/restart | bennylp | defect | normal | release-2.3 | pjsip |
Description |
When a transport is registered to the transport manager, it is stored in a hash table according to its key, hence may overwrite a previous entry. The overwritten transport will thus be not properly destroyed when the transport manager is shutdown. |
|||||
#687 | Unfreed/unclosed resources on Symbian platform. | bennylp | defect | normal | Known-Issues-and-Ideas | pjsua-lib |
Description |
Known issues:
|
|||||
#998 | Unhandled SDP attribute a=sendonly/recvonly/sendrecv/inactive in session level (thanks Rafael Maia for the reports) | nanang | defect | normal | release-1.6 | pjmedia |
Description |
The report and proposed solution can be found here. |
|||||
#625 | Unicode build issues on Windows platform (thanks Seth Hinze for the patch). | nanang | defect | normal | release-1.0-rc3 | common |
Description |
It seems that PortAudio? WMME implementation also has this issue, while PortAudio? source code is currently used as external source (not copied into PJSIP SVN). |
|||||
#293 | Uninitialized memory read reported by Purify in SIP authentication | bennylp | defect | minor | release-0.7.0-rc2 | pjsip |
Description | ||||||
#294 | Uninitialized memory read reported by Purify in SIP authentication | bennylp | defect | minor | release-0.6.0 | pjsip |
#295 | Uninitialized memory read reported by Purify in sound device | bennylp | defect | minor | release-0.7.0-rc2 | pjmedia |
#296 | Uninitialized memory read reported by Purify in sound device | bennylp | defect | minor | release-0.6.0 | pjmedia |
#650 | Unit test failure in the timestamp test on very fast CPU (thanks Seth Hinze for the patch) | bennylp | defect | minor | release-1.0 | pjlib |
Description |
A unit test failure in the timestamp test that occurrs when the tests are run on a very fast cpu. The number of ticks that elapses in 10 seconds on a XP machine with a multi ghz cpu is greater than the u32 that holds the delta, causing the measured ticks to get truncated and the test to fail. Thanks Seth Hinze for the report and the patch. |
|||||
#1323 | Unit test for video port | ming | enhancement | normal | release-2.0-alpha | pjmedia |
Description |
Handle these cases:
|
|||||
#1041 | Unit test framework | bennylp | enhancement | major | release-1.6 | common |
Description |
Unit test framework in PJLIB, and management of unit test scripts, and integrate it with test dashboard software such as CDash. |
|||||
#1828 | Unit tests review | ismangil | defect | minor | release-2.4 | unit-tests |
Description |
Review unit tests deactivated in runall.py to check for false negatives, also fix failing PJSIP module tests (pjlib-test, pjmedia-test, etc). |
|||||
#1842 | Unit tests review | bennylp | task | normal | release-2.4.5 | unit-tests |
Description |
Mainly focus on fixing spurious test results. This ticket is also a continuation of #1828. |
|||||
#105 | Unnecessary assert in fixed buffer based pool | bennylp | defect | normal | release-0.5.10 | pjlib |
Description |
The fixed buffer based pool (created by pj_pool_create_on_buf()) will raise assert if no memory can be allocated. This is unnecessary, and it should just return NULL to let the pool raise PJ exception as normal. |
|||||
#575 | Unregistering from Windows IOCompletionPort (IOCP) ioqueue does not close the socket handle (thanks Gang Liu for the report) | bennylp | defect | major | release-1.0-rc1 | pjlib |
Description |
The IOCP documentation says that application needs to call CloseHandle() to unregister the socket from the IOCP, and PJLIB does this in ioqueue_winnt.c. We assumed that a call to CloseHandle() should close the socket (just like closesocket()), since a socket should just be another handle in Windows NT. But turns out this is not the case. A call to CloseHandle() doesn't seem to close the socket, as the socket still appears in "netstat" output. Also further down it will cause "Invalid handle" exception to be raised in debug mode when WSACleanup() is called. Checking at MSDN documentation about CloseHandle() (see http://msdn.microsoft.com/en-us/library/ms724211(VS.85).aspx), actually it does suggest application to call both for socket, i.e. always follow closesocket() call with CloseHandle(). This is what it says:
But alas! From experimentation, turns out that calling CloseHandle() after closesocket() will raise "Invalid handle" exception in debug mode. This was tested on WinXP SP2. |
|||||
#73 | Unregistration does not respond to authentication challenge (401/407) after it has been marked for deletion | bennylp | defect | normal | release-0.5.10 | pjsip |
Description |
After application has marked client registration session for deletion(pjsip_regc_destroy() is called), the client registration session does not respond to authentication challenge in 401/407 response. Here are the steps to reproduce it: // Create Un-REGISTER request status = pjsip_regc_unregister(regc, &tdata); // Send the request. status = pjsip_regc_send(regc, tdata); // Signal regc to destroy itself after all transactions complete status = pjsip_regc_destroy(regc); |
|||||
#35 | Unregistration unregisteres ALL Contacts | bennylp | defect | normal | release-0.5.10 | pjsip |
Description |
Currently the unregistration function in PJSIP client registration (pjsip_regc_unregister()) sends REGISTER with Expires=0 for all contacts including those that are registered by other endpoints (because Contact header is set to "*"). This is not the correct behavior since it prevents more than one AOR to be registered. |
|||||
#227 | Unresolved error in alaw/ulaw conversion with C++ build (thanks Alain Totouom) | bennylp | defect | normal | release-0.5.10.4 | pjmedia |
Description |
pjmedia/alaw_ulaw.h is missing PJ_BEGIN/END_DECL constructs, causing unresolved error when it is used by C++ function. Thanks Alain Totouom <atotouom at gmx de> for the fix. |
|||||
#228 | Unresolved error in alaw/ulaw conversion with C++ build (thanks Alain Totouom) | bennylp | defect | normal | release-0.7.0-rc1 | pjmedia |
Description |
See ticket #227 |
|||||
#1570 | Update BlackBerry BB10 audio device to SDK R6 | nanang | enhancement | normal | release-2.1 | pjmedia-audiodev |
Description |
Update the BlackBerry/BB10 audio device to the latest SDK R6. Thanks Bob Cripps for the patch. |
|||||
#409 | Update Contact address/port from the rport in REGISTER response to work with symmetric NATs | bennylp | enhancement | normal | release-0.8.0 | pjsua-lib |
Description |
The Contact URI is calculated from the STUN mapped address for the SIP transport, which in the symmetric NAT case would be different than rport received from REGISTER response. This would cause subsequent request directed towards the endpoint to not reach the endpoint. PJSUA-LIB should detect the difference between Contact port and rport, and update the Contact address and registration to use the rport. |
|||||
#515 | Update Contact header in REGISTER for TCP/TLS transport (thanks Klaus Darilion) | bennylp | enhancement | normal | release-0.9.0 | pjsua-lib |
Description |
Ticket #381 (released in version 0.8) added the ability to update Contact header of account registration for UDP transport. This is useful for clients that are behind symmetric NAT. This ticket apply the same trick for TCP and TLS transport as well. Please see http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2008-March/002178.html for background discussion. Thanks Klaus Darilion for the info. |
|||||
#382 | Update ICE from draft-ietf-mmusic-ice-14 to ice-18 specification | bennylp | enhancement | normal | release-0.8.0 | pjnath |
#780 | Update PJNATH to the latest STUN, TURN, and ICE specs and other enhancements | bennylp | enhancement | normal | release-1.2 | pjnath |
Description |
Currently we support:
STUN spec has been published as RFC 5389, while TURN spec had advanced into draft-ietf-behave-turn-13 (with major changes). Also while we're at it, possibly add some ICE samples and more tests. |
|||||
#621 | Update PortAudio to the latest revision to fix VS 2008 compilation issues (thanks Atik for the report) | nanang | defect | normal | release-1.0-rc3 | pjmedia |
#1958 | Update RTP sequence number during keep-alive | nanang | defect | normal | release-2.6 | pjmedia |
Description |
If stream keep-alive is enabled and it uses empty RTP as the keep-alive mechanism (PJMEDIA_STREAM_ENABLE_KA == PJMEDIA_STREAM_KA_EMPTY_RTP), the RTP sequence may be out of sync when the media is paused and the keep-alive keeps running. This may cause the receiver (such as SRTP module) to reject the RTP packets after media is resumed. Thus, we need to update the RTCP stats when sending keep-alive as well. Thanks to Viktor Krykun for the report. |
|||||
#374 | Update STUN specification from rfc3489bis-06 to rfc3489bis-10 | bennylp | enhancement | normal | release-0.8.0 | pjnath |
Description |
Changes in the STUN specification from rfc3489bis-06 to rfc3489bis-10:
Note that these changes are NOT backward compatible with rfc3489bis-06, meaning new ICE software based on new PJNATH will not be able to negotiate with ICE from previous PJNATH. |
|||||
#589 | Update Speex AEC to the latest version to get multichannel EC | nanang | enhancement | normal | release-2.10 | pjmedia |
Description |
Ticket #588 rolled-back Speex AEC to beta3 version which does not support multi-channel EC, so we need to update it to the latest version to support multi-channel. Testing is done with pjsua on Mac with the following setups: No echo cancellation at all (ec-tail = 0), stereo mode, and mono mode. For stereo mode, you can clearly observe some echo cancellation compared to the testing without ec, however you can also still notice some uncancelled echo. And this is especially more noticeable after you compare it with mono testing, where the AEC seems to work pretty well and manages to cancel most of the echo. Note that this ticket only updates the Speex DSP part to version 1.2, but leaves the codec part untouched. |
|||||
#1579 | Update Symbian APS/VAS to use new pjmedia_format | nanang | defect | normal | release-2.1 | pjmedia-audiodev |
Description |
The problematic old pjmedia_format fields used by APS/VAS are 'bitrate' and 'vad'. The 'bitrate' field name is replaced by 'avg_bps' in the new pjmedia_format. While 'vad' should be handled as sound device capability. Thanks Rubel for the report. |
|||||
#2241 | Update Via header on CANCEL request for proxy scenario if the "sent-by" field is not set | riza | defect | normal | release-2.10 | pjsip |
Description |
From rfc3261: For each target, the proxy forwards the request following these steps: 1. Make a copy of the received request 2. Update the Request-URI 3. Update the Max-Forwards header field 4. Optionally add a Record-route header field value 5. Optionally add additional header fields 6. Postprocess routing information 7. Determine the next-hop address, port, and transport 8. Add a Via header field value 9. Add a Content-Length header field if necessary 10. Forward the new request 11. Set timer C On proxy scenario, Via header required to be added to the message sent. The library will add the header on sip_util_proxy.c without the sent-by field which is updated on sip_util.c. Unfortunately, #2085 will not update Via header on CANCEL request making the Via header without the sent-by field. Afterwards the message will get ignored/discarded by the receiving end. This ticket will update the Via header when the sent-by field is not set. Thanks to Varun Ahluwalia for the report |
|||||
#1993 | Update bundled libSRTP version to enable AES-GCM on OpenSSL 1.1.0 or later | bennylp | task | normal | release-2.7 | third-party |
Description |
AES-GCM feature in libSRTP 1.5.4 (the latest 1.x release) has compatibility issue with OpenSSL 1.1.0 (see also ticket #1932). However in the current development source code, it seems to have some work on supporting OpenSSL 1.1.0, so when new version is released, it is better to update our bundled libSRTP. |
|||||
#1896 | Update default audio device backends | nanang | enhancement | normal | release-2.5 | pjmedia-audiodev |
Description |
Some platforms use PortAudio as their default audio device backend, while the PortAudio version we are using is quite old and the effort to update the version is not small. Meanwhile, we already have our own audio device implementations that are considerably lightweight and stable as they have been around and tested for quite long time. So yes, we are considering to update the default audio device backends to our own implementations.
|
|||||
#2192 | Update dialog local contact for non registering account | nanang | defect | normal | release-2.9 | pjsua-lib |
Description |
Reported that on IP change scenario, local contact may not be updated while it should. After investigation, if force_contact is not configured and the account is not registering, call option PJSUA_CALL_UPDATE_CONTACT will not update the contact. Thanks Marcus Froeschl for the report. |
|||||
#57 | Update documentation and website | bennylp | task | normal | release-0.5.10 | common |
Description |
Update the documentations:
|
|||||
#1762 | Update iOS video capture and simple renderer | ming | enhancement | normal | release-2.3 | pjmedia-videodev |
Description |
iOS video capture and simple renderer were actually already implemented, however it has not been maintained nor tested for long time due to lack of video support on iOS. This ticket will check and update the implementations. Some additional features planned on the capture device implementation:
The simple renderer is a CGImage+UIView based renderer. |
|||||
#840 | Update in pjnath-test to support updated TURN draft | bennylp | defect | normal | release-1.3 | pjnath |
Description |
The pjnath-test needs to be updated to support turn-13. |
|||||
#2169 | Update invite options when receiving INVITE provisional response with Allow UPDATE header | bennylp | defect | normal | release-2.9 | pjsip |
Description |
As stated in rfc3261 13.2.2.1 1xx Responses Zero, one or multiple provisional responses may arrive before one or more final responses are received. Provisional responses for an INVITE request can create "early dialogs". If a provisional response has a tag in the To field, and if the dialog ID of the response does not match an existing dialog, one is constructed using the procedures defined in Section 12.1.2. The early dialog will only be needed if the UAC needs to send a request to its peer within the dialog before the initial INVITE transaction completes. Header fields present in a provisional response are applicable as long as the dialog is in the early state (for example, an Allow header field in a provisional response contains the methods that can be used in the dialog while this is in the early state). And rfc3311: When a UAS compliant to this specification receives an INVITE request for a new dialog, and generates a reliable provisional response containing SDP, that response SHOULD contain an Allow header field that lists the UPDATE method. This informs the caller that the callee is capable of receiving an UPDATE request at any time. An unreliable provisional response MAY contain an Allow header field listing the UPDATE method, and a 2xx response SHOULD contain an Allow header field listing the UPDATE method. This patch will update invite options when Allow UPDATE header is included in the provisional response of the INVITE. Thanks to Pirmin (pirmin@walthert.net) for the patch |
|||||
#638 | Update jitter buffer to avoid/reduce such case of shrinking and underflow occuring one after another. | nanang | enhancement | normal | release-1.0-rc3 | pjmedia |
Description |
Proposed solutions:
|
|||||
#1812 | Update libsrtp to the latest version | bennylp | enhancement | normal | Known-Issues-and-Ideas | third-party |
#2004 | Update libyuv version to fix compile errors on old gcc versions | bennylp | task | normal | release-2.7 | third-party |
Description |
Current bundled libyuv seems to have build issue on older gcc, e.g: ../../yuv/source/row_common.cc: In function ‘void libyuv::YuvPixel(uint8, uint8, uint8, uint8*, uint8*, uint8*, const libyuv::YuvConstants*)’: ../../yuv/source/row_common.cc:1256: error: invalid types ‘const signed char __vector__[int]’ for array subscript ../../yuv/source/row_common.cc:1257: error: invalid types ‘const signed char __vector__[int]’ for array subscript ../../yuv/source/row_common.cc:1258: error: invalid types ‘const signed char __vector__[int]’ for array subscript ../../yuv/source/row_common.cc:1259: error: invalid types ‘const signed char __vector__[int]’ for array subscript ../../yuv/source/row_common.cc:1260: error: invalid types ‘const short int __vector__[int]’ for array subscript Also in the source code around the compile error location, there is this warning: // Caveat GCC 4.2 to 4.7 have a known issue using vectors with const. The issue seem to be fixed already, as described here. So let's update our libyuv version. |
|||||
#2065 | Update libyuv version to fix linker error when building dll on Visual Studio 2015 | bennylp | defect | normal | release-2.8 | third-party |
Description |
When building libyuv as dll on Visual Studio 2015, linker error was generated 1>compare.obj : error LNK2019: unresolved external symbol _HammingDistance_X86 referenced in function _ComputeHammingDistance 1>..\..\lib\libyuv-i386-Win32-vc14-Debug.dll : fatal error LNK1120: 1 unresolved externals The issue seems to have been corrected on the current version (17 Nov 2017). Unfortunately, to build correctly on Visual Studio 2005, we still need one additional modification to the previous one. |
|||||
#2157 | Update media transport adapter sample | nanang | defect | normal | release-2.9 | pjmedia |
Description |
Ticket #865 introduces a new callback rtp_cb2(), so we need to consider this when implementing our media transport adapter. |