- RAII_VAR(struct ao2_container *, transports, NULL, ao2_cleanup);
- RAII_VAR(struct ast_sip_transport *, transport, NULL, ao2_cleanup);
-
- /* It should be impossible for these to fail as the transport has to exist for the message to exist */
- transports = ast_sorcery_retrieve_by_fields(ast_sip_get_sorcery(), "transport", AST_RETRIEVE_FLAG_MULTIPLE | AST_RETRIEVE_FLAG_ALL, NULL);
-
- ast_assert(transports != NULL);
-
- transport = ao2_callback(transports, 0, find_transport_in_use, rdata);
-
- ast_assert(transport != NULL);
-
- return transport->type;
+ if (rdata->tp_info.transport->key.type == PJSIP_TRANSPORT_UDP ||
+ rdata->tp_info.transport->key.type == PJSIP_TRANSPORT_UDP6) {
+ return AST_TRANSPORT_UDP;
+ } else if (rdata->tp_info.transport->key.type == PJSIP_TRANSPORT_TCP ||
+ rdata->tp_info.transport->key.type == PJSIP_TRANSPORT_TCP6) {
+ return AST_TRANSPORT_TCP;
+ } else if (rdata->tp_info.transport->key.type == PJSIP_TRANSPORT_TLS ||
+ rdata->tp_info.transport->key.type == PJSIP_TRANSPORT_TLS6) {
+ return AST_TRANSPORT_TLS;
+ } else if (!strcmp(rdata->tp_info.transport->type_name, "WS")) {
+ return AST_TRANSPORT_WS;
+ } else if (!strcmp(rdata->tp_info.transport->type_name, "WSS")) {
+ return AST_TRANSPORT_WSS;
+ } else {
+ return 0;
+ }