如何通过AMI获取SIP通道SIPUserAgent变量?Getvar返回空值求解
获取Asterisk SIP通道UserAgent的AMI正确姿势
嘿,你在Asterisk 13.18.5里用Getvar拿SIPUSERAGENT返回空值的问题,其实是变量名用错啦,我给你两个靠谱的解决方法:
方法1:修正变量名用Getvar直接获取
Asterisk里存储SIP UserAgent的变量是**SIP(useragent)**,不是你用的SIPUSERAGENT。调整后的请求应该是这样:
Action: Getvar Channel: SIP/2000-0000003c Variable: SIP(useragent)
发送这个请求后,就能拿到对应通道的UserAgent值了。
方法2:用CoreShowChannel获取全量通道详情
如果你还想顺便看通道的其他信息,CoreShowChannel动作更合适,指定目标通道就行:
Action: CoreShowChannel Channel: SIP/2000-0000003c
返回的响应里会明确列出Useragent字段,直接提取就好。
小提醒
- Asterisk的通道变量对大小写和格式很敏感,
SIP(useragent)里的括号和小写的useragent一个都不能改 - 一定要在通道处于活跃状态时查询,要是通道已经挂断,这些变量会被系统清除,自然拿不到值
内容的提问来源于stack exchange,提问作者yaocl
相关产品推荐
相关产品推荐

