如何获取在 Linphone 上转接电话的地址?

问题描述 投票:0回答:1

我正在尝试使用 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)")
        }
    }

我该如何解决这个问题?

我尝试按照文档进行操作。但没有太多可行的解决方案,因为这是我第一次使用这个。

ios swift swiftui linphone linphone-sdk
1个回答
0
投票

使用remoteAddress.asString()(或asStringUriOnly)将地址转换为可打印的字符串值。

© www.soinside.com 2019 - 2024. All rights reserved.