diff options
Diffstat (limited to 'res/res_pjsip_multihomed.c')
-rw-r--r-- | res/res_pjsip_multihomed.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/res/res_pjsip_multihomed.c b/res/res_pjsip_multihomed.c index c959fa777..75ab6058c 100644 --- a/res/res_pjsip_multihomed.c +++ b/res/res_pjsip_multihomed.c @@ -102,9 +102,12 @@ static pj_status_t multihomed_on_tx_message(pjsip_tx_data *tdata) } /* If the transport it is going out on is different reflect it in the message */ - transport = multihomed_get_udp_transport(&prm.ret_addr, prm.ret_port); - if (transport && (tdata->tp_info.transport != transport)) { - tdata->tp_info.transport = transport; + if (tdata->tp_info.transport->key.type == PJSIP_TRANSPORT_UDP || + tdata->tp_info.transport->key.type == PJSIP_TRANSPORT_UDP6) { + transport = multihomed_get_udp_transport(&prm.ret_addr, prm.ret_port); + if (transport && (tdata->tp_info.transport != transport)) { + tdata->tp_info.transport = transport; + } } /* If the message needs to be updated with new address do so */ |