Merge "res_pjsip/chan_sip: Advertise 'ws' in the SIP URI transport parameter"

This commit is contained in:
Joshua Colp
2016-12-02 12:27:52 -06:00
committed by Gerrit Code Review
2 changed files with 4 additions and 4 deletions

View File

@@ -14158,6 +14158,7 @@ static void build_contact(struct sip_pvt *p, struct sip_request *req, int incomi
char tmp[SIPBUFSIZE]; char tmp[SIPBUFSIZE];
char *user = ast_uri_encode(p->exten, tmp, sizeof(tmp), ast_uri_sip_user); char *user = ast_uri_encode(p->exten, tmp, sizeof(tmp), ast_uri_sip_user);
int use_sips; int use_sips;
char *transport = ast_strdupa(sip_get_transport(p->socket.type));
if (incoming) { if (incoming) {
use_sips = uas_sips_contact(req); use_sips = uas_sips_contact(req);
@@ -14172,7 +14173,7 @@ static void build_contact(struct sip_pvt *p, struct sip_request *req, int incomi
} else { } else {
ast_string_field_build(p, our_contact, "<%s:%s%s%s;transport=%s>", ast_string_field_build(p, our_contact, "<%s:%s%s%s;transport=%s>",
use_sips ? "sips" : "sip", user, ast_strlen_zero(user) ? "" : "@", use_sips ? "sips" : "sip", user, ast_strlen_zero(user) ? "" : "@",
ast_sockaddr_stringify_remote(&p->ourip), sip_get_transport(p->socket.type)); ast_sockaddr_stringify_remote(&p->ourip), ast_str_to_lower(transport));
} }
} }

View File

@@ -378,7 +378,6 @@ static void websocket_cb(struct ast_websocket *session, struct ast_variable *par
static pj_bool_t websocket_on_rx_msg(pjsip_rx_data *rdata) static pj_bool_t websocket_on_rx_msg(pjsip_rx_data *rdata)
{ {
static const pj_str_t STR_WS = { "ws", 2 }; static const pj_str_t STR_WS = { "ws", 2 };
static const pj_str_t STR_WSS = { "wss", 3 };
pjsip_contact_hdr *contact; pjsip_contact_hdr *contact;
long type = rdata->tp_info.transport->key.type; long type = rdata->tp_info.transport->key.type;
@@ -395,7 +394,7 @@ static pj_bool_t websocket_on_rx_msg(pjsip_rx_data *rdata)
uri->port = rdata->pkt_info.src_port; uri->port = rdata->pkt_info.src_port;
ast_debug(4, "Re-wrote Contact URI host/port to %.*s:%d\n", ast_debug(4, "Re-wrote Contact URI host/port to %.*s:%d\n",
(int)pj_strlen(&uri->host), pj_strbuf(&uri->host), uri->port); (int)pj_strlen(&uri->host), pj_strbuf(&uri->host), uri->port);
pj_strdup(rdata->tp_info.pool, &uri->transport_param, (type == (long)transport_type_ws) ? &STR_WS : &STR_WSS); pj_strdup(rdata->tp_info.pool, &uri->transport_param, &STR_WS);
} }
rdata->msg_info.via->rport_param = 0; rdata->msg_info.via->rport_param = 0;
@@ -431,7 +430,7 @@ static int load_module(void)
CHECK_PJSIP_MODULE_LOADED(); CHECK_PJSIP_MODULE_LOADED();
pjsip_transport_register_type(PJSIP_TRANSPORT_RELIABLE, "WS", 5060, &transport_type_ws); pjsip_transport_register_type(PJSIP_TRANSPORT_RELIABLE, "WS", 5060, &transport_type_ws);
pjsip_transport_register_type(PJSIP_TRANSPORT_RELIABLE | PJSIP_TRANSPORT_SECURE, "WSS", 5060, &transport_type_wss); pjsip_transport_register_type(PJSIP_TRANSPORT_RELIABLE | PJSIP_TRANSPORT_SECURE, "WS", 5060, &transport_type_wss);
if (ast_sip_register_service(&websocket_module) != PJ_SUCCESS) { if (ast_sip_register_service(&websocket_module) != PJ_SUCCESS) {
return AST_MODULE_LOAD_DECLINE; return AST_MODULE_LOAD_DECLINE;