The Sippy Softswitch supports the RFC3326 specification for adding the appropriate Reason: field to SIP messages based on the SIP code received from vendor systems.
This feature was added in version 4.1-STABLE, rev.2.84 of the Sippy Softswitch, and by default is not enabled.
The Reason field mapping allows switch operators to define custom mappings in a flexible manner. If an operator has a specific set of needs for a subset of clients, the operator can define an Account Class that is associated to a custom mapping. This allows operators to make special case adjustments for clients that require atypical SIP response codes and Reason: headers.
There are three popular mapping tables that are used in the industry;
RFC4497 - Recommended by Sippy
With our implementation of RFC326 the switch operator can choose any of the above mappings, or invent their own, though we discourage creativity in this area.
Configuring custom mappings
Configuration of this feature is intended for:
Advanced users who own and operate their own dedicated switch
Users that are competent using the unix command line
Users that are competent in safely and accurately interacting with the SQL command line client
Create a new Account Class
INSERT INTO scode_translations_external
(i_account_class, in_scode, out_scode, reason, out_rfc3326_protocol, out_rfc3326_cause, out_rfc3326_reason)
(NUMERIC_ID_OF_YOUR_ACCOUNT_CLASS, 403, 444, "Test Test Test", "Q.850", "40", "ISUP test");
This example rule will cause your switch to behave as follows: When a vendor returns a SIP code 403, your switch will return a 444 SIP code to your client and add a Reason: field to the header that looks like this:
Reason: Q.850; cause=40; text="ISUP test"
Of course no one should configure their switch to behave like this, but the example highlights that the switch can be configured to support arbitrary requirements easily.