使用Dial-> SIP TwiML在SIP请求中将显示名称添加到From标头

时间:2015-08-31 23:27:58

标签: twilio

我们希望入站呼叫在我们的手机显示屏上同时显示显示名称和电话号码。对于来自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标题的方法?

1 个答案:

答案 0 :(得分:1)

不幸的是,无法在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