FAQ – pjsip Open source SIP, media, and NAT traversal stacks/libraries for smartphones. Here you can find answers to some of the most frequently asked questions about PJSIP. If you have a question not answered on this page, you can ask it on the . Or at least a problem. Where can I report it? How can I apply a fix from a particular ticket? Mailing List. I posted to the mailing list and it never shows up. What happened? Compatibility. What SIP products are compatible with PJSIP? Licensing Questions. Why is PJSIP licensed as GPL, and not (LGPL. Why? Does PJSIP support G. G. 7. 29 codecs? How can I add new codec to PJMEDIA? How can I manipulate audio samples directly? I always get . Why? How can I use multiple sound devices simultaneously? How can I use the sound device in stereo? It seems the next release firmware for the 2820 vs 3.3.0 will have ironed out the bugs with caller ID and added few more refinements. While in an H.323 call, Polycom RealPresence Group system sends a TCP Keep-Alive packet on the connection used for H.323 call signalling every 2 minutes. Here you can find answers to some of the most frequently asked questions about PJSIP. If you have a question not answered on this page, you can ask it on. Before patch 10590 (which was applied to Asterisk 1.6) the RTCP data presented in Asterisk 1.4 were basically useless: For example packet loss values could be 10x. How can I support new audio device that is plugged- in after the application is running? Security Related Questions. Does PJSIP Support TLS? How Can I Use TLS with PJSIP/pjsua. Does PJSIP Support Secure Media such as SRTP or ZRTP? DTMF/Tone Related Questions. Why does PJSIP refuse to send DTMF to remote? How can I send inband DTMF tones? How Can I Detect Inband Tone. How Can I Send DTMF INFO Method? Video Questions. Does PJSIP support video? How can I add video support in PJSIP? SIP Questions. Does PJSIP support RFC XYZ? I'm having problem with calling XYZ, please help! How can I use TCP transport to send/receive SIP messages? I cannot login/REGISTER to my server. It complains about authentication error. How can I attach user specific data to a call? How can I add a header or any header to outgoing INVITE? With ICE enabled, INVITE packet can exceed MTU/1. How can I reduce the message size? How can I instantiate multiple PJSIP stacks in my application? How can I support INFO method or other SIP methods not mentioned in PJSIP? What is the difference between proxy and outbound proxy setting? How Can I Extract a Particular Header from Incoming Message. I'm having deadlock in my application. What went wrong? How can I configure PJSIP for IMS? I'm trying to register to a server, but PJSIP treats the 2. OK response as unregistration. Why? I saw PJSIP sends multiple REGISTER requests, one unregistration and one registration. Why? My machine has multiple NICs (multihomed) and PJSIP chooses the wrong IP interface. The pj? Please find the information on how to retrieve PJSIP from SVN in the . It also contains technical articles such as footprint and performance experimentation, although these are somewhat older documentation. These days we normally put experimentation results in the Trac Wiki page (below). Google search will not work on this Trac site, because our Trac hosting provider doesn't allow web indexing. This is because source distribution contains other things such as documentations and scripts. The source tarball of PJSIP v. PJSIP. Although it doesn't have all the PJSIP features, it contains most of them, so it's quite useful. Please find pjsua documentation in . It is also good to get familiar with pjsua since if you'll ever get any problems with PJSIP, most likely we will ask to reproduce it with pjsua, to determine whether the problem is PJSIP problem or the problem with the implementation. So please try this out. You may even be able to impress your mates by doing SIP calls, conference, IM, and presence from a command line application! If building client applications, . On the other hand, since it's a high level API, it may not provide all the flexibilities that are required by the application. Nor the performance, perhaps. Or it may just contain too many features! In this case, perhaps using . The details would depend on what platform you're working on. In case you're using PJSIP and PJMEDIA directly, you can have a look at PJSUA- LIB source code for reference. This makes a big difference for us in terms of troubleshooting, since a crash means fatal bug, while an assertion just serves as a warning thus it is not as fatal. This may be due to some wrong assumption being made during development, some invalid values being used, or some other mistakes done by the developer. The developer can be you or me of course. The conventions that we use consistently are. For errors coming from external sources (such as a malformed SIP message received from remote), it must not raise assertion, and rather a usual error handling must be performed. The idea of this macro is to raise an assertion during development so that any problems can be found and fixed early, and on the production release where the assertion is disabled, the macro will revert to error handling so that the application will not terminate unexpectedly with Assertion failure error. This is another convention that we use. Or at least a problem. Where can I report it? In this case you have two options. Option 1) Switch to using the SVN version instead of release version. This is recommended for stable branch, for example the 1. The stable branch should be as good as release version because changes are normally restricted to bug fixes only. Note that this may not be easy since a fix may depend on other fixes, and is probably not even feasible if the version that you have is too old. For example, let's open #1. Look in the Change- History section, and note all the changesets that have been applied for this ticket. Maybe you susbcribe with your ! GMail account and later post with your company account? Or maybe it should be googlemail. Sometimes companies have an alias for their domain too, like example. If in doubt, check the welcome mail that we sent you when subscribed, that should show which address you used. We and the community are constantly using PJSIP with other open source products such as. We have also heard people successfully done interoperability tests with commercial SIP servers or phones, and we try to attend . But we don't specificly maintain list of these products, for now. Basically the principle stays the same, as long as they follow the standards, we are confident that PJSIP should be able to communicate with them. This means you can avoid the risk of having to compete with a proprietary modified version of your own work. On the contrary, we want everybody to enjoy PJSIP and all its improvements, and the only way to make sure of this is by releasing PJSIP as GPL. Sure this still leaves some debate over why not use, say LGPL, but I guess this page is probably too short to cover that. Our stand on LGPL is explained much better . That is not exactly true. Don't forget that GPL is compatible with many other free software licenses, including. And don't forget that the PJSIP license is GPLv. PJSIP under GPLv. For more complete list of licenses that are compatible with GPL, please see . We use the standard GPL v. PJSIP, and GPL does allow using GPL- ed code for closed source development, as long as the resulting product is not redistributed (for example, it is only used for internal purpose). The solution is either to delete the offending file manually or to run make distclean to clean everything. Either case, you'd have to run make dep again to rebuild the dependency. If you're working on Linux, make sure that you use the . CRLF formatting. Also don't copy files which are checked out on Windows to Linux, since files checked out on Windows will have CRLF endings. And be careful when transferring/editing source files between your Linux and a Windows machine, when you edit a file on Windows the CRLF endings may be set to CRLF too. Please see the platforms list that it currently supports in . Apart from the platforms that we maintain ourselves, the community have also been constantly finding new platforms that PJSIP can run on, for example on . People even have ported PJSIP to even more exotic platforms such as . So there is a good chance that PJSIP will be port- able to your platform. For additional information, there is also information on porting . You can use the nullsound. SIP and pjnath including STUN, TURN, ICE, etc.) created by PJSUA- LIB according to pjsua. Each sound device implementation has its own threading strategy, and usually it will create at least one thread. If this does not solve your problem, please consult the . Codec latency is determined by the codec algorithm and its ptime, but normally it shouldn't add too much latency; maybe around 2. The default resampling algorithm in PJMEDIA adds about 5 ms latency. I have no idea about AEC latency. Network latency, well, we can't do anything about it. You will loose conferencing feature, but as a bonus this will lower CPU usage too. This setting specifies the length of audio frame in milliseconds, to be set to both the sound device and to the conference bridge. Changing this value from 2. Larger number is better for sound stability and to accommodate sound devices that are unable to send frames in timely manner, however it would probably cause more audio delay. The semantic of PJMEDIA. Lowering the value will not affect latency, and may cause unnecessary WSOLA processing (to discard the excessive frames because the buffer is full) and may even produce audio impairments, hence it's no longer recommended. This bad timing causes additional delay in the processing of packets in the jitter buffer; there can be up to 1. Default is no. ticket #3. WMME, with default value is 6. For similar setting for Direct. Sound, application needs to set PA. The default values for both settings are 1. Application can also change the latency at run- time by calling pjmedia. With the default settings, it will use the hard- coded value in stream. With the default settings, it will use the hard- coded value in stream. The default value is also hard- coded in stream. PJSUA- LIB indeed supports running the media without sound device. With pjsua application, you can run pjsua without sound device with - -null- audio option. Please see the API documentation for the details. Currently PJMEDIA does not provide portable APIs to interact with audio device level, so please see the operating system SDK documentation for information on how to achieve this.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |