Custom Query (2195 matches)
Results (1801 - 1900 of 2195)
Ticket | Summary | Owner | Type | Priority | Milestone | Component |
---|---|---|---|---|---|---|
#1199 | Support G722 with 10ms packet length (thanks Erik Waling for the report) | nanang | enhancement | normal | release-1.10 | pjmedia |
Description |
There is G722 implementation that uses 10ms packet length. As currently the pjmedia G722 wrapper expects G722 packet length to be (multiple of) 20ms, the incoming 10ms G722 packets cannot be parsed properly, which leads to:
|
|||||
#1180 | Support G726 RTP packetization variants | nanang | enhancement | normal | Known-Issues-and-Ideas | pjmedia |
Description |
There is MIME subtype AAL2-G726-xx for the packetization variants |
|||||
#1200 | Support IPP version 7.0 | nanang | enhancement | normal | release-1.10 | pjmedia |
#1926 | Support IPv6 address resolution | bennylp | enhancement | normal | release-2.5.5 | pjsua-lib |
Description |
This ticket will enable PJSUA application to resolve target hostname to IPv6 address. Update: Ticket #1927 has been completed, PJLIB-UTIL DNS resolver now supports IPv6 for DNS SRV and DNS A/AAAA resolutions. So the following specifications should be applicable to PJSUA-LIB with and without nameserver settings. Account transport typeThis new field is added to PJSUA account structure (in pjsua internal), it represents account transport preference, i.e: local account will always have specific transport type (as it is created with transport ID param), and normal account will have specific transport type only if it is bound to specific transport, i.e: via pjsua_acc_config.transport_id. Contact generation
SIP transport
MediaMedia transport is independent from SIP, currently it will simply follow the account setting, i.e: pjsua_acc_config.ipv6_media_use. Caveat
|
|||||
#1932 | Support OpenSSL 1.1.0 | bennylp | task | normal | release-2.6 | common |
Description |
As described here, we are expecting source compatibility break in this new major version. Unfortunately AES-GCM feature in libSRTP 1.5.4 (see ticket #1943) has compability issue with OpenSSL 1.1.0, so AES-GCM will be disabled when OpenSSL version being used is 1.1.0 or later. If application wants both (OpenSSL 1.1.0 and AES-GCM), it could use external libSRTP (development version seems to support OpenSSL 1.1.0). Also just created #1993 for reminder to update libSRTP when a new version is released. |
|||||
#2197 | Support TURN extensions for TCP allocations (RFC 6062) | nanang | enhancement | normal | release-2.9 | pjnath |
Description |
This ticket will enable TURN client to establish TCP connection with the client's peers: client <--[tcp]--> TURN server <--[tcp]--> peer The RFC 6062 describes two modes: open outgoing TCP connection to peer and accept incoming TCP connection from peer, this ticket implements only the latter mode, i.e: accept mode. General flow for accept mode:
How to useTURN socket application needs to do the following:
Thank you Guillaume Roguez and Sébastien Blin from Savoir-faire Linux for the patch. |
|||||
#1833 | Support bdSound's bdiMad v2.0.0 | nanang | enhancement | normal | release-2.4 | pjmedia-audiodev |
Description |
This ticket will add support to bdSound's bdiMad v2.0.0. Thanks to Francesco Zocchi for the patch. |
|||||
#678 | Support fail-over to secondary STUN server if resolution fails | bennylp | enhancement | normal | Known-Issues-and-Ideas | pjsua-lib |
Description |
Currently the PJSUA-LIB-based application will fail if STUN resolution fails, and this seems brittle. We should have secondary STUN options and fail-over to the secondary if the resolution fails. |
|||||
#819 | Support for 16Khz and stereo in APS | bennylp | defect | normal | release-1.2-QA | applications |
Description |
APS currently only supports 8Khz mono, due to the use of PCMU transcoding |
|||||
#396 | Support for 3GPP/IMS digest AKA (AKAv1-MD5) SIP authentication | bennylp | enhancement | normal | release-0.8.0 | pjsip |
Description |
Digest AKA is utilized by 3GPP/IMS, and is specified in RFC 3310: Hypertext Transfer Protocol (HTTP) Digest Authentication Using Authentication and Key Agreement (AKA). |
|||||
#1931 | Support for AVFoundation on Mac (due to deprecated QTKit) | ming | enhancement | normal | release-2.5.5 | pjmedia-videodev |
Description |
Starting in Mac OS X 10.9, QTKit is deprecated. To disable QT video capture device, you can set PJMEDIA_VIDEO_DEV_HAS_QT to 0. |
|||||
#614 | Support for Alaw/ULaw format in WAV player and recorder objects | nanang | enhancement | normal | release-1.0-rc3 | pjmedia |
Description |
Add support for writing and reading WAV files encoded as 8-bit A-law/U-law. |
|||||
#1940 | Support for Android NDK r12 and Android N | bennylp | task | normal | release-2.6 | applications |
Description |
Currently using android ndk r12 will fail when executing configure-android due to:
|
|||||
#1023 | Support for CELT codec | nanang | enhancement | normal | Known-Issues-and-Ideas | pjmedia |
Description | ||||||
#857 | Support for ICE keep-alive with Binding indication | bennylp | defect | normal | release-1.3 | pjnath |
#1227 | Support for Intel IPP7 | nanang | enhancement | normal | release-2.0-dev | pjmedia |
Description |
Backport of ticket #1200 to the 2.0-dev branch. |
|||||
#583 | Support for Intel Integrated Performace Primitives (IPP) codecs | nanang | enhancement | normal | release-1.0-rc1 | pjmedia |
Description |
The IPP codecs to be supported are based on IPP samples speech codec implementations, e.g: G.729, G.723.1, G.726, G.728, G.722.1, AMR. |
|||||
#1776 | Support for Libyuv | nanang | enhancement | normal | release-2.3 | pjmedia |
Description |
Support for libyuv library which provides YUV scaling and conversion functionality (https://chromium.googlesource.com/libyuv/libyuv/). Requirement
This implementation will provide video scaling and conversion functionality. Below are the steps to use the codec: For GNU targets
For iOS targets
Notes for iOS targets:
For Android targets
For Visual Studio
|
|||||
#1162 | Support for MeeGo platform | bennylp | enhancement | normal | Known-Issues-and-Ideas | common |
#1388 | Support for OpenCORE AMR-NB codec (thank you Dan Arrhenius for the contribution!) | nanang | enhancement | normal | release-1.12 | pjmedia |
Description |
The updated OpenCORE AMR instructions are in Using OpenCORE AMR NB and WB Codecs |
|||||
#1608 | Support for OpenCORE AMR-WB codec | nanang | enhancement | normal | release-2.1 | pjmedia |
Description |
The updated OpenCORE AMR instructions are in Using OpenCORE AMR NB and WB Codecs |
|||||
#1758 | Support for OpenH264 v1.0.0 codec | nanang | enhancement | normal | release-2.3 | pjmedia |
Description |
IMPORTANT: Starting from release 2.6, OpenH264 1.0 is no longer supported as we move to OpenH264 version 1.6.0 instead. For updated instructions, please see ticket #1947. Support for the open source implementation of H.264 codec from http://www.openh264.org. Requirement:
Implementation features:
Notes:
Below are the steps to use the codec: For GNU targets:
For Visual Studio:
For iOS:
For Android:
|
|||||
#1947 | Support for OpenH264 v1.6.0 codec | nanang | enhancement | normal | release-2.6 | pjmedia |
Description |
Support for the open source implementation of H.264 codec from http://www.openh264.org. Requirement:
Implementation features:
Notes:
Below are the steps to use the codec: For GNU targets:
For Visual Studio:
For iOS:
For Android:
|
|||||
#1904 | Support for Opus codec | nanang | enhancement | normal | release-2.5 | pjmedia |
Description |
Opus is a totally open, royalty-free, highly versatile audio codec. Opus is unmatched for interactive speech and music transmission over the Internet, but is also intended for storage and streaming applications. It is standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec. (From http://www.opus-codec.org) How to use:
Opus Codec Settings General codec settings for this codec such as VAD and PLC can be manipulated through the setting field in #pjmedia_codec_param (see the documentation of #pjmedia_codec_param for more info). For Opus codec specific settings, such as sample rate, channel count, bit rate, complexity, and CBR, can be configured in #pjmedia_codec_opus_config. The default setting of sample rate is specified in #PJMEDIA_CODEC_OPUS_DEFAULT_SAMPLE_RATE. The default setting of bitrate is specified in #PJMEDIA_CODEC_OPUS_DEFAULT_BIT_RATE. And the default setting of complexity is specified in #PJMEDIA_CODEC_OPUS_DEFAULT_COMPLEXITY. After modifying any of these settings, application needs to call #pjmedia_codec_opus_set_default_param(), which will generate the appropriate decoding fmtp attributes. Here is an example of modifying the codec settings: pjmedia_codec_param param; pjmedia_codec_opus_config opus_cfg; pjmedia_codec_mgr_get_default_param(.., ¶m); pjmedia_codec_opus_get_config(&opus_cfg); ... // Set VAD param.setting.vad = 1; // Set PLC param.setting.vad = 1; // Set sample rate opus_cfg.sample_rate = 16000; // Set channel count opus_cfg.channel_cnt = 2; // Set bit rate opus_cfg.bit_rate = 20000; ... pjmedia_codec_opus_set_default_param(&opus_cfg, ¶m); |
|||||
#950 | Support for QoS settings (TOS, DSCP, WMM, 802.1p) for sockets | bennylp | enhancement | normal | release-1.5 | pjlib |
Description |
Please see QoS for the detailed description. |
|||||
#1431 | Support for RFC 4169/Digest Authentication Using AKAv2 (thanks Alex Kolesnichenko for the patch) | bennylp | enhancement | normal | release-1.14 | pjsip |
Description |
Support for SIP AKAv2 digest authentication as specified by RFC 4169, replacing the existing implementation which seems to be based on the older draft. Thank you Alex Kolesnichenko for the patch! |
|||||
#513 | Support for RTCP XR | nanang | enhancement | normal | release-0.9.0 | pjmedia |
Description |
Some specs:
|
|||||
#2087 | Support for RTP and RTCP multiplexing | nanang | enhancement | normal | release-2.8 | pjmedia |
Description |
In line with our roadmap for WebRTC interoperability, as mentioned in this draft of Web Real-Time Communication (WebRTC) document: To reduce these costs and session set-up times, implementations are REQUIRED to support multiplexing RTP data packets and RTCP control packets on a single transport-layer flow. this ticket will add support for RTP and RTCP multiplexing, in accordance to RFC 5761. |
|||||
#982 | Support for SIP Message Summary/Message Waiting Indication (MWI, RFC 3842) | bennylp | enhancement | normal | release-1.5 | common |
Description |
Add support for Message Summary/Message? Waiting Indication (MWI, RFC 3842). Two types of MWI events are supported: MWI with subscription and unsolicited MWI (unsolicited means NOTIFY is sent without subscription). Specification:
New files in pjsip-simple:
Support in PJSUA-LIB:
PJSUA application:
To implement MWI support in your application:
|
|||||
#833 | Support for SIP Session Timer (RFC 4028) | bennylp | enhancement | normal | release-1.4 | pjsip |
Description |
Scope:
Limitations:
|
|||||
#5 | Support for SIP UPDATE (RFC 3311) and fix the offer/answer negotiation | bennylp | enhancement | normal | release-0.8.0 | pjsip |
Description |
SIP UPDATE is specified in RFC 3311 for updating session parameters without affecting dialog's state. Also to be fixed in this development is the offer/answer negotiation in pjsip's invite session, since with the support for UPDATE (and PRACK) there are more offer and answer scenarios to support. |
|||||
#1020 | Support for SIP outbound and Path extension (RFC 5626, RFC 3327) | bennylp | enhancement | normal | release-1.8.10 | pjsua-lib |
Description |
This ticket implements SIP outbound (RFC 5626), which is very useful in assisting NAT traversal, and Path extension (RFC 3327) which is required for the outbound extension. |
|||||
#61 | Support for SRTP | nanang | enhancement | major | release-0.9.0 | pjmedia |
Description |
Please see the documentation in SRTP wiki page. |
|||||
#398 | Support for Secret Rabbit Code (aka libsamplerate) sample rate conversionl library | bennylp | enhancement | normal | release-0.8.0 | pjmedia |
Description |
Please see third_party/build/samplerate/README.txt in pjsip distribution. |
|||||
#400 | Support for Service-Route header (RFC 3608) | bennylp | enhancement | normal | release-0.8.0 | pjsua-lib |
Description |
The Service-Route header is used for routing requests in 3GPP/IMS network. UAC would construct the initial route-set based on the URI listed in Service-Route headers. This support will be done in PJSUA-LIB level. |
|||||
#2253 | Support for VP8 and VP9 video codec | ming | enhancement | normal | release-2.10 | pjmedia-videodev |
Description |
Add support for VP8 and VP9 video codec using libvpx. During our testing, for the same bitrate, VP8 quality seems to be better than H264, but the encoding speed is noticeably slower. For VP9 however, as documented by several other sources as well [1][2], the encoding speed is much much slower, even though we have followed the recommended setting for "Real-time CBR Encoding and Streaming" from their doc here. Because of this, VP9 is currently by default disabled. To enable it, you can set PJMEDIA_HAS_VPX_CODEC_VP9 compile-time macro. [1] https://blogs.gnome.org/rbultje/2014/02/22/the-worlds-fastest-vp9-decoder-ffvp9/ [2] https://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=111334 Steps to use VP8/VP9
|
|||||
#1778 | Support for Voice Processing IO Audio Unit on Mac | nanang | enhancement | normal | release-2.10 | pjmedia-audiodev |
Description |
Voice Processing IO Audio Unit is considered to provide nice features such as echo cancellation & AGC, it is supported since Mac OSX 10.7. Our internal testing indicates that the EC performance is far more superior than any software EC. However, VPIO seems to work only with specific devices, thus requiring you to use the default/built-in audio I/O devices (i.e. it doesn't allow you to select your own devices). Application wishing to disable the hardware EC and use software EC instead can specify PJMEDIA_ECHO_USE_SW_ECHO in pjsua_media_config.ec_options (or MediaConfig.ecOptions in pjsua2). *Limitation: only works in mono. * |
|||||
#1888 | Support for WebRTC Acoustic Echo Cancellation | nanang | enhancement | normal | release-2.5 | pjmedia |
Description |
How to use WebRTC AECTo use WebRTC AEC, specify the value PJMEDIA_ECHO_WEBRTC in pjsua_media_config.ec_options (MediaConfig.ecOptions for PJSUA2), and specify the delay estimate for sound card and system buffers in pjsua_media_config.ec_tail_len (MediaConfig.ecTailLen for PJSUA2). WebRTC AEC's performance is very dependent on this delay calculation. A poor estimate, even by as little as 40ms, may affect the echo cancellation results greatly. Our WebRTC wrapper has enabled the delay agnostic feature, which will adjust the delay accordingly, however it may take some time (5-10s or more) for the AEC module to learn the optimal delay, thus a good initial estimate is necessary for good EC quality in the beginning of a call. The delay should be at least as much as frame time (by default, ptime is 20ms) + PJMEDIA_WSOLA_DELAY_MSEC (the default is 5ms). In PJSUA sample application, run it with the options --ec-opt=3 and specify the delay estimate in --ec-tail options. For example: ./pjsua --ec-opt=3 --ec-tail=30 Poor WebRTC EC qualityDisable PJMEDIA_WEBRTC_AEC_USE_MOBILE (set it to 0), then change the definition of SHOW_DELAY_METRICS in pjmedia/src/pjmedia/echo_webrtc.c to a non-zero value. For example, if you set to 250, with ptime 20ms, it will print the delay metrics stats every 5 seconds or so. #define SHOW_DELAY_METRICS 250 What you need to see in the log is the line: median=%d, std=%d, fraction of poor delays=%f Fraction of poor delays is a value between 0 and 1. The closer the value to 1, the poorer the EC quality. To improve the EC quality, here are a few things you can try:
Problem with EC quality on MacThe problem with echo on Mac and negative delay has been reported by several of our users and seems to be a known issue, as documented in Chrome M45 WebRTC Release Notes and Issue 3929: AEC on Mac can be put in non-causal state. Unfortunately, there's no known workaround as of now.
How to build WebRTCMacRefer to WebRTC development guide here. Then configure PJSIP with: ./configure --with-webrtc=/Users/me/webrtc-mac iOS (ARM)Refer to WebRTC development guide here. PJSIP's auto configuration will look for the library in out_ios/Release folder, so make sure you set the output dir properly when building !WebRTC export GYP_GENERATOR_FLAGS="output_dir=out_ios" ninja -C out_ios/Release Then configure PJSIP with: ./configure --with-webrtc=/Users/me/webrtc-iphone AndroidAndroid development is only supported on Linux (reference here), so if you use other platforms, you need to set up a Linux virtual machine. Alternatively, you can build the stripped down version of WebRTC instead, which will only build the required AEC module and its required dependencies. These steps below are tested on a Mac machine:
For other architectures(or custom WebRTC installation undetected by configure script) You can customize PJSIP's user.mak file, located inside PJSIP's work dir: export CFLAGS += -I"/Users/me/webrtc/src" -DPJMEDIA_HAS_WEBRTC_AEC=1 # Uncomment below if you want to use the lighter, mobile-optimized version # export CFLAGS += -DPJMEDIA_WEBRTC_AEC_USE_MOBILE=1 export LDFLAGS += -L/Users/me/webrtc/[WebRTC_lib_path] -laudio_processing -lcommon_audio -lsystem_wrappers # If you build for ARM architecture, uncomment below # export LDFLAGS += -laudio_processing_neon -lcommon_audio_neon # Or else, if you build for MIPS architecture, uncomment below # export LDFLAGS += -laudio_processing_neon -lcommon_audio_neon # Or else, if your machine supports SSE2, uncomment below # export LDFLAGS += -laudio_processing_sse2 Then rebuild PJSIP. Compatibility issueThere is a known compatibility issue with recent WebRTC version, so we'd recommend to use an older WebRTC version, e.g: about October 2015 version. |
|||||
#1680 | Support for Windows 64bit (Win64) | bennylp | enhancement | normal | release-2.2 | common |
Description |
Support for Win64, including Visual Studio projects. |
|||||
#679 | Support for adding and parsing optional lines in SDP | nanang | enhancement | normal | Known-Issues-and-Ideas | pjmedia |
Description |
Currently some SDP optional lines are ignored by parser and there is no API to add these lines, while some users may need it, e.g: Peter Cai needs 'b=' line |
|||||
#1161 | Support for adding custom headers in presence subscription requests | bennylp | enhancement | normal | release-1.10 | pjsua-lib |
Description |
Add support in PJSIP and PJSUA-LIB to allow applications to add custom headers in presence subscription requests. In PJSUA-LIB, this will be implemented with this new field in pjsua_acc_config: pjsip_hdr sub_hdr_list; |
|||||
#40 | Support for asymmetric encoding/decoding ptime | bennylp | defect | major | release-0.5.10 | pjmedia |
Description |
When remote has mode=20 and local has mode=30, local encounters error: 08:27:23.648 strm00F496F4 Codec encode() error: Invalid PCM frame length (PJMEDIA_CODEC_EPCMFRMINLEN) [err:220085] |
|||||
#1789 | Support for audio route setting on Android | nanang | enhancement | normal | release-2.x | pjmedia-audiodev |
Description |
Initial hints for the implementation can be found here for OpenSL and here for Android JNI. |
|||||
#2029 | Support for bcg729 | nanang | enhancement | normal | release-2.7 | pjmedia |
Description |
Support for G729 backend implementation from bcg729. Requirement:
Notes:
Below are the steps to use the codec: For GNU targets:
For Visual Studio:
For iOS:
For Android:
|
|||||
#1362 | Support for fast switching between devices | bennylp | task | normal | release-2.0-alpha2 | pjmedia-videodev |
Description |
Some platforms have an optimized method to switch video devices while the session is running without causing long delay or stuttering. For example, iPhone 4 allows switching between front and rear cameras while the capture session is running. This ticket implements a capability to allow video stream to switch it's underlying device while it is running. The capability should support both capture and render device. Reference: |
|||||
#1191 | Support for low latency audio I/O capability on iOS (thanks to Seth Hinze for the patch) | nanang | enhancement | normal | release-1.10 | pjmedia-audiodev |
Description |
On iOS, application can now set the audio I/O latency by using PJMEDIA_AUD_DEV_CAP_INPUT_LATENCY / PJMEDIA_AUD_DEV_CAP_OUTPUT_LATENCY, which can set the latency (via Audio Session's property kAudioSessionProperty_PreferredHardwareIOBufferDuration) to as low as 5 ms. |
|||||
#1070 | Support for multipart message bodies | bennylp | enhancement | normal | release-1.7 | common |
Description |
This ticket implements support for multipart message bodies, with the following specification. Multipart APINew APIs will be added to create, parse, and manipulate multipart message bodies. These APIs will reside in a new header file, <pjsip/sip_multipart.h>. Parser SpecificationMultipart message bodies in the incoming message will be parsed automatically. This is controlled by a new setting, PJSIP_AUTO_PARSE_MULTIPART, which default value is TRUE. If this setting is set to FALSE, the parser will revert to the old behavior, i.e. it will not automatically parse the multipart bodies in the incoming messages. Note that the parser still will not parse the content of the multipart bodies. For example, consider the following example: Content-Type: multipart/mixed;boundary=xxxxx --xxxxx Content-Type: application/sdp v=0 o=- 3483093653 3483093653 IN IPv4 10.0.0.1 s=pjmedia c=IN IP4 10.0.0.1 t=0 0 m=audio 4000 RTP/AVP 0 --xxxxx Content-Type: text/plain Hello please answer my call --xxxxx-- With the above message, the parser recognizes that the message contains multipart bodies, so it will parse it into a multipart instance. The multipart instance will contain two body parts, application/sdp and text/plain. The parser however, will not parse the parts further (the parsing of the application/sdp content will be done by the invite session).
Multipart Handling in PJSIP LayerThese currently only applies to the invite session (pjsip_inv_session). Incoming messages The session will recognize multipart message bodies in incoming messages, and be able to look for the appropriate part in the bodies. Outgoing messages There will be no change in outgoing message API. If higher layer components (e.g. PJSUA-LIB) want to send multipart body, it may alter the transmit buffer before sending the message.
Multipart Handling in PJSUA-LIBThe following will describe the following pattern that will be used in PJSUA-LIB to support multipart message bodies. Incoming messages There will be no change in the handling of incoming messages containing multipart bodies, as they will be processed by the underlying session (e.g. invite session). If application wants to extract the multipart content from an incoming message, it can inspect the message from the rdata or event parameter of the appropriate callback, recognize the multipart content from the message body's content type, and use the multipart API to extract the parts. Outgoing messages New fields will be added to the pjsua_msg_data: struct pjsua_msg_data { ... /** Content type of the multipart body */ pj_str_t multipart_ctype; /** List of multipart parts */ pjsip_multipart_part parts; }; If application wants to send multipart contents, it constructs the parts it intends to send, put them in the parts list above, and set the multipart_ctype appropriately (e.g. to "multipart/mixed"). |
|||||
#1146 | Support for multipart message bodies in incoming NOTIFY (thanks Johan Lantz for the report) | bennylp | enhancement | normal | release-1.8.5 | pjsip |
Description |
Add support for multipart message bodies in incoming NOTIFY requests. With this ticket, PJSIP will search for "application/pidf+xml" or "application/xpidf+xml" in the multipart bodies. This extends the general multipart support as implemented by #1070. |
|||||
#1019 | Support for multiple TCP listeners | bennylp | enhancement | normal | release-2.9 | pjsip |
#485 | Support for new TURN draft (TURN-07) and latest ICE draft (ICE-19) | bennylp | enhancement | major | release-0.9.0 | pjnath |
#468 | Support for non-looping playback in memory player | nanang | enhancement | trivial | release-0.9.0 | pjmedia |
#832 | Support for outbound proxy setting without using Route header | bennylp | enhancement | normal | release-1.3 | pjsip |
Description |
Although this is not recommended by the spec, some (IMS?) servers don't like the Route header, so it will be a good idea if PJSIP is able to route the request to the server without having to put Route header. One idea to accomplish this is to utilize an proprietary/internal parameter in the Route header (e.g. "hide" parameter). By using this, PJSIP would process the route set as usual, but the Route header will not be printed to the request. |
|||||
#533 | Support for parsing Retry-After header | bennylp | defect | normal | release-0.9.0 | pjsip |
Description |
Previously the parser only supports parsing simple integer value inside Retry-After header and will barf if the header contains comment. Thanks Samuel Vinson and Nigel Hsiung for reporting. |
|||||
#350 | Support for parsing quoted arguments in pjsua config file (thanks Scott M Ober) | bennylp | enhancement | normal | release-0.8.0 | applications |
Description |
Support parsing quoted arguments, for example: --add-buddy '"My Buddy" <sip:mybuddy@theirprovider.com>' The arguments can be quoted with both single or double quotes. Thanks Scott M Ober for the patch. |
|||||
#388 | Support for receiving RTP packet with no payload | bennylp | enhancement | normal | release-0.8.0 | pjmedia |
Description |
Some endpoint (SNOM SoftPhone in this case) sends RTP packets with no payload, presumably for keep-alive. This caused PJMEDIA to report PJMEDIA_RTP_EINLEN (Invalid RTP packet length) error, while it should be accepted. |
|||||
#476 | Support for receiving multiple codecs in SDP answer | bennylp | defect | normal | release-1.7 | pjsua-lib |
Description |
Currently pjmedia expects than callee sends RTP packet using the codec specified as the first in format list in SDP answer. This is not always the case of course, as SIP allows callee to send multiple codecs in the SDP answer and send RTP using any of it, so this is a perfectly valid scenario. |
|||||
#1204 | Support for refreshing audio device list (thanks to Seth Hinze for the patch) | nanang | enhancement | normal | release-1.10 | pjmedia-audiodev |
Description |
This feature adds support for pjmedia to refresh its audio device list, thereby allowing application to use/stop using audio devices that are plugged/unplugged when the application is running. Application would still need to do its own implementation to detect audio devices plug/unplug event. Then it can call the function pjmedia_aud_dev_refresh(). Note that this feature is not implemented on PortAudio, legacy, and all Symbian sound backends. |
|||||
#1312 | Support for refreshing video device list | ming | enhancement | normal | release-2.0-alpha | pjmedia-videodev |
Description |
This feature adds support for pjmedia to refresh its video device list, thereby allowing application to use/stop using video devices that are plugged/unplugged when the application is running. Application would still need to do its own implementation to detect video devices plug/unplug event. Then it can call the function pjmedia_vid_dev_refresh(). |
|||||
#851 | Support for regular nomination in ICE | bennylp | enhancement | normal | release-1.3 | pjnath |
#385 | Support for reliable provisional response (100rel, PRACK) | bennylp | enhancement | normal | release-0.8.0 | pjsip |
#377 | Support for sending RTCP RR | bennylp | enhancement | normal | release-0.8.0 | pjmedia |
Description |
This is duplicate of ticket #13 for trunk. 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. |
|||||
#1956 | Support for setting audio input source capability in Android JNI audio device | nanang | enhancement | normal | release-2.6 | pjmedia-audiodev |
Description |
Add PJMEDIA_AUD_DEV_CAP_INPUT_SOURCE capability (as an alias of PJMEDIA_AUD_DEV_CAP_INPUT_ROUTE) to support changing audio input source. The value of this capability is PJMEDIA_AUD_DEV_ROUTE_CUSTOM + the_desired_audio_input_source_constants. For example: // 6 is VOICE_RECOGNITION unsigned aud_source = PJMEDIA_AUD_DEV_ROUTE_CUSTOM | 6; pjmedia_aud_param_set_cap(¶m, PJMEDIA_AUD_DEV_CAP_INPUT_SOURCE, &aud_source); Valid audio input source values can be found in Android doc here. Thanks to Johan Lantz for the suggestion. |
|||||
#336 | Support for specifying custom presence status text in PJSIP SIMPLE | bennylp | enhancement | normal | release-0.8.0 | pjsip |
Description |
Currently PJSIP SIMPLE only supports basic online/offline status. |
|||||
#360 | Support for strict routed requests in proxy sample (thanks Helmut Wolf) | bennylp | enhancement | normal | release-0.8.0 | applications |
Description |
The proxy sample barf again when handling strict-routed request, this time because it thinks that the request is destined for it thus it rejects the request with 404/Not Found. |
|||||
#1139 | Support for tel: URI in PJSUA-LIB (thanks Johan Lantz for the suggestion) | bennylp | enhancement | normal | release-1.8.5 | pjsua-lib |
Description |
While PJSIP has been supporting tel: URI for a long time, support for this is currently disabled in PJSUA-LIB, mainly for cosmetic reason. This ticket enables tel: URI support in PJSUA-LIB, according to the following specification:
The unit tests shall be updated with above test scenarios. |
|||||
#1009 | Support for the latest Intel IPP version and using Intel IPP on MacOS Intel platform | nanang | enhancement | normal | release-1.6 | pjmedia |
Description |
The latest Intel IPP 6.1 has changed few things which is incompatible with some of our build scripts (especially Linux). Also since the latest IPP supports Mac OS X, add this as the supported IPP platform too. |
|||||
#1025 | Support for using alternate third party PortAudio, Speex, and GSM libraries | nanang | enhancement | normal | release-1.6 | pjmedia |
Description |
Add support for using different PortAudio, Speex, and/or GSM library installation than the one in the third_party directory. This is useful to make use of specific features in the system that have been configured in the installed library. For example, PortAudio library that comes with OpenBSD has support for sndio, which is not normally available/enabled in our PortAudio. New ./aconfigure options are to be implemented: --with-external-speex Use external Speex development files, not the one in "third_party" directory. When this option is set, make sure that Speex is accessible to use (hint: use CFLAGS and LDFLAGS env var to set the include/lib paths) --with-external-gsm Use external GSM codec library, not the one in "third_party" directory. When this option is set, make sure that the GSM include/lib files are accessible to use (hint: use CFLAGS and LDFLAGS env var to set the include/lib paths) --with-external-pa Use external PortAudio development files, not the one in "third_party" directory. When this option is set, make sure that PortAudio is accessible to use (hint: use CFLAGS and LDFLAGS env var to set the include/lib paths) |
|||||
#1861 | Support for video capture orientation | ming | enhancement | normal | release-2.4.5 | pjmedia-videodev |
Description |
Currently there is no mechanism to notify other party about new video orientation, so in this ticket, we implement a feature which allows the video sender to transmit video with the "proper" orientation at all time, i.e: head upside whatever the device orientation is. When a device orientation changes, the application can tell the library and the library will rotate the video, resize it accordingly, and insert blank/black in left+right sides. The receiver/decoder side will then receive the video in the correct orientation, nothing to do on the decoder side. The feature is available on iOS and Android only. |
|||||
#1908 | Support opening speaker only in pjsua/pjsua2 | bennylp | enhancement | normal | release-2.5 | pjsua-lib |
Description |
Currently pjsua will always open both speaker and microphone. Some applications, such as Push-To-Talk, may have microphone off most of the time and prefer to open only the speaker. While working on pjsua2 sound device, there seem to be a related issue, calling setPlaybackDev() & setCaptureDev() consecutively may not work as expected, i.e: for changing both playback and record devices, perhaps due to asynchronous dev open/close operations, this is experienced on Linux platforms. So, perhaps we should consider to add an API to set both at once, e.g: setPlaybackAndCaptureDev(). |
|||||
#1606 | Support query-only on registration bindings | bennylp | enhancement | normal | release-2.1 | pjsip |
Description |
Currently only add and remove bindings are supported. To perform registration query, create a registration client without registering any contacts, and set the "renew" parameter of pjsip_regc_register() to 0. Thanks Roman Puls for the suggestion. |
|||||
#2089 | Support receiving Opus packets with various frame lengths | nanang | enhancement | normal | release-2.8 | pjmedia |
Description |
From the RFC 7587: The Opus encoder can output encoded frames representing 2.5, 5, 10, 20, 40, or 60 ms of speech or audio data. Further, an arbitrary number of frames can be combined into a packet, up to a maximum packet duration representing 120 ms of speech or audio data. For example, for a packet duration of 40ms, we can receive 1 frame of 40ms, 2x20ms, 4x10ms, etc. However, currently pjmedia only expects constant frame length to be specified during stream creation. Thank you to Marcus Froeschl for the suggestion and patch testing. |
|||||
#1097 | Support sending UPDATE without SDP | bennylp | enhancement | normal | release-1.7 | pjsip |
Description |
Currently pjsip_inv_update() requires SDP offer param, while some applications may need to send UPDATE without SDP, e.g: session timer. |
|||||
#1976 | Support to generate a synthesized IPv6 address from IPv4 address | bennylp | enhancement | normal | release-2.6 | pjsip |
Description |
Add support to generate a synthesized IPv6 address from IPv4 address. The ability to synthesize IPv6 addresses was added to getaddrinfo in iOS 9.2 and OS X 10.11.2 (reference: Apple's doc). Thanks to Jamil Abdullayev for the patch. |
|||||
#2165 | Support video only call in pjsua | bennylp | enhancement | normal | release-2.9 | pjsua-lib |
Description |
Currently, there are a couple of problems when making video only call (aud_cnt = 0) with pjsua:
This ticket will fix these issues. |
|||||
#1949 | Support video window manipulation for native preview | bennylp | enhancement | normal | release-2.6 | pjsua-lib |
Description |
Currently pjsua_vid_win API will return PJ_EINVAL if the video capture preview is native, such as on iOS. This means that application has to manually get the native window handle and use the OS API directly. However, this could be problematic, for example on iOS, the UIView window also contains a preview layer which is not exposed to the application. Hence, resizing the window container itself (by calling the iOS API) will not resize the preview layer itself. Thus, since the underlying pjmedia videodev implementation already supports such capabilities, this ticket will enchance pjsua_vid_win API to support them as well. |
|||||
#1538 | Suppress SIGPIPE for broken TCP connection on Linux (thanks Mike Evans for the suggestion) | bennylp | enhancement | normal | release-2.0.1 | pjlib |
Description |
PJLIB has been attempting to suppress the delivery of SIGPIPE when send() is called on a broken TCP socket, by applying SO_NOSIGPIPE to the socket. Unfortunately this option is not available on Linux. This ticket adds the same functionality by adding MSG_NOSIGNAL flag to send() if this flag is detected (declared). |
|||||
#1124 | Symbian ^3 port | bennylp | enhancement | normal | Known-Issues-and-Ideas | common |
Description |
Support for Symbian 3 platform. |
|||||
#992 | Symbian build issues using RVCT compiler. | bennylp | defect | normal | release-1.5.5 | common |
Description |
Report and solution provided by Gabor Tanka can be found in this thread. |
|||||
#946 | Symbian kern-exec 0 in resolving IPv6 address. | bennylp | defect | normal | release-1.4 | pjlib |
Description |
Found that kern-exec 0 is caused by access to RHostResolver instance for IPv6, while RHostResolver for IPv6 is also not opened/initialized when PJ_HAS_IPV6 is not set. |
|||||
#2 | Symbian sound device implementation | bennylp | enhancement | major | release-0.8.0 | pjmedia |
Description |
Implement sound device implementation for Symbian/S60 3rd edition platform. |
|||||
#805 | Symbian testing | bennylp, nanang | task | normal | release-1.2-QA | common |
#975 | Symbian timer heap implementation unable to schedule duration more than 2147 seconds (thanks Nir Elkayam for the report) | bennylp | defect | critical | release-1.5 | pjlib |
Description |
The Symbian timer heap implementation uses 32bit integer value to calculate the interval. Since RTimer.After() function takes microsecond interval as 32bit integer too, this causes the timer heap to unable to schedule more than ~2100 seconds duration. If caller tries to schedule more than ~2100 seconds duration, the timer would be triggered immediately, causing e.g.:
|
|||||
#1300 | Symmetric payload type in generating SDP answer | nanang | enhancement | normal | release-2.0-beta | pjmedia |
Description |
Answerer SHOULD use matching payload type as the offer:
Note:
|
|||||
#1278 | System specific initialization during application startup | ming | defect | major | release-2.0-alpha | common |
Description |
Some video devices implementation (in pjmedia-videodev) assumes that the application has been initialized in certain way in order for it to work. For example, the SDL and QuickTime video device implementation on Mac OS X requires NSApplication and NSAutoreleasePool to be present in the application. That normally is not a problem if the application is GUI application created with IDE such as XCode, since the IDE will create those for us. But for application created manually, such as console apps that are common in our samples, these objects have to be created manually. This ticket implements a generic way to initialize system specific settings to the application. This new API in pj/os.h is proposed: /* Type for main function. */ typedef int (*pj_main_func_ptr)(int argc, char *argv[]); /** * Run the application. This function has to be called in the main thread * and after doing the necessary initialization according to the flags * provided, it will call main_func() function. * * @param main_func Application's main function. * @param argc Number of arguments from the main() function, which * will be passed to main_func() function. * @param argv The arguments from the main() function, which will * be passed to main_func() function. * @param flags Flags for application execution, currently must be 0. * * @return main_func()'s return value. */ int pj_run_app(pj_main_func_ptr main_func, int argc, char *argv[], unsigned flags); Console apps need to call the above pj_run_app() API, passing it's main routine as the argument. |
|||||
#677 | System wall clock/time change will cause timer heap entries to be scheduled wrongly | bennylp | defect | normal | Known-Issues-and-Ideas | pjlib |
Description |
Since the timer heap time calculation uses wall clock source, changes in the system time (for example because of DST, network time synch, time change, etc.) will cause the timer entries to be scheduled wrongly. The solution is to use tick count based time which should be immune from the time change problem. Thanks Phil Torre for the report. |
|||||
#482 | TCP keep-alive packets are corrupting SIP message (thanks Helmut Wolf) | bennylp | defect | normal | release-0.9.0 | pjsip |
Description |
TCP keep-alives packets are not dropped by the stack, and although the parser should be able to cope with leading CRLF's, pjsip_find_msg() doesn't. The transport layer should drop these leading CR-LF bytes before parsing is invoked. Thanks Helmut Wolf for reporting this. |
|||||
#42 | TCP/TLS transport bug when connection is closed | bennylp | defect | major | release-0.5.10 | pjsip |
Description |
When TCP connection is closed by remote, it will be marked as being shutdown so that it will not be used by subsequent requests. This is the correct behavior. When application needs to send another message to the destination, the transport manager will see that there is a transport object for the destination, but this transport object is being shutdown, so the transport manager will create a new transport for the same destination. This is also the correct behavior. But unfortunately the new transport created will have the same key as the transport being shutdown, so it will overwrite the entry in the hash table. Then the first transport is finally destroyed, it will set the hash table key to NULL, and this causes the second transport's entry to be inadvertly nullified. |
|||||
#1032 | TLS certificate verification and callback to notify TCP/TLS transport state (thanks Rohit Agrawal, Klaus Darilion, and Pierre-Luc Bacon for the suggestions) | bennylp | enhancement | normal | release-1.6 | pjsip |
Description |
Issues:
Specifications:
|
|||||
#3 | TLS support | bennylp | enhancement | major | release-0.5.10 | pjsip |
Description |
Implement TLS support for PJSIP |
|||||
#1522 | TLS/SSL error code issues with OpenSSL backend | bennylp | defect | normal | release-2.0.1 | pjlib |
Description |
Issues:
|
|||||
#1005 | TLS/SSL issues. | nanang | defect | normal | release-1.5.5 | pjsip |
Description |
Known issues:
|
|||||
#1017 | TURN TLS transport | bennylp | enhancement | normal | release-2.9 | pjnath |
Description |
Implement TLS transport for TURN protocol, using the new PJLIB SSL transport object. |
|||||
#888 | TURN client allocation failure when it receives multiple 438/Stale Nonce responses (thanks Peter Livesey for the report) | bennylp | defect | normal | release-1.3 | pjnath |
Description |
The TURN client fails to retry authentication after it receives several 438 responses during an allocation session. It fails with this message: 6:29:02.950 udprel0x81ea28 Error: authentication failed (too many retries) This is because the sess->auth_retry variable is not properly reset after it receives successful response, in the STUN session. Thanks Peter Livesey for the report! |
|||||
#889 | TURN client ignores the allocation parameter specified by application | bennylp | defect | normal | release-1.3 | pjnath |
Description |
Any parameters set in pj_turn_alloc_param is ignored by pj_turn_session The corresponding ticket for 1.0.x branch is #901 |
|||||
#901 | TURN client ignores the allocation parameter specified by application | bennylp | defect | normal | release-1.0.3 | pjnath |
Description |
This is duplicate of ticket #889 for 1.0.x branch. |
|||||
#1398 | TURN initialization failure scenario | bennylp | defect | normal | release-2.0-beta | pjsua-lib |
Description |
When TURN is configured with bad server name, couple of error scenarios will occur. For example, configure pjsua with the following: --use-ice --use-turn --turn-srv turn.baddomain.com Scenario 1:
Scenario 2:
|
|||||
#566 | TURN session in PJSUA-LIB is not properly destroyed causing possible memory and handle leaks | bennylp | defect | normal | release-1.0-rc1 | pjsua-lib |
Description |
After media subsystem is shutdown, events are not polled, causing TURN session pending destroy events to be unprocessed. |
|||||
#1357 | Temporarily disable event in pjsua | bennylp | defect | normal | release-2.0-alpha | pjsua-lib |
Description |
It crashed upon receiving re-INVITE or UPDATE. This problem is to be fixed by #1358 |
|||||
#1895 | Terminate subscription when receiving non 2xx Notify response without Retry-After header | bennylp | defect | normal | release-2.5 | pjsip |
Description |
RFC 3265 states: If the NOTIFY request fails (as defined above) due to a timeout condition, and the subscription was installed using a soft-state mechanism (such as SUBSCRIBE), the notifier SHOULD remove the subscription. If a NOTIFY request receives a 481 response, the notifier MUST remove the corresponding subscription even if such subscription was installed by non-SUBSCRIBE means (such as an administrative interface). A NOTIFY request is considered failed if the response times out, or a non-200 class response code is received which has no "Retry-After" header and no implied further action which can be taken to retry the request (e.g., "401 Authorization Required".) If the NOTIFY request fails (as defined above) due to an error response, and the subscription was installed using a soft-state mechanism, the notifier MUST remove the corresponding subscription. Based on the above statements, subscription will be terminated after receiving these Notify response:
This ticket will apply the third condition for terminating the subscription. Thanks to Mark Michelson for the report. |
|||||
#1735 | Terminate the call if 200/OK response to INVITE to SIPS target is not secure | bennylp | enhancement | normal | release-2.3 | pjsua-lib |
Description |
The standard says that a SIPS dialog should be secure end to end. However some proxies or UASes disobey this requirement and give back plain SIP URI in the Record-Route or Contact header. We should terminate such call. This ticket will implement Contact/Record-Route header checks in incoming initial/subsequent INVITE/UPDATE request or 2xx response to INVITE/UPDATE. Contact URI should use "sips" scheme and Record-Route URI should use either "sips" scheme or "transport=tls" param. As UAC, if it receives 200/OK response to initial/subsequent INVITE/UPDATE with insecure Contact/Record-Route, it will terminate the session. As UAS, if it receives initial/subsequent INVITE/UPDATE request with insecure Contact/Route headers, it will send response with SIP status code 480 and Warning header: 381 "SIPS required". This feature can be disabled by setting pjsip_cfg()->endpt.disable_secure_dlg_check to PJ_TRUE (default is PJ_FALSE). Here are some texts from the standard:
|