switch_stream_handle_t stream = { 0 };
int x = 0;
- if (switch_channel_direction(channel) == SWITCH_CALL_DIRECTION_OUTBOUND) {
- SWITCH_STANDARD_STREAM(stream);
+ SWITCH_STANDARD_STREAM(stream);
- for(vp = sip->sip_via; vp; vp = vp->v_next) {
- char *v = sip_header_as_string(nh->nh_home, (void *) vp);
-
- stream.write_function(&stream, x == 0 ? "%s" : ",%s", v);
- su_free(nh->nh_home, v);
-
- x++;
- }
+ for(vp = sip->sip_via; vp; vp = vp->v_next) {
+ char *v = sip_header_as_string(nh->nh_home, (void *) vp);
+
+ stream.write_function(&stream, x == 0 ? "%s" : ",%s", v);
+ su_free(nh->nh_home, v);
+ x++;
+ }
+
+ switch_channel_set_variable(channel, "sip_full_via", (char *)stream.data);
+
+ if (switch_channel_direction(channel) == SWITCH_CALL_DIRECTION_OUTBOUND) {
switch_channel_set_variable(channel, "sip_recover_via", (char *)stream.data);
- free(stream.data);
}
+
+ free(stream.data);
+
}
if (sip->sip_from) {