
twilio 实际支持 wav 格式音频(mime 类型为 audio/vnd.wave),但因服务器响应头中 content-type 不匹配或错误配置导致 mms 发送失败;本文详解正确配置方式、验证方法及常见排错步骤。
twilio 实际支持 wav 格式音频(mime 类型为 audio/vnd.wave),但因服务器响应头中 content-type 不匹配或错误配置导致 mms 发送失败;本文详解正确配置方式、验证方法及常见排错步骤。
Twilio 官方文档明确列出 audio/vnd.wave 为受支持的 MMS 媒体类型——它正是标准 WAV 文件的 IANA 注册 MIME 类型,而非 audio/wav(后者虽被部分系统误用,但 Twilio 严格校验,不接受该非标准类型)。
✅ 正确配置关键点
-
确保托管 URL 返回准确的 Content-Type 响应头
当 Twilio 请求你的 MediaUrl(如 https://example.com/voicemail.wav)时,Web 服务器必须返回:Content-Type: audio/vnd.wave
❌ 错误示例(将导致 Attempt to retrieve MediaUrl returned an unsupported Content-Type):
Content-Type: audio/wav // 非标准,Twilio 拒绝 Content-Type: application/octet-stream // 泛型类型,不被识别
-
PHP 后端示例:正确提供 WAV 文件并设置 Header
若你用 PHP 托管音频文件(例如动态生成或代理 voicemail),务必显式设置响应头:<?php $wavPath = '/path/to/recording.wav'; if (file_exists($wavPath)) { header('Content-Type: audio/vnd.wave'); header('Content-Length: ' . filesize($wavPath)); header('Accept-Ranges: bytes'); readfile($wavPath); exit; } else { http_response_code(404); echo 'File not found'; } ?>⚠️ 注意:不要依赖 Apache/Nginx 的默认 MIME 映射(常将 .wav 错配为 audio/wav)。建议在服务器配置中显式覆盖,或如上通过脚本控制。
-
验证 Content-Type 是否生效
使用 curl 快速检查你的 MediaUrl 响应头:curl -I https://yourdomain.com/voicemail.wav
输出中必须包含:
Content-Type: audio/vnd.wave
? 补充说明:为何 carriers 通常无问题?
WAV 格式本身被主流运营商(AT&T、T-Mobile、Verizon 等)广泛支持用于 MMS 音频附件。Twilio 的限制并非源于底层 carrier 限制,而是其服务层对 MIME 类型的预检校验机制——目的是提前拦截格式不兼容请求,避免向 carrier 提交后失败,提升调试效率。
✅ 最终发送代码(PHP + Twilio SDK)
确认 MediaUrl 可访问且响应头正确后,调用 Twilio API 即可:
use Twilio\Rest\Client;
$twilio = new Client('ACxxx', 'auth_token');
$message = $twilio->messages->create(
'+1234567890', // to
[
'from' => '+0987654321',
'body' => 'Voicemail attached',
'mediaUrl' => ['https://yourdomain.com/voicemail.wav'] // ✅ 已验证为 audio/vnd.wave
]
);
echo "Message SID: " . $message->sid;
? 排查清单
- [ ] MediaUrl 可公开访问(无认证、无重定向、HTTPS 有效证书)
- [ ] curl -I 确认返回 Content-Type: audio/vnd.wave
- [ ] 文件实际为 PCM 编码的 WAV(Twilio 不支持压缩 WAV 如 ADPCM)
- [ ] 文件大小 ≤ 5 MB(Twilio MMS 单媒体上限)
- [ ] 使用 Twilio 调试日志中的 LogLevel: ERROR 对应事件,定位具体拒绝原因
遵循以上配置,即可稳定通过 Twilio MMS 发送 WAV 语音邮件,无需转码为 MP3 —— 在保持音质与简化流程间取得最佳平衡。











