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));
55 auto& base = trData_.
base;
56 std::memset(&base, 0,
sizeof(base));
61 base.pool = pool_.get();
64 throw std::runtime_error(
"Unable to create PJSIP atomic.");
67 throw std::runtime_error(
"Unable to create PJSIP mutex.");
71 throw std::runtime_error(
"Invalid local address");
75 throw std::runtime_error(
"Invalid remote address");
91 base.addr_len = remote_.getLength();
114 JAMI_LOG(
"ChanneledSIPTransport@{} tr={} rc={:d}: shutdown",
119 this_->socket_->shutdown();
135 rdata_.tp_info.pool = rxPool_.get();
136 rdata_.tp_info.transport = &base;
137 rdata_.tp_info.tp_data =
this;
138 rdata_.tp_info.op_key.rdata = &rdata_;
140 rdata_.pkt_info.src_addr = base.key.rem_addr;
141 rdata_.pkt_info.src_addr_len =
sizeof(rdata_.pkt_info.src_addr);
148 throw std::runtime_error(
"Unable to register PJSIP transport.");