From f2196e916b63c4e24571742d771b57a00ce9855a Mon Sep 17 00:00:00 2001
From: Ken Rice <krice@freeswitch.org>
Date: Fri, 21 Sep 2007 16:27:41 +0000
Subject: [PATCH] Add Support for
 http://tools.ietf.org/id/draft-levy-sip-diversion-08.txt never rolled into an
 RFC but people use it anyway

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5736 d0543943-73ff-0310-b7d9-9358b9ac24b2
---
 src/mod/endpoints/mod_sofia/sofia.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c
index 2a9fb62806..9bc19a1fe6 100644
--- a/src/mod/endpoints/mod_sofia/sofia.c
+++ b/src/mod/endpoints/mod_sofia/sofia.c
@@ -1994,6 +1994,16 @@ void sofia_handle_sip_i_invite(nua_t *nua, sofia_profile_t *profile, nua_handle_
 				}
 			} else if (!strncasecmp(un->un_name, "Remote-Party-ID", 15)) {
 				process_rpid(un, tech_pvt);
+			} else if (!strncasecmp(un->un_name, "Diversion", 9)) {
+				// Basic Diversion Support for Diversion Indication in SIP
+				// draft-levy-sip-diversion-08
+				if (!switch_strlen_zero(un->un_value)) {
+					char *tmp_name;
+					if ((tmp_name = switch_mprintf("%s%s", SOFIA_SIP_HEADER_PREFIX, un->un_name))) {
+						switch_channel_set_variable(channel, tmp_name, un->un_value);
+						free(tmp_name);
+					}
+				}
 			} else if (!strncasecmp(un->un_name, "X-", 2) || !strncasecmp(un->un_name, "P-", 2)) {
 				if (!switch_strlen_zero(un->un_value)) {
 					char *new_name;