指令應用RAND

Random 亂數、隨機

Random此指令在舊版的asterisk時還可以使用,到了新版時,就廢棄不用了,改為 RAND 用法也不一樣

語法:
RAND(最小值,最大值)

底下示範 RAND 的用法:

範例1說明:
我們若有多個來電顯示號碼可供使用,不想每次撥出去都顯示同一個號碼時,可這樣設定。
在撥號前會先跳到 [設定來電顯示] 此區段,分機 cell1~cell5 之間隨機取一個,Return 再回到原來區段撥號出去

[設定來電顯示]
exten => cell1,1,Set(CALLERID(num)=09xxxxxxx1)
  same => n,Return
exten => cell2,1,Set(CALLERID(num)=09xxxxxxx2)
  same => n,Return
exten => cell3,1,Set(CALLERID(num)=09xxxxxxx3)
  same => n,Return
exten => cell4,1,Set(CALLERID(num)=09xxxxxxx4)
  same => n,Return
exten => cell5,1,Set(CALLERID(num)=09xxxxxxx5)
  same => n,Return
  

[outbound]
exten => _886X.,1,Noop
  same => n,Gosub(設定來電顯示,cell${RAND(1,5)},1)
  same => n,Dial(SIP/${EXTEN}@gateway,32,gCX)



範例2說明:
我們撥手機時有5個電話節費閘道可供使用,想要平均使用,而不是單獨落在某一個閘道器上,可參考底下設定方法

exten => _09XXXXXXXX,1,Set(VOLUME(RX)=5)
;加大音量 5
  same => 2,Goto(${RAND(3,7)})
  ;設定 priority 的數值為 3~7 隨機取一個數
  same=> 3,Dial(SIP/${EXTEN}@gateway0)
  same=> 4,Dial(SIP/${EXTEN}@gateway1)
  same=> 5,Dial(SIP/${EXTEN}@gateway2)
  same=> 6,Dial(SIP/${EXTEN}@gateway3)
  same=> 7,Dial(SIP/${EXTEN}@gateway4)

範例3說明:
想要亂數設定來電顯示號碼。例如:設定美國手機或市話的來顯,共10碼。

[outbound]
exten => _XXXX.,1,Noop
  same => n,set(callnum1=${RAND(851111,852999)})
  same => n,set(callnum2=${RAND(0000,9999)})
  same => n,set(CALLERID(num)=${callnum1}${callnum2})
  same => n,Dial(SIP/gateway1/${EXTEN},90,gCX)

此範例應用上要注意的是,因為 RAND 此指令所能產生的亂數最大值為 2147483647 ,若想要使用RAND指令一行就產生亂數的話,他最大只能到 2147483647 ,這個限制就很大,所以我們使用了兩行指令來產生10碼的來電顯示。

分類: voip。這篇內容的永久連結

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *