今天調試 發現 注冊的分機 的 `Auth-User` 居然是 `unknown` !!!
怎么回事?
仔細對比檢查 發現, internal profile 指定了 `apply-register-acl` 的參數 ,值為 `domain`,
而默認配置是注釋掉這個 參數的, 在看 acl::domain 里 allow 內網 ip了,
然后驗證, 果然是這個參數的鍋.
即
internal profile 指定了 `apply-register-acl` 的,
指定的 acl 如果允許 了 某個 IP, 則這個IP 上的分機注冊是不要驗證密碼的 !!! 即不驗證 鑒權用戶名 !
無需密碼就可以注冊撥打了!
so: 最好不要 配置 這個參數, 刪掉或注釋掉好了
apply-inbound-acl
Allow users to make calls from a particular cidr without authenticating
允許用戶在未經身份驗證的情況下從特定的cidr撥打(即指定acl->allow時不需要驗證密碼就可以撥打<與注冊無關>)
如果acl->deny,則拒絕此撥打
如果不配置,則不驗證
Usage: <param name="apply-inbound-acl" value="<list name>"/>
<list name> is set in acl.conf.xml and defines the subnet that will be processed by the ACL bearing this name. The default name is "domains".
apply-register-acl
Allow users to register from a particular cidr without authenticating.
允許用戶從一個特定的cidr注冊而無需驗證密碼。(即acl->allow時<指定的 acl 如果允許 了 這個 IP>, 則這個IP 上的分機注冊是不要驗證密碼的 !!! 即不驗證 鑒權用戶名密碼 !
如果acl->deny,會直接拒絕注冊,不管密碼了
而如果 不配置此參數, 則所有的來源(IP)注冊 都要驗證密碼
apply-proxy-acl
Use the IP specified in X-AUTH-IP header sent from proxy for apply-inbound-acl Note: You'll need to configure your proxy to add this header.
代理方面的
apply-candidate-acl
ICE candidates for RTP transport are checked against this list. It defaults to wan.auto if unset, which excludes the LAN.
ICE候選IP方面的
auth-calls
Can be set to true/false forcing users to authenticate or no on the profile. Only allow users from a specific cidr to register/make calls. Note: Currently auth-calls does not work with registrations/invites through a proxy. You'll need to do this inside your xml_curl directory scripts or on your proxy.
可以設置為true/false,強制用戶在配置文件上進行身份驗證或不進行身份驗證。 僅允許來自特定cidr的用戶注冊/撥打電話。 注意:目前通過代理注冊/撥打 auth-calls 不起作用。 您需要在xml_curl目錄腳本或代理中執行此操作。
Directory settings:
<user id="1000" number-alias="1000" cidr="12.34.56.78/32,20.0.0.0/8">
Used with in conjunction with apply-inbound-acl and apply-register-acl.
<param name="auth-acl" value="1.2.3.0/8"/>
Used in conjunction with auth-calls.
(參考:https://freeswitch.org/confluence/display/FREESWITCH/ACL#ACL-apply-register-acl)
如果配置使用acl , 則在acl->true時 不驗證密碼. 如下圖

