Custom Query (2195 matches)
Results (1401 - 1500 of 2195)
Ticket | Summary | Owner | Type | Priority | Milestone | Component |
---|---|---|---|---|---|---|
#1856 | Offer only current active crypto on re-INVITE | nanang | enhancement | normal | release-2.4.5 | pjmedia |
Description |
On re-INVITE (e.g: lock codec, ICE update, session refresh), SRTP sends all crypto-suites instead of just the currently active. In the Sipit31 tests, this seems to be just fine (the same current active cryptos were used on both sides, no RTP protect/unprotect error), but this is perhaps risky, e.g: remote may mistakenly see it as SRTP session restart, thus remote will reset its SRTP states (so RTP seq calculation became out of sync, etc). So sending the current active crypto should be safer. |
|||||
#736 | Old sound device compatibility | bennylp | task | normal | aps-direct-integration | pjmedia-audiodev |
Description |
Implement compatibility wrappers for the old sound API. |
|||||
#200 | Omit RTCP attribute in SDP when ICE only has one component | bennylp | task | normal | ICE | pjlib-util |
#2217 | Omit deprecated IPv6 addresses from ICE candidates | nanang | enhancement | normal | release-2.10 | pjnath |
Description |
This ticket introduces pj_enum_ip_interface2() with additional option to omit deprecated IPv6 addresses, however currently it is only implemented for Linux. This ticket also modify behavior of STUN socket in enumerating local IPv6 addresses, it now skips deprecated IPv6 addresses. Contribution from Sébastien Blin, thanks. |
|||||
#668 | Omit media attributes when rejecting SDP media lines | nanang | enhancement | minor | release-1.7 | pjmedia |
Description |
Currently when we reject a media line in SDP offer, we copy the media descriptor from the offer in the answer and set the port to zero. This works fine. However this may create some confusions when troubleshooting a problem, therefore using simpler structure of media descriptor (m= line with port 0 without any 'a=' lines) may be preferable and perhaps even more efficient. |
|||||
#2173 | On PJSUA2, application will not be notified when when SDP nego fails due to unsupported codec. | bennylp | defect | normal | release-2.9 | pjsua2 |
Description |
Ticket #1916 enables on_incoming_call() called from on_create_media_transport() for PJSUA2. However, after the on_incoming_call() invocation, there is a chance that the call is disconnected by the library (e.g: due to unsupported codec or unsupported SIP capability requirement). Unfortunately, there is a bug in the library that application will not be informed about the call disconnection in such scenario. The patch will add check for codec and capability support from the SDP before calling on_incoming_call(). In this case, when the check fails then on_incoming_call() will not be called. However, actually there is still a chance of failure in further step of call verification, so the call may get rejected by the library after incoming call callback is invoked. In this case, call state callback on_call_state() will be invoked to notify application about call disconnection. Thanks to Ryan Wallach for the report. |
|||||
#2091 | On iOS11, replace_udp_sock() might fail and lead to unusable UDP transport | bennylp | defect | normal | release-2.8 | pjlib |
Description |
Ticket #1107 and #1225, described that iOS will reset UDP socket when app goes to background. The library will then try to recreate the socket by calling replace_udp_sock(). However since iOS11, we see some cases that the method fail and lead to unusable UDP transport or even worst, an unresponsive library state. Log: ioq_select !Attempting to replace UDP socket 5 ioq_select Error replacing socket: Invalid argument udp0x127d27e00 Warning: pj_ioqueue_recvfrom: [err 120009] Bad file descriptor Steps to reproduce:
This ticket will retry the recreate socket/replace_udp_sock() if it fail and add a fallback mechanism (restart transport) from the app callback. Log: ioq_select !Attempting to replace UDP socket 5 ioq_select Error get peer name 120022 ioq_select Error set qos param 120022 ioq_select Retry to replace UDP socket 5 ioq_select !Error get peer name 120022 ioq_select UDP has been replaced successfully! |
|||||
#785 | Optimization flags for Release builds | ismangil | enhancement | normal | common | |
#2057 | Optimization: Improve conference mix loop performance | nanang | enhancement | normal | release-2.8 | pjmedia |
Description |
When mixing hundreds or more ports, the mix loop is one of the bottlenecks. This ticket will reduce the CPU load substantially. Thanks to Kal Conley (b17c0de) for the patch. PJMEDIA test result using mips_test with 256 calls: Clock Item Time CPU MIPS Rate (usec) (%) without patch: 8KHz conference bridge with 256 calls 7391 0.739 59.88 with patch: 8KHz conference bridge with 256 calls 4888 0.489 39.60 |
|||||
#1445 | Optimization: disconnect/reconnect video preview window from video tee when hidden/shown | bennylp | enhancement | minor | release-2.x | pjsua-lib |
#505 | Optimize delay of current jitter buffer | nanang | enhancement | normal | release-0.9.0 | pjmedia |
#560 | Optimize the memory usage of DNS resolver | bennylp | enhancement | normal | release-1.0-rc1 | pjlib-util |
Description |
Previously, the DNS resolver (resolver.c) allocates memory for caching DNS answers from the resolver pool, and stores the unused entries in free list. This would cause memory to grow as much as the total number of unique names resolved, and this memory will not be released until the resolver is destroyed. With the new approach, each DNS answer cache entry will have it's own pool, and when the answer/entry expires, the pool will be destroyed, thus releasing the memory back to the OS. Also change the pool type used to store the entry. Previously entry uses a fixed size buffer to allocate the memory from, using fixed buffer pool (pool_buf.h. Because of this, entry is created with buffer that must be large enough to parse DNS answer, and if the answer is larger than the buffer size, parsing will fail. This limitation will be gone when we change the pool type to use normal pool instead. |
|||||
#1268 | Option for automatic/manual sending of RTCP SDES/BYE for the stream. | nanang | enhancement | normal | release-1.12 | pjmedia |
Description |
By default, RTCP SDES/BYE is automatically sent by the stream. By setting the field pjmedia_stream_info.rtcp_sdes_bye_disabled to PJ_TRUE, application can choose to manually send RTCP SDES/BYE by using the API pjmedia_stream_send_rtcp_sdes() and pjmedia_stream_send_rtcp_bye(). |
|||||
#1257 | Option for using simple FIFO delay buffer in echo canceller | nanang | enhancement | normal | release-1.12 | pjmedia |
Description |
By default, echo canceller's delay buffer will make use of WSOLA to expand and shrink audio samples. By setting the option flag in pjsua_set_ec() to contain PJMEDIA_ECHO_USE_SIMPLE_FIFO, application can use simple FIFO mechanism instead. |
|||||
#827 | Option in PJSUA-LIB logging config to append existing log file (thanks Robert Cichielo for the suggestion) | bennylp | enhancement | normal | release-1.2 | pjsua-lib |
Description |
Add log_file_flags in pjsua_logging_config, where application may specify PJ_O_APPEND to allow appending existing log file. |
|||||
#498 | Option in client registration to ignore Contact address in REGISTER response | bennylp | enhancement | normal | release-0.9.0 | pjsip |
Description |
Some registrar servers are not returning the same URI in the Contact header of REGISTER 200/OK response, and this will cause PJSIP registration client to think that it's being unregistered. This ticket adds compile time and run-time setting to ignore Contact URIs returned in REGISTER response. |
|||||
#1329 | Option in configure to specify alternate location for SDL | bennylp | enhancement | normal | release-2.0-alpha | common |
Description |
Needed for SDL-1.3 since it's not installed by default on Ubuntu (yet) |
|||||
#474 | Option in the ioqueue to control concurrency (allow/disallow multiple/simultaneous callback calls) | bennylp | enhancement | normal | release-0.9.0 | pjlib |
Description |
Previously the ioqueue always allow multiple callbacks to be called on the same key. This may cause difficulty in programming the application to deal with synchronization between callback calls and key registration (for example see ticket #460 and #469). This ticket adds an option in the ioqueue to disable parallel/simultaneous callback on the same key. Please see IOQueue Concurrency Rules in PJLIB documentation for more information. |
|||||
#1587 | Option to accept call replace when in early state and as UAS | bennylp | enhancement | normal | release-2.1 | pjsip |
Description |
A user likes to have same transfer behaviour as he is used to his old analogue PABX. The user have an active call and wants to transfer it to another extension, but only when the extension is free. So first, the user put the 1st call in hold and invoke a new call, once the alert tone comes up (receiving 180), the user press transfer. Currently, we will reject such transfer request, in line to RFC 3891 section 3: If the Replaces header field matches an early dialog that was not initiated by this UA, it returns a 481 (Call/Transaction Does Not Exist) response to the new INVITE, and leaves the matched dialog unchanged. Note that since Replaces matches only a single dialog, the replacement dialog will not be retargeted according to the same forking logic as the original request which created the early dialog. Thanks Peter Koletzki for the feedback and the patch. |
|||||
#1645 | Option to add "alias" param in Via header in sending request | bennylp | enhancement | normal | release-2.2 | pjsip |
Description |
Accommodate connection reuse for some servers that requires "alias" param in the Via header in the request message sent using connection oriented transports (see rfc5923). |
|||||
#672 | Option to add custom parameters in the account Contact URI | bennylp | enhancement | normal | release-1.0.1 | pjsua-lib |
#1569 | Option to allow hash character ('#') to appear in user part of SIP URL | bennylp | enhancement | normal | release-2.1 | pjsip |
Description |
By default, hash character will be escaped as per RFC 3261 rule. Unfortunately some endpoints want this character in the user part of a request. This ticket adds a run-time option to allow hash character to appear in user part of SIP URL of outgoing requests. Sample code: pjsip_cfg()->endpt.allow_tx_hash_in_uri = 1; |
|||||
#1160 | Option to bypass RTP payload type verification in the stream (Johan Lantz) | nanang | enhancement | minor | release-1.8.10 | pjmedia |
Description |
We validate incoming RTP packets to see if they contain correct payload type, as it should. However some people are having problems with broken servers that requires them to disable this checking. |
|||||
#1422 | Option to configure or disable RTCP RTT normalization (thanks Lars Helgeson for the patch) | nanang | enhancement | normal | release-1.14 | pjmedia |
Description |
The RTCP RTT calculation algorithm attempts to normalize "unusual" RTT variation, by setting the RTT to three times the current average RTT if the value is larger than this. This ticket makes this behavior configurable by introducing PJMEDIA_RTCP_NORMALIZE FACTOR, which defaults to 3 and can be disabled by setting it to 0. |
|||||
#1512 | Option to continue ICE operation even when STUN resolution fails | bennylp | defect | normal | release-2.0 | pjnath |
Description |
Add new option to make ICE stream transport ignore STUN resolution error and continue initialization as normal. This is to make the call behavior in 2.0 comparable to 1.x which silently drop srflx candidate if the STUN server fails after initialization. The new option and the default value is: pj_ice_strans_cfg.stun.ignore_stun_error = PJ_FALSE; |
|||||
#1375 | Option to control first re-registration retry interval | bennylp | enhancement | normal | release-1.12 | pjsua-lib |
Description |
Ticket #1044 adds pjsua_acc_config.reg_retry_interval to control account interval to retry registration in case it failed. However when the registration is disconnected because of transport failure (e.g. TCP transport closure), the initial retry would happen immediately. This ticket adds new setting, pjsua_acc_config.reg_first_retry_interval, to control the interval of the first retry. The default value is zero, which means registration retry will be done immediately after failure. Note that in case there are calls active when the TCP transport is disconnected, these calls will be hung up only after the first registration retry fails, hence it is recommended to set pjsua_acc_config.reg_first_retry_interval to low value. This ticket also adds random +/- 10 seconds to the interval, so that clients wouldn't re-register at the same time thus causing high load to server. |
|||||
#922 | Option to enable mutex related logging to assist troubleshooting concurrency problems | bennylp | enhancement | normal | release-1.4 | pjlib |
Description |
New compile configuration option PJ_DEBUG_MUTEX can be used to log all mutex operations. Currently only available in Windows. |
|||||
#456 | Option to follow redirection in PJSUA-LIB | bennylp | enhancement | minor | Known-Issues | pjsua-lib |
Description |
Implement handling of call redirection in PJSUA-LIB:
To maintain backward compatibility with existing applications, pjsua-lib will not follow redirection if the callback is not implemented by application. |
|||||
#1351 | Option to initially hide preview window, otherwise the window will float initially | bennylp | enhancement | normal | release-2.0-alpha | pjsua-lib |
#1830 | Option to maintain video aspect ratio between requested size and supported size | nanang | enhancement | normal | Known-Issues-and-Ideas | pjmedia |
Description |
Currently, video port has to handle video resizing when video size requested by application is not supported by video device. A raised issue is how to find the closest size from the supported sizes, e.g: should we consider same/closest aspect ratio in the search? After a discussion, we come to a conclusion that the priority is the closest width, then closest height (when resized with same aspect ratio), and eventually the result may have different aspect ratio. So perhaps we should provide options whether aspect ratio should be maintained and how (crop or pad with black boxes at up&down/left&right sides). |
|||||
#1910 | Option to regularly send video keyframe in the beginning of video call session | nanang | enhancement | normal | release-2.6 | pjmedia |
Description |
In the beginning of video call, video keyframe may get lost due to NAT hole punching, probing period in auto-switch to RTP port source feature, or normal packet loss. Mechanism to request video keyframe is currently available, however it takes time. So sending video keyframe regularly at some interval in the beginning of video session may reduce the missing keyframe period. It should be configurable at run-time and compile-time (for default setting). |
|||||
#345 | Option to select random start port in pjsua | bennylp | enhancement | normal | release-0.8.0 | applications |
Description |
Pjsua option --rtp-port=0 now will select random start port for RTP, in the range of [4000-65535]. |
|||||
#1644 | Option to switch media session to the latest early media SDP received on forked early media | bennylp | enhancement | normal | release-2.2 | pjsip |
Description |
When sending INVITE with media offer and receiving multiple 183 responses (early media) with different To tag, currently PJSIP will only process the first received early media response and discard the other. There is a report that some system may handover the early media handling after some interval, e.g: from one media gateway to another, by sending another 183 response with different To tag, with different codec and this causes a PJSIP-based endpoint hears silence. Note that this ticket is not a perfect solution to handle such scenario, for example when the first media gateway keeps sending RTP after the handover, there is still possibility that the stream may switch back to the first media gateway RTP (see also #1366). |
|||||
#1209 | Option to update Contact URI when sending re-INVITE or UPDATE | bennylp | enhancement | normal | release-1.10 | pjsua-lib |
Description |
Updated pjsua_call_reinvite() and pjsua_call_update() API to use bitmask flag in the options parameter, to allow application to request that the invite session be updated with the new Contact URI from the account. This is useful in IP address change situation, to update the invite session with the new account Contact after the account Contact is updated (typically with a registration refresh), and send this new Contact in an re-INVITE or UPDATE request. Two options/flags are created:
Note that this update is backward compatible. |
|||||
#1661 | Option to use SO_REUSEADDR for TCP and TLS listeners and use it by default on non-Windows platforms | bennylp | enhancement | normal | release-2.2 | pjsip |
Description |
Compile time and run-time options to use SO_REUSEADDR for SIP TCP and TLS transports. The run-time options are pjsip_tcp_transport_cfg.reuse_addr and pjsip_tls_setting.reuse_addr, and pj_ssl_sock_param.reuse_addr for the lower level PJSIP's SSL socket. The default value for those settings are taken from these new compile time macros: PJSIP_TCP_TRANSPORT_REUSEADDR and PJSIP_TLS_TRANSPORT_REUSEADDR. By default, these macros will be set to 1 on non-Windows platforms, meaning that SO_REUSEADDR will be set to the listener sockets, and zero on Windows platforms (including mobile). The reason why it's not set by default on Windows is because this option will steal the port from other program even if that program is currently active and the socket has not been closed. See this MSDN page for more info. |
|||||
#1567 | Option to use STUN2 format for resolving mapped address | bennylp | enhancement | normal | release-2.1 | pjsua-lib |
Description |
Currently pjstun_get_mapped_addr() is using old STUN format (RFC3489). While some STUN servers may not like STUN request with old STUN format and will not respond to such requests. Thanks Marcus Froeschl for the report. |
|||||
#1614 | Option to use new URI for To header in processing call redirection | bennylp | enhancement | normal | release-2.1 | pjsip |
Description |
Currently call redirection will reuse the To header in the original redirected request as recommended by RFC3261 8.1.3.4. However, this may lead to this undesirable scenario:
It happens because in leg 2, B sees that it talks with C (reused original To header) and when transferring the call, B will use the remote URI (i.e: To header) for the Refer-To header in call transfer request. Using new URI for To header in processing call redirection will avoid such scenario. Thanks Peter Koletzki for the report. |
|||||
#1259 | Option to use of 100rel in UAS if UAC supports it (thanks Marcus Froeschl for the suggestion) | bennylp | enhancement | normal | release-1.12 | pjsua-lib |
Description |
If we receive in incoming call and the INVITE has "Supported: 100rel", PJSUA does not send 180 with "Required: 100rel", so reliable provisional responses are not used. This is because pjsua_call_on_incoming() function does not seem to check whether the received INVITE actually contained a "Supported: 100rel", but it just checks the account configuration's pjsua_acc_config::require_100rel before invoking pjsip_inv_verify_request2() : if (pjsua_var.acc[acc_id].cfg.require_100rel) options |= PJSIP_INV_REQUIRE_100REL; So even although the partner supports 100rel and PJSUA supports 100rel (both callee and caller support it) it is not being used in this case unless 100rel is explicitly *mandated* by pjsua_acc_config::require_100rel. However enabling pjsua_acc_config::require_100rel has much stronger implications: Not only does it affect behavior as UAS but also as UAC, and it would make communications with partners who not support 100rel impossible, so it does not seem to be a valid solution to achieve the desired result. |
|||||
#1668 | Option to use the IP address found in REGISTER response in the SDP | bennylp | enhancement | normal | release-2.2 | pjsua-lib |
Description |
pjsua_acc_config.allow_sdp_nat_rewrite: This option controls whether the IP address in SDP should be replaced with the IP address found in Via header of the REGISTER response, ONLY when STUN and ICE are not used and there is active registration session present. If the value is FALSE (the original behavior, and the default value), then the local IP address will be used. If TRUE, and when STUN and ICE are disabled, then the IP address found in registration response will be used, until the account unregisters, on which the private IP will be used again. |
|||||
#1267 | Optional SRTP with duplicated media line | bennylp | task | minor | release-2.x | pjsua-lib |
Description |
As this SRTP mode is handled by high level library, i.e: PJSUA-LIB, and ticket #1185 causes a lot of modification in handling media transport in PJSUA-LIB, this SRTP mode is 'accidentally' stripped out. Note: test scenario mod_call.py scripts-call/150_srtp_2_3.py is currently disabled as it depends on optional SRTP with duplicated media line. So don't forget to re-enable the scenario (in runall.py) once this ticket is done. |
|||||
#2084 | Opus decode/recovery issue when FEC or PLC is enabled | nanang | defect | normal | release-2.8 | pjmedia |
Description |
Passing an incorrect frame size to opus_decode() can cause decode error or recovery failure (log: "Recover failed!"). |
|||||
#570 | Out of array/buffer boundary access in WSOLA | nanang | defect | normal | release-1.0-rc1 | pjmedia |
Description |
Locations found:
|
|||||
#1315 | Output volume setting not applied in Symbian VAS audio device creation | nanang | defect | normal | release-1.12 | pjmedia-audiodev |
Description |
Found that setting the output volume when the VAS engine hasn't been completely started will be useless (no output volume change). |
|||||
#386 | Over-deinitialize sound subsystem in pjsua_media.c (thanks Jiandong Ruan) | bennylp | defect | normal | release-0.8.0 | pjsua-lib |
Description |
pjsua_media_subsys_destroy() unnecessarily calls pjmedia_snd_deinit(), while this should've already been done in pjmedia_endpt_destroy(). Because of this, subsequent pjsua restart (within the same process) may fail to initialize sound device. Thanks Jiandong Ruan for reporting this. |
|||||
#443 | Overflow in dump_media_session() (thanks Simon Farmer) | bennylp | defect | normal | release-0.9.0 | pjsua-lib |
Description |
The calculations in this function will overflow for longer call period. Thanks Simon Farmer for reporting this. |
|||||
#927 | PIDF timestamp is not added to the tuple (thanks Johan Lantz for the report) | bennylp | defect | minor | release-1.4 | pjsip |
Description |
Ticket #873 was meant to add PIDF <timestamp> element into the <tuple>, but it didn't do that (it's missing the call to pj_xml_add_node()). |
|||||
#1202 | PJLIB System Information API | bennylp | enhancement | normal | release-1.10 | pjlib |
Description |
This ticket implements system information API in PJLIB. The purpose of this API is to provide application with various info about the system so that it can decide things to do at run-time. There two main parts of this ticket: 1) Compile time info about PJLIB version number in <pj/config.h>: /** PJLIB version major number. */ #define PJ_VERSION_NUM_MAJOR 1 /** PJLIB version minor number. */ #define PJ_VERSION_NUM_MINOR 8 /** PJLIB version revision number. */ #define PJ_VERSION_NUM_REV 10 /** * Extra suffix for the version (e.g. "-trunk"), or empty for * web release version. */ #define PJ_VERSION_NUM_EXTRA "-trunk" /** * PJLIB version number consists of three bytes with the following format: * 0xMMIIRR00, where MM: major number, II: minor number, RR: revision * number, 00: always zero for now. */ #define PJ_VERSION_NUM ((PJ_VERSION_NUM_MAJOR << 24) | \ (PJ_VERSION_NUM_MINOR << 16) | \ (PJ_VERSION_NUM_REV << 8)) 2) System information API in <pj/os.h>: /** * These enumeration contains constants to indicate support of miscellaneous * system features. These will go in "flags" field of #pj_sys_info structure. */ typedef enum pj_sys_info_flag { /** * Support for Apple iOS background feature. */ PJ_SYS_HAS_IOS_BG = 1 } pj_sys_info_flag; /** * This structure contains information about the system. Use #pj_get_sys_info() * to obtain the system information. */ typedef struct pj_sys_info { /** * Null terminated string containing processor information (e.g. "i386", * "x86_64"). It may contain empty string if the value cannot be obtained. */ pj_str_t machine; /** * Null terminated string identifying the system operation (e.g. "Linux", * "win32", "wince"). It may contain empty string if the value cannot be * obtained. */ pj_str_t os_name; /** * A number containing the operating system version number. By convention, * this field is divided into four bytes, where the highest order byte * contains the most major version of the OS, the next less significant * byte contains the less major version, and so on. How the OS version * number is mapped into these four bytes would be specific for each OS. * For example, Linux-2.6.32-28 would yield "os_ver" value of 0x0206201c, * while for Windows 7 it will be 0x06010000 (because dwMajorVersion is * 6 and dwMinorVersion is 1 for Windows 7). * * This field may contain zero if the OS version cannot be obtained. */ pj_uint32_t os_ver; /** * Null terminated string identifying the SDK name that is used to build * the library (e.g. "glibc", "uclibc", "msvc", "wince"). It may contain * empty string if the value cannot eb obtained. */ pj_str_t sdk_name; /** * A number containing the SDK version, using the numbering convention as * the "os_ver" field. The value will be zero if the version cannot be * obtained. */ pj_uint32_t sdk_ver; /** * A longer null terminated string identifying the underlying system with * as much information as possible. */ pj_str_t info; /** * Other flags containing system specific information. The value is * bitmask of #pj_sys_info_flag constants. */ pj_uint32_t flags; } pj_sys_info; /** * Obtain the system information. * * @return System information structure. */ PJ_DECL(const pj_sys_info*) pj_get_sys_info(void); |
|||||
#450 | PJLIB function to query the DNS server configured in the system | bennylp | enhancement | minor | Known-Issues-and-Ideas | pjlib |
Description |
Currently PJLIB lacks a portable function to query what is the DNS server being configured/used in the system. On Windows, this can be done by calling GetNetworkParams(), while on *nix this has to be done by parsing /etc/resolv.conf. |
|||||
#103 | PJLIB should use Win32 file I/O back-end on Win32 | bennylp | enhancement | normal | release-0.5.10 | pjlib |
Description |
The default file I/O back-end is to use ANSI stream API (fopen(), fread(), etc.), which works great since it is portable across platforms. However it has a limit of number of files that can be opened simultaneously (FOPEN_MAX), causing subsequent opening file to fail. On Win32, we have alternative back-end of file I/O using Win32 native file operations (CreateFile?(), ReadFile?(), etc.), which doesn't have this limitation, but unfortunately this backend implementation is not being used. Thanks David Clark for pointing this out. |
|||||
#1715 | PJSIP Book | bennylp | enhancement | normal | release-2.2 | common |
Description |
New PJSIP book |
|||||
#448 | PJSIP rejects incoming call with 415/Unsupported Media Type for INVITE containing video (thanks Alain Totouom) | bennylp | defect | normal | release-0.9.0 | pjmedia |
Description |
When INVITE contains video line, PJSIP will reject it with 415, while it should accept the INVITE since the INVITE contains audio. Sample SDP: v=0 o=root 19999 20001 IN IP4 123.123.123.123 s=session c=IN IP4 123.123.123.123 t=0 0 m=audio 51788 RTP/AVP 0 3 8 101 a=rtpmap:0 PCMU/8000 a=rtpmap:3 GSM/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=silenceSupp:off - - - - m=video 57688 RTP/AVP 34 a=rtpmap:34 H263/90000 |
|||||
#480 | PJSIP rejects incoming call with m=image in the offer (thanks Thiago) | nanang | defect | normal | release-0.9.0 | pjmedia |
Description |
PJSIP will reject incoming call with unknown media in the media line (for example, m=image line), even when the offer contains audio media line. The correct behavior would be to accept the session and only reject the unsupported media line with zero port. |
|||||
#311 | PJSIP resolver is not destroyed on shutdown (thanks Martin Peterzon) | bennylp | defect | normal | release-0.7.0 | pjsip |
Description |
The PJSIP's DNS resolver is not destroyed, and this causes application to crash upon shutdown on Symbian. Thanks Martin Peterzon for finding this bug! |
|||||
#312 | PJSIP resolver is not destroyed on shutdown (thanks Martin Peterzon) | bennylp | defect | normal | release-0.6.0 | pjsip |
Description |
See ticket #311 |
|||||
#1013 | PJSIP resolver should not try to resolve the target if IP address is given (thanks Emil Sturniolo for the report) | bennylp | defect | normal | release-1.5.5 | pjsip |
Description |
When target URI is an IP address, PJSIP resolver (sip_resolve.c) still tries to resolve it with pj_getaddrinfo(). While this normally is fine (although perhaps slightly inefficient), calling pj_getaddrinfo() does return error if IP address is given on certain Windows Mobile devices. The solution is to avoid calling pj_getaddrinfo() if the target is an IP address. |
|||||
#1173 | PJSUA callback to allow creation of custom media transports by application | bennylp | enhancement | normal | release-1.12 | pjsua-lib |
Description |
This ticket adds a new pjsua callback to allow application use custom media transport for a particular call. Prototype: typedef enum pjsua_create_media_transport_flag { /** * This flag indicates that the media transport must also close its * "member" or "child" transport when pjmedia_transport_close() is * called. If this flag is not specified, then the media transport * must not call pjmedia_transport_close() of its member transport. */ PJSUA_MED_TP_CLOSE_MEMBER = 1 } pjsua_create_media_transport_flag; /** * This callback can be used by application to implement custom media * transport adapter for the call, or to replace the media transport * with something completely new altogether. * * This callback is called when a new call is created. The library has * created a media transport for the call, and it is provided as the * \a base_tp argument of this callback. Upon returning, the callback * must return an instance of media transport to be used by the call. * * @param call_id Call ID * @param media_idx The media index in the SDP for which this media * transport will be used. * @param base_tp The media transport which otherwise will be * used by the call has this callback not been * implemented. * @param flags Bitmask from pjsua_create_media_transport_flag. * * @return The callback must return an instance of media * transport to be used by the call. */ pjmedia_transport *on_create_media_transport(pjsua_call_id call_id, unsigned media_idx, pjmedia_transport *base_tp, unsigned flags); |
|||||
#881 | PJSUA-LIB should send UPDATE or re-INVITE after ICE negotiation, if the default candidate has changed | bennylp | defect | normal | release-1.5 | pjsua-lib |
Description |
According to draft-ietf-mmusic-ice-19 Section 8.1.2 Updating States:
|
|||||
#1863 | PJSUA2 Video Codec API & Video Device API | bennylp | enhancement | normal | release-2.4.5 | pjsua2 |
Description |
This ticket will add PJSUA2 Video Codec API and Video Device API |
|||||
#2184 | PJSUA2 cannot switch from null audio device | nanang | defect | normal | release-2.9 | pjsua2 |
Description |
If any capture or playback device ID is set to PJSUA_SND_NULL_DEV (for null audio device), PJSUA will invoke pjsua_set_null_snd_dev() so both device IDs will be reset to PJSUA_SND_NULL_DEV again. Unfortunately PJSUA2 can only configure one audio device (only playback or capture) at one time, so it will never be able to switch over from null device. |
|||||
#2189 | PJSUA2: thread safety issue in list of objects | nanang | defect | normal | release-2.9 | pjsua2 |
Description |
Currently PJSUA2 internally maintains some lists of objects, e.g: AudioMedia, Buddy, AudioDevInfo, VideoDevInfo, CodecInfo. Unfortunately some APIs for querying and modifying those lists are not really thread safe. For example Endpoint::mediaEnumPorts() will simply return the internal list, and Endpoint::mediaAdd(), Endpoint::mediaRemove(), Endpoint::mediaExists() may access the internal list without mutex protection. Another example is enumeration function such as Aud/VidDevManager::enumDev(), CodecInfoVector &codecEnum() that returns internal list which always be updated at each call of the function, so if two threads call the same function at the same time, one of the thread will get an invalid list. Thank you Niclas Larsson for the report. Since those PJSUA2 objects are actually just kind of thin wrapper of PJSUA objects, e.g: PJSUA2 AudioMedia is wrapping PJSUA conference bridge port ID, those object should be easily generated from PJSUA. So instead of maintaining list of objects internally, PJSUA2 can simply generate the requested objects on the fly. For example when enumeration function is called, the function will generate the PJSUA2 objects, generate a new list containing those object, and return the list. This way PJSUA2 can also avoid adding another layer of synchronization as PJSUA already provides the thread safety. This ticket will deprecate these APIs:
This ticket will introduce new APIs:
|
|||||
#458 | PJ_ERESOLVE error in Windows Mobile | bennylp | defect | normal | release-0.9.0 | common |
Description |
See mailing list discussions: |
|||||
#550 | PRACK is not re-sent on 401/407 challenge (thanks Josh Benson) | bennylp | defect | normal | release-0.9.0 | pjsip |
Description |
PJSIP is not retrying the PRACK request if it is challenged with 401/407 response. |
|||||
#620 | PRACK is sent to the wrong UAS when 100rel is used and the dialog forks (thanks Ruud Klaver for the report) | bennylp | defect | normal | release-1.0-rc3 | pjsip |
Description |
Ruud Klaver reports this in pjsip mailing list:
|
|||||
#553 | PUBLISH callback is not called when authentication fails (thanks Ruud Klaver for the report) | bennylp | defect | normal | release-1.0-rc1 | pjsip |
#90 | PUBLISH is rejected with 404 because of timing mismatch with REGISTER | bennylp | defect | normal | release-0.7.0-rc1 | pjsua-lib |
Description |
When presence publication is enabled in pjsua account, pjsua-api sends PUBLISH overlapping with REGISTER, and when the REGISTER is challenged with 401/407, the PUBLISH request will be rejected with 404/Not Found. Thanks Edward Tian for reporting the problem. |
|||||
#133 | PUBLISH is rejected with 404 when REGISTER is challenged with 401/407 (thank Edward Tian) | bennylp | defect | normal | release-0.5.10.2 | pjsua-lib |
Description |
When presence publication is enabled in pjsua account, pjsua-api sends PUBLISH overlapping with REGISTER, and when the REGISTER is challenged with 401/407, the PUBLISH request will be rejected with 404/Not Found. Thanks Edward Tian for reporting the problem. This is the duplicate of ticket #90 for the 0.5-stable branch. |
|||||
#190 | PUBLISH request in pjsua is not initialized with account's route set (thanks Nicholas Xu) | bennylp | defect | normal | release-0.5.10.3 | pjsua-lib |
Description |
The presence publication session is not initialized with account's route set, causing the PUBLISH request to be sent directly to server even when --outbound or --proxy exist. |
|||||
#191 | PUBLISH request in pjsua is not initialized with account's route set (thanks Nicholas Xu) | bennylp | defect | normal | release-0.7.0-rc1 | pjsua-lib |
Description |
See ticket #190. |
|||||
#47 | Packet length not set correctly when media transport fails with immediate error | bennylp | defect | normal | release-0.5.10 | pjmedia |
Description |
When ioqueue_recv() fails with immediate error in UDP transport, the bytes_read variable is not set properly, causing the stream to incorrectly try to parse the packet. This causes some "invalid RTP version" error message to be printed. It may cause more serious error too, such as switching transport address to an invalid destination. |
|||||
#373 | Packet loss simulation in PJMEDIA ICE transport | bennylp | enhancement | normal | release-0.8.0 | pjmedia |
Description |
pjsua has a packet simulation option (rx-drop-pct and tx-drop-pct option), but this is currently only used by UDP media transport. Add similar option in ICE media transport. |
|||||
#667 | Padding issue when the old/RFC 3489 STUN client is communicating with new/STUNbis STUN server | bennylp | defect | normal | release-1.0.1 | pjlib-util |
Description |
The NAT detection and STUN mapped address detection routines in PJLIB-UTIL assume that they communicate with old/RFC 3489 compliant server. When they communicate with new/STUNbis STUN server, the server may put some attributes that have padding rule (e.g. SOFTWARE attribute), and this will cause the STUN message decoding routine to fail. |
|||||
#232 | Parse failure on big endian machines (thanks Vladimir Hozjan) | bennylp | defect | blocker | release-0.5.10.4 | pjlib-util |
Description |
All parsing fails on big endian machines, caused by #206. Thanks Hozjan Vladimir <hozjan at iskratel si>. |
|||||
#233 | Parse failure on big endian machines (thanks Vladimir Hozjan) | bennylp | defect | blocker | release-0.7.0-rc1 | pjlib-util |
Description |
See ticket #232 |
|||||
#657 | Partial early media forking support | bennylp | enhancement | normal | release-1.0.1 | pjsip |
Description |
Consider this scenario, where pjsip acts as UAC: UAC ------- INVITE+SDP ------> <------- 100 ------------- <--- 183+SDP, from UAS1 -- <--- 200+SDP, from UAS2 -- One scenario where the above happens include the use of ringback tone server which generates the 183 response (with SDP), before the call is answered by the destination UAS. Currently the scenario above is not supported, since pjsip will ignore the second SDP (in the 200/OK response), as it has marked the SDP negotiation as complete when it received the 183 response. This, among other things, would cause pjsip to transmit RTP packets with wrong payload type, if the second SDP has selected different format than the first SDP. This ticket adds enhancement where pjsip should detect that the second SDP is coming from different call leg, hence it should renegotiate the SDP and call on_media_update(). |
|||||
#958 | Passthrough codec overwrites codec parameters with iLBC setting. | nanang | defect | normal | release-1.5 | pjmedia |
Description |
This is a fatal bug in fixes of ticket #919, missing codec type checking in initializing iLBC parameters. |
|||||
#963 | Passthrough codec overwrites codec parameters with iLBC setting. | nanang | defect | critical | release-1.4.5 | pjmedia |
Description |
See ticket #958 for more info. |
|||||
#116 | Patch to disable PortAudio ALSA support in configure script | bennylp | enhancement | normal | Known-Issues-and-Ideas | pjmedia |
Description |
870d869 < --disable-alsa Disable ALSA and use OSS 8552,8561d8550 < if test "${enable_alsa+set}" = set; then < enableval="$enable_alsa" < if test "$enable_alsa" = "no"; then < ac_pa_use_alsa=0 < echo "$as_me:4396: Alsa available but disabling ... yes" >&5 < echo "${ECHO_T}Alsa available but disabling... yes" >&6 < else < ac_pa_use_alsa=1 < fi < fi; Thanks Purna Chandar M. |
|||||
#547 | Path to DirectX SDK headers need to be manually inserted | nanang | enhancement | trivial | release-1.0-rc3 | pjmedia |
Description |
When building libportaudio fresh from sources, the path of DirectX installation needs to be manually inserted. The attached patch tries to resolve the environment variable DXSDK_DIR which should be added by installation of DirectX SDK. |
|||||
#1308 | Pcaputil sample application supports dynamic payload type codecs and audio device output | bennylp | enhancement | normal | release-1.12 | applications |
#1535 | Pending outgoing TCP transmission may cause crash if the library is shutdown | bennylp | defect | normal | release-2.0.1 | pjsip |
Description |
When the library is shutdown, pending outgoing TCP transmission will be cancelled and callback will be called. Unfortunately, some library components such as transaction layer have already been destroyed and hence it will cause access to already freed memory location, or the transaction layer itself may have not been destroyed (if there is pending tsx), but the stateful util module had been unregistered and hence it will cause access to bad memory location. Sample stack trace: Thread 4 Crashed: 0 App 0x00195294 mod_util_on_tsx_state (sip_util_statefull.c:77) 1 App 0x001922ee tsx_set_state (sip_transaction.c:1145) 2 App 0x001933a8 send_msg_callback (sip_transaction.c:1828) 3 App 0x0018597a stateless_send_transport_cb (sip_util.c:1112) 4 App 0x001880f4 transport_send_callback (sip_transport.c:625) 5 App 0x0018c59e on_data_sent (sip_transport_tcp.c:1050) 6 App 0x0018bc1c tcp_destroy (sip_transport_tcp.c:731) 7 App 0x0018bb42 tcp_destroy_transport (sip_transport_tcp.c:689) 8 App 0x00188934 destroy_transport (sip_transport.c:954) 9 App 0x00188fe8 pjsip_tpmgr_destroy (sip_transport.c:1275) 10 App 0x00183190 pjsip_endpt_destroy (sip_endpoint.c:587) 11 App 0x001bec0c pjsua_destroy2 (pjsua_core.c:1503) 12 App 0x001bef4a pjsua_destroy (pjsua_core.c:1582) 13 App 0x000d893e -[CallManagerSingleton app_destroy] (CallManagerSingleton.m:961) 14 App 0x000bbc34 -[SAppDelegate start_app] (SAppDelegate.m:1151) 15 Foundation 0x34ff0a7a -[NSThread main] + 66 16 Foundation 0x3508458a __NSThread__main__ + 1042 17 libsystem_c.dylib 0x3292472e _pthread_start + 314 18 libsystem_c.dylib 0x329245e8 thread_start + 0 Thanks Michael Fortson for the report. |
|||||
#56 | Periodically transmit RTP packet on silence | bennylp | enhancement | normal | release-0.5.10 | pjmedia |
Description |
Stream should periodically transmit a silence frame once in a while to keep NAT bindings on and to prevent remote end from tearing down the call when there's no activity on the stream. |
|||||
#526 | Pjsua crash after wav player destroyed inside the eof callback (thanks Tanguy Floc'h) | nanang | defect | normal | release-0.9.0 | pjmedia |
Description |
http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2008-April/002513.html after destroyed, wav player port get_frame() returns PJ_SUCCESS to conference, so the conference continue accessing the wav player port. |
|||||
#1823 | Pjsua2 Video API | bennylp | enhancement | normal | release-2.4 | pjsua2 |
Description |
With sample apps and tests focused on Android only. |
|||||
#1855 | Pjsua2 Video Preview API | bennylp | enhancement | normal | release-2.4.5 | pjsua2 |
Description |
With sample apps (pjsua2) and tests focused on Android only. |
|||||
#1008 | Playback not working when using VAS AMR codec on few S60 devices | nanang | defect | normal | release-1.6 | pjmedia |
Description |
Seems related to Forum Nokia known issue of VAS on E72, see here. Also reported that the problem was occurred on E52. |
|||||
#462 | Playback of PCAP file | bennylp | enhancement | normal | release-0.9.0 | applications |
#626 | PocketPJ build issue when SRTP disabled (thanks Seth Hinze for the patch). | nanang | defect | normal | release-1.0-rc3 | applications |
#493 | PocketPJ: a new and better sample application for PocketPC | bennylp | enhancement | normal | release-0.9.0 | applications |
#243 | Port PJLIB trunk to Symbian | bennylp | task | normal | Symbian-trunk-integration | pjlib |
#245 | Port PJLIB-TEST trunk to Symbian | bennylp | task | normal | Symbian-trunk-integration | pjlib |
#253 | Port PJLIB-UTIL trunk to Symbian | bennylp | task | normal | Symbian-trunk-integration | pjlib-util |
#259 | Port PJMEDIA trunk to Symbian | bennylp | task | normal | Symbian-trunk-integration | pjmedia |
#255 | Port PJNATH trunk to Symbian | bennylp | task | normal | Symbian-trunk-integration | pjlib-util |
#256 | Port PJSIP-CORE trunk to Symbian | bennylp | task | normal | Symbian-trunk-integration | pjsip |
#257 | Port PJSIP-SIMPLE trunk to Symbian | bennylp | task | normal | Symbian-trunk-integration | pjsip |
#258 | Port PJSIP-UA trunk to Symbian | bennylp | task | normal | Symbian-trunk-integration | pjsip |
#254 | Port PJSTUN-CLIENT trunk to Symbian | bennylp | task | normal | Symbian-trunk-integration | pjlib-util |
#260 | Port PJSUA-LIB to Symbian | bennylp | task | normal | Symbian-trunk-integration | pjsua-lib |
#27 | PortAudio device open log shows incorrect channel count | bennylp | defect | minor | release-0.5.9 | applications |
#762 | Possibility of infinite loop in jitter buffer (thanks Michael Broughton for the report). | nanang | defect | normal | release-1.2 | pjmedia |
Description |
The full report can be found in this thread. The problem seems to be caused by modification in ticket #744. The corresponding ticket for 1.0.x branch is ticket #763 |