我们希望入站呼叫在电话显示器上同时显示显示名称和电话号码。对于来自Twilio的呼叫,Dial动词有一个CallerID属性,但这不会导致SIP from报头被正确地形成。
我们的OnSIP托管PBX需要SIP报头看起来像这样:
From: "Display Name" <sip:+13605551212@sip.twilio.com>
如果我在callerId属性中输入一个电话号码,像这样:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial timeout="90" callerId="3605551212">
<Sip>sip:address@generic.com</Sip>
</Dial>
</Response>
则SIP From报头看起来像这样:
From: "+13605551212" <sip:+13605551212@sip.twilio.com>
我想用显示名称替换引号中的数字,从Twilio的来电显示查找的CallerName字段生成。
Twilio Dial动词或SIP名词是否提供了一种以这种方式形成SIP From标头的方法?
不幸的是,没有办法在From字段中包含主叫名称而在URI中包含主叫号码:
From: "Display Name" <sip:+13605551212@sip.twilio.com>
我们可以将cname添加到callerId字段中,这将覆盖这两个字段。
From: "gonzalo" <sip:+gonzalo@sip.twilio.com>
添加带有主叫号码/被叫姓名的自定义标题如何?
@app.route("/voice", methods=['GET', 'POST'])
def handle_incoming_call():
from_number = request.values.get('From')
cname = request.values.get('CallerName')
cname = cname.strip()
print from_number
print cname
try:
resp = twilio.twiml.Response()
d = resp.dial()
d.sip('sip:2010@1.1.1.1?Twiml-cname=' + cname)
print resp
return str(resp)
except Exception as e:
print str(e)
这将添加一个像这样的头,也许他们可以使用LUA脚本抓取它并将其放在From头中:
X-Twiml-cname: GASCA+GONZALO