jingle/action-handlers.c
changeset 128 cded9f40039e
parent 126 059a6737f6a4
child 133 361d8577ebd1
equal deleted inserted replaced
127:02dde03e219b 128:cded9f40039e
    41 void handle_session_initiate(JingleNode *jn)
    41 void handle_session_initiate(JingleNode *jn)
    42 {
    42 {
    43   GError *err = NULL;
    43   GError *err = NULL;
    44   gboolean valid_disposition = FALSE;
    44   gboolean valid_disposition = FALSE;
    45   JingleContent *cn;
    45   JingleContent *cn;
    46   GString *sbuf;
    46   gchar *sbuf;
    47   GSList *child = NULL;
    47   GSList *child = NULL;
    48   LmMessage *r;
    48   LmMessage *r;
    49   gchar *disp;
    49   gchar *disp;
    50   JingleSession *sess;
    50   JingleSession *sess;
    51   const gchar *xmlns;
    51   const gchar *xmlns;
   129     session_delete(sess);
   129     session_delete(sess);
   130     return;
   130     return;
   131   }
   131   }
   132   
   132   
   133   // Wait that user accept the jingle
   133   // Wait that user accept the jingle
   134   sbuf = g_string_new("");
   134   sbuf = g_strdup_printf("Received an invitation for a jingle session from <%s>",
   135   g_string_printf(sbuf, "Received an invitation for a jingle session from <%s>",
       
   136                   lm_message_get_from(jn->message));
   135                   lm_message_get_from(jn->message));
   137 
   136 
   138   scr_WriteIncomingMessage(disp, sbuf->str, 0, HBB_PREFIX_INFO, 0);
   137   scr_WriteIncomingMessage(disp, sbuf, 0, HBB_PREFIX_INFO, 0);
   139   scr_LogPrint(LPRINT_LOGNORM, "%s", sbuf->str);
   138   scr_LogPrint(LPRINT_LOGNORM, "%s", sbuf);
   140 
   139   g_free(sbuf);
       
   140   
       
   141   for (child = sess->content; child; child = child->next) {
       
   142     SessionContent *sc = (SessionContent *)child->data;
       
   143     gchar *app_info = sc->appfuncs->info(sc->description);
       
   144     gchar *trans_info = sc->transfuncs->info(sc->transport);
       
   145     sbuf = g_strdup_printf("%s using %s", app_info, trans_info);
       
   146     scr_WriteIncomingMessage(disp, sbuf, 0, HBB_PREFIX_INFO, 0);
       
   147     scr_LogPrint(LPRINT_LOGNORM, "%s", sbuf);
       
   148     g_free(app_info);
       
   149     g_free(trans_info);
       
   150     g_free(sbuf);
       
   151   }
       
   152   
   141   {
   153   {
   142     const char *id;
   154     const char *id;
   143     char *desc = g_strdup_printf("<%s> invites you to do a jingle session",
   155     char *desc = g_strdup_printf("<%s> invites you to do a jingle session",
   144                                  lm_message_get_from(jn->message));
   156                                  lm_message_get_from(jn->message));
   145 
   157 
   146     id = evs_new(desc, NULL, 0, evscallback_jingle, sess, NULL);
   158     id = evs_new(desc, NULL, 0, evscallback_jingle, sess, NULL);
   147     g_free(desc);
   159     g_free(desc);
   148     if (id)
   160     if (id)
   149       g_string_printf(sbuf, "Please use /event %s accept|reject", id);
   161       sbuf = g_strdup_printf("Please use /event %s accept|reject", id);
   150     else
   162     else
   151       g_string_printf(sbuf, "Unable to create a new event!");
   163       sbuf = g_strdup_printf("Unable to create a new event!");
   152     scr_WriteIncomingMessage(disp, sbuf->str, 0, HBB_PREFIX_INFO, 0);
   164     scr_WriteIncomingMessage(disp, sbuf, 0, HBB_PREFIX_INFO, 0);
   153     scr_LogPrint(LPRINT_LOGNORM, "%s", sbuf->str);
   165     scr_LogPrint(LPRINT_LOGNORM, "%s", sbuf);
       
   166     g_free(sbuf);
   154   }
   167   }
   155   g_free(disp);
   168   g_free(disp);
   156 }
   169 }
   157 
   170 
   158 void handle_session_info(JingleNode *jn)
   171 void handle_session_info(JingleNode *jn)