| 148 (gchar *)elem->value); |
148 (gchar *)elem->value); |
| 149 cur = g_slist_next(cur); |
149 cur = g_slist_next(cur); |
| 150 } |
150 } |
| 151 } |
151 } |
| 152 |
152 |
| 153 char *sipmsg_to_string(const struct sipmsg *msg) { |
153 gchar * |
| |
154 sipmsg_to_string(const struct sipmsg *msg, const gchar *status_text) |
| |
155 { |
| 154 GSList *cur; |
156 GSList *cur; |
| 155 GString *outstr = g_string_new(""); |
157 GString *outstr = g_string_new(""); |
| 156 PurpleKeyValuePair *elem; |
158 PurpleKeyValuePair *elem; |
| 157 |
159 |
| 158 if(msg->response) |
160 if (msg->response) { |
| 159 g_string_append_printf(outstr, "SIP/2.0 %d Unknown\r\n", |
161 g_string_append_printf(outstr, "SIP/2.0 %d %s\r\n", msg->response, |
| 160 msg->response); |
162 status_text ? status_text : "Unknown"); |
| 161 else |
163 } else { |
| 162 g_string_append_printf(outstr, "%s %s SIP/2.0\r\n", |
164 g_string_append_printf(outstr, "%s %s SIP/2.0\r\n", |
| 163 msg->method, msg->target); |
165 msg->method, msg->target); |
| |
166 } |
| 164 |
167 |
| 165 cur = msg->headers; |
168 cur = msg->headers; |
| 166 while(cur) { |
169 while(cur) { |
| 167 elem = cur->data; |
170 elem = cur->data; |
| 168 g_string_append_printf(outstr, "%s: %s\r\n", elem->key, |
171 g_string_append_printf(outstr, "%s: %s\r\n", elem->key, |