From a1bca1e12e3b7453fe8bab885f537871ced97571 Mon Sep 17 00:00:00 2001
From: Anthony Minessale <anthony.minessale@gmail.com>
Date: Mon, 20 Apr 2009 19:00:03 +0000
Subject: [PATCH] make info work out of dialog

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13087 d0543943-73ff-0310-b7d9-9358b9ac24b2
---
 .../libsofia-sip-ua/nua/nua_session.c         | 42 ++-----------------
 1 file changed, 4 insertions(+), 38 deletions(-)

diff --git a/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c b/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c
index 6852ae7de0..ec9997a690 100644
--- a/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c
+++ b/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c
@@ -3082,25 +3082,17 @@ nh_referral_respond(nua_handle_t *nh, int status, char const *phrase)
  * @sa #nua_i_info
  */
 
-static int nua_info_client_init(nua_client_request_t *cr,
-				msg_t *msg, sip_t *sip,
-				tagi_t const *tags);
-
-static int nua_info_client_request(nua_client_request_t *cr,
-				   msg_t *msg, sip_t *sip,
-				   tagi_t const *tags);
-
 nua_client_methods_t const nua_info_client_methods = {
   SIP_METHOD_INFO,		/* crm_method, crm_method_name */
   0,				/* crm_extra */
   {				/* crm_flags */
     /* create_dialog */ 0,
-    /* in_dialog */ 1,
+    /* in_dialog */ 0,
     /* target refresh */ 0
   },
   NULL,				/* crm_template */
-  nua_info_client_init,		/* crm_init */
-  nua_info_client_request,	/* crm_send */
+  NULL,				/* crm_init */
+  NULL,				/* crm_send */
   NULL,				/* crm_check_restart */
   NULL,				/* crm_recv */
   NULL,				/* crm_preliminary */
@@ -3114,32 +3106,6 @@ nua_stack_info(nua_t *nua, nua_handle_t *nh, nua_event_t e, tagi_t const *tags)
   return nua_client_create(nh, e, &nua_info_client_methods, tags);
 }
 
-static int nua_info_client_init(nua_client_request_t *cr,
-				msg_t *msg, sip_t *sip,
-				tagi_t const *tags)
-{
-  nua_handle_t *nh = cr->cr_owner;
-  nua_dialog_usage_t *du = nua_dialog_usage_for_session(nh->nh_ds);
-  nua_session_usage_t *ss = nua_dialog_usage_private(du);
-
-  if (!ss || ss->ss_state >= nua_callstate_terminating)
-    return nua_client_return(cr, 900, "Invalid handle for INFO", msg);
-
-  cr->cr_usage = du;
-
-  return 0;
-}
-
-static int nua_info_client_request(nua_client_request_t *cr,
-				   msg_t *msg, sip_t *sip,
-				   tagi_t const *tags)
-{
-  if (cr->cr_usage == NULL)
-    return nua_client_return(cr, SIP_481_NO_TRANSACTION, msg);
-  else
-    return nua_base_client_request(cr, msg, sip, tags);
-}
-
 /** @NUA_EVENT nua_r_info
  *
  * Response to an outgoing @b INFO request.
@@ -3183,7 +3149,7 @@ nua_server_methods_t const nua_info_server_methods =
     nua_i_info,			/* Event */
     {
       0,			/* Do not create dialog */
-      1,			/* In-dialog request */
+      0,			/* In-dialog request */
       0,			/* Not a target refresh request  */
       0,			/* Do not add Contact */
     },