前言
用户利用点击拨号的方式发起呼叫,如何在发起呼叫的过程中传递自定义变量?
本文讲解如何在点击拨号的方式的发起呼叫传递自定义变量。
联系我们
有意向了解呼叫中心中间件的用户,可以点击该链接添加工作人员的微信:顶顶通小何
发起呼叫
例:以点击拨号的方式先呼叫分机1001
,分机1001
接通后再桥接给分机1002
。
/api?token=${token}&action=call
请求参数:
{
"dial": {
"line": "line/1001",
"number": "1001",
"variables": ["origination_caller_id_number=999","ignore_early_media=true"]
},
"bridge": {
"line": "line/1002",
"number": "1002",
"variables": ["a=b"]
},
"notifyurl":"http://127.0.0.1?customparam=myparam"
}
参数解析:
-
dial
- line:发起呼叫使用的线路或者线路中 line/线路名 linegroup/线路组名
- number:被叫号码
- variables:变量列表
-
bridge:用于先呼叫一个号码A,A接通后呼叫号码B。
-
notifyurl:呼叫进度通知回掉,部分回调通知如下:
- 呼叫失败:
{"call":"failed","cause":"呼叫失败原因"}
- 呼叫成功:
{"call":"answer","uuid":"6ab1403d-de06-4ac3-8a9c-6e5960c0aa6b"}
- 收到183:
{"call":"early","uuid":"4c613373-aeda-484a-8ce3-11f1ed6e8b96"}
- bridge端收到183:
{"call":"bridge","uuid":"6ab1403d-de06-4ac3-8a9c-6e5960c0aa6b","peer_uuid":"cb089768-a192-40af-89af-8d9c37b75344"}
- uuid:dial端的UUID
- peer_uuid:bridge端的UUID
- 呼叫失败:
传递自定义变量
自定义参数需要添加在 dial.variables
中,添加的形式如下所示:
sip_h_*
添加自定义sip头到 INVITE ;(如果值里面又逗号用\转义,例:sip_h_X-My-Header=one,two,three。)sip_rh_*
添加自定义sip头到 200sip_ph_*
添加自定义sip头到 180 183sip_bye_h_*
添加自定义sip头到 bye
例:以点击拨号的方式先呼叫分机1001
,分机1001
接通后再桥接给分机1002
。然后传递自定义变量:key
,值:abcde
。
请求参数:
{
"dial": {
"line": "line/1001",
"number": "1001",
"variables": ["origination_caller_id_number=999","ignore_early_media=true","sip_h_key=abcde"]
},
"bridge": {
"line": "line/1002",
"number": "1002",
"variables": ["a=b"]
},
"notifyurl":"http://127.0.0.1?customparam=myparam"
}
查看传递的变量
- 开启信令,Freeswitch控制台执行命令:
sofia global siptrace on
- 点击拨号发起呼叫。
- 查看信令,传递的自定义变量在 INVITE 信令中。如图所示: