Custom Query (2195 matches)
Results (1701 - 1800 of 2195)
Ticket | Summary | Owner | Type | Priority | Milestone | Component | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#1186 | SDP works | nanang | enhancement | normal | release-2.0-dev | pjmedia | ||||||||
Description |
TODO:
|
|||||||||||||
#836 | SHA1 encryption may corrupt STUN packets with MESSAGE-INTEGRITY | bennylp | defect | normal | release-1.3 | pjnath | ||||||||
Description |
If STUN packet is equipped with MESSAGE-INTEGRITY, and if the packet size is larger than certain limit, the packet may be corrupted during MESSAGE-INTEGRITY calculation before transmission. The corresponding ticket for 1.0.x branch is ticket #837 |
|||||||||||||
#837 | SHA1 encryption may corrupt STUN packets with MESSAGE-INTEGRITY | bennylp | defect | normal | release-1.0.3 | pjnath | ||||||||
Description |
This is duplicate of ticket #836 for the 1.0.x branch |
|||||||||||||
#1586 | SILK audio codec wrapper implementation | nanang | enhancement | normal | release-2.1 | pjmedia | ||||||||
Description |
Requirements:
How to build:
|
|||||||||||||
#1010 | SIP TCP transport client not being reused on MacOS platforms (thanks Emil Sturniolo for the report) | nanang | defect | normal | release-1.5.5 | pjlib | ||||||||
Description |
Seems that this is caused by transport manager failure in looking up existing transport in transport hash table. As the the sockaddr (address of remote target) is used as the key in transport hash table, any inconsistencies in sockaddr structure may cause PJSIP to fail to find matching transport. Found that some new APIs don't set sin_len member of sockaddr to zero. By convention, this sin_len member must be set to zero by PJLIB. This symptom may also occur on any platforms that has sin_len member in sockaddr, e.g: BSD family. |
|||||||||||||
#1649 | SIP TLS transport not destroyed after verification error | bennylp | defect | normal | release-2.2 | pjsip | ||||||||
Description |
Reported that on SIP TLS transport failure caused by TLS verification error, the socket descriptor is not released, so after several (auto) re-registration attempts, the application will run out of descriptor and getting error such as "Too many open files". |
|||||||||||||
#956 | SIP conference bot application | bennylp | enhancement | normal | release-1.5 | applications | ||||||||
#2198 | SIP resolve to return IPv4 and IPv6 synthesized addresses for IPv4 address literals | ming | enhancement | normal | release-2.9 | pjsip | ||||||||
Description |
When calling pjsip_resolve() on an IPv4 address, we will return both the IPv4 address and its synthesized IPv6 address (if any). Note that since pjsip_resolve() has no information of the NAT64 mode nor the bound transport, it will still return the IPv6 address. See also ticket #1976. |
|||||||||||||
#327 | SIPS URI in Contact header generated by pjsua causing problems with OpenSER | bennylp | defect | normal | release-0.8.0 | pjsua-lib | ||||||||
Description |
Since 0.7.0, when TLS transport is being used, PJSUA-LIB will generate "sips:" URI scheme for the Contact header. This causes OpenSER-1.1.0-tls to fail to forward any requests to the user agent. The remote agent will receive this status code:
while OpenSER log shows these log messages: 11(1062) ERROR: uri2proxy: bad transport for sips uri: 3 11(1062) ERROR:tm:t_forward_nonack: failure to add branches According to http://openser.org/pipermail/users/2007-February/009417.html, this is caused by OpenSER only accepting transport=tcp URI parameter when sips: is used. |
|||||||||||||
#1523 | SIPp python test module | bennylp | enhancement | normal | release-2.0.1 | unit-tests | ||||||||
#1179 | SRTCP with HMAC-SHA1 authentication must always use 80 bits tag length | nanang | defect | normal | release-2.x | pjmedia | ||||||||
Description |
As mentioned in RFC3711 5.2 & RFC4568 6.2. |
|||||||||||||
#1075 | SRTP authentication fails after hold/resume and RTP seq restarted | nanang | defect | normal | release-1.7 | pjmedia | ||||||||
Description |
The pjsua will always restart the media transport whenever media description gets updated, e.g: SDP renegotiation in re-INVITE or UPDATE, hence the SRTP state will also get restarted, which is not desired, e.g: the ROC (Roll Over Counter) of SRTP state may get out of sync. |
|||||||||||||
#452 | SRTP development | nanang | enhancement | normal | release-0.9.0 | common | ||||||||
#2042 | SRTP error in sending video RTP after hold and unhold | bennylp | defect | normal | release-2.7 | pjsua-lib | ||||||||
Description |
SymptomLog line: Transport send_rtp() error: replay check failed (index too old) [err:259809] AnalysisIn updating media in both call hold and unhold, stream (or video stream) is destroyed and recreated. Before stream is destroyed, pjsua always saves last transmitted RTP seq number & timestamp, and pass them back to the new stream, so outgoing RTP will have continued seq number & timestamp. Unfortunately for video, when call is on hold, currently no RTP frame will be sent, so both values last transmitted RTP seq number & timestamp are zero, and pjsua saves them when video stream (of a call hold) is destroyed. When a new video stream is created (for call unhold), the zero values will be used to initiate it. This will make outgoing RTP seq number restarted/discontinued, and a restarted RTP seq number will upset SRTP. In audio stream, normally there are still some outgoing RTPs (for keep-alive) when call is on hold, so the issue may not appear on audio stream. |
|||||||||||||
#788 | SRTP library initialization causes up to 1 second delay for first time call on Windows Mobile emulator (thanks Johan Lantz for the report) | nanang | enhancement | normal | release-1.2 | pjsua-lib | ||||||||
Description |
SRTP library initialization is currently performed by pjmedia_transport_srtp_create(), it is reported that the initialization will cause about 1 sec delay to the first time call. So moving the SRTP initialization to pjsua-lib may reduce/solve the first time call delay issue. |
|||||||||||||
#1076 | SRTP put unnecessary SDP crypto attribute in disabled SDP media (port 0) | nanang | enhancement | normal | release-1.7 | pjmedia | ||||||||
#862 | SRTP should accept tag 0 in crypto attribute in the SDP | nanang | defect | normal | release-1.3 | pjmedia | ||||||||
Description |
Tag 0 (in SDP crypto attribute) is valid, so it shouldn't be rejected. However, we'll keep the existing behaviour to generate SDP crypto tag starting from 1. The corresponding ticket for 1.0.x branch is #903 |
|||||||||||||
#903 | SRTP should accept tag 0 in crypto attribute in the SDP | nanang | defect | normal | release-1.0.3 | pjmedia | ||||||||
Description |
This is duplicate of ticket #862 for 1.0.x |
|||||||||||||
#947 | SRTP stops functioning after the library is restarted | nanang | defect | major | release-1.4 | pjmedia | ||||||||
Description |
SRTP session creation will return failure after the (PJSUA-LIB or PJMEDIA) library is shutdown and reinitialized without quitting the application. This is due to the use of static variable which is not reset during shutdown/reinitialization. This will cause PJSUA-LIB to unable to make new call with SRTP enabled. |
|||||||||||||
#2099 | SSL connection suddenly gets closed after sending packets intensively | bennylp | defect | normal | release-2.8 | pjlib | ||||||||
Description |
When a sender sends packets intensively to a receiver that has packet processing rate lower than the sending rate, the packet will be buffered by PJLIB SSL socket and after sometime the sender will get PJ_ENOMEM error and eventually drop the connection while there are still some pending outgoing packets in PJLIB SSL socket. Application cannot trace which packets have been sent and which packets are still pending (buffered in SSL socket). After investigation, when sending buffer is full, any sending operation will still write to OpenSSL BIO while it should not, it should simply return error, e.g: PJ_ENOMEM. After sometime, it somehow cause OpenSSL to initiate SSL renegotiation and when renegotiation fails (e.g: due to timeout), SSL connection will be dropped. Thanks Peter Koletzki for the report. |
|||||||||||||
#1043 | SSL timeout setting not working on Symbian platform (thanks Tamàs Solymosi for the report) | bennylp | defect | normal | release-1.6 | pjlib | ||||||||
Description |
Reported that timeout setting is not used in the ssl_sock_symbian.cpp. |
|||||||||||||
#1806 | SSL/TLS setting to set protocol operation | bennylp | enhancement | normal | release-2.4 | pjsip | ||||||||
Description |
Certain SSL backend implementation, e.g:OpenSSL has feature to enable/disable protocol used. In case of OpenSSL, using SSLv23_method will enable SSLv2-TLSv1.2. Since SSLv2 and SSLv3 are outdated, it will be useful to disable those. This ticket will enable app to specify the protocol used as a combination of pj_ssl_sock_proto value and eventually force client to use the protocol. Thanks to Thomas Haremsa for the suggestions. |
|||||||||||||
#957 | SSL/secure socket abstraction and SIP TLS transport rewrite | bennylp | enhancement | normal | release-1.5 | common | ||||||||
Description |
Objective:
Specifications:
Backends:
|
|||||||||||||
#155 | STUN FINGERPRINT attribute | bennylp | task | normal | ICE | pjlib-util | ||||||||
#960 | STUN compatibility problem with RFC 3489 servers (in encoding SERVER-NAME or SOFTWARE attribute) | bennylp | defect | blocker | release-1.5 | pjnath | ||||||||
Description |
The padding rule difference for string type attributes (notably SOFTWARE or SERVER-NAME attribute) between RFC 3489 and RFC 5389 causes our request to be rejected by RFC 3489 compliant STUN servers. This will cause requests to time out. |
|||||||||||||
#962 | STUN compatibility problem with RFC 3489 servers (in encoding SERVER-NAME or SOFTWARE attribute) | bennylp | defect | blocker | release-1.4.5 | pjnath | ||||||||
Description |
See ticket #960 for more info |
|||||||||||||
#368 | STUN keep-alive timed out when ICE is used | bennylp | defect | normal | release-0.8.0 | pjnath | ||||||||
Description |
When ICE session is active, STUN keep-alive packet will cause error similar to this: icstr00C885A8 STUN keep-alive request failed: STUN transaction has timed out (PJNATH_ESTUNTIMEDOUT) |
|||||||||||||
#519 | STUN request is not freed when transaction times out (thanks Amit Sharma) | bennylp | defect | normal | release-0.9.0 | pjnath | ||||||||
Description |
When STUN transaction completes with timed out, memory leaks occurs because the request message is not freed in STUN session. |
|||||||||||||
#2134 | STUN server resolution failure causes delay | bennylp | defect | normal | release-2.9 | pjsua-lib | ||||||||
Description |
pjsua_core::resolve_stun_server .... Ignoring STUN resolution failure (by setting) pjsua_core::pjsua_resolve_stun_servers pjsua_core::resolve_stun_entry .... Trying STUN server IPv4 (1 of 1) stun_sock::pj_stun_sock_create stun_sock::pj_stun_sock_start srv_resolver::pj_dns_srv_resolve .... Starting async DNS A query_job resolver::pj_dns_resolver_start_query .... Picked up DNS A record from cache, ttl=616663478 stun_sock::dns_srv_resolver_cb /* called sync. since DNS record is cached*/ stun_sock::get_mapped_addr stun_session::pj_stun_session_create_req stun_session::pj_stun_session_send_msg .... Error sending STUN request: Network is unreachable stun_transaction::pj_stun_client_tsx_create .... STUN client transaction created stun_transaction::pj_stun_client_tsx_send_msg .... STUN sending message (transmit count=1) stun_transaction::tsx_transmit_msg .... STUN error sending message: Network is unreachable stun_session::pj_stun_msg_destroy_tdata stun_session::destroy_tdata .... tdata 0x1030f24a8 destroy request, force=0, tsx=0x1030f2630 stun_transaction::pj_stun_client_tsx_schedule_destroy .... STUN transaction 0x1030f2630 schedule destroy stun_sock::sess_fail .... Session failed because STUN Binding request failed: Network is unreachable pjsua_core::test_stun_on_status .... STUN resolution failed: Network is unreachable /* pjsua_resolve_stun_servers Loops for 64 sec before Timeout */ stun_sock::pj_stun_sock_destroy .... STUN sock 0x103022e28 request, ref_cnt=3 stun_session::pj_stun_session_destroy .... STUN session 0x102918228 destroy request, ref_cnt=3 The issue is caused when DNS resolution (pj_dns_srv_resolve() ) in pj_stun_sock_start() returns synchronously and the DNS resolution callback has been called. However, there is currently no mechanism to propagate the error from inside the callback to stun_sock, thus pj_stun_sock_start() will always return PJ_SUCCESS. This causes pjsua STUN server resolution to continue waiting until it times out. (Note that this issue first appears because of ticket #1962, which directly returns without setting any error status after synchronous failure, to prevent double destruction.) Thanks to Imad Khazali for the report and analysis. |
|||||||||||||
#1780 | STUN string attribute has zero length | bennylp | defect | normal | release-2.3 | pjnath | ||||||||
Description |
The bug causes the string attribute to have zero length. This was introduced by changeset r4615 |
|||||||||||||
#1520 | SWIG binding for JNI for the new high level API | bennylp | enhancement | normal | release-2.2 | applications | ||||||||
Description |
Create SWIG specification to create JNI wrapper for the new high-level object oriented API. |
|||||||||||||
#1123 | SWIG binding for PJSUA-LIB for Java, Python, C#, etc. | bennylp | enhancement | normal | release-2.x | pjsua-lib | ||||||||
Description |
Create SWIG interface for creating Java, Python, C#, etc bindings for PJSUA-LIB. |
|||||||||||||
#2121 | SWIG exception in mapping an invalid C++ enum value to Java | bennylp | defect | normal | release-2.8 | pjsua2 | ||||||||
Description |
Sample exception message: Swig::DirectorException: No enum class org.pjsip.pjsua2.pjsip_tsx_state_e with value 377750600 SWIG requires C++ enum data to have a valid value so it can be correctly mapped to Java enum object. Unfortunately some PJSUA2 C++ objects do not initialize basic type data member (including enum) in its constructor and such uninitialized data member may have an invalid value, so when SWIG needs to map an invalid C++ enum value to Java, exception occurs. Kazuhiko Yoneda for the report and the patch. |
|||||||||||||
#2219 | SWIG exception in mapping an invalid C++ enum value to Java (continuation of #2121) | nanang | defect | normal | release-2.10 | pjsua2 | ||||||||
Description |
This is a continuation of #2121. There has been a report which is suspected to be similar issue as described in the above ticket. So we decided to initialize any enum fields in PJSUA2 objects (except ones for callbacks which should be initialized by the callbacks). |
|||||||||||||
#810 | Samples is always built (got to do with the rule in the Samples-vc.mak) | bennylp | defect | normal | release-1.2-QA | applications | ||||||||
#876 | Second call fails to open the sound device event when --null-audio is set | bennylp | defect | normal | release-1.3 | pjsua-lib | ||||||||
Description |
When --null-audio option is given to pjsua (equal to calling pjsua_set_null_snd_dev() PJSUA-LIB API), the second call will fail because PJSUA-LIB is trying to query the sound device. This only happens when there is no sound device installed in the system. |
|||||||||||||
#698 | Segfault when calling pjmedia_transport_srtp_create() with pjmedia_srtp_setting set to NULL (thanks Ruud Klaver for the report). | nanang | defect | normal | release-1.1 | pjmedia | ||||||||
#700 | Segfault when calling pjmedia_transport_srtp_create() with pjmedia_srtp_setting set to NULL (thanks Ruud Klaver for the report). | nanang | defect | normal | release-1.0.2 | pjmedia | ||||||||
Description |
This is duplicate of ticket #698 for the 1.0 branch. |
|||||||||||||
#308 | Selective STUN authentication for STUN failure responses | bennylp | task | normal | release-0.7.0 | pjnath | ||||||||
Description |
Not all STUN failure responses can be authenticated, see this link for discussion: http://www1.ietf.org/mail-archive/web/behave/current/msg02312.html |
|||||||||||||
#287 | Selective authentication for STUN error responses | bennylp | defect | normal | release-0.7.0-rc2 | pjnath | ||||||||
Description |
When STUN request include MESSAGE-INTEGRITY attribute, the response (success or error) MUST be authenticated, according to RFC 3489bis-06. Some responses however cannot be authenticated, since by definition they cannot contain MESSAGE-INTEGRITY. This currently is not in RFC 3489-bis, so I decided to disable authentication for the following error codes until the draft is clear about it: 401 (Unauthorized) 432 (Missing Username) 434 (Missing Realm) 436 (Unknown Username) 431 (Integrity Check Failure) |
|||||||||||||
#1755 | Send ACK for incoming 200/INVITE even after call is disconnected | bennylp | defect | normal | release-2.3 | pjsip | ||||||||
Description |
Scenario:
In this case, A should send ACK to complete the re-INVITE transaction, as described in rfc5407 appendix-B: As is mentioned above, the dialog and the transaction behave independently each other. Therefore, the transaction handling has to be continued even though the dialog has moved to the Terminated state. Thanks Itay Bianco for the report. |
|||||||||||||
#13 | Send RTCP RR if stream is not transmitting RTP packets | bennylp | enhancement | normal | release-0.6.0 | pjmedia | ||||||||
Description |
The RTCP framework should send RTCP RR when it's not transmitting anything. Currently the transmission of RTCP was driven by transmission of RTP, so when an endpoint is only actively listening (and not sending anything, although stream direction is send-recv), then no RTCP packet is sent. |
|||||||||||||
#546 | Send RTCP SDES and RTCP BYE | nanang | enhancement | normal | release-0.9.0 | pjmedia | ||||||||
Description |
Send RTCP SDES containing CNAME when stream is created, and RTCP BYE when stream is destroyed. |
|||||||||||||
#1607 | Send UDP keep-alive to original request address if response comes from different address | bennylp | defect | normal | release-2.1 | pjsua-lib | ||||||||
Description |
For UDP, the spec says that server MUST send the response from the same address where the request was received (RFC 3581 Section 4). However, in case the server is violating this spec, PJSIP would send the UDP keep-alive to the source address of the response instead. This ticket fixes this behavior so that the keep alive will be sent to the original request address instead. Thanks Fredrik Hansson for the report. |
|||||||||||||
#995 | Send un-PUBLISH when pjsua_acc_set_registration(FALSE) is called (thanks Johan Lantz for the suggestion) | bennylp | defect | normal | release-1.6 | pjsua-lib | ||||||||
#1530 | Sending ACK is reported with wrong pjsip_event info | bennylp | defect | normal | release-2.0.1 | pjsip | ||||||||
Description |
When pjsip_inv_session sends an ACK, incorrect pjsip_event is emitted, containing the RX data event of the 2xx/OK response instead. |
|||||||||||||
#2227 | Sending ACK not retrying next server | nanang | defect | normal | release-2.10 | pjsip | ||||||||
Description |
When ACK target is a hostname and it is resolved to multiple IP addresses (in reported scenario, IPv6 and IPv4 addresses), only the first IP address will be used, and it won't retry with other IP addresses when it fails. This is because stateless_send_transport_cb() function in sip_util.c for some reason will stop retrying next server if there is no sending callback specified. While the ACK sending does not define any callback, note that sending ACK does not use transaction mechanism. Thanks to Anthony Alba for the report and the analysis. |
|||||||||||||
#1936 | Sending REGISTER always fails after losing network connection | bennylp | defect | normal | release-2.5.5 | pjsip | ||||||||
Description |
Reported that there is a case that sending REGISTER will always fail because regc->has_tsx value is always equal to PJ_TRUE and it is never changed, here is the detail:
Thanks Fredrik Hansson for the report and the fix. |
|||||||||||||
#1721 | Sending new re-INVITE after the on-progress re-INVITE transaction is terminated. | bennylp | enhancement | normal | release-2.2 | pjsip | ||||||||
Description |
App needs to be able to use on_call_tsx_state callback to monitor the on going re-INVITE and send immediate re-INVITE. |
|||||||||||||
#341 | Sending raw data with PJSIP transport | bennylp | enhancement | normal | release-0.8.0 | pjsip | ||||||||
Description |
Add PJSIP API to send raw data using PJSIP transport. |
|||||||||||||
#1547 | Separating max packet size settings for incoming and outgoing in pjmedia | nanang | defect | normal | release-2.1 | pjmedia | ||||||||
Description |
Some UAs may send video RTP packet with size > PJMEDIA_MAX_MTU, this will cause the packet get discarded. A simple solution will be increasing PJMEDIA_MAX_MTU, however this will cause our outgoing RTP packet size will get increased too, which will introduce another issue, e.g: when sending video to other UAs that expects 'normal' MTU. So outgoing and incoming packet size settings should be separated. Thanks Arkadiusz Wronski for the report. |
|||||||||||||
#1463 | Separation of PJMEDIA specific implementation to support third party media stack/library in PJSUA-LIB | bennylp | enhancement | normal | release-2.0-rc | pjsua-lib | ||||||||
Description |
This ticket implements support for integrating third party media stack into PJSUA-LIB. By following these steps below, application can use third party media stack to perform audio and video functionality while still making use of the full SIP, NAT, and security (including SRTP) features provided by PJSUA-LIB API. By disabling PJMEDIA, the following features will not be available in PJSUA-LIB (unless the equivalent implementation is provided by the third party media library):
The following features will still be available:
Follow these steps to integrate third party media library with PJSUA-LIB:
|
|||||||||||||
#954 | Session Timer fixes | bennylp | defect | normal | release-1.5 | pjsip | ||||||||
Description |
Known issues:
|
|||||||||||||
#1722 | Session timers refresher needs to send BYE if it never gets a response to the session refresh request | bennylp | defect | normal | release-2.2 | pjsip | ||||||||
Description |
From rfc4028: At some point before the expiration, the currently active refresher generates a session refresh request, which is a re-INVITE or UPDATE [3] request. If the refresher never gets a response to that session refresh request, it sends a BYE to terminate the session. Similarly, if the other side never gets the session refresh request before the session expires, it sends a BYE. At the moment, the BYE message is only sent when refresher's UPDATE response is 408/481. |
|||||||||||||
#1879 | Set Video Codec Param using PJSUA2 API | bennylp | enhancement | normal | release-2.5 | pjsua2 | ||||||||
Description |
This ticket will add support to set video codec param using PJSUA2 API. Example of use: /* MyApp.ep is the Endpoint instance */ VidCodecParam codecParam = MyApp.ep.getVideoCodecParam("H264"); MediaFormatVideo newFormat = codecParam.getEncFmt(); newFormat.setFpsNum(30); newFormat.setFpsDenum(1); codecParam.setEncFmt(newFormat); MyApp.ep.setVideoCodecParam("H264", codecParam); |
|||||||||||||
#501 | Set master port worker thread priority to highest by default | nanang | enhancement | normal | release-0.9.0 | pjmedia | ||||||||
Description |
Unless thread priority of master port is set to a high priority, media flow controlled by master port is easily disturbed, for example when one switch the focus to other application window. So with this ticket, master port worker thread priority is set to highest value by default. If this is not desired, application can specify PJMEDIA_CLOCK_NO_HIGHEST_PRIO flag when creating the master port (or the clock object). |
|||||||||||||
#1171 | Setting default codec parameter issues (thanks Arie Velthoen for the report) | nanang | defect | normal | release-1.8.10 | pjmedia | ||||||||
Description |
The original report can be found here. Issues reported:
|
|||||||||||||
#1384 | Setting to control HTTP client source port range (thanks Johan Lantz for the patch) | bennylp | enhancement | minor | release-1.12 | pjlib-util | ||||||||
Description |
Setting to control the port range which the HTTP client should bind to. Useful for traversing strict firewall rule. |
|||||||||||||
#1510 | Sharing and assertion problem with ALSA device | nanang | defect | normal | release-1.14.2 | pjmedia | ||||||||
Description |
As reported by Igor Kravets in the mailing list, there has been sharing and assertion problems with the native ALSA support in pjsip. The assertion looks like something like this: ../src/pjmedia/conference.c:1795: get_frame: Assertion `frame->size == conf->samples_per_frame * conf->bits_per_sample / 8' failed. Thank you Dan Arrhenius for the fix. |
|||||||||||||
#540 | Shutdown the sound device when the media flow is idle | nanang | defect | major | release-0.9.0 | pjsua-lib | ||||||||
Description |
Currently the sound device is kept open in PJSUA-LIB even when nothing is flowing in the bridge. This is not too friendly for other applications since they may not be able to use the sound device when pjsua is running, but also it drains up battery power in mobile devices. |
|||||||||||||
#1325 | Signature for pjmedia objects | nanang | enhancement | normal | release-2.0-alpha | pjmedia | ||||||||
Description |
PJMEDIA object will be given object signature. This is needed for the event framework so that application can at least distinguish the sender of the event. |
|||||||||||||
#676 | Silence detector may produce disturbing low level noise (thanks Olle Frimanson for the report). | nanang | enhancement | minor | release-1.0.1 | pjmedia | ||||||||
Description |
Silence detector seems to switch a lot when level is close to maximum silence level. |
|||||||||||||
#537 | Simple DNS Server class (for testing) | bennylp | enhancement | normal | release-0.9.0 | pjlib-util | ||||||||
Description |
A simple DNS server class with DNS A and SRV records support, mostly to be used by various internal test units. |
|||||||||||||
#1327 | Simple GUI for video API testing | nanang | enhancement | major | release-2.0-alpha | applications | ||||||||
Description |
Develop a really simple GUI app as proof of concept that the video API works |
|||||||||||||
#1018 | Simple HTTP client implementation (thanks Johan Lantz for the suggestion) | bennylp | enhancement | normal | release-1.6 | pjlib-util | ||||||||
Description |
A simple HTTP client implementation will make way for XCAP client implementation. SpecificationsAssorted specifications:
|
|||||||||||||
#261 | Simple PJSUA based application for Symbian | bennylp | task | normal | Symbian-trunk-integration | applications | ||||||||
#2133 | Skip IPv4 STUN resolution if account is using NAT64 | bennylp | enhancement | normal | release-2.8 | pjsua-lib | ||||||||
Description |
If account is enabling NAT64 in its config, trying IPv4 STUN resolution is not necessary and may cause unwanted delay. Note: the fix in this ticket doesn't affect STUN resolution that is not initiated by an account or a call. |
|||||||||||||
#266 | Skip \x00 packets | bennylp | defect | normal | Symbian-trunk-integration | pjsip | ||||||||
#555 | Small but otherwise incompatible changes to PJSUA instant messaging callbacks | bennylp | enhancement | normal | release-1.0-rc1 | pjsua-lib | ||||||||
Description |
Modifications below to make the API more usable:
|
|||||||||||||
#510 | Smaller PTIME for L16 codecs | nanang | defect | minor | Known-Issues-and-Ideas | pjmedia | ||||||||
Description |
Currently the PTIME for L16 codecs are set to either 10 or 20 ms. There are few problems with this:
Some changes that can be done to fix this:
|
|||||||||||||
#1568 | Smarter media re-initialization on call refresh with SDP re-offer/answer | bennylp | enhancement | normal | release-2.1 | pjsua-lib | ||||||||
Description |
Always re-initializing the media on call refresh can be annoying, especially for a call with video as video re-init may take several seconds. Thanks Matynka Bartosz for the feedback. |
|||||||||||||
#83 | Socket abstractions for IP TOS options | bennylp | enhancement | normal | release-0.5.10 | pjlib | ||||||||
Description |
Add socket constants abstractions for socket TOS options so that application can set TOS in portable manner. Thanks Roman Puls. |
|||||||||||||
#1371 | Soft deadlock when application query call info of other call inside a callback (Thanks Marcus Froeschl for the report) | bennylp | defect | normal | release-1.12 | pjsua-lib | ||||||||
Description |
A soft deadlock will occur in the following scenario:
|
|||||||||||||
#874 | Some codecs don't maintain timestamp (Thanks Roman Imankulov for the patch) | nanang | defect | normal | release-1.3 | pjmedia | ||||||||
Description |
The corresponding ticket for 1.0.x branch is ticket #875. |
|||||||||||||
#875 | Some codecs don't maintain timestamp (Thanks Roman Imankulov for the patch) | nanang | defect | normal | release-1.0.3 | pjmedia | ||||||||
Description |
This is a duplicate of ticket #874 for 1.0.x branch. |
|||||||||||||
#978 | Some noise in APS G.729 decoding/playback on some devices. | nanang | defect | normal | release-1.5 | pjmedia-audiodev | ||||||||
Description | ||||||||||||||
#1364 | Some support for forking in Reliable Provisional Response (100rel) module | bennylp | defect | normal | release-1.12 | pjsip | ||||||||
Description |
Currently the 100rel module (sip-100rel.c) does not handle forking. This caused problem such as no PRACK is sent because the second reliable provisional response contains RSeq not matching previous RSeq. |
|||||||||||||
#1515 | Sound device is not closed when the call fails to connect (thanks Régis Montoya for the report) | bennylp | defect | normal | release-2.0.1 | pjsua-lib | ||||||||
Description |
The sound device is opened when call is initiated. When the call fails to connect, the sound device is not closed by the library. |
|||||||||||||
#674 | Special treatment for AMR in SDP negotiation. | nanang | enhancement | normal | release-1.0.1 | pjmedia | ||||||||
Description |
AMR negotiation requires to have these params exactly matched: octet-align, crc, robust-sorting, interleaving, and channels. |
|||||||||||||
#466 | Speex decoder set decoded frame size incorrectly | nanang | defect | normal | release-0.9.0 | pjmedia | ||||||||
Description |
It was hardcoded to 320 bytes (160 samples) regardless what mode the speex operated (NB, WB, UWB). This worked well since the get_frame() of stream did't modify the frame size (to the returned frame size from speex decoder). But, the new jitter buffer, which does the decoding, suffers from this wrong decoded size. |
|||||||||||||
#473 | Speex version upgrade and handling multiple speex audio frames | nanang | defect | major | release-0.9.0 | pjmedia | ||||||||
Description |
Upgrade Speex to latest version (may require large modification due to new Speex library organization). Probably we should have autoconf option to allow using external speex library as well. Re multiple frames: PJMEDIA can receive and decode multiple audio frames in one RTP packet, the sending side currently seems to be broken. It can send multiple G.711 frames okay, but from last testing, sending/receiving multiple Speex frames doesn't work. |
|||||||||||||
#437 | Stack overflow in ICE on Symbian phone target | bennylp | defect | normal | release-0.9.0 | pjnath | ||||||||
Description |
Reduce the stack usage since it caused stack overflow on Symbian phone with default stack size (8KB). Also reduce the pool usage (avoid to use 4000 bytes blocks) and make the pool size configurable. |
|||||||||||||
#2097 | Start read operation in UDP media transport in pjmedia_transport_media_start() | nanang | enhancement | normal | release-2.8 | pjmedia | ||||||||
Description |
Currently when UDP media transport is created and attached, read operation is started immediately. Unfortunately, when remote starts sending RTP packet in the beginning of a call (especially when local is the SDP offerer), local stream may not be ready yet, so some initial inbound RTP packets will be read by the transport but then simply discarded as no stream is attached to the transport yet. This ticket will change the behavior so read operation is started when pjmedia_transport_media_start() is called. So any incoming packet will be buffered by OS until read operation is started. This should be able to reduce missing video keyframe packets (or generally any initial RTP packets) as pjmedia_transport_media_start(), which starts read operation, is called after stream is instantiated. |
|||||||||||||
#1588 | State PJSIP_INV_STATE_NULL is called after call has been disconnected | bennylp | defect | normal | release-2.1 | pjsua-lib | ||||||||
Description |
When sending initial INVITE fails due to network failure (for example, setting iPhone iOS to AirPlane mode, or network is down), the on_call_state() callback will be called twice: first with PJSIP_INV_STATE_DISCONNECTED, then followed by PJSIP_INV_STATE_NULL. This may cause unexpected state transition in the application. With pjsua for example, it causes the call to be set as active call when there is no other call. Thanks Kees van der Bent for the report. |
|||||||||||||
#1658 | Stop media endpoint's worker threads first when destroying media subsystem | nanang | enhancement | normal | release-2.2 | pjmedia | ||||||||
#1089 | Store remote capability info in the dialog | bennylp | enhancement | normal | release-1.7 | pjsip | ||||||||
Description |
Sample cases:
|
|||||||||||||
#1036 | Stray timer may be registered by SIP TCP and TLS transport in destroy routine, which could crash the program on Symbian (thanks Tamàs Solymosi for the report) | bennylp | defect | normal | release-1.6 | pjsip | ||||||||
Description |
When TCP/TLS transport is being destroyed, they cancel all pending transmissions on the transport. This cancellation may in turn cause pjsip_transport_dec_ref() to be called, which may register an (stray) idle timer for the transport. Since the transport pool will be released right after that, the timer entry pointer will be invalid and it will crash the program if the timer heap is trying to access the entry. This scenario could only happen during program shutdown sequence, as the (hard) destroy routine must not be called on normal situation (the graceful shutdown must be called instead), and this only matters in Symbian since only Symbian timer heap has stray timer cleanup routine, and only if ticket #1035 is not applied. |
|||||||||||||
#248 | Strayed socket signal in Symbian | bennylp | defect | normal | Symbian-trunk-integration | pjlib | ||||||||
Description |
We have three options here: 1) SetActive(); RSocket.Recv(); 2) RSocket.Recv(); SetActive(); 3) RSocket.Recv(); if (iStatus == KRequestPending) SetActive(); The correct option seems to be no 2. |
|||||||||||||
#1027 | Stream sends no audio when using passthrough codecs and bypassing audio switch board (Thanks Yuri Maliy for the report) | nanang | defect | normal | release-1.6 | pjmedia | ||||||||
Description |
The report can be found here. |
|||||||||||||
#1286 | Stride issue in dshow renderer (Video Mixing Renderer) | ming | defect | minor | release-2.0-alpha | pjmedia-videodev | ||||||||
#1350 | Stuck in SDL when destroying video window if the parent window is not closed | ming | defect | normal | release-2.0-rc | pjmedia-videodev | ||||||||
Description |
Tested on Windows. |
|||||||||||||
#405 | Subscribe to buddy presence upon receiving incoming subscription from the buddy | bennylp | enhancement | normal | release-0.8.0 | pjsua-lib | ||||||||
Description |
To reduce the number of SUBSCRIBE's sent to network (to refresh buddy's subscription when previous SUBSCRIBE failed), PJSUA-LIB will now initiate outgoing presence subscription when it receives incoming SUBSCRIBE from the buddy. |
|||||||||||||
#2226 | Subscription gets terminated when NOTIFY in call transfer is challenged | nanang | defect | normal | release-2.10 | pjsip | ||||||||
Description |
When subscription is established by call transfer (or REFER), the authentication challenge is handled by invite module, so when evsub module tries to process the challenge (again), it will fail and subscription will be terminated. Similar issue was reported in #2164, however the patch does not work if the subscription is established by call transfer. Thanks to Mikhail Morozov for the report. |
|||||||||||||
#2164 | Subscription may get terminated when NOTIFY is challenged | bennylp | defect | normal | release-2.9 | pjsip | ||||||||
Description |
Based on the RFC 3265:
However, our current implementation terminates the subscription for ALL non-200 with no retry-after, even for 401/407, which shouldn't be the case. |
|||||||||||||
#432 | Support 3GPP refresh interval rule | bennylp | enhancement | minor | Known-Issues-and-Ideas | pjsip | ||||||||
Description |
The registration and SUBSCRIBE refresh interval is calculated differently in IMS. According to 3GPP TS 24.229 specification: The section 5.1.1.4 says: "Unless either the user or the application within the UE has determined that a continued registration is not required the UE shall reregister an already registered public user identity either 600 seconds before the expiration time if the previous registration was for greater than 1200 seconds, or when half of the time has expired if the previous registration was for 1200 seconds or less" |
|||||||||||||
#1991 | Support ALSA audio device volume setting | nanang | enhancement | minor | release-2.7 | pjmedia-audiodev | ||||||||
Description |
We can adjust audio device volume using ALSA mixer, such as shown here. However, more study is needed before it's implemented:
|
|||||||||||||
#268 | Support ARMCC and GCCE compilers for Symbian | bennylp | task | normal | Symbian-trunk-integration | pjlib | ||||||||
#2018 | Support DTLS for SRTP keying | nanang | enhancement | normal | release-2.7 | pjmedia | ||||||||
Description |
DTLS-SRTP is an SRTP keying method that uses media channel for SRTP key negotiation which is secured using TLS. As SRTP key negotiation is done in media channel, confidentiality in SIP signaling is not required, but it needs SIP message integrity for authentication. Peer authentication is done by matching TLS certificate fingerprint (sent via SIP signaling) to actual TLS certificate received in DTLS-SRTP handshake (sent via media channel), so SIP message integrity will guarantee that the TLS certificate fingerprint is not altered from end to end. DTLS handshake in DTLS-SRTP is basically very similar to TLS handshake, it is just done on UDP socket so it has retransmission mechanism and using a TLS extension for attaching SRTP keying materials (e.g: SRTP crypto profile and key). Specification
How to buildRequirement
Build
Sample code for PJSUA appUpdate: sample codes below have been deprecated in 2.8, please check #2100 for more info. In generating SDP answer, SRTP will automatically detect and match the keying method to the SDP offer's, e.g: if remote sends offer using DTLS-SRTP, we will start DTLS nego immediately and answer using DTLS-SRTP too. However, in generating SDP offer, SRTP will use SDES by default. So to generate SDP offer using DTLS-SRTP, application needs to implement PJSUA callback on_create_media_transport_srtp and sets the priority of DTLS-SRTP higher than SDES from that callback, e.g: void on_create_media_transport_srtp(pjsua_call_id call_id, unsigned media_idx, pjmedia_srtp_setting *srtp_opt) { srtp_opt->keying_count = 2; srtp_opt->keying[0] = PJMEDIA_SRTP_KEYING_DTLS_SRTP; srtp_opt->keying[1] = PJMEDIA_SRTP_KEYING_SDES; } To enable only one keying method at run-time, just set keying_count to 1 and keying[0] to the preferred keying method from the same PJSUA callback, e.g: void on_create_media_transport_srtp(pjsua_call_id call_id, unsigned media_idx, pjmedia_srtp_setting *srtp_opt) { srtp_opt->keying_count = 1; srtp_opt->keying[0] = PJMEDIA_SRTP_KEYING_DTLS_SRTP; /* enable only DTLS-SRTP */ } LimitationThis ticket will only implement the core part of DTLS-SRTP, i.e: SRTP key negotiation via DTLS, while DTLS-SRTP itself also depends on other features that we haven't supported yet:
Behavior change
Reference
|
|||||||||||||
#2036 | Support DTMF via SIP INFO | bennylp | enhancement | normal | release-2.8 | pjsua-lib | ||||||||
Description |
Although there seem to be no standard that describes the feature specification clearly, it seems to be widely used. Having it implemented in the library should be practical, especially for PJSUA2 apps (note that there is already an implementation in pjsua sample app using PJSUA API). Thanks to David Wichter for the suggestion. Considering that this is a proprietary feature (see here) and it may not be desirable on some system, e.g: SIP INFO message burst may introduce congestion on the network and may cause load spike on SIP server, the feature should be configurable and by default it is disabled. This ticket will introduce pjsua_dtmf_method to specify the DTMF sending method.
PJSUA API
To get the notification of incoming DTMF:
PJSUA2 API
To get the notification of incoming DTMF: |
|||||||||||||
#1897 | Support Ffmpeg 2.8 | nanang | enhancement | normal | release-2.5 | pjmedia | ||||||||
Description |
This ticket will add support to FFmpeg 2.8 with these general modifications:
Application may keep using older FFmpeg version, i.e: the versions that are already supported before the changes in this ticket, by defining macro PJMEDIA_USE_OLD_FFMPEG in the build, e.g: adding this line in config_site.h: #define PJMEDIA_USE_OLD_FFMPEG Note: configure script (of GNU autoconf build system) will automatically add this macro when it detects that older FFmpeg version is being used. |