Closed11

Twilio で電話をかけるまで

光岡 高宏光岡 高宏

買おうとしたらエラーが。

Account is restricted from provisioning new long code Phone Numbers

光岡 高宏光岡 高宏

メールで連絡したら解除してくれるっぽい。
前にも 1 度電話番号買おうとしたけどいらなくなって、手続きしなかったからかな。

https://help.twilio.com/articles/4408643016859

TwilioコンソールまたはAPI経由で新しいTwilio電話番号を購入しようとすると、一部のユーザーにエラー22300が表示される場合があります(APIを使用する場合、これはエラー22300に対応します)。

このエラーは、Twilio Complianceがお客様のアカウントに新しいロングコード電話番号のプロビジョニングを一時的に制限していることを意味します。この制限は、不審なアカウントアクティビティや、TwilioのAcceptable Use PolicyまたはMessaging Policyに違反する可能性のある行為があったために課される可能性があります。

このエラーが発生した場合は、verifymyaccount@twilio.com までご連絡いただき、お客様のアカウントからこの制限を解除するようリクエストしてください。その際、以下の重要な詳細を必ず明記してください:

Twilio アカウント SID
貴社名
ユースケースの簡単な説明

www.DeepL.com/Translator(無料版)で翻訳しました。
光岡 高宏光岡 高宏

こんな感じでメール送ってみた

Dear Customer Service,


I am writing to request the removal of a restriction on my account which currently prevents the provisioning of new long code phone numbers. Below are the details of my account and the nature of the usage:

Twilio Account SID: {SID をここに記入}
Name of Business: Personal Use
Brief Explanation of Use Case: {ユースケースの説明}

Please let me know if there is any additional information you require in order to process this request.


Best regards,
光岡 高宏光岡 高宏

You're limited to 50 daily messages. New Subaccounts can't be added. Check your email for details.

こんなアラートも出てる

光岡 高宏光岡 高宏

https://www.twilio.com/docs/voice/quickstart/node

のサンプルコードを TypeScript で少し書き換えて実行したら、電話かかってきた

index.ts
import Twilio from "twilio";

const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;

const client = Twilio(accountSid, authToken);

client.calls
  .create({
    url: "http://demo.twilio.com/docs/voice.xml",
    to: process.env.TO || '',
    from: process.env.FROM || '',
  })
  .then((call) => console.log(call.sid));
光岡 高宏光岡 高宏

こんな感じで、好きなメッセージを喋らせられる

index.ts
import Twilio from "twilio";
import { escape } from "querystring";

const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;

const client = Twilio(accountSid, authToken);

const { VoiceResponse } = Twilio.twiml;

const response = new VoiceResponse();
response.say({ language: "ja-JP" }, "こんにちは。しっかリマインダーです。「ご飯を食べる」時間になりました");

console.log(response.toString());

client.calls
  .create({
    url: "http://twimlets.com/echo?Twiml=" + escape(response.toString()),
    to: process.env.TO || "",
    from: process.env.FROM || "",
  })
  .then((call) => console.log(call.sid));
光岡 高宏光岡 高宏

await で書き換え

index.ts
import Twilio from "twilio";
import { escape } from "querystring";

const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;

const client = Twilio(accountSid, authToken);

const { VoiceResponse } = Twilio.twiml;

const response = new VoiceResponse();
response.say(
  { language: "ja-JP" },
  "こんにちは。しっかリマインダーです。「ご飯を食べる」時間になりました"
);

console.log(response.toString());

const call = await client.calls.create({
  url: "http://twimlets.com/echo?Twiml=" + escape(response.toString()),
  to: process.env.TO || "",
  from: process.env.FROM || "",
});
console.log(call.sid);
このスクラップは2024/05/12にクローズされました