用ami指令Originate自动呼叫时,传递两个变量一直不正确。
从网上的文档查到,利用ami自动呼叫可以用一下命令格式:
Action: Originate
Channel: SIP/101test
Context: default
Exten: 8135551212
Priority: 1
Callerid: 3125551212
Timeout: 30000
Variable: var1=23|var2=24|var3=25 (这是错误的)
ActionID: ABC45678901234567890
向Asterisk发送动作数据包时,应按照以下格式:
Action: <action type><CRLF>
< Key 1>: <Value 1><CRLF>
< Key 2>: <Value 2><CRLF>
...
Variable: <Variable 1>=<Value 1><CRLF>
Variable: <Variable 2>=<Value 2><CRLF>
...
< CRLF>
明白了问题所在,看了phpagi-asmanager.php源文件,需要变通一下变量发送的代码:
$t = $ami->Originate("sip/$trunk/$mobile",
$queue,'ext-queues','1',
NULL, NULL, 30000, $callid,
"REALCALLERIDNUM=${mobile}\r\nVariable: CALLERID(name)=${mobile}",
NULL,true,$id);
这样写之后就正常了。