Amazon Chime SDK PSTN オーディオサービスのプログラミングモデルについて
PSTN オーディオサービスは、順々に AWS Lambda 関数を使用する、リクエスト/レスポンスプログラミングモデルを使用します。AWS Lambda 関数は、着信通話と発信通話で自動的に呼び出されます。例えば、新しい着信通話が届くと、PSTN オーディオサービスは、NEW_INCOMING_CALL
イベントを使用して AWS Lambda 関数を呼び出し、Actions というコマンドを待機します。例えば、アプリケーションは、音声プロンプトの再生、ディジットの収集、音声の録音、次への通話のルーティングなどのアクションを選択できます。これらの JSON 形式のアクションは、AWS Lambda 関数からのコールバックを使用して PSTN オーディオサービスに返されます。
以下の例は、PlayAudio
アクションを示しています。
{ "Type": "PlayAudio", "Parameters": { "CallId": "
call-id-1
", "ParticipantTag": "LEG-A", "PlaybackTerminators": ["1
", "8
", "#
"], "Repeat": "5
", "AudioSource": { "Type": "S3", "BucketName": "valid-S3-bucket-name
", "Key": "wave-file.wav
" } } }
以下の例は、RecordAudio
アクションを示しています。
{ "Type": "RecordAudio", "Parameters": { "CallId": "
call-id-1
", "DurationInSeconds": "10
", "SilenceDurationInSeconds":3
, "SilenceThreshold":100
, "RecordingTerminators": [ "#
" ], "RecordingDestination": { "Type": "S3", "BucketName": "valid-bucket-name
", "Prefix": "valid-prefix-name
" } } }
PSTN オーディオサービスは、アクションを実行すると、成功または失敗を示す情報と共に AWS Lambda 関数を再度呼び出します。
また、アプリケーションは発信通話を行ったり、AWS Lambda 関数を使用して通話フロー、発信者エクスペリエンス、通話コンテキストを制御したりすることもできます。この場合は CreateSipMediaApplicationCall API を呼び出します。AWS Lambda が NEW_OUTBOUND_CALL
イベントで呼び出されます。通話が応答されたら、音声プロンプトの再生やユーザーが入力したディジットの収集などのアクションを返すことができます。UpdateSipMediaApplicationCall API を使用して AWS Lambda 関数をトリガーし、タイマー、参加者のミュート、待合室を実装することもできます。