我正在尝试使用 linphone 发起呼叫转接。
按下此按钮即可启动呼叫转接。按下此按钮后,应转接呼叫。我还想看到打印到我的终端的完整地址,
print("REMOTE: \(remoteAddress)")
,但我得到了REMOTE: linphonesw.Address
打印。
ThemeButton(text: "Transfer a Call") {
if let selectedIndex = transferCalls.transferNumbers.firstIndex(where: { $0.selected ?? false }) {
let selectedTransferNumber = transferCalls.transferNumbers[selectedIndex]
// Create SIP address using the UserLine information
if let line = selectedTransferNumber.line {
let sipAddressString = "\(line.username ?? "")@\(line.domain ?? "")"
do {
let remoteAddress = try Factory.Instance.createAddress(addr: "sip:" + sipAddressString)
print("REMOTE: \(remoteAddress)")
// Perform the call transfer using the created SIP address
phoneManager.transferCall(targetHandle: sipAddressString)
} catch {
print("Error creating SIP address: \(error)")
}
} else {
print("Selected transfer number does not have a valid UserLine.")
}
}
}
这是负责创建地址的函数。
func transferCall(targetHandle: String) {
do {
guard let currentCall = (mCore.currentCall != nil) ? mCore.currentCall : mCore.calls.first else {
// Handle the case when there is no active call
print("No active call to transfer.")
return
}
print("Transfer ::: Domain: \(domain)")
print("Transfer ::: Target Handle: \(targetHandle)")
let remoteAddress = try Factory.Instance.createAddress(addr: "sip:" + targetHandle + "@" + domain)
print("REMOTE: ———> \(remoteAddress)")
try currentCall.transferTo(referTo: remoteAddress)
} catch {
print("Transfer Call Error: \(error)")
}
}
我该如何解决这个问题?
我尝试按照文档进行操作。但没有太多可行的解决方案,因为这是我第一次使用这个。
使用remoteAddress.asString()(或asStringUriOnly)将地址转换为可打印的字符串值。