Version 3 (modified by bennylp, 16 years ago) (diff)


Configuring PJSIP/pjsua to Support IMS

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 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 (RFC 3606) takes place in 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.