33 const std::shared_ptr<dhtnet::ChannelSocket>& socket,
41 local_ = socket->getLocalAddress();
42 remote_ = socket->getRemoteAddress();
45 JAMI_LOG(
"ChanneledSIPTransport@{} tr={}", fmt::ptr(
this), fmt::ptr(&trData_.
base));
52 auto& base = trData_.
base;
53 std::memset(&base, 0,
sizeof(base));
58 base.pool = pool_.get();
61 throw std::runtime_error(
"Unable to create PJSIP atomic.");
64 throw std::runtime_error(
"Unable to create PJSIP mutex.");
68 throw std::runtime_error(
"Invalid local address");
72 throw std::runtime_error(
"Invalid remote address");
84 base.addr_len = remote_.getLength();
105 JAMI_LOG(
"ChanneledSIPTransport@{} tr={} rc={:d}: shutdown",
110 this_->socket_->shutdown();
122 rdata_.tp_info.pool = rxPool_.get();
123 rdata_.tp_info.transport = &base;
124 rdata_.tp_info.tp_data =
this;
125 rdata_.tp_info.op_key.rdata = &rdata_;
127 rdata_.pkt_info.src_addr = base.key.rem_addr;
128 rdata_.pkt_info.src_addr_len =
sizeof(rdata_.pkt_info.src_addr);
135 throw std::runtime_error(
"Unable to register PJSIP transport.");