= Configuring PJSIP/pjsua to Support IMS = [http://en.wikipedia.org/wiki/IP_Multimedia_Subsystem Wikipedia on IMS]: ''The IP Multimedia Subsystem (IMS) is an architectural framework for delivering internet protocol (IP) multimedia to mobile users. It was originally designed by the wireless standards body 3rd Generation Partnership Project (3GPP), and is part of the vision for evolving mobile networks beyond GSM. Its original formulation (3GPP R5) represented an approach to delivering "Internet services" over GPRS. This vision was later updated by 3GPP, 3GPP2 and TISPAN by requiring support of networks other than GPRS, such as Wireless LAN, CDMA2000 and fixed line.'' PJSIP provides some basic supports to work with IMS since version 0.8: - Support for AKAv1MD5 and AKAv2MD5 digest authentication algorithm (ticket #396) - Support for configuring route set by means of {{{Service-Route}}} header (ticket #400) - Support for sending empty Authorization header - Support for strict route set (this has always been present in PJSIP) - and so on. Depending on your IMS deployment configuration, you may or may not need the above features. However these supports are not enabled by default in PJSIP, so this article describes how to enable and use these, with pjsua as the reference implementation. == API Configurations == === Digest AKA Authentication === The PJSIP distribution (tarball or SVN) contains everything that is required to support AKAv1MD5 and AKAv2MD5 authentication (such as ''libmilenage''), we just need to turn the settings on. Please follow '''[http://www.pjsip.org/pjsip/docs/html/group__PJSIP__AUTH__AKA__API.htm Digest AKAv1 and AKAv2 Authentication API]''' document on how to enable and use AKA authentication API. For elaborate information about digest AKA support in PJSIP, please see ticket #396. === Service Route Processing === Processing of {{{Service-Route}}} header ([http://www.ietf.org/rfc/rfc3606.txt RFC 3606]) takes place in [http://www.pjsip.org/pjsip/docs/html/group__PJSUA__LIB.htm PJSUA-LIB] level and not at PJSIP level, since only at PJSUA-LIB level we have the notion of SIP account. For more information about enabling this feature (at run-time) on pjsua or your application, please see ticket #400.