便於大夥學習,翻譯了官方文檔。如有不妥之處,請見諒,望聯繫。
目錄表:
1.管理指南
1.1 概況
1.2 依賴
1.3 導出參數( Exported Parameters)
1.4 導出函數(Exported Function)
1.5 導出MI函數
1.6 導出事件
1.7 安裝和運行
2. 高頻提問
3. 貢獻者
3.1 按提交統計
3.2 按提交活動統計
4. 文檔
正文部分:
1.1 概況
1.2 依賴
1.3 導出參數( Exported Parameters)
1.4 導出函數(Exported Function)
1.4.1 ds_select_dst(set, alg [, (flags M max_results)*])
該方法從給定的地址集中挑選一個目的地。它會覆寫SIP請求($du)的“destination URI”值。
以下是各個參數的意義:
-
set - 分區名稱,後面跟冒號、領取到目的地址的集合ID或集合ID列表(接受變量)。如果缺少分區名稱,將使用默認分區。
-
alg - 用於選擇目標地址的算法(接受變量):
-
“0”: 在callid上哈希
-
“1”:在“from uri“上哈希
-
“2”:在“to uri“上哈希
-
“3”:在“request uri”上哈希
-
“4”:加權輪詢(下一個目的地)
-
“5”:通過授權用戶名( authorization-username)哈希
-
“6”:隨機(使用rand())
-
“7”: 哈希PVs字符串的內容。注意:僅當設置參數hash_pvar時,此方法纔有效。
-
“8”: 選擇集合中的第一個條目
-
“9”: pvar_algo_pattern參數用於確定每個服務器上的負載。如果未指定參數,則選擇集合中的第一個條目
-
“X”: 如果未實現該算法,則選擇集合中的第一個條目
-
-
flags M max_results - 如果指定,這將是在啓動時指定的先前版本中的標誌。這些標誌是:
-
'f'/ 'F':支持failover。
-
'u'/'U':用戶唯一。 將指定僅uri用戶部分將用於哈希。
-
'S'/'s':強制目的地。如果目的地址已經設置,將跳過覆寫目的地址。
-
'D'/'d':默認。 使用目的地中的最後一個地址作爲最後一個選項來發送消息。
-
你也可以使用PVs指定這些標誌。這些標誌按分區保留。
第二個參數max_results表示最多隻能將max_results的最大值放入指定的avp中以進行failover操作。這樣可以有許多目的地,但 如果某個數字註定會在任何地方失敗,則可以限制無用的流量。從2.1版開始,最後一個參數可以由flags和max_results的列表表示,並用逗號分隔。你可以僅指定標誌,也可以僅指定max_results參數,但是如果要一起指定它們,則必須使用'M'字符,如下實例:flags M max_results。
如果設置了'flags'中的字符'f',則目標集中的其餘地址將存儲在AVP列表中。你可以使用"ds_next_dst()"來使用下一個地址來實現到所有可能目的地的串行分支。如果使用多個調度組,則根據列表中每個調度ID的位置來構造AVP列表:第一個具有較高的優先級,其次是第二個,依此類推。
可以在REQUEST_ROUTE,BRANCH_ROUTE和FAILURE_ROUTE中使用此函數。
例子 1.33 ds_select_dst 的用法
...
ds_select_dst("1", "0");
...
ds_select_dst("part2 : 1", "0", "5");
...
ds_select_dst("part3 : 1", "0", "fUsD");
...
ds_select_dst("part4 : 2,3", "0,1", "fuD M 5, fuS M 2");
...
# dispatch over multiple dispatching groups
$var(part_name) = "p4"
$var(setid) = "1, 2";
$var(alg) = "4, 2";
$var(flags) = " sFDU M 2, fuS M 3";
ds_select_dst("$var(part_name):$var(setid)","$var(alg)","$var(flags)");
...
1.5 導出MI函數
1.6 導出事件
1.7 安裝和運行
附註:持續更新