我正在构建一个需要向客户进行出站呼叫的应用程序。 我需要对这些通话进行录音和转录。
我一直对如何实现这一目标感到非常困惑,但这是我迄今为止在我构建的用于触发调用的 NextJS API 端点中所拥有的:
import twilio from 'twilio'
import { NextResponse } from 'next/server'
const accountSid = process.env.TWILIO_ACCOUNT_SID
const authToken = process.env.TWILIO_AUTH_TOKEN
const twilioNumber = process.env.TWILIO_PHONE_NUMBER
interface OutBoundCall {
to: string
}
export const POST = async (request: Request) => {
const { to }: OutBoundCall = await request.json()
if (!to) return NextResponse.json({ message: 'No to number provided' })
try {
const client = twilio(accountSid, authToken)
client.calls
.create({
to: 'XXXXX', // <-- This is just my personal phone number for now whilst testing
from: twilioNumber as string,
twiml: `<Response><Dial><Number>${to}</Number></Dial></Response>`,
record: true
})
.then(call => console.log(call.sid))
return NextResponse.json({ message: `Call has been triggered to ${to}` })
} catch (error) {
console.log({ error })
return NextResponse.json(error)
}
}
当前正在拨打我的个人电话,然后在连接到我后拨打我传入的号码。
我发现如果我在 TwiML 中添加
<Record transcribe="true" />
,它实际上不会记录或转录。将 record: true
添加到 client/calls.create
方法确实有效,但它不接受 transcribe
参数。
我怎样才能实现这个目标?
我有一种感觉,无论如何我都做错了,因为在我的通话记录中,它显示为 2 个电话(一个给我,一个给我真正想要拨打的号码),所以我相信我被双重收费.
如果我做错了,我该怎么办?
在理想情况下我真正想要发生的事情:
我确实尝试在我的反应前端中使用
Device
组件,但我永远无法让它工作。
这是我正在尝试的代码:
import { Device } from '@twilio/voice-sdk'
const makeCall = async () => {
try {
const device = new Device(
'my-jwt-here' // (I can succesfully make JWTs)
)
const call = await device.connect({
params: {
To: 'XXXX', // The phone number I want to call
}
})
console.log({ call })
} catch (error) {
console.log({ error })
}
}
export const MakeACallPage = () => {
return <button onClick={makeCall}>Make a call here</button>
}
我能找到的所有关于拨打外线电话的文档似乎都是一个简单的版本,其中呼叫只是向用户说出预定义的单词,并且没有显示如何拨打两个人可以互相交谈的电话。
我做错了什么?
非常感谢您的帮助